@@ -14,8 +14,7 @@ define i1 @test_no_attr(ptr %p) {
14
14
define i1 @test_nonnull (ptr nonnull %p ) {
15
15
; CHECK-LABEL: define i1 @test_nonnull(
16
16
; CHECK-SAME: ptr nonnull [[P:%.*]]) {
17
- ; CHECK-NEXT: [[CMP:%.*]] = icmp ne ptr [[P]], null
18
- ; CHECK-NEXT: ret i1 [[CMP]]
17
+ ; CHECK-NEXT: ret i1 true
19
18
;
20
19
%cmp = icmp ne ptr %p , null
21
20
ret i1 %cmp
@@ -24,8 +23,7 @@ define i1 @test_nonnull(ptr nonnull %p) {
24
23
define i1 @test_nonnull_eq (ptr nonnull %p ) {
25
24
; CHECK-LABEL: define i1 @test_nonnull_eq(
26
25
; CHECK-SAME: ptr nonnull [[P:%.*]]) {
27
- ; CHECK-NEXT: [[CMP:%.*]] = icmp eq ptr [[P]], null
28
- ; CHECK-NEXT: ret i1 [[CMP]]
26
+ ; CHECK-NEXT: ret i1 false
29
27
;
30
28
%cmp = icmp eq ptr %p , null
31
29
ret i1 %cmp
@@ -34,8 +32,7 @@ define i1 @test_nonnull_eq(ptr nonnull %p) {
34
32
define i1 @test_dereferenceable (ptr dereferenceable (4 ) %p ) {
35
33
; CHECK-LABEL: define i1 @test_dereferenceable(
36
34
; CHECK-SAME: ptr dereferenceable(4) [[P:%.*]]) {
37
- ; CHECK-NEXT: [[CMP:%.*]] = icmp ne ptr [[P]], null
38
- ; CHECK-NEXT: ret i1 [[CMP]]
35
+ ; CHECK-NEXT: ret i1 true
39
36
;
40
37
%cmp = icmp ne ptr %p , null
41
38
ret i1 %cmp
@@ -57,8 +54,7 @@ define i1 @test_gep_nuw(ptr nonnull %p, i64 %x) {
57
54
; CHECK-LABEL: define i1 @test_gep_nuw(
58
55
; CHECK-SAME: ptr nonnull [[P:%.*]], i64 [[X:%.*]]) {
59
56
; CHECK-NEXT: [[GEP:%.*]] = getelementptr nuw i8, ptr [[P]], i64 [[X]]
60
- ; CHECK-NEXT: [[CMP:%.*]] = icmp ne ptr [[GEP]], null
61
- ; CHECK-NEXT: ret i1 [[CMP]]
57
+ ; CHECK-NEXT: ret i1 true
62
58
;
63
59
%gep = getelementptr nuw i8 , ptr %p , i64 %x
64
60
%cmp = icmp ne ptr %gep , null
@@ -69,8 +65,7 @@ define i1 @test_gep_inbounds(ptr nonnull %p, i64 %x) {
69
65
; CHECK-LABEL: define i1 @test_gep_inbounds(
70
66
; CHECK-SAME: ptr nonnull [[P:%.*]], i64 [[X:%.*]]) {
71
67
; CHECK-NEXT: [[GEP:%.*]] = getelementptr inbounds i8, ptr [[P]], i64 [[X]]
72
- ; CHECK-NEXT: [[CMP:%.*]] = icmp ne ptr [[GEP]], null
73
- ; CHECK-NEXT: ret i1 [[CMP]]
68
+ ; CHECK-NEXT: ret i1 true
74
69
;
75
70
%gep = getelementptr inbounds i8 , ptr %p , i64 %x
76
71
%cmp = icmp ne ptr %gep , null
@@ -94,8 +89,7 @@ define i1 @test_select(i1 %c, ptr nonnull %p, i64 %x) {
94
89
; CHECK-SAME: i1 [[C:%.*]], ptr nonnull [[P:%.*]], i64 [[X:%.*]]) {
95
90
; CHECK-NEXT: [[GEP:%.*]] = getelementptr nuw i8, ptr [[P]], i64 [[X]]
96
91
; CHECK-NEXT: [[SEL:%.*]] = select i1 [[C]], ptr [[P]], ptr [[GEP]]
97
- ; CHECK-NEXT: [[CMP:%.*]] = icmp ne ptr [[SEL]], null
98
- ; CHECK-NEXT: ret i1 [[CMP]]
92
+ ; CHECK-NEXT: ret i1 true
99
93
;
100
94
%gep = getelementptr nuw i8 , ptr %p , i64 %x
101
95
%sel = select i1 %c , ptr %p , ptr %gep
@@ -127,8 +121,7 @@ define i1 @test_phi(i1 %c, ptr nonnull %p, i64 %x) {
127
121
; CHECK-NEXT: br label %[[JOIN]]
128
122
; CHECK: [[JOIN]]:
129
123
; CHECK-NEXT: [[PHI:%.*]] = phi ptr [ [[P]], %[[ENTRY]] ], [ [[GEP]], %[[IF]] ]
130
- ; CHECK-NEXT: [[CMP:%.*]] = icmp ne ptr [[PHI]], null
131
- ; CHECK-NEXT: ret i1 [[CMP]]
124
+ ; CHECK-NEXT: ret i1 true
132
125
;
133
126
entry:
134
127
br i1 %c , label %if , label %join
0 commit comments