5
5
6
6
define nonnull ptr @pr48975 (ptr %.0 ) {
7
7
; CHECK-LABEL: @pr48975(
8
- ; CHECK-NEXT: [[DOT1:%.*]] = load ptr, ptr [[DOT0:%.*]], align 8
9
- ; CHECK-NEXT: [[DOT2:%.*]] = icmp eq ptr [[DOT1]], null
10
- ; CHECK-NEXT: [[DOT4:%.*]] = select i1 [[DOT2]], ptr null, ptr [[DOT0]]
11
- ; CHECK-NEXT: ret ptr [[DOT4]]
8
+ ; CHECK-NEXT: ret ptr [[DOT4:%.*]]
12
9
;
13
10
%.1 = load ptr , ptr %.0 , align 8
14
11
%.2 = icmp eq ptr %.1 , null
@@ -18,35 +15,31 @@ define nonnull ptr @pr48975(ptr %.0) {
18
15
19
16
define nonnull ptr @nonnull_ret (i1 %cond , ptr %p ) {
20
17
; CHECK-LABEL: @nonnull_ret(
21
- ; CHECK-NEXT: [[RES:%.*]] = select i1 [[COND:%.*]], ptr [[P:%.*]], ptr null
22
- ; CHECK-NEXT: ret ptr [[RES]]
18
+ ; CHECK-NEXT: ret ptr [[RES:%.*]]
23
19
;
24
20
%res = select i1 %cond , ptr %p , ptr null
25
21
ret ptr %res
26
22
}
27
23
28
24
define nonnull ptr @nonnull_ret2 (i1 %cond , ptr %p ) {
29
25
; CHECK-LABEL: @nonnull_ret2(
30
- ; CHECK-NEXT: [[RES:%.*]] = select i1 [[COND:%.*]], ptr null, ptr [[P:%.*]]
31
- ; CHECK-NEXT: ret ptr [[RES]]
26
+ ; CHECK-NEXT: ret ptr [[RES:%.*]]
32
27
;
33
28
%res = select i1 %cond , ptr null , ptr %p
34
29
ret ptr %res
35
30
}
36
31
37
32
define nonnull noundef ptr @nonnull_noundef_ret (i1 %cond , ptr %p ) {
38
33
; CHECK-LABEL: @nonnull_noundef_ret(
39
- ; CHECK-NEXT: [[RES:%.*]] = select i1 [[COND:%.*]], ptr [[P:%.*]], ptr null
40
- ; CHECK-NEXT: ret ptr [[RES]]
34
+ ; CHECK-NEXT: ret ptr [[RES:%.*]]
41
35
;
42
36
%res = select i1 %cond , ptr %p , ptr null
43
37
ret ptr %res
44
38
}
45
39
46
40
define nonnull noundef ptr @nonnull_noundef_ret2 (i1 %cond , ptr %p ) {
47
41
; CHECK-LABEL: @nonnull_noundef_ret2(
48
- ; CHECK-NEXT: [[RES:%.*]] = select i1 [[COND:%.*]], ptr null, ptr [[P:%.*]]
49
- ; CHECK-NEXT: ret ptr [[RES]]
42
+ ; CHECK-NEXT: ret ptr [[RES:%.*]]
50
43
;
51
44
%res = select i1 %cond , ptr null , ptr %p
52
45
ret ptr %res
@@ -55,8 +48,7 @@ define nonnull noundef ptr @nonnull_noundef_ret2(i1 %cond, ptr %p) {
55
48
56
49
define void @nonnull_call (i1 %cond , ptr %p ) {
57
50
; CHECK-LABEL: @nonnull_call(
58
- ; CHECK-NEXT: [[RES:%.*]] = select i1 [[COND:%.*]], ptr [[P:%.*]], ptr null
59
- ; CHECK-NEXT: call void @f(ptr nonnull [[RES]])
51
+ ; CHECK-NEXT: call void @f(ptr nonnull [[RES:%.*]])
60
52
; CHECK-NEXT: ret void
61
53
;
62
54
%res = select i1 %cond , ptr %p , ptr null
@@ -66,8 +58,7 @@ define void @nonnull_call(i1 %cond, ptr %p) {
66
58
67
59
define void @nonnull_call2 (i1 %cond , ptr %p ) {
68
60
; CHECK-LABEL: @nonnull_call2(
69
- ; CHECK-NEXT: [[RES:%.*]] = select i1 [[COND:%.*]], ptr null, ptr [[P:%.*]]
70
- ; CHECK-NEXT: call void @f(ptr nonnull [[RES]])
61
+ ; CHECK-NEXT: call void @f(ptr nonnull [[RES:%.*]])
71
62
; CHECK-NEXT: ret void
72
63
;
73
64
%res = select i1 %cond , ptr null , ptr %p
@@ -77,8 +68,7 @@ define void @nonnull_call2(i1 %cond, ptr %p) {
77
68
78
69
define void @nonnull_noundef_call (i1 %cond , ptr %p ) {
79
70
; CHECK-LABEL: @nonnull_noundef_call(
80
- ; CHECK-NEXT: [[RES:%.*]] = select i1 [[COND:%.*]], ptr [[P:%.*]], ptr null
81
- ; CHECK-NEXT: call void @f(ptr noundef nonnull [[RES]])
71
+ ; CHECK-NEXT: call void @f(ptr noundef nonnull [[RES:%.*]])
82
72
; CHECK-NEXT: ret void
83
73
;
84
74
%res = select i1 %cond , ptr %p , ptr null
@@ -88,8 +78,7 @@ define void @nonnull_noundef_call(i1 %cond, ptr %p) {
88
78
89
79
define void @nonnull_noundef_call2 (i1 %cond , ptr %p ) {
90
80
; CHECK-LABEL: @nonnull_noundef_call2(
91
- ; CHECK-NEXT: [[RES:%.*]] = select i1 [[COND:%.*]], ptr null, ptr [[P:%.*]]
92
- ; CHECK-NEXT: call void @f(ptr noundef nonnull [[RES]])
81
+ ; CHECK-NEXT: call void @f(ptr noundef nonnull [[RES:%.*]])
93
82
; CHECK-NEXT: ret void
94
83
;
95
84
%res = select i1 %cond , ptr null , ptr %p
0 commit comments