Skip to content

Commit 03c6232

Browse files
committed
[RISCV][test] Add tests for swapped operands
1 parent 717d97a commit 03c6232

File tree

2 files changed

+36
-0
lines changed

2 files changed

+36
-0
lines changed

llvm/test/CodeGen/RISCV/rv32zbb.ll

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1881,3 +1881,21 @@ define i32 @sub_if_uge_C_multiuse_sub_i32(i32 signext %x, ptr %z) {
18811881
%cond = select i1 %cmp, i32 %sub, i32 %x
18821882
ret i32 %cond
18831883
}
1884+
1885+
define i32 @sub_if_uge_C_swapped_i32(i32 %x) {
1886+
; CHECK-LABEL: sub_if_uge_C_swapped_i32:
1887+
; CHECK: # %bb.0:
1888+
; CHECK-NEXT: lui a1, 16
1889+
; CHECK-NEXT: lui a2, 1048560
1890+
; CHECK-NEXT: addi a1, a1, -15
1891+
; CHECK-NEXT: sltu a1, a0, a1
1892+
; CHECK-NEXT: addi a1, a1, -1
1893+
; CHECK-NEXT: addi a2, a2, 15
1894+
; CHECK-NEXT: and a1, a1, a2
1895+
; CHECK-NEXT: add a0, a0, a1
1896+
; CHECK-NEXT: ret
1897+
%cmp = icmp ult i32 %x, 65521
1898+
%sub = add i32 %x, -65521
1899+
%cond = select i1 %cmp, i32 %x, i32 %sub
1900+
ret i32 %cond
1901+
}

llvm/test/CodeGen/RISCV/rv64zbb.ll

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2046,3 +2046,21 @@ define i32 @sub_if_uge_C_multiuse_sub_i32(i32 signext %x, ptr %z) {
20462046
%cond = select i1 %cmp, i32 %sub, i32 %x
20472047
ret i32 %cond
20482048
}
2049+
2050+
define i32 @sub_if_uge_C_swapped_i32(i32 signext %x) {
2051+
; CHECK-LABEL: sub_if_uge_C_swapped_i32:
2052+
; CHECK: # %bb.0:
2053+
; CHECK-NEXT: lui a1, 16
2054+
; CHECK-NEXT: lui a2, 1048560
2055+
; CHECK-NEXT: addiw a1, a1, -15
2056+
; CHECK-NEXT: sltu a1, a0, a1
2057+
; CHECK-NEXT: addi a1, a1, -1
2058+
; CHECK-NEXT: addi a2, a2, 15
2059+
; CHECK-NEXT: and a1, a1, a2
2060+
; CHECK-NEXT: addw a0, a0, a1
2061+
; CHECK-NEXT: ret
2062+
%cmp = icmp ult i32 %x, 65521
2063+
%sub = add i32 %x, -65521
2064+
%cond = select i1 %cmp, i32 %x, i32 %sub
2065+
ret i32 %cond
2066+
}

0 commit comments

Comments
 (0)