Skip to content

Commit 9603b72

Browse files
committed
add tests
1 parent d1952ba commit 9603b72

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

llvm/test/CodeGen/SystemZ/int-cmp-65.ll

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,3 +85,44 @@ define i128 @i128_addc_4(i128 %a, i128 %b) {
8585
ret i128 %ext
8686
}
8787

88+
define i128 @i128_addc_xor(i128 %a, i128 %b) {
89+
; CHECK-LABEL: i128_addc_xor:
90+
; CHECK: # %bb.0:
91+
; CHECK-NEXT: vl %v1, 0(%r4), 3
92+
; CHECK-NEXT: vl %v0, 0(%r3), 3
93+
; CHECK-NEXT: vno %v1, %v1, %v1
94+
; CHECK-NEXT: veclg %v1, %v0
95+
; CHECK-NEXT: jlh .LBB6_2
96+
; CHECK-NEXT: # %bb.1:
97+
; CHECK-NEXT: vchlgs %v0, %v0, %v1
98+
; CHECK-NEXT: .LBB6_2:
99+
; CHECK-NEXT: jnl .LBB6_4
100+
; CHECK-NEXT: # %bb.3:
101+
; CHECK-NEXT: larl %r1, .LCPI6_0
102+
; CHECK-NEXT: vl %v0, 0(%r1), 3
103+
; CHECK-NEXT: vst %v0, 0(%r2), 3
104+
; CHECK-NEXT: br %r14
105+
; CHECK-NEXT: .LBB6_4:
106+
; CHECK-NEXT: vgbm %v0, 0
107+
; CHECK-NEXT: vst %v0, 0(%r2), 3
108+
; CHECK-NEXT: br %r14
109+
%b.not = xor i128 %b, -1
110+
%cmp = icmp ugt i128 %a, %b.not
111+
%ext = zext i1 %cmp to i128
112+
ret i128 %ext
113+
}
114+
115+
define i128 @i128_addc_xor_inv(i128 %a, i128 %b) {
116+
; CHECK-LABEL: i128_addc_xor_inv:
117+
; CHECK: # %bb.0:
118+
; CHECK-NEXT: vl %v1, 0(%r4), 3
119+
; CHECK-NEXT: vl %v0, 0(%r3), 3
120+
; CHECK-NEXT: vno %v1, %v1, %v1
121+
; CHECK-NEXT: vscbiq %v0, %v1, %v0
122+
; CHECK-NEXT: vst %v0, 0(%r2), 3
123+
; CHECK-NEXT: br %r14
124+
%b.not = xor i128 %b, -1
125+
%cmp = icmp ule i128 %a, %b.not
126+
%ext = zext i1 %cmp to i128
127+
ret i128 %ext
128+
}

0 commit comments

Comments
 (0)