@@ -5,8 +5,7 @@ define i1 @abs_int_min_is_not_poison(i32 %arg) {
5
5
; CHECK-LABEL: define i1 @abs_int_min_is_not_poison(
6
6
; CHECK-SAME: i32 [[ARG:%.*]]) {
7
7
; CHECK-NEXT: [[ABS:%.*]] = tail call i32 @llvm.abs.i32(i32 [[ARG]], i1 false)
8
- ; CHECK-NEXT: [[CMP:%.*]] = icmp sge i32 [[ABS]], [[ARG]]
9
- ; CHECK-NEXT: ret i1 [[CMP]]
8
+ ; CHECK-NEXT: ret i1 true
10
9
;
11
10
%abs = tail call i32 @llvm.abs.i32 (i32 %arg , i1 false )
12
11
%cmp = icmp sge i32 %abs , %arg
@@ -17,8 +16,7 @@ define i1 @abs_int_min_is_poison(i32 %arg) {
17
16
; CHECK-LABEL: define i1 @abs_int_min_is_poison(
18
17
; CHECK-SAME: i32 [[ARG:%.*]]) {
19
18
; CHECK-NEXT: [[ABS:%.*]] = tail call i32 @llvm.abs.i32(i32 [[ARG]], i1 true)
20
- ; CHECK-NEXT: [[CMP:%.*]] = icmp sge i32 [[ABS]], [[ARG]]
21
- ; CHECK-NEXT: ret i1 [[CMP]]
19
+ ; CHECK-NEXT: ret i1 true
22
20
;
23
21
%abs = tail call i32 @llvm.abs.i32 (i32 %arg , i1 true )
24
22
%cmp = icmp sge i32 %abs , %arg
@@ -30,8 +28,7 @@ define i1 @abs_plus_one(i32 %arg) {
30
28
; CHECK-SAME: i32 [[ARG:%.*]]) {
31
29
; CHECK-NEXT: [[ABS:%.*]] = tail call i32 @llvm.abs.i32(i32 [[ARG]], i1 true)
32
30
; CHECK-NEXT: [[ABS_PLUS_ONE:%.*]] = add nsw i32 [[ABS]], 1
33
- ; CHECK-NEXT: [[CMP:%.*]] = icmp sge i32 [[ABS_PLUS_ONE]], [[ARG]]
34
- ; CHECK-NEXT: ret i1 [[CMP]]
31
+ ; CHECK-NEXT: ret i1 true
35
32
;
36
33
%abs = tail call i32 @llvm.abs.i32 (i32 %arg , i1 true )
37
34
%abs_plus_one = add nsw i32 %abs , 1
@@ -44,8 +41,7 @@ define i1 @arg_minus_one_strict_less(i32 %arg) {
44
41
; CHECK-SAME: i32 [[ARG:%.*]]) {
45
42
; CHECK-NEXT: [[ABS:%.*]] = tail call i32 @llvm.abs.i32(i32 [[ARG]], i1 true)
46
43
; CHECK-NEXT: [[ARG_MINUS_ONE:%.*]] = add nsw i32 [[ARG]], -1
47
- ; CHECK-NEXT: [[CMP:%.*]] = icmp slt i32 [[ARG_MINUS_ONE]], [[ABS]]
48
- ; CHECK-NEXT: ret i1 [[CMP]]
44
+ ; CHECK-NEXT: ret i1 true
49
45
;
50
46
%abs = tail call i32 @llvm.abs.i32 (i32 %arg , i1 true )
51
47
%arg_minus_one = add nsw i32 %arg , -1
@@ -58,8 +54,7 @@ define i1 @arg_minus_one_strict_greater(i32 %arg) {
58
54
; CHECK-SAME: i32 [[ARG:%.*]]) {
59
55
; CHECK-NEXT: [[ABS:%.*]] = tail call i32 @llvm.abs.i32(i32 [[ARG]], i1 true)
60
56
; CHECK-NEXT: [[ARG_MINUS_ONE:%.*]] = add nsw i32 [[ARG]], -1
61
- ; CHECK-NEXT: [[CMP:%.*]] = icmp sgt i32 [[ARG_MINUS_ONE]], [[ABS]]
62
- ; CHECK-NEXT: ret i1 [[CMP]]
57
+ ; CHECK-NEXT: ret i1 false
63
58
;
64
59
%abs = tail call i32 @llvm.abs.i32 (i32 %arg , i1 true )
65
60
%arg_minus_one = add nsw i32 %arg , -1
@@ -74,8 +69,7 @@ define i1 @abs_plus_one_unsigned_greater_or_equal_nonnegative_arg(i32 %arg) {
74
69
; CHECK-NEXT: call void @llvm.assume(i1 [[CMP_ARG_NONNEGATIVE]])
75
70
; CHECK-NEXT: [[ABS:%.*]] = tail call i32 @llvm.abs.i32(i32 [[ARG]], i1 true)
76
71
; CHECK-NEXT: [[ABS_PLUS_ONE:%.*]] = add nuw i32 [[ABS]], 1
77
- ; CHECK-NEXT: [[CMP:%.*]] = icmp uge i32 [[ABS_PLUS_ONE]], [[ARG]]
78
- ; CHECK-NEXT: ret i1 [[CMP]]
72
+ ; CHECK-NEXT: ret i1 true
79
73
;
80
74
%cmp_arg_nonnegative = icmp sge i32 %arg , 0
81
75
call void @llvm.assume (i1 %cmp_arg_nonnegative )
@@ -113,8 +107,7 @@ define i1 @abs_constant_negative_arg() {
113
107
define i1 @abs_constant_positive_arg () {
114
108
; CHECK-LABEL: define i1 @abs_constant_positive_arg() {
115
109
; CHECK-NEXT: [[ABS:%.*]] = tail call i32 @llvm.abs.i32(i32 3, i1 false)
116
- ; CHECK-NEXT: [[CMP:%.*]] = icmp sge i32 [[ABS]], 3
117
- ; CHECK-NEXT: ret i1 [[CMP]]
110
+ ; CHECK-NEXT: ret i1 true
118
111
;
119
112
%abs = tail call i32 @llvm.abs.i32 (i32 3 , i1 false )
120
113
%cmp = icmp sge i32 %abs , 3
0 commit comments