@@ -24,31 +24,31 @@ target datalayout = "e-p:128:128:128-p1:32:32:32-p2:8:8:8-p3:16:16:16-p4:64:64:6
24
24
; The target-independent folder should be able to do some clever
25
25
; simplifications on sizeof, alignof, and offsetof expressions. The
26
26
; target-dependent folder should fold these down to constants.
27
- ; PLAIN-X : @a = constant i64 mul (i64 ptrtoint (ptr addrspace(4) getelementptr (double, ptr addrspace(4) null, i32 1) to i64), i64 2310)
27
+ ; PLAIN: @a = constant i64 mul (i64 ptrtoint (ptr addrspace(4) getelementptr (double, ptr addrspace(4) null, i32 1) to i64), i64 2310)
28
28
@a = constant i64 mul (i64 3 , i64 mul (i64 ptrtoint (ptr addrspace (4 ) getelementptr ({[7 x double ], [7 x double ]}, ptr addrspace (4 ) null , i64 11 ) to i64 ), i64 5 ))
29
29
30
- ; PLAIN-X : @b = constant i64 ptrtoint (ptr addrspace(4) getelementptr ({ i1, double }, ptr null, i64 0, i32 1) to i64)
30
+ ; PLAIN: @b = constant i64 ptrtoint (ptr addrspace(4) getelementptr ({ i1, double }, ptr null, i64 0, i32 1) to i64)
31
31
@b = constant i64 ptrtoint (ptr addrspace (4 ) getelementptr ({i1 , [13 x double ]}, ptr addrspace (4 ) null , i64 0 , i32 1 ) to i64 )
32
32
33
- ; PLAIN-X : @c = constant i64 mul nuw (i64 ptrtoint (ptr addrspace(4) getelementptr (double, ptr addrspace(4) null, i32 1) to i64), i64 2)
33
+ ; PLAIN: @c = constant i64 mul nuw (i64 ptrtoint (ptr addrspace(4) getelementptr (double, ptr addrspace(4) null, i32 1) to i64), i64 2)
34
34
@c = constant i64 ptrtoint (ptr addrspace (4 ) getelementptr ({double , double , double , double }, ptr addrspace (4 ) null , i64 0 , i32 2 ) to i64 )
35
35
36
- ; PLAIN-X : @d = constant i64 mul nuw (i64 ptrtoint (ptr addrspace(4) getelementptr (double, ptr addrspace(4) null, i32 1) to i64), i64 11)
36
+ ; PLAIN: @d = constant i64 mul nuw (i64 ptrtoint (ptr addrspace(4) getelementptr (double, ptr addrspace(4) null, i32 1) to i64), i64 11)
37
37
@d = constant i64 ptrtoint (ptr addrspace (4 ) getelementptr ([13 x double ], ptr addrspace (4 ) null , i64 0 , i32 11 ) to i64 )
38
38
39
- ; PLAIN-X : @e = constant i64 ptrtoint (ptr addrspace(4) getelementptr ({ double, float, double, double }, ptr null, i64 0, i32 2) to i64)
39
+ ; PLAIN: @e = constant i64 ptrtoint (ptr addrspace(4) getelementptr ({ double, float, double, double }, ptr null, i64 0, i32 2) to i64)
40
40
@e = constant i64 ptrtoint (ptr addrspace (4 ) getelementptr ({double , float , double , double }, ptr addrspace (4 ) null , i64 0 , i32 2 ) to i64 )
41
41
42
- ; PLAIN-X : @f = constant i64 1
42
+ ; PLAIN: @f = constant i64 1
43
43
@f = constant i64 ptrtoint (ptr addrspace (4 ) getelementptr ({i1 , <{ i16 , i128 }>}, ptr addrspace (4 ) null , i64 0 , i32 1 ) to i64 )
44
44
45
- ; PLAIN-X : @g = constant i64 ptrtoint (ptr addrspace(4) getelementptr ({ i1, double }, ptr null, i64 0, i32 1) to i64)
45
+ ; PLAIN: @g = constant i64 ptrtoint (ptr addrspace(4) getelementptr ({ i1, double }, ptr null, i64 0, i32 1) to i64)
46
46
@g = constant i64 ptrtoint (ptr addrspace (4 ) getelementptr ({i1 , {double , double }}, ptr addrspace (4 ) null , i64 0 , i32 1 ) to i64 )
47
47
48
- ; PLAIN-X : @h = constant i64 ptrtoint (ptr addrspace(2) getelementptr (i1, ptr addrspace(2) null, i32 1) to i64)
48
+ ; PLAIN: @h = constant i64 ptrtoint (ptr addrspace(2) getelementptr (i1, ptr addrspace(2) null, i32 1) to i64)
49
49
@h = constant i64 ptrtoint (ptr addrspace (4 ) getelementptr (double , ptr addrspace (4 ) null , i64 1 ) to i64 )
50
50
51
- ; PLAIN-X : @i = constant i64 ptrtoint (ptr addrspace(2) getelementptr ({ i1, ptr addrspace(2) }, ptr null, i64 0, i32 1) to i64)
51
+ ; PLAIN: @i = constant i64 ptrtoint (ptr addrspace(2) getelementptr ({ i1, ptr addrspace(2) }, ptr null, i64 0, i32 1) to i64)
52
52
@i = constant i64 ptrtoint (ptr addrspace (4 ) getelementptr ({i1 , double }, ptr addrspace (4 ) null , i64 0 , i32 1 ) to i64 )
53
53
54
54
; The target-dependent folder should cast GEP indices to integer-sized pointers.
@@ -63,11 +63,11 @@ target datalayout = "e-p:128:128:128-p1:32:32:32-p2:8:8:8-p3:16:16:16-p4:64:64:6
63
63
64
64
; Fold GEP of a GEP. Very simple cases are folded.
65
65
66
- ; PLAIN-X : @Y = global ptraddrspace(3) getelementptr inbounds ([3 x { i32, i32 }], ptraddrspace(3) @ext, i64 2)
66
+ ; PLAIN: @Y = global ptraddrspace(3) getelementptr inbounds ([3 x { i32, i32 }], ptraddrspace(3) @ext, i64 2)
67
67
@ext = external addrspace (3 ) global [3 x { i32 , i32 }]
68
68
@Y = global ptr addrspace (3 ) getelementptr inbounds ([3 x { i32 , i32 }], ptr addrspace (3 ) getelementptr inbounds ([3 x { i32 , i32 }], ptr addrspace (3 ) @ext , i64 1 ), i64 1 )
69
69
70
- ; PLAIN-X : @Z = global ptraddrspace(3) getelementptr inbounds (i32, ptr addrspace(3) getelementptr inbounds ([3 x { i32, i32 }], ptr addrspace(3) @ext, i64 0, i64 1, i32 0), i64 1)
70
+ ; PLAIN: @Z = global ptraddrspace(3) getelementptr inbounds (i32, ptr addrspace(3) getelementptr inbounds ([3 x { i32, i32 }], ptr addrspace(3) @ext, i64 0, i64 1, i32 0), i64 1)
71
71
@Z = global ptr addrspace (3 ) getelementptr inbounds (i32 , ptr addrspace (3 ) getelementptr inbounds ([3 x { i32 , i32 }], ptr addrspace (3 ) @ext , i64 0 , i64 1 , i32 0 ), i64 1 )
72
72
73
73
@@ -123,42 +123,42 @@ define ptr addrspace(2) @hoo1() #0 {
123
123
ret ptr addrspace (2 ) %t
124
124
}
125
125
126
- ; PLAIN-X : define i64 @fa() #0 {
127
- ; PLAIN-X : %t = bitcast i64 mul (i64 ptrtoint (ptr addrspace(4) getelementptr (double, ptr addrspace(4) null, i32 1) to i64), i64 2310) to i64
128
- ; PLAIN-X : ret i64 %t
129
- ; PLAIN-X : }
130
- ; PLAIN-X : define i64 @fb() #0 {
131
- ; PLAIN-X : %t = bitcast i64 ptrtoint (ptr addrspace(4) getelementptr ({ i1, double }, ptr null, i64 0, i32 1) to i64) to i64
132
- ; PLAIN-X : ret i64 %t
133
- ; PLAIN-X : }
134
- ; PLAIN-X : define i64 @fc() #0 {
135
- ; PLAIN-X : %t = bitcast i64 mul nuw (i64 ptrtoint (ptr addrspace(4) getelementptr (double, ptr addrspace(4) null, i32 1) to i64), i64 2) to i64
136
- ; PLAIN-X : ret i64 %t
137
- ; PLAIN-X : }
138
- ; PLAIN-X : define i64 @fd() #0 {
139
- ; PLAIN-X : %t = bitcast i64 mul nuw (i64 ptrtoint (ptr addrspace(4) getelementptr (double, ptr addrspace(4) null, i32 1) to i64), i64 11) to i64
140
- ; PLAIN-X : ret i64 %t
141
- ; PLAIN-X : }
142
- ; PLAIN-X : define i64 @fe() #0 {
143
- ; PLAIN-X : %t = bitcast i64 ptrtoint (ptr addrspace(4) getelementptr ({ double, float, double, double }, ptr null, i64 0, i32 2) to i64) to i64
144
- ; PLAIN-X : ret i64 %t
145
- ; PLAIN-X : }
146
- ; PLAIN-X : define i64 @ff() #0 {
147
- ; PLAIN-X : %t = bitcast i64 1 to i64
148
- ; PLAIN-X : ret i64 %t
149
- ; PLAIN-X : }
150
- ; PLAIN-X : define i64 @fg() #0 {
151
- ; PLAIN-X : %t = bitcast i64 ptrtoint (ptr addrspace(4) getelementptr ({ i1, double }, ptr null, i64 0, i32 1) to i64) to i64
152
- ; PLAIN-X : ret i64 %t
153
- ; PLAIN-X : }
154
- ; PLAIN-X : define i64 @fh() #0 {
155
- ; PLAIN-X : %t = bitcast i64 ptrtoint (ptr addrspace(2) getelementptr (i1, ptr addrspace(2) null, i32 1) to i64) to i64
156
- ; PLAIN-X : ret i64 %t
157
- ; PLAIN-X : }
158
- ; PLAIN-X : define i64 @fi() #0 {
159
- ; PLAIN-X : %t = bitcast i64 ptrtoint (ptr addrspace(2) getelementptr ({ i1, ptr addrspace(2) }, ptr null, i64 0, i32 1) to i64) to i64
160
- ; PLAIN-X : ret i64 %t
161
- ; PLAIN-X : }
126
+ ; PLAIN: define i64 @fa() #0 {
127
+ ; PLAIN: %t = bitcast i64 mul (i64 ptrtoint (ptr addrspace(4) getelementptr (double, ptr addrspace(4) null, i32 1) to i64), i64 2310) to i64
128
+ ; PLAIN: ret i64 %t
129
+ ; PLAIN: }
130
+ ; PLAIN: define i64 @fb() #0 {
131
+ ; PLAIN: %t = bitcast i64 ptrtoint (ptr addrspace(4) getelementptr ({ i1, double }, ptr null, i64 0, i32 1) to i64) to i64
132
+ ; PLAIN: ret i64 %t
133
+ ; PLAIN: }
134
+ ; PLAIN: define i64 @fc() #0 {
135
+ ; PLAIN: %t = bitcast i64 mul nuw (i64 ptrtoint (ptr addrspace(4) getelementptr (double, ptr addrspace(4) null, i32 1) to i64), i64 2) to i64
136
+ ; PLAIN: ret i64 %t
137
+ ; PLAIN: }
138
+ ; PLAIN: define i64 @fd() #0 {
139
+ ; PLAIN: %t = bitcast i64 mul nuw (i64 ptrtoint (ptr addrspace(4) getelementptr (double, ptr addrspace(4) null, i32 1) to i64), i64 11) to i64
140
+ ; PLAIN: ret i64 %t
141
+ ; PLAIN: }
142
+ ; PLAIN: define i64 @fe() #0 {
143
+ ; PLAIN: %t = bitcast i64 ptrtoint (ptr addrspace(4) getelementptr ({ double, float, double, double }, ptr null, i64 0, i32 2) to i64) to i64
144
+ ; PLAIN: ret i64 %t
145
+ ; PLAIN: }
146
+ ; PLAIN: define i64 @ff() #0 {
147
+ ; PLAIN: %t = bitcast i64 1 to i64
148
+ ; PLAIN: ret i64 %t
149
+ ; PLAIN: }
150
+ ; PLAIN: define i64 @fg() #0 {
151
+ ; PLAIN: %t = bitcast i64 ptrtoint (ptr addrspace(4) getelementptr ({ i1, double }, ptr null, i64 0, i32 1) to i64) to i64
152
+ ; PLAIN: ret i64 %t
153
+ ; PLAIN: }
154
+ ; PLAIN: define i64 @fh() #0 {
155
+ ; PLAIN: %t = bitcast i64 ptrtoint (ptr addrspace(2) getelementptr (i1, ptr addrspace(2) null, i32 1) to i64) to i64
156
+ ; PLAIN: ret i64 %t
157
+ ; PLAIN: }
158
+ ; PLAIN: define i64 @fi() #0 {
159
+ ; PLAIN: %t = bitcast i64 ptrtoint (ptr addrspace(2) getelementptr ({ i1, ptr addrspace(2) }, ptr null, i64 0, i32 1) to i64) to i64
160
+ ; PLAIN: ret i64 %t
161
+ ; PLAIN: }
162
162
define i64 @fa () #0 {
163
163
%t = bitcast i64 mul (i64 3 , i64 mul (i64 ptrtoint (ptr getelementptr ({[7 x double ], [7 x double ]}, ptr null , i64 11 ) to i64 ), i64 5 )) to i64
164
164
ret i64 %t
0 commit comments