@@ -6,120 +6,120 @@ target triple = "x86_64-unknown-linux-gnu"
6
6
7
7
@G = external global i32
8
8
9
- define void @test0 (i64* %arg ) {
9
+ define void @test0 (ptr %arg ) {
10
10
; CHECK-LABEL: @test0(
11
11
; CHECK-NEXT: bb:
12
12
; CHECK-NEXT: br label [[BB2:%.*]]
13
13
; CHECK: bb2:
14
- ; CHECK-NEXT: [[TMP:%.*]] = phi i64* [ [[ARG:%.*]], [[BB:%.*]] ], [ [[TMP7:%.*]], [[BB2]] ]
15
- ; CHECK-NEXT: [[TMP4:%.*]] = call i32* @wobble(i64* nonnull [[TMP]], i32* null)
16
- ; CHECK-NEXT: [[TMP5:%.*]] = load i32, i32* null, align 8
17
- ; CHECK-NEXT: [[TMP7]] = load i64*, i64** undef, align 8
14
+ ; CHECK-NEXT: [[TMP:%.*]] = phi ptr [ [[ARG:%.*]], [[BB:%.*]] ], [ [[TMP7:%.*]], [[BB2]] ]
15
+ ; CHECK-NEXT: [[TMP4:%.*]] = call ptr @wobble(ptr nonnull [[TMP]], ptr null)
16
+ ; CHECK-NEXT: [[TMP5:%.*]] = load i32, ptr null, align 8
17
+ ; CHECK-NEXT: [[TMP7]] = load ptr, ptr undef, align 8
18
18
; CHECK-NEXT: br label [[BB2]]
19
19
;
20
20
bb:
21
21
br label %bb2
22
22
23
23
bb2:
24
- %tmp = phi i64* [%arg , %bb ], [ %tmp7 , %bb2 ]
25
- %tmp4 = call i32* @wobble (i64* nonnull %tmp , i32* null )
26
- %tmp5 = load i32 , i32* %tmp4 , align 8
27
- %tmp7 = load i64* , i64** undef , align 8
24
+ %tmp = phi ptr [%arg , %bb ], [ %tmp7 , %bb2 ]
25
+ %tmp4 = call ptr @wobble (ptr nonnull %tmp , ptr null )
26
+ %tmp5 = load i32 , ptr %tmp4 , align 8
27
+ %tmp7 = load ptr , ptr undef , align 8
28
28
br label %bb2
29
29
}
30
30
31
- define void @test1 (i64* %arg ) {
31
+ define void @test1 (ptr %arg ) {
32
32
; CHECK-LABEL: @test1(
33
33
; CHECK-NEXT: bb:
34
34
; CHECK-NEXT: br label [[BB2:%.*]]
35
35
; CHECK: bb2:
36
- ; CHECK-NEXT: [[TMP:%.*]] = phi i64* [ [[ARG:%.*]], [[BB:%.*]] ], [ [[TMP7:%.*]], [[BB2]] ]
37
- ; CHECK-NEXT: [[TMP4:%.*]] = call i32* @wobble(i64* nonnull [[TMP]], i32* inttoptr (i64 4 to i32* ))
38
- ; CHECK-NEXT: [[TMP5:%.*]] = load i32, i32* inttoptr (i64 4 to i32* ), align 4
39
- ; CHECK-NEXT: [[TMP7]] = load i64*, i64** undef, align 8
36
+ ; CHECK-NEXT: [[TMP:%.*]] = phi ptr [ [[ARG:%.*]], [[BB:%.*]] ], [ [[TMP7:%.*]], [[BB2]] ]
37
+ ; CHECK-NEXT: [[TMP4:%.*]] = call ptr @wobble(ptr nonnull [[TMP]], ptr inttoptr (i64 4 to ptr ))
38
+ ; CHECK-NEXT: [[TMP5:%.*]] = load i32, ptr inttoptr (i64 4 to ptr ), align 4
39
+ ; CHECK-NEXT: [[TMP7]] = load ptr, ptr undef, align 8
40
40
; CHECK-NEXT: br label [[BB2]]
41
41
;
42
42
bb:
43
43
br label %bb2
44
44
45
45
bb2:
46
- %tmp = phi i64* [%arg , %bb ], [ %tmp7 , %bb2 ]
47
- %tmp4 = call i32* @wobble (i64* nonnull %tmp , i32* inttoptr (i64 4 to i32* ))
48
- %tmp5 = load i32 , i32* %tmp4
49
- %tmp7 = load i64* , i64** undef , align 8
46
+ %tmp = phi ptr [%arg , %bb ], [ %tmp7 , %bb2 ]
47
+ %tmp4 = call ptr @wobble (ptr nonnull %tmp , ptr inttoptr (i64 4 to ptr ))
48
+ %tmp5 = load i32 , ptr %tmp4
49
+ %tmp7 = load ptr , ptr undef , align 8
50
50
br label %bb2
51
51
}
52
52
53
- define void @test2 (i64* %arg ) {
53
+ define void @test2 (ptr %arg ) {
54
54
; CHECK-LABEL: @test2(
55
55
; CHECK-NEXT: bb:
56
56
; CHECK-NEXT: br label [[BB2:%.*]]
57
57
; CHECK: bb2:
58
- ; CHECK-NEXT: [[TMP:%.*]] = phi i64* [ [[ARG:%.*]], [[BB:%.*]] ], [ [[TMP7:%.*]], [[BB2]] ]
59
- ; CHECK-NEXT: [[TMP4:%.*]] = call i32* @wobble(i64* nonnull [[TMP]], i32* @G)
60
- ; CHECK-NEXT: [[TMP5:%.*]] = load i32, i32* @G, align 4
61
- ; CHECK-NEXT: [[TMP7]] = load i64*, i64** undef, align 8
58
+ ; CHECK-NEXT: [[TMP:%.*]] = phi ptr [ [[ARG:%.*]], [[BB:%.*]] ], [ [[TMP7:%.*]], [[BB2]] ]
59
+ ; CHECK-NEXT: [[TMP4:%.*]] = call ptr @wobble(ptr nonnull [[TMP]], ptr @G)
60
+ ; CHECK-NEXT: [[TMP5:%.*]] = load i32, ptr @G, align 4
61
+ ; CHECK-NEXT: [[TMP7]] = load ptr, ptr undef, align 8
62
62
; CHECK-NEXT: br label [[BB2]]
63
63
;
64
64
bb:
65
65
br label %bb2
66
66
67
67
bb2:
68
- %tmp = phi i64* [%arg , %bb ], [ %tmp7 , %bb2 ]
69
- %tmp4 = call i32* @wobble (i64* nonnull %tmp , i32* @G )
70
- %tmp5 = load i32 , i32* %tmp4
71
- %tmp7 = load i64* , i64** undef , align 8
68
+ %tmp = phi ptr [%arg , %bb ], [ %tmp7 , %bb2 ]
69
+ %tmp4 = call ptr @wobble (ptr nonnull %tmp , ptr @G )
70
+ %tmp5 = load i32 , ptr %tmp4
71
+ %tmp7 = load ptr , ptr undef , align 8
72
72
br label %bb2
73
73
}
74
74
75
- define void @test3 (i64* %arg , i32* %loop.invariant ) {
75
+ define void @test3 (ptr %arg , ptr %loop.invariant ) {
76
76
; CHECK-LABEL: @test3(
77
77
; CHECK-NEXT: bb:
78
78
; CHECK-NEXT: br label [[BB2:%.*]]
79
79
; CHECK: bb2:
80
- ; CHECK-NEXT: [[TMP:%.*]] = phi i64* [ [[ARG:%.*]], [[BB:%.*]] ], [ [[TMP7:%.*]], [[BB2]] ]
81
- ; CHECK-NEXT: [[TMP4:%.*]] = call i32* @wobble(i64* nonnull [[TMP]], i32* [[LOOP_INVARIANT:%.*]])
82
- ; CHECK-NEXT: [[TMP5:%.*]] = load i32, i32* [[LOOP_INVARIANT]], align 4
83
- ; CHECK-NEXT: [[TMP7]] = load i64*, i64** undef, align 8
80
+ ; CHECK-NEXT: [[TMP:%.*]] = phi ptr [ [[ARG:%.*]], [[BB:%.*]] ], [ [[TMP7:%.*]], [[BB2]] ]
81
+ ; CHECK-NEXT: [[TMP4:%.*]] = call ptr @wobble(ptr nonnull [[TMP]], ptr [[LOOP_INVARIANT:%.*]])
82
+ ; CHECK-NEXT: [[TMP5:%.*]] = load i32, ptr [[LOOP_INVARIANT]], align 4
83
+ ; CHECK-NEXT: [[TMP7]] = load ptr, ptr undef, align 8
84
84
; CHECK-NEXT: br label [[BB2]]
85
85
;
86
86
bb:
87
87
br label %bb2
88
88
89
89
bb2:
90
- %tmp = phi i64* [%arg , %bb ], [ %tmp7 , %bb2 ]
91
- %tmp4 = call i32* @wobble (i64* nonnull %tmp , i32* %loop.invariant )
92
- %tmp5 = load i32 , i32* %tmp4
93
- %tmp7 = load i64* , i64** undef , align 8
90
+ %tmp = phi ptr [%arg , %bb ], [ %tmp7 , %bb2 ]
91
+ %tmp4 = call ptr @wobble (ptr nonnull %tmp , ptr %loop.invariant )
92
+ %tmp5 = load i32 , ptr %tmp4
93
+ %tmp7 = load ptr , ptr undef , align 8
94
94
br label %bb2
95
95
}
96
96
97
- define void @test4 (i64* %arg , i32* %loop.invariant , i64 %N ) {
97
+ define void @test4 (ptr %arg , ptr %loop.invariant , i64 %N ) {
98
98
; CHECK-LABEL: @test4(
99
99
; CHECK-NEXT: bb:
100
- ; CHECK-NEXT: [[TMP0:%.*]] = shl i64 [[N:%.*]], 6
101
- ; CHECK-NEXT: [[SCEVGEP :%.*]] = getelementptr i32, i32* [[LOOP_INVARIANT:%.*]], i64 [[TMP0]]
100
+ ; CHECK-NEXT: [[TMP0:%.*]] = shl i64 [[N:%.*]], 8
101
+ ; CHECK-NEXT: [[UGLYGEP :%.*]] = getelementptr i8, ptr [[LOOP_INVARIANT:%.*]], i64 [[TMP0]]
102
102
; CHECK-NEXT: br label [[BB2:%.*]]
103
103
; CHECK: bb2:
104
- ; CHECK-NEXT: [[TMP:%.*]] = phi i64* [ [[ARG:%.*]], [[BB:%.*]] ], [ [[TMP7:%.*]], [[BB2]] ]
104
+ ; CHECK-NEXT: [[TMP:%.*]] = phi ptr [ [[ARG:%.*]], [[BB:%.*]] ], [ [[TMP7:%.*]], [[BB2]] ]
105
105
; CHECK-NEXT: [[MUL:%.*]] = mul nsw i64 [[N]], 64
106
- ; CHECK-NEXT: [[PTR:%.*]] = getelementptr inbounds i32, i32* [[LOOP_INVARIANT]], i64 [[MUL]]
107
- ; CHECK-NEXT: [[TMP4:%.*]] = call i32* @wobble(i64* nonnull [[TMP]], i32* [[PTR]])
108
- ; CHECK-NEXT: [[TMP5:%.*]] = load i32, i32* [[SCEVGEP ]], align 4
109
- ; CHECK-NEXT: [[TMP7]] = load i64*, i64** undef, align 8
106
+ ; CHECK-NEXT: [[PTR:%.*]] = getelementptr inbounds i32, ptr [[LOOP_INVARIANT]], i64 [[MUL]]
107
+ ; CHECK-NEXT: [[TMP4:%.*]] = call ptr @wobble(ptr nonnull [[TMP]], ptr [[PTR]])
108
+ ; CHECK-NEXT: [[TMP5:%.*]] = load i32, ptr [[UGLYGEP ]], align 4
109
+ ; CHECK-NEXT: [[TMP7]] = load ptr, ptr undef, align 8
110
110
; CHECK-NEXT: br label [[BB2]]
111
111
;
112
112
bb:
113
113
br label %bb2
114
114
115
115
bb2:
116
- %tmp = phi i64* [%arg , %bb ], [ %tmp7 , %bb2 ]
116
+ %tmp = phi ptr [%arg , %bb ], [ %tmp7 , %bb2 ]
117
117
%mul = mul nsw i64 %N , 64
118
- %ptr = getelementptr inbounds i32 , i32* %loop.invariant , i64 %mul
119
- %tmp4 = call i32* @wobble (i64* nonnull %tmp , i32* %ptr )
120
- %tmp5 = load i32 , i32* %tmp4
121
- %tmp7 = load i64* , i64** undef , align 8
118
+ %ptr = getelementptr inbounds i32 , ptr %loop.invariant , i64 %mul
119
+ %tmp4 = call ptr @wobble (ptr nonnull %tmp , ptr %ptr )
120
+ %tmp5 = load i32 , ptr %tmp4
121
+ %tmp7 = load ptr , ptr undef , align 8
122
122
br label %bb2
123
123
}
124
124
125
- declare i32* @wobble (i64* , i32* returned )
125
+ declare ptr @wobble (ptr , ptr returned )
0 commit comments