@@ -16,8 +16,7 @@ define i1 @abs_int_min_is_poison(i32 noundef %arg) {
1616; CHECK-LABEL: define i1 @abs_int_min_is_poison(
1717; CHECK-SAME: i32 noundef [[ARG:%.*]]) {
1818; CHECK-NEXT: [[ABS:%.*]] = tail call i32 @llvm.abs.i32(i32 [[ARG]], i1 true)
19- ; CHECK-NEXT: [[CMP:%.*]] = icmp sge i32 [[ABS]], [[ARG]]
20- ; CHECK-NEXT: ret i1 [[CMP]]
19+ ; CHECK-NEXT: ret i1 true
2120;
2221 %abs = tail call i32 @llvm.abs.i32 (i32 %arg , i1 true )
2322 %cmp = icmp sge i32 %abs , %arg
@@ -42,8 +41,7 @@ define i1 @abs_plus_one_min_is_poison(i32 noundef %arg) {
4241; CHECK-SAME: i32 noundef [[ARG:%.*]]) {
4342; CHECK-NEXT: [[ABS:%.*]] = tail call i32 @llvm.abs.i32(i32 [[ARG]], i1 true)
4443; CHECK-NEXT: [[ABS_PLUS_ONE:%.*]] = add nsw i32 [[ABS]], 1
45- ; CHECK-NEXT: [[CMP:%.*]] = icmp sge i32 [[ABS_PLUS_ONE]], [[ARG]]
46- ; CHECK-NEXT: ret i1 [[CMP]]
44+ ; CHECK-NEXT: ret i1 true
4745;
4846 %abs = tail call i32 @llvm.abs.i32 (i32 %arg , i1 true )
4947 %abs_plus_one = add nsw i32 %abs , 1
@@ -70,8 +68,7 @@ define i1 @arg_minus_one_strict_less_min_is_poison(i32 noundef %arg) {
7068; CHECK-SAME: i32 noundef [[ARG:%.*]]) {
7169; CHECK-NEXT: [[ABS:%.*]] = tail call i32 @llvm.abs.i32(i32 [[ARG]], i1 true)
7270; CHECK-NEXT: [[ARG_MINUS_ONE:%.*]] = add nsw i32 [[ARG]], -1
73- ; CHECK-NEXT: [[CMP:%.*]] = icmp slt i32 [[ARG_MINUS_ONE]], [[ABS]]
74- ; CHECK-NEXT: ret i1 [[CMP]]
71+ ; CHECK-NEXT: ret i1 true
7572;
7673 %abs = tail call i32 @llvm.abs.i32 (i32 %arg , i1 true )
7774 %arg_minus_one = add nsw i32 %arg , -1
@@ -97,8 +94,7 @@ define i1 @arg_minus_one_strict_greater_min_is_poison(i32 noundef %arg) {
9794; CHECK-SAME: i32 noundef [[ARG:%.*]]) {
9895; CHECK-NEXT: [[ABS:%.*]] = tail call i32 @llvm.abs.i32(i32 [[ARG]], i1 true)
9996; CHECK-NEXT: [[ARG_MINUS_ONE:%.*]] = add nsw i32 [[ARG]], -1
100- ; CHECK-NEXT: [[CMP:%.*]] = icmp sgt i32 [[ARG_MINUS_ONE]], [[ABS]]
101- ; CHECK-NEXT: ret i1 [[CMP]]
97+ ; CHECK-NEXT: ret i1 false
10298;
10399 %abs = tail call i32 @llvm.abs.i32 (i32 %arg , i1 true )
104100 %arg_minus_one = add nsw i32 %arg , -1
@@ -130,8 +126,7 @@ define i1 @abs_plus_one_unsigned_greater_or_equal_nonnegative_arg_min_is_poison(
130126; CHECK-NEXT: call void @llvm.assume(i1 [[CMP_ARG_NONNEGATIVE]])
131127; CHECK-NEXT: [[ABS:%.*]] = tail call i32 @llvm.abs.i32(i32 [[ARG]], i1 true)
132128; CHECK-NEXT: [[ABS_PLUS_ONE:%.*]] = add nuw i32 [[ABS]], 1
133- ; CHECK-NEXT: [[CMP:%.*]] = icmp uge i32 [[ABS_PLUS_ONE]], [[ARG]]
134- ; CHECK-NEXT: ret i1 [[CMP]]
129+ ; CHECK-NEXT: ret i1 true
135130;
136131 %cmp_arg_nonnegative = icmp sge i32 %arg , 0
137132 call void @llvm.assume (i1 %cmp_arg_nonnegative )
@@ -216,8 +211,7 @@ define i1 @abs_is_nonnegative_int_min_is_poison(i32 noundef %arg) {
216211; CHECK-LABEL: define i1 @abs_is_nonnegative_int_min_is_poison(
217212; CHECK-SAME: i32 noundef [[ARG:%.*]]) {
218213; CHECK-NEXT: [[ABS:%.*]] = tail call i32 @llvm.abs.i32(i32 [[ARG]], i1 true)
219- ; CHECK-NEXT: [[CMP:%.*]] = icmp sge i32 [[ABS]], 0
220- ; CHECK-NEXT: ret i1 [[CMP]]
214+ ; CHECK-NEXT: ret i1 true
221215;
222216 %abs = tail call i32 @llvm.abs.i32 (i32 %arg , i1 true )
223217 %cmp = icmp sge i32 %abs , 0
@@ -227,8 +221,7 @@ define i1 @abs_is_nonnegative_int_min_is_poison(i32 noundef %arg) {
227221define i1 @abs_is_nonnegative_constant_arg () {
228222; CHECK-LABEL: define i1 @abs_is_nonnegative_constant_arg() {
229223; CHECK-NEXT: [[ABS:%.*]] = tail call i32 @llvm.abs.i32(i32 -3, i1 true)
230- ; CHECK-NEXT: [[CMP:%.*]] = icmp sge i32 [[ABS]], 0
231- ; CHECK-NEXT: ret i1 [[CMP]]
224+ ; CHECK-NEXT: ret i1 true
232225;
233226 %abs = tail call i32 @llvm.abs.i32 (i32 -3 , i1 true )
234227 %cmp = icmp sge i32 %abs , 0
0 commit comments