Skip to content

Commit 284b3ca

Browse files
committed
[RISCV] Add test case for pr84200. NFC
1 parent 0bd9255 commit 284b3ca

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

llvm/test/CodeGen/RISCV/pr84200.ll

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4
2+
; RUN: llc < %s -mtriple=riscv64 | FileCheck %s
3+
4+
; The sub nuw produces poison if the input is not 0 or 1. We must insert a
5+
; freeze before converting the sub to AND so that we don't propagate poison.
6+
define i64 @foo(i64 %1) {
7+
; CHECK-LABEL: foo:
8+
; CHECK: # %bb.0: # %entry
9+
; CHECK-NEXT: li a1, 1
10+
; CHECK-NEXT: sub a1, a1, a0
11+
; CHECK-NEXT: sltiu a0, a0, 2
12+
; CHECK-NEXT: not a0, a0
13+
; CHECK-NEXT: xori a1, a1, 1
14+
; CHECK-NEXT: addi a0, a0, -1
15+
; CHECK-NEXT: and a0, a0, a1
16+
; CHECK-NEXT: ret
17+
entry:
18+
%.urem.i = sub nuw i64 1, %1
19+
%.cmp.i = icmp ugt i64 %1, 1
20+
%2 = xor i64 %.urem.i, 1
21+
%3 = select i1 %.cmp.i, i64 0, i64 %2
22+
ret i64 %3
23+
}

0 commit comments

Comments
 (0)