@@ -20,6 +20,8 @@ uint8x8_t test_vset_lane_u8(uint8_t a, uint8x8_t b) {
20
20
// CIR: {{%.*}} = cir.vec.insert {{%.*}}, {{%.*}}[[[IDX]] : !s32i] : !cir.vector<!s8i x 8>
21
21
22
22
// LLVM: define dso_local <8 x i8> @test_vset_lane_u8(i8 [[A:%.*]], <8 x i8> [[B:%.*]])
23
+ // LLVM: alloca <8 x i8>
24
+ // LLVM: alloca i8
23
25
// LLVM: [[A_ADR:%.*]] = alloca i8, i64 1, align 1
24
26
// LLVM: [[B_ADR:%.*]] = alloca <8 x i8>, i64 1, align 8
25
27
// LLVM: store i8 [[A]], ptr [[A_ADR]], align 1
@@ -42,6 +44,8 @@ uint16x4_t test_vset_lane_u16(uint16_t a, uint16x4_t b) {
42
44
// CIR: {{%.*}} = cir.vec.insert {{%.*}}, {{%.*}}[[[IDX]] : !s32i] : !cir.vector<!s16i x 4>
43
45
44
46
// LLVM: define dso_local <4 x i16> @test_vset_lane_u16(i16 [[A:%.*]], <4 x i16> [[B:%.*]])
47
+ // LLVM: alloca <4 x i16>
48
+ // LLVM: alloca i16
45
49
// LLVM: [[A_ADR:%.*]] = alloca i16, i64 1, align 2
46
50
// LLVM: [[B_ADR:%.*]] = alloca <4 x i16>, i64 1, align 8
47
51
// LLVM: store i16 [[A]], ptr [[A_ADR]], align 2
@@ -64,6 +68,8 @@ uint32x2_t test_vset_lane_u32(uint32_t a, uint32x2_t b) {
64
68
// CIR: {{%.*}} = cir.vec.insert {{%.*}}, {{%.*}}[[[IDX]] : !s32i] : !cir.vector<!s32i x 2>
65
69
66
70
// LLVM: define dso_local <2 x i32> @test_vset_lane_u32(i32 [[A:%.*]], <2 x i32> [[B:%.*]])
71
+ // LLVM: alloca <2 x i32>
72
+ // LLVM: alloca i32
67
73
// LLVM: [[A_ADR:%.*]] = alloca i32, i64 1, align 4
68
74
// LLVM: [[B_ADR:%.*]] = alloca <2 x i32>, i64 1, align 8
69
75
// LLVM: store i32 [[A]], ptr [[A_ADR]], align 4
@@ -87,6 +93,8 @@ int64x1_t test_vset_lane_u64(int64_t a, int64x1_t b) {
87
93
// CIR: {{%.*}} = cir.vec.insert {{%.*}}, {{%.*}}[[[IDX]] : !s32i] : !cir.vector<!s64i x 1>
88
94
89
95
// LLVM: define dso_local <1 x i64> @test_vset_lane_u64(i64 [[A:%.*]], <1 x i64> [[B:%.*]])
96
+ // LLVM: alloca <1 x i64>
97
+ // LLVM: alloca i64
90
98
// LLVM: [[A_ADR:%.*]] = alloca i64, i64 1, align 8
91
99
// LLVM: [[B_ADR:%.*]] = alloca <1 x i64>, i64 1, align 8
92
100
// LLVM: store i64 [[A]], ptr [[A_ADR]], align 8
@@ -109,6 +117,8 @@ float32x2_t test_vset_lane_f32(float32_t a, float32x2_t b) {
109
117
// CIR: {{%.*}} = cir.vec.insert {{%.*}}, {{%.*}}[[[IDX]] : !s32i] : !cir.vector<!cir.float x 2>
110
118
111
119
// LLVM: define dso_local <2 x float> @test_vset_lane_f32(float [[A:%.*]], <2 x float> [[B:%.*]])
120
+ // LLVM: alloca <2 x float>
121
+ // LLVM: alloca float
112
122
// LLVM: [[A_ADR:%.*]] = alloca float, i64 1, align 4
113
123
// LLVM: [[B_ADR:%.*]] = alloca <2 x float>, i64 1, align 8
114
124
// LLVM: store float [[A]], ptr [[A_ADR]], align 4
@@ -131,6 +141,8 @@ uint8x16_t test_vsetq_lane_u8(uint8_t a, uint8x16_t b) {
131
141
// CIR: {{%.*}} = cir.vec.insert {{%.*}}, {{%.*}}[[[IDX]] : !s32i] : !cir.vector<!s8i x 16>
132
142
133
143
// LLVM: define dso_local <16 x i8> @test_vsetq_lane_u8(i8 [[A:%.*]], <16 x i8> [[B:%.*]])
144
+ // LLVM: alloca <16 x i8>
145
+ // LLVM: alloca i8
134
146
// LLVM: [[A_ADR:%.*]] = alloca i8, i64 1, align 1
135
147
// LLVM: [[B_ADR:%.*]] = alloca <16 x i8>, i64 1, align 16
136
148
// LLVM: store i8 [[A]], ptr [[A_ADR]], align 1
@@ -153,6 +165,8 @@ uint16x8_t test_vsetq_lane_u16(uint16_t a, uint16x8_t b) {
153
165
// CIR: {{%.*}} = cir.vec.insert {{%.*}}, {{%.*}}[[[IDX]] : !s32i] : !cir.vector<!s16i x 8>
154
166
155
167
// LLVM: define dso_local <8 x i16> @test_vsetq_lane_u16(i16 [[A:%.*]], <8 x i16> [[B:%.*]])
168
+ // LLVM: alloca <8 x i16>
169
+ // LLVM: alloca i16
156
170
// LLVM: [[A_ADR:%.*]] = alloca i16, i64 1, align 2
157
171
// LLVM: [[B_ADR:%.*]] = alloca <8 x i16>, i64 1, align 16
158
172
// LLVM: store i16 [[A]], ptr [[A_ADR]], align 2
@@ -175,6 +189,8 @@ uint32x4_t test_vsetq_lane_u32(uint32_t a, uint32x4_t b) {
175
189
// CIR: {{%.*}} = cir.vec.insert {{%.*}}, {{%.*}}[[[IDX]] : !s32i] : !cir.vector<!s32i x 4>
176
190
177
191
// LLVM: define dso_local <4 x i32> @test_vsetq_lane_u32(i32 [[A:%.*]], <4 x i32> [[B:%.*]])
192
+ // LLVM: alloca <4 x i32>
193
+ // LLVM: alloca i32
178
194
// LLVM: [[A_ADR:%.*]] = alloca i32, i64 1, align 4
179
195
// LLVM: [[B_ADR:%.*]] = alloca <4 x i32>, i64 1, align 16
180
196
// LLVM: store i32 [[A]], ptr [[A_ADR]], align 4
@@ -197,6 +213,8 @@ int64x2_t test_vsetq_lane_s64(int64_t a, int64x2_t b) {
197
213
// CIR: {{%.*}} = cir.vec.insert {{%.*}}, {{%.*}}[[[IDX]] : !s32i] : !cir.vector<!s64i x 2>
198
214
199
215
// LLVM: define dso_local <2 x i64> @test_vsetq_lane_s64(i64 [[A:%.*]], <2 x i64> [[B:%.*]])
216
+ // LLVM: alloca <2 x i64>
217
+ // LLVM: alloca i64
200
218
// LLVM: [[A_ADR:%.*]] = alloca i64, i64 1, align 8
201
219
// LLVM: [[B_ADR:%.*]] = alloca <2 x i64>, i64 1, align 16
202
220
// LLVM: store i64 [[A]], ptr [[A_ADR]], align 8
@@ -219,6 +237,8 @@ float32x4_t test_vsetq_lane_f32(float32_t a, float32x4_t b) {
219
237
// CIR: {{%.*}} = cir.vec.insert {{%.*}}, {{%.*}}[[[IDX]] : !s32i] : !cir.vector<!cir.float x 4>
220
238
221
239
// LLVM: define dso_local <4 x float> @test_vsetq_lane_f32(float [[A:%.*]], <4 x float> [[B:%.*]])
240
+ // LLVM: alloca <4 x float>
241
+ // LLVM: alloca float
222
242
// LLVM: [[A_ADR:%.*]] = alloca float, i64 1, align 4
223
243
// LLVM: [[B_ADR:%.*]] = alloca <4 x float>, i64 1, align 16
224
244
// LLVM: store float [[A]], ptr [[A_ADR]], align 4
@@ -241,6 +261,7 @@ uint8_t test_vget_lane_u8(uint8x8_t a) {
241
261
// CIR: {{%.*}} = cir.vec.extract {{%.*}}[[[IDX]] : !s32i] : !cir.vector<!u8i x 8>
242
262
243
263
// LLVM: define dso_local i8 @test_vget_lane_u8(<8 x i8> [[ARG:%.*]])
264
+ // LLVM: alloca <8 x i8>
244
265
// LLVM: [[ARG_SAVE:%.*]] = alloca <8 x i8>, i64 1, align 8
245
266
// LLVM: store <8 x i8> [[ARG]], ptr [[ARG_SAVE]], align 8
246
267
// LLVM: [[TMP:%.*]] = load <8 x i8>, ptr [[ARG_SAVE:%.*]], align 8
@@ -258,6 +279,7 @@ uint8_t test_vgetq_lane_u8(uint8x16_t a) {
258
279
// CIR: {{%.*}} = cir.vec.extract {{%.*}}[[[IDX]] : !s32i] : !cir.vector<!u8i x 16>
259
280
260
281
// LLVM: define dso_local i8 @test_vgetq_lane_u8(<16 x i8> [[ARG:%.*]])
282
+ // LLVM: alloca <16 x i8>
261
283
// LLVM: [[ARG_SAVE:%.*]] = alloca <16 x i8>, i64 1, align 16
262
284
// LLVM: store <16 x i8> [[ARG]], ptr [[ARG_SAVE]], align 16
263
285
// LLVM: [[TMP:%.*]] = load <16 x i8>, ptr [[ARG_SAVE:%.*]], align 16
@@ -275,6 +297,7 @@ uint16_t test_vget_lane_u16(uint16x4_t a) {
275
297
// CIR: {{%.*}} = cir.vec.extract {{%.*}}[[[IDX]] : !s32i] : !cir.vector<!u16i x 4>
276
298
277
299
// LLVM: define dso_local i16 @test_vget_lane_u16(<4 x i16> [[ARG:%.*]])
300
+ // LLVM: alloca <4 x i16>
278
301
// LLVM: [[ARG_SAVE:%.*]] = alloca <4 x i16>, i64 1, align 8
279
302
// LLVM: store <4 x i16> [[ARG]], ptr [[ARG_SAVE]], align 8
280
303
// LLVM: [[TMP:%.*]] = load <4 x i16>, ptr [[ARG_SAVE:%.*]], align 8
@@ -292,6 +315,7 @@ uint16_t test_vgetq_lane_u16(uint16x8_t a) {
292
315
// CIR: {{%.*}} = cir.vec.extract {{%.*}}[[[IDX]] : !s32i] : !cir.vector<!u16i x 8>
293
316
294
317
// LLVM: define dso_local i16 @test_vgetq_lane_u16(<8 x i16> [[ARG:%.*]])
318
+ // LLVM: alloca <8 x i16>
295
319
// LLVM: [[ARG_SAVE:%.*]] = alloca <8 x i16>, i64 1, align 16
296
320
// LLVM: store <8 x i16> [[ARG]], ptr [[ARG_SAVE]], align 16
297
321
// LLVM: [[TMP:%.*]] = load <8 x i16>, ptr [[ARG_SAVE:%.*]], align 16
@@ -309,6 +333,7 @@ uint32_t test_vget_lane_u32(uint32x2_t a) {
309
333
// CIR: {{%.*}} = cir.vec.extract {{%.*}}[[[IDX]] : !s32i] : !cir.vector<!u32i x 2>
310
334
311
335
// LLVM: define dso_local i32 @test_vget_lane_u32(<2 x i32> [[ARG:%.*]])
336
+ // LLVM: alloca <2 x i32>
312
337
// LLVM: [[ARG_SAVE:%.*]] = alloca <2 x i32>, i64 1, align 8
313
338
// LLVM: store <2 x i32> [[ARG]], ptr [[ARG_SAVE]], align 8
314
339
// LLVM: [[TMP:%.*]] = load <2 x i32>, ptr [[ARG_SAVE:%.*]], align 8
@@ -326,6 +351,7 @@ uint32_t test_vgetq_lane_u32(uint32x4_t a) {
326
351
// CIR: {{%.*}} = cir.vec.extract {{%.*}}[[[IDX]] : !s32i] : !cir.vector<!u32i x 4>
327
352
328
353
// LLVM: define dso_local i32 @test_vgetq_lane_u32(<4 x i32> [[ARG:%.*]])
354
+ // LLVM: alloca <4 x i32>
329
355
// LLVM: [[ARG_SAVE:%.*]] = alloca <4 x i32>, i64 1, align 16
330
356
// LLVM: store <4 x i32> [[ARG]], ptr [[ARG_SAVE]], align 16
331
357
// LLVM: [[TMP:%.*]] = load <4 x i32>, ptr [[ARG_SAVE:%.*]], align 16
@@ -343,6 +369,7 @@ uint64_t test_vget_lane_u64(uint64x1_t a) {
343
369
// CIR: {{%.*}} = cir.vec.extract {{%.*}}[[[IDX]] : !s32i] : !cir.vector<!u64i x 1>
344
370
345
371
// LLVM: define dso_local i64 @test_vget_lane_u64(<1 x i64> [[ARG:%.*]])
372
+ // LLVM: alloca <1 x i64>
346
373
// LLVM: [[ARG_SAVE:%.*]] = alloca <1 x i64>, i64 1, align 8
347
374
// LLVM: store <1 x i64> [[ARG]], ptr [[ARG_SAVE]], align 8
348
375
// LLVM: [[TMP:%.*]] = load <1 x i64>, ptr [[ARG_SAVE:%.*]], align 8
@@ -360,6 +387,7 @@ uint64_t test_vgetq_lane_u64(uint64x2_t a) {
360
387
// CIR: {{%.*}} = cir.vec.extract {{%.*}}[[[IDX]] : !s32i] : !cir.vector<!u64i x 2>
361
388
362
389
// LLVM: define dso_local i64 @test_vgetq_lane_u64(<2 x i64> [[ARG:%.*]])
390
+ // LLVM: alloca <2 x i64>
363
391
// LLVM: [[ARG_SAVE:%.*]] = alloca <2 x i64>, i64 1, align 16
364
392
// LLVM: store <2 x i64> [[ARG]], ptr [[ARG_SAVE]], align 16
365
393
// LLVM: [[TMP:%.*]] = load <2 x i64>, ptr [[ARG_SAVE:%.*]], align 16
@@ -377,6 +405,7 @@ float32_t test_vget_lane_f32(float32x2_t a) {
377
405
// CIR: {{%.*}} = cir.vec.extract {{%.*}}[[[IDX]] : !s32i] : !cir.vector<!cir.float x 2>
378
406
379
407
// LLVM: define dso_local float @test_vget_lane_f32(<2 x float> [[ARG:%.*]])
408
+ // LLVM: alloca <2 x float>
380
409
// LLVM: [[ARG_SAVE:%.*]] = alloca <2 x float>, i64 1, align 8
381
410
// LLVM: store <2 x float> [[ARG]], ptr [[ARG_SAVE]], align 8
382
411
// LLVM: [[TMP:%.*]] = load <2 x float>, ptr [[ARG_SAVE:%.*]], align 8
@@ -394,6 +423,7 @@ float64_t test_vget_lane_f64(float64x1_t a) {
394
423
// CIR: {{%.*}} = cir.vec.extract {{%.*}}[[[IDX]] : !s32i] : !cir.vector<!cir.double x 1>
395
424
396
425
// LLVM: define dso_local double @test_vget_lane_f64(<1 x double> [[ARG:%.*]])
426
+ // LLVM: alloca <1 x double>
397
427
// LLVM: [[ARG_SAVE:%.*]] = alloca <1 x double>, i64 1, align 8
398
428
// LLVM: store <1 x double> [[ARG]], ptr [[ARG_SAVE]], align 8
399
429
// LLVM: [[TMP:%.*]] = load <1 x double>, ptr [[ARG_SAVE:%.*]], align 8
@@ -411,6 +441,7 @@ float32_t test_vgetq_lane_f32(float32x4_t a) {
411
441
// CIR: {{%.*}} = cir.vec.extract {{%.*}}[[[IDX]] : !s32i] : !cir.vector<!cir.float x 4>
412
442
413
443
// LLVM: define dso_local float @test_vgetq_lane_f32(<4 x float> [[ARG:%.*]])
444
+ // LLVM: alloca <4 x float>
414
445
// LLVM: [[ARG_SAVE:%.*]] = alloca <4 x float>, i64 1, align 16
415
446
// LLVM: store <4 x float> [[ARG]], ptr [[ARG_SAVE]], align 16
416
447
// LLVM: [[TMP:%.*]] = load <4 x float>, ptr [[ARG_SAVE:%.*]], align 16
@@ -428,6 +459,7 @@ float64_t test_vgetq_lane_f64(float64x2_t a) {
428
459
// CIR: {{%.*}} = cir.vec.extract {{%.*}}[[[IDX]] : !s32i] : !cir.vector<!cir.double x 2>
429
460
430
461
// LLVM: define dso_local double @test_vgetq_lane_f64(<2 x double> [[ARG:%.*]])
462
+ // LLVM: alloca <2 x double>
431
463
// LLVM: [[ARG_SAVE:%.*]] = alloca <2 x double>, i64 1, align 16
432
464
// LLVM: store <2 x double> [[ARG]], ptr [[ARG_SAVE]], align 16
433
465
// LLVM: [[TMP:%.*]] = load <2 x double>, ptr [[ARG_SAVE:%.*]], align 16
0 commit comments