Skip to content

Commit 114c4f8

Browse files
committed
Added negative tests for mismatched signedness
1 parent 4cc8e51 commit 114c4f8

File tree

1 file changed

+39
-0
lines changed
  • llvm/test/Transforms/ConstraintElimination

1 file changed

+39
-0
lines changed

llvm/test/Transforms/ConstraintElimination/uscmp.ll

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,3 +108,42 @@ true:
108108
false:
109109
ret i8 20
110110
}
111+
112+
; Negative test: signedness mismatch
113+
define i8 @scmp_4(i32 %x, i32 %y) {
114+
; CHECK-LABEL: @scmp_4(
115+
; CHECK-NEXT: [[COND:%.*]] = icmp ugt i32 [[X:%.*]], [[Y:%.*]]
116+
; CHECK-NEXT: br i1 [[COND]], label [[TRUE:%.*]], label [[FALSE:%.*]]
117+
; CHECK: true:
118+
; CHECK-NEXT: ret i8 20
119+
; CHECK: false:
120+
; CHECK-NEXT: [[R:%.*]] = call i8 @llvm.scmp.i8.i32(i32 [[X]], i32 [[Y]])
121+
; CHECK-NEXT: ret i8 [[R]]
122+
;
123+
%cond = icmp ugt i32 %x, %y
124+
br i1 %cond, label %true, label %false
125+
true:
126+
ret i8 20
127+
false:
128+
%r = call i8 @llvm.scmp(i32 %x, i32 %y)
129+
ret i8 %r
130+
}
131+
132+
define i8 @ucmp_4(i32 %x, i32 %y) {
133+
; CHECK-LABEL: @ucmp_4(
134+
; CHECK-NEXT: [[COND:%.*]] = icmp slt i32 [[X:%.*]], [[Y:%.*]]
135+
; CHECK-NEXT: br i1 [[COND]], label [[TRUE:%.*]], label [[FALSE:%.*]]
136+
; CHECK: true:
137+
; CHECK-NEXT: ret i8 20
138+
; CHECK: false:
139+
; CHECK-NEXT: [[R:%.*]] = call i8 @llvm.ucmp.i8.i32(i32 [[X]], i32 [[Y]])
140+
; CHECK-NEXT: ret i8 [[R]]
141+
;
142+
%cond = icmp slt i32 %x, %y
143+
br i1 %cond, label %true, label %false
144+
true:
145+
ret i8 20
146+
false:
147+
%r = call i8 @llvm.ucmp(i32 %x, i32 %y)
148+
ret i8 %r
149+
}

0 commit comments

Comments
 (0)