@@ -25,13 +25,13 @@ define <4 x i32> @load_array_vec_test() #0 {
25
25
; CHECK-LABEL: define <4 x i32> @load_array_vec_test(
26
26
; CHECK-SAME: ) #[[ATTR0:[0-9]+]] {
27
27
; CHECK-NEXT: [[TMP2:%.*]] = load i32, ptr addrspace(3) @arrayofVecData.scalarized.1dim, align 4
28
- ; CHECK-NEXT: [[TMP4:%.*]] = load i32, ptr addrspace(3) getelementptr (i32, ptr addrspace(3) @arrayofVecData.scalarized.1dim, i32 1), align 4
29
- ; CHECK-NEXT: [[TMP6:%.*]] = load i32, ptr addrspace(3) getelementptr (i32, ptr addrspace(3) @arrayofVecData.scalarized.1dim, i32 2), align 4
30
- ; CHECK-NEXT: [[TMP8:%.*]] = load i32, ptr addrspace(3) getelementptr (i32, ptr addrspace(3) @arrayofVecData.scalarized.1dim, i32 3), align 4
28
+ ; CHECK-NEXT: [[TMP4:%.*]] = load i32, ptr addrspace(3) getelementptr ([8 x i32] , ptr addrspace(3) @arrayofVecData.scalarized.1dim, i32 0 , i32 1), align 4
29
+ ; CHECK-NEXT: [[TMP6:%.*]] = load i32, ptr addrspace(3) getelementptr ([8 x i32] , ptr addrspace(3) @arrayofVecData.scalarized.1dim, i32 0 , i32 2), align 4
30
+ ; CHECK-NEXT: [[TMP8:%.*]] = load i32, ptr addrspace(3) getelementptr ([8 x i32] , ptr addrspace(3) @arrayofVecData.scalarized.1dim, i32 0 , i32 3), align 4
31
31
; CHECK-NEXT: [[TMP10:%.*]] = load i32, ptr addrspace(3) getelementptr inbounds ([8 x i32], ptr addrspace(3) @arrayofVecData.scalarized.1dim, i32 0, i32 4), align 4
32
- ; CHECK-NEXT: [[TMP12:%.*]] = load i32, ptr addrspace(3) getelementptr (i32, ptr addrspace(3) getelementptr inbounds ( [8 x i32], ptr addrspace(3) @arrayofVecData.scalarized.1dim, i32 0, i32 4), i32 1 ), align 4
33
- ; CHECK-NEXT: [[TMP14:%.*]] = load i32, ptr addrspace(3) getelementptr (i32, ptr addrspace(3) getelementptr inbounds ( [8 x i32], ptr addrspace(3) @arrayofVecData.scalarized.1dim, i32 0, i32 4), i32 2 ), align 4
34
- ; CHECK-NEXT: [[TMP16:%.*]] = load i32, ptr addrspace(3) getelementptr (i32, ptr addrspace(3) getelementptr inbounds ( [8 x i32], ptr addrspace(3) @arrayofVecData.scalarized.1dim, i32 0, i32 4), i32 3 ), align 4
32
+ ; CHECK-NEXT: [[TMP12:%.*]] = load i32, ptr addrspace(3) getelementptr ([8 x i32], ptr addrspace(3) @arrayofVecData.scalarized.1dim, i32 0, i32 5 ), align 4
33
+ ; CHECK-NEXT: [[TMP14:%.*]] = load i32, ptr addrspace(3) getelementptr ([8 x i32], ptr addrspace(3) @arrayofVecData.scalarized.1dim, i32 0, i32 6 ), align 4
34
+ ; CHECK-NEXT: [[TMP16:%.*]] = load i32, ptr addrspace(3) getelementptr ([8 x i32], ptr addrspace(3) @arrayofVecData.scalarized.1dim, i32 0, i32 7 ), align 4
35
35
; CHECK-NEXT: [[DOTI05:%.*]] = add i32 [[TMP2]], [[TMP10]]
36
36
; CHECK-NEXT: [[DOTI16:%.*]] = add i32 [[TMP4]], [[TMP12]]
37
37
; CHECK-NEXT: [[DOTI27:%.*]] = add i32 [[TMP6]], [[TMP14]]
@@ -53,9 +53,9 @@ define <4 x i32> @load_vec_test() #0 {
53
53
; CHECK-LABEL: define <4 x i32> @load_vec_test(
54
54
; CHECK-SAME: ) #[[ATTR0]] {
55
55
; CHECK-NEXT: [[TMP1:%.*]] = load i32, ptr addrspace(3) @vecData.scalarized, align 4
56
- ; CHECK-NEXT: [[TMP2:%.*]] = load i32, ptr addrspace(3) getelementptr (i32, ptr addrspace(3) @vecData.scalarized, i32 1), align 4
57
- ; CHECK-NEXT: [[TMP3:%.*]] = load i32, ptr addrspace(3) getelementptr (i32, ptr addrspace(3) @vecData.scalarized, i32 2), align 4
58
- ; CHECK-NEXT: [[TMP4:%.*]] = load i32, ptr addrspace(3) getelementptr (i32, ptr addrspace(3) @vecData.scalarized, i32 3), align 4
56
+ ; CHECK-NEXT: [[TMP2:%.*]] = load i32, ptr addrspace(3) getelementptr ([4 x i32] , ptr addrspace(3) @vecData.scalarized, i32 0 , i32 1), align 4
57
+ ; CHECK-NEXT: [[TMP3:%.*]] = load i32, ptr addrspace(3) getelementptr ([4 x i32] , ptr addrspace(3) @vecData.scalarized, i32 0 , i32 2), align 4
58
+ ; CHECK-NEXT: [[TMP4:%.*]] = load i32, ptr addrspace(3) getelementptr ([4 x i32] , ptr addrspace(3) @vecData.scalarized, i32 0 , i32 3), align 4
59
59
; CHECK-NEXT: [[DOTUPTO0:%.*]] = insertelement <4 x i32> poison, i32 [[TMP1]], i32 0
60
60
; CHECK-NEXT: [[DOTUPTO1:%.*]] = insertelement <4 x i32> [[DOTUPTO0]], i32 [[TMP2]], i32 1
61
61
; CHECK-NEXT: [[DOTUPTO2:%.*]] = insertelement <4 x i32> [[DOTUPTO1]], i32 [[TMP3]], i32 2
@@ -66,18 +66,60 @@ define <4 x i32> @load_vec_test() #0 {
66
66
ret <4 x i32 > %1
67
67
}
68
68
69
+ define <4 x i32 > @load_vec_from_scalar_gep_test () #0 {
70
+ ; CHECK-LABEL: define <4 x i32> @load_vec_from_scalar_gep_test(
71
+ ; CHECK-SAME: ) #[[ATTR0]] {
72
+ ; CHECK-NEXT: [[DOTI04:%.*]] = load i32, ptr addrspace(3) getelementptr inbounds nuw ([8 x i32], ptr addrspace(3) @arrayofVecData.scalarized.1dim, i32 0, i32 4), align 4
73
+ ; CHECK-NEXT: [[DOTI116:%.*]] = load i32, ptr addrspace(3) getelementptr ([8 x i32], ptr addrspace(3) @arrayofVecData.scalarized.1dim, i32 0, i32 5), align 4
74
+ ; CHECK-NEXT: [[DOTI228:%.*]] = load i32, ptr addrspace(3) getelementptr ([8 x i32], ptr addrspace(3) @arrayofVecData.scalarized.1dim, i32 0, i32 6), align 4
75
+ ; CHECK-NEXT: [[DOTI3310:%.*]] = load i32, ptr addrspace(3) getelementptr ([8 x i32], ptr addrspace(3) @arrayofVecData.scalarized.1dim, i32 0, i32 7), align 4
76
+ ; CHECK-NEXT: [[DOTUPTO011:%.*]] = insertelement <4 x i32> poison, i32 [[DOTI04]], i32 0
77
+ ; CHECK-NEXT: [[DOTUPTO112:%.*]] = insertelement <4 x i32> [[DOTUPTO011]], i32 [[DOTI116]], i32 1
78
+ ; CHECK-NEXT: [[DOTUPTO213:%.*]] = insertelement <4 x i32> [[DOTUPTO112]], i32 [[DOTI228]], i32 2
79
+ ; CHECK-NEXT: [[TMP1:%.*]] = insertelement <4 x i32> [[DOTUPTO213]], i32 [[DOTI3310]], i32 3
80
+ ; CHECK-NEXT: ret <4 x i32> [[TMP1]]
81
+ ;
82
+ %1 = getelementptr inbounds nuw i32 , ptr addrspace (3 ) @"arrayofVecData" , i32 4
83
+ %2 = load <4 x i32 >, ptr addrspace (3 ) %1 , align 4
84
+ ret <4 x i32 > %2
85
+ }
86
+
87
+ define <4 x i32 > @load_vec_from_i8_gep_test () #0 {
88
+ ; CHECK-LABEL: define <4 x i32> @load_vec_from_i8_gep_test(
89
+ ; CHECK-SAME: ) #[[ATTR0]] {
90
+ ; CHECK-NEXT: [[DOTI04:%.*]] = load i32, ptr addrspace(3) getelementptr inbounds nuw ([8 x i32], ptr addrspace(3) @arrayofVecData.scalarized.1dim, i32 0, i32 4), align 4
91
+ ; CHECK-NEXT: [[DOTI116:%.*]] = load i32, ptr addrspace(3) getelementptr ([8 x i32], ptr addrspace(3) @arrayofVecData.scalarized.1dim, i32 0, i32 5), align 4
92
+ ; CHECK-NEXT: [[DOTI228:%.*]] = load i32, ptr addrspace(3) getelementptr ([8 x i32], ptr addrspace(3) @arrayofVecData.scalarized.1dim, i32 0, i32 6), align 4
93
+ ; CHECK-NEXT: [[DOTI3310:%.*]] = load i32, ptr addrspace(3) getelementptr ([8 x i32], ptr addrspace(3) @arrayofVecData.scalarized.1dim, i32 0, i32 7), align 4
94
+ ; CHECK-NEXT: [[DOTUPTO011:%.*]] = insertelement <4 x i32> poison, i32 [[DOTI04]], i32 0
95
+ ; CHECK-NEXT: [[DOTUPTO112:%.*]] = insertelement <4 x i32> [[DOTUPTO011]], i32 [[DOTI116]], i32 1
96
+ ; CHECK-NEXT: [[DOTUPTO213:%.*]] = insertelement <4 x i32> [[DOTUPTO112]], i32 [[DOTI228]], i32 2
97
+ ; CHECK-NEXT: [[TMP1:%.*]] = insertelement <4 x i32> [[DOTUPTO213]], i32 [[DOTI3310]], i32 3
98
+ ; CHECK-NEXT: ret <4 x i32> [[TMP1]]
99
+ ;
100
+ %1 = getelementptr inbounds nuw i8 , ptr addrspace (3 ) @"arrayofVecData" , i32 16
101
+ %2 = load <4 x i32 >, ptr addrspace (3 ) %1 , align 4
102
+ ret <4 x i32 > %2
103
+ }
104
+
69
105
define <4 x i32 > @load_static_array_of_vec_test (i32 %index ) #0 {
70
106
; CHECK-LABEL: define <4 x i32> @load_static_array_of_vec_test(
71
107
; CHECK-SAME: i32 [[INDEX:%.*]]) #[[ATTR0]] {
72
108
; CHECK-NEXT: [[TMP3:%.*]] = mul i32 [[INDEX]], 4
73
109
; CHECK-NEXT: [[TMP2:%.*]] = add i32 0, [[TMP3]]
74
110
; CHECK-NEXT: [[DOTFLAT:%.*]] = getelementptr inbounds [12 x i32], ptr @staticArrayOfVecData.scalarized.1dim, i32 0, i32 [[TMP2]]
75
111
; CHECK-NEXT: [[DOTI0:%.*]] = load i32, ptr [[DOTFLAT]], align 4
76
- ; CHECK-NEXT: [[DOTFLAT_I1:%.*]] = getelementptr i32, ptr [[DOTFLAT]], i32 1
112
+ ; CHECK-NEXT: [[TMP4:%.*]] = mul i32 [[INDEX]], 4
113
+ ; CHECK-NEXT: [[TMP5:%.*]] = add i32 1, [[TMP4]]
114
+ ; CHECK-NEXT: [[DOTFLAT_I1:%.*]] = getelementptr [12 x i32], ptr @staticArrayOfVecData.scalarized.1dim, i32 0, i32 [[TMP5]]
77
115
; CHECK-NEXT: [[DOTI1:%.*]] = load i32, ptr [[DOTFLAT_I1]], align 4
78
- ; CHECK-NEXT: [[DOTFLAT_I2:%.*]] = getelementptr i32, ptr [[DOTFLAT]], i32 2
116
+ ; CHECK-NEXT: [[TMP6:%.*]] = mul i32 [[INDEX]], 4
117
+ ; CHECK-NEXT: [[TMP7:%.*]] = add i32 2, [[TMP6]]
118
+ ; CHECK-NEXT: [[DOTFLAT_I2:%.*]] = getelementptr [12 x i32], ptr @staticArrayOfVecData.scalarized.1dim, i32 0, i32 [[TMP7]]
79
119
; CHECK-NEXT: [[DOTI2:%.*]] = load i32, ptr [[DOTFLAT_I2]], align 4
80
- ; CHECK-NEXT: [[DOTFLAT_I3:%.*]] = getelementptr i32, ptr [[DOTFLAT]], i32 3
120
+ ; CHECK-NEXT: [[TMP8:%.*]] = mul i32 [[INDEX]], 4
121
+ ; CHECK-NEXT: [[TMP9:%.*]] = add i32 3, [[TMP8]]
122
+ ; CHECK-NEXT: [[DOTFLAT_I3:%.*]] = getelementptr [12 x i32], ptr @staticArrayOfVecData.scalarized.1dim, i32 0, i32 [[TMP9]]
81
123
; CHECK-NEXT: [[DOTI3:%.*]] = load i32, ptr [[DOTFLAT_I3]], align 4
82
124
; CHECK-NEXT: [[DOTUPTO01:%.*]] = insertelement <4 x i32> poison, i32 [[DOTI0]], i32 0
83
125
; CHECK-NEXT: [[DOTUPTO12:%.*]] = insertelement <4 x i32> [[DOTUPTO01]], i32 [[DOTI1]], i32 1
@@ -90,17 +132,85 @@ define <4 x i32> @load_static_array_of_vec_test(i32 %index) #0 {
90
132
ret <4 x i32 > %4
91
133
}
92
134
135
+ define <4 x i32 > @load_static_array_of_vec_from_scalar_gep_test (i32 %index ) #0 {
136
+ ; CHECK-LABEL: define <4 x i32> @load_static_array_of_vec_from_scalar_gep_test(
137
+ ; CHECK-SAME: i32 [[INDEX:%.*]]) #[[ATTR0]] {
138
+ ; CHECK-NEXT: [[TMP1:%.*]] = mul i32 [[INDEX]], 4
139
+ ; CHECK-NEXT: [[TMP2:%.*]] = mul i32 [[TMP1]], 1
140
+ ; CHECK-NEXT: [[TMP3:%.*]] = add i32 0, [[TMP2]]
141
+ ; CHECK-NEXT: [[TMP4:%.*]] = getelementptr inbounds [12 x i32], ptr @staticArrayOfVecData.scalarized.1dim, i32 0, i32 [[TMP3]]
142
+ ; CHECK-NEXT: [[DOTI0:%.*]] = load i32, ptr [[TMP4]], align 4
143
+ ; CHECK-NEXT: [[TMP5:%.*]] = mul i32 [[TMP1]], 1
144
+ ; CHECK-NEXT: [[TMP6:%.*]] = add i32 1, [[TMP5]]
145
+ ; CHECK-NEXT: [[DOTI14:%.*]] = getelementptr [12 x i32], ptr @staticArrayOfVecData.scalarized.1dim, i32 0, i32 [[TMP6]]
146
+ ; CHECK-NEXT: [[DOTI11:%.*]] = load i32, ptr [[DOTI14]], align 4
147
+ ; CHECK-NEXT: [[TMP7:%.*]] = mul i32 [[TMP1]], 1
148
+ ; CHECK-NEXT: [[TMP8:%.*]] = add i32 2, [[TMP7]]
149
+ ; CHECK-NEXT: [[DOTI25:%.*]] = getelementptr [12 x i32], ptr @staticArrayOfVecData.scalarized.1dim, i32 0, i32 [[TMP8]]
150
+ ; CHECK-NEXT: [[DOTI22:%.*]] = load i32, ptr [[DOTI25]], align 4
151
+ ; CHECK-NEXT: [[TMP9:%.*]] = mul i32 [[TMP1]], 1
152
+ ; CHECK-NEXT: [[TMP10:%.*]] = add i32 3, [[TMP9]]
153
+ ; CHECK-NEXT: [[DOTI36:%.*]] = getelementptr [12 x i32], ptr @staticArrayOfVecData.scalarized.1dim, i32 0, i32 [[TMP10]]
154
+ ; CHECK-NEXT: [[DOTI33:%.*]] = load i32, ptr [[DOTI36]], align 4
155
+ ; CHECK-NEXT: [[DOTUPTO07:%.*]] = insertelement <4 x i32> poison, i32 [[DOTI0]], i32 0
156
+ ; CHECK-NEXT: [[DOTUPTO18:%.*]] = insertelement <4 x i32> [[DOTUPTO07]], i32 [[DOTI11]], i32 1
157
+ ; CHECK-NEXT: [[DOTUPTO29:%.*]] = insertelement <4 x i32> [[DOTUPTO18]], i32 [[DOTI22]], i32 2
158
+ ; CHECK-NEXT: [[TMP11:%.*]] = insertelement <4 x i32> [[DOTUPTO29]], i32 [[DOTI33]], i32 3
159
+ ; CHECK-NEXT: ret <4 x i32> [[TMP11]]
160
+ ;
161
+ %2 = mul i32 %index , 4
162
+ %3 = getelementptr inbounds i32 , ptr @staticArrayOfVecData , i32 %2
163
+ %4 = load <4 x i32 >, <4 x i32 >* %3 , align 4
164
+ ret <4 x i32 > %4
165
+ }
166
+
167
+ define <4 x i32 > @load_static_array_of_vec_from_i8_gep_test (i32 %index ) #0 {
168
+ ; CHECK-LABEL: define <4 x i32> @load_static_array_of_vec_from_i8_gep_test(
169
+ ; CHECK-SAME: i32 [[INDEX:%.*]]) #[[ATTR0]] {
170
+ ; CHECK-NEXT: [[TMP1:%.*]] = mul i32 [[INDEX]], 12
171
+ ; CHECK-NEXT: [[TMP2:%.*]] = mul i32 [[TMP1]], 1
172
+ ; CHECK-NEXT: [[TMP12:%.*]] = lshr i32 [[TMP2]], 2
173
+ ; CHECK-NEXT: [[TMP3:%.*]] = add i32 0, [[TMP12]]
174
+ ; CHECK-NEXT: [[TMP4:%.*]] = getelementptr inbounds [12 x i32], ptr @staticArrayOfVecData.scalarized.1dim, i32 0, i32 [[TMP3]]
175
+ ; CHECK-NEXT: [[DOTI0:%.*]] = load i32, ptr [[TMP4]], align 4
176
+ ; CHECK-NEXT: [[TMP5:%.*]] = mul i32 [[TMP1]], 1
177
+ ; CHECK-NEXT: [[TMP14:%.*]] = lshr i32 [[TMP5]], 2
178
+ ; CHECK-NEXT: [[TMP6:%.*]] = add i32 1, [[TMP14]]
179
+ ; CHECK-NEXT: [[DOTI14:%.*]] = getelementptr [12 x i32], ptr @staticArrayOfVecData.scalarized.1dim, i32 0, i32 [[TMP6]]
180
+ ; CHECK-NEXT: [[DOTI11:%.*]] = load i32, ptr [[DOTI14]], align 4
181
+ ; CHECK-NEXT: [[TMP7:%.*]] = mul i32 [[TMP1]], 1
182
+ ; CHECK-NEXT: [[TMP15:%.*]] = lshr i32 [[TMP7]], 2
183
+ ; CHECK-NEXT: [[TMP8:%.*]] = add i32 2, [[TMP15]]
184
+ ; CHECK-NEXT: [[DOTI25:%.*]] = getelementptr [12 x i32], ptr @staticArrayOfVecData.scalarized.1dim, i32 0, i32 [[TMP8]]
185
+ ; CHECK-NEXT: [[DOTI22:%.*]] = load i32, ptr [[DOTI25]], align 4
186
+ ; CHECK-NEXT: [[TMP9:%.*]] = mul i32 [[TMP1]], 1
187
+ ; CHECK-NEXT: [[TMP13:%.*]] = lshr i32 [[TMP9]], 2
188
+ ; CHECK-NEXT: [[TMP10:%.*]] = add i32 3, [[TMP13]]
189
+ ; CHECK-NEXT: [[DOTI36:%.*]] = getelementptr [12 x i32], ptr @staticArrayOfVecData.scalarized.1dim, i32 0, i32 [[TMP10]]
190
+ ; CHECK-NEXT: [[DOTI33:%.*]] = load i32, ptr [[DOTI36]], align 4
191
+ ; CHECK-NEXT: [[DOTUPTO07:%.*]] = insertelement <4 x i32> poison, i32 [[DOTI0]], i32 0
192
+ ; CHECK-NEXT: [[DOTUPTO18:%.*]] = insertelement <4 x i32> [[DOTUPTO07]], i32 [[DOTI11]], i32 1
193
+ ; CHECK-NEXT: [[DOTUPTO29:%.*]] = insertelement <4 x i32> [[DOTUPTO18]], i32 [[DOTI22]], i32 2
194
+ ; CHECK-NEXT: [[TMP11:%.*]] = insertelement <4 x i32> [[DOTUPTO29]], i32 [[DOTI33]], i32 3
195
+ ; CHECK-NEXT: ret <4 x i32> [[TMP11]]
196
+ ;
197
+ %2 = mul i32 %index , 12
198
+ %3 = getelementptr inbounds i8 , ptr @staticArrayOfVecData , i32 %2
199
+ %4 = load <4 x i32 >, <4 x i32 >* %3 , align 4
200
+ ret <4 x i32 > %4
201
+ }
202
+
93
203
define <4 x i32 > @multid_load_test () #0 {
94
204
; CHECK-LABEL: define <4 x i32> @multid_load_test(
95
205
; CHECK-SAME: ) #[[ATTR0]] {
96
206
; CHECK-NEXT: [[TMP1:%.*]] = load i32, ptr addrspace(3) @groupshared2dArrayofVectors.scalarized.1dim, align 4
97
- ; CHECK-NEXT: [[TMP2:%.*]] = load i32, ptr addrspace(3) getelementptr (i32, ptr addrspace(3) @groupshared2dArrayofVectors.scalarized.1dim, i32 1), align 4
98
- ; CHECK-NEXT: [[TMP3:%.*]] = load i32, ptr addrspace(3) getelementptr (i32, ptr addrspace(3) @groupshared2dArrayofVectors.scalarized.1dim, i32 2), align 4
99
- ; CHECK-NEXT: [[TMP4:%.*]] = load i32, ptr addrspace(3) getelementptr (i32, ptr addrspace(3) @groupshared2dArrayofVectors.scalarized.1dim, i32 3), align 4
207
+ ; CHECK-NEXT: [[TMP2:%.*]] = load i32, ptr addrspace(3) getelementptr ([36 x i32] , ptr addrspace(3) @groupshared2dArrayofVectors.scalarized.1dim, i32 0 , i32 1), align 4
208
+ ; CHECK-NEXT: [[TMP3:%.*]] = load i32, ptr addrspace(3) getelementptr ([36 x i32] , ptr addrspace(3) @groupshared2dArrayofVectors.scalarized.1dim, i32 0 , i32 2), align 4
209
+ ; CHECK-NEXT: [[TMP4:%.*]] = load i32, ptr addrspace(3) getelementptr ([36 x i32] , ptr addrspace(3) @groupshared2dArrayofVectors.scalarized.1dim, i32 0 , i32 3), align 4
100
210
; CHECK-NEXT: [[TMP5:%.*]] = load i32, ptr addrspace(3) getelementptr inbounds ([36 x i32], ptr addrspace(3) @groupshared2dArrayofVectors.scalarized.1dim, i32 0, i32 16), align 4
101
- ; CHECK-NEXT: [[DOTI13:%.*]] = load i32, ptr addrspace(3) getelementptr (i32, ptr addrspace(3) getelementptr inbounds ( [36 x i32], ptr addrspace(3) @groupshared2dArrayofVectors.scalarized.1dim, i32 0, i32 16), i32 1 ), align 4
102
- ; CHECK-NEXT: [[DOTI25:%.*]] = load i32, ptr addrspace(3) getelementptr (i32, ptr addrspace(3) getelementptr inbounds ( [36 x i32], ptr addrspace(3) @groupshared2dArrayofVectors.scalarized.1dim, i32 0, i32 16), i32 2 ), align 4
103
- ; CHECK-NEXT: [[DOTI37:%.*]] = load i32, ptr addrspace(3) getelementptr (i32, ptr addrspace(3) getelementptr inbounds ( [36 x i32], ptr addrspace(3) @groupshared2dArrayofVectors.scalarized.1dim, i32 0, i32 16), i32 3 ), align 4
211
+ ; CHECK-NEXT: [[DOTI13:%.*]] = load i32, ptr addrspace(3) getelementptr ([36 x i32], ptr addrspace(3) @groupshared2dArrayofVectors.scalarized.1dim, i32 0, i32 17 ), align 4
212
+ ; CHECK-NEXT: [[DOTI25:%.*]] = load i32, ptr addrspace(3) getelementptr ([36 x i32], ptr addrspace(3) @groupshared2dArrayofVectors.scalarized.1dim, i32 0, i32 18 ), align 4
213
+ ; CHECK-NEXT: [[DOTI37:%.*]] = load i32, ptr addrspace(3) getelementptr ([36 x i32], ptr addrspace(3) @groupshared2dArrayofVectors.scalarized.1dim, i32 0, i32 19 ), align 4
104
214
; CHECK-NEXT: [[DOTI08:%.*]] = add i32 [[TMP1]], [[TMP5]]
105
215
; CHECK-NEXT: [[DOTI19:%.*]] = add i32 [[TMP2]], [[DOTI13]]
106
216
; CHECK-NEXT: [[DOTI210:%.*]] = add i32 [[TMP3]], [[DOTI25]]
0 commit comments