@@ -16,8 +16,7 @@ define i1 @abs_int_min_is_poison(i32 noundef %arg) {
16
16
; CHECK-LABEL: define i1 @abs_int_min_is_poison(
17
17
; CHECK-SAME: i32 noundef [[ARG:%.*]]) {
18
18
; 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
21
20
;
22
21
%abs = tail call i32 @llvm.abs.i32 (i32 %arg , i1 true )
23
22
%cmp = icmp sge i32 %abs , %arg
@@ -42,8 +41,7 @@ define i1 @abs_plus_one_min_is_poison(i32 noundef %arg) {
42
41
; CHECK-SAME: i32 noundef [[ARG:%.*]]) {
43
42
; CHECK-NEXT: [[ABS:%.*]] = tail call i32 @llvm.abs.i32(i32 [[ARG]], i1 true)
44
43
; 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
47
45
;
48
46
%abs = tail call i32 @llvm.abs.i32 (i32 %arg , i1 true )
49
47
%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) {
70
68
; CHECK-SAME: i32 noundef [[ARG:%.*]]) {
71
69
; CHECK-NEXT: [[ABS:%.*]] = tail call i32 @llvm.abs.i32(i32 [[ARG]], i1 true)
72
70
; 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
75
72
;
76
73
%abs = tail call i32 @llvm.abs.i32 (i32 %arg , i1 true )
77
74
%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) {
97
94
; CHECK-SAME: i32 noundef [[ARG:%.*]]) {
98
95
; CHECK-NEXT: [[ABS:%.*]] = tail call i32 @llvm.abs.i32(i32 [[ARG]], i1 true)
99
96
; 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
102
98
;
103
99
%abs = tail call i32 @llvm.abs.i32 (i32 %arg , i1 true )
104
100
%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(
130
126
; CHECK-NEXT: call void @llvm.assume(i1 [[CMP_ARG_NONNEGATIVE]])
131
127
; CHECK-NEXT: [[ABS:%.*]] = tail call i32 @llvm.abs.i32(i32 [[ARG]], i1 true)
132
128
; 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
135
130
;
136
131
%cmp_arg_nonnegative = icmp sge i32 %arg , 0
137
132
call void @llvm.assume (i1 %cmp_arg_nonnegative )
@@ -216,8 +211,7 @@ define i1 @abs_is_nonnegative_int_min_is_poison(i32 noundef %arg) {
216
211
; CHECK-LABEL: define i1 @abs_is_nonnegative_int_min_is_poison(
217
212
; CHECK-SAME: i32 noundef [[ARG:%.*]]) {
218
213
; 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
221
215
;
222
216
%abs = tail call i32 @llvm.abs.i32 (i32 %arg , i1 true )
223
217
%cmp = icmp sge i32 %abs , 0
@@ -227,8 +221,7 @@ define i1 @abs_is_nonnegative_int_min_is_poison(i32 noundef %arg) {
227
221
define i1 @abs_is_nonnegative_constant_arg () {
228
222
; CHECK-LABEL: define i1 @abs_is_nonnegative_constant_arg() {
229
223
; 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
232
225
;
233
226
%abs = tail call i32 @llvm.abs.i32 (i32 -3 , i1 true )
234
227
%cmp = icmp sge i32 %abs , 0
0 commit comments