@@ -158,7 +158,7 @@ float16x4_t test_vcmla_lane_f16(float16x4_t acc, float16x4_t lhs, float16x4_t rh
158
158
// ACLE says this exists, but it won't map to a single instruction if lane > 1.
159
159
// CHECK-LABEL: @test_vcmla_laneq_f16(
160
160
// CHECK: [[CPLX:%.*]] = bitcast <8 x half> %rhs to <4 x i32>
161
- // CHECK: [[DUP:%.*]] = shufflevector <4 x i32> [[CPLX]], <4 x i32> undef , <2 x i32> <i32 3, i32 3>
161
+ // CHECK: [[DUP:%.*]] = shufflevector <4 x i32> [[CPLX]], <4 x i32> poison , <2 x i32> <i32 3, i32 3>
162
162
// CHECK: [[DUP_FLT:%.*]] = bitcast <2 x i32> [[DUP]] to <4 x half>
163
163
// CHECK: [[RES:%.*]] = tail call <4 x half> @llvm.aarch64.neon.vcmla.rot0.v4f16(<4 x half> %acc, <4 x half> %lhs, <4 x half> [[DUP_FLT]])
164
164
// CHECK: ret <4 x half> [[RES]]
@@ -176,7 +176,7 @@ float16x8_t test_vcmlaq_lane_f16(float16x8_t acc, float16x8_t lhs, float16x4_t r
176
176
177
177
// CHECK-LABEL: @test_vcmlaq_laneq_f16(
178
178
// CHECK: [[CPLX:%.*]] = bitcast <8 x half> %rhs to <4 x i32>
179
- // CHECK: [[DUP:%.*]] = shufflevector <4 x i32> [[CPLX]], <4 x i32> undef , <4 x i32> <i32 3, i32 3, i32 3, i32 3>
179
+ // CHECK: [[DUP:%.*]] = shufflevector <4 x i32> [[CPLX]], <4 x i32> poison , <4 x i32> <i32 3, i32 3, i32 3, i32 3>
180
180
// CHECK: [[DUP_FLT:%.*]] = bitcast <4 x i32> [[DUP]] to <8 x half>
181
181
// CHECK: [[RES:%.*]] = tail call <8 x half> @llvm.aarch64.neon.vcmla.rot0.v8f16(<8 x half> %acc, <8 x half> %lhs, <8 x half> [[DUP_FLT]])
182
182
// CHECK: ret <8 x half> [[RES]]
@@ -194,7 +194,7 @@ float32x2_t test_vcmla_lane_f32(float32x2_t acc, float32x2_t lhs, float32x2_t rh
194
194
// ACLE says this exists, but it won't map to a single instruction if lane > 1.
195
195
// CHECK-LABEL: @test_vcmla_laneq_f32(
196
196
// CHECK: [[CPLX:%.*]] = bitcast <4 x float> %rhs to <2 x i64>
197
- // CHECK: [[DUP:%.*]] = shufflevector <2 x i64> [[CPLX]], <2 x i64> undef , <1 x i32> <i32 1>
197
+ // CHECK: [[DUP:%.*]] = shufflevector <2 x i64> [[CPLX]], <2 x i64> poison , <1 x i32> <i32 1>
198
198
// CHECK: [[DUP_FLT:%.*]] = bitcast <1 x i64> [[DUP]] to <2 x float>
199
199
// CHECK: [[RES:%.*]] = tail call <2 x float> @llvm.aarch64.neon.vcmla.rot0.v2f32(<2 x float> %acc, <2 x float> %lhs, <2 x float> [[DUP_FLT]])
200
200
// CHECK: ret <2 x float> [[RES]]
@@ -204,7 +204,7 @@ float32x2_t test_vcmla_laneq_f32(float32x2_t acc, float32x2_t lhs, float32x4_t r
204
204
205
205
// CHECK-LABEL: @test_vcmlaq_lane_f32(
206
206
// CHECK: [[CPLX:%.*]] = bitcast <2 x float> %rhs to i64
207
- // CHECK: [[CPLX_VEC:%.*]] = insertelement <2 x i64> undef , i64 [[CPLX]], i64 0
207
+ // CHECK: [[CPLX_VEC:%.*]] = insertelement <2 x i64> poison , i64 [[CPLX]], i64 0
208
208
// CHECK: [[CPLX2:%.*]] = bitcast <2 x i64> [[CPLX_VEC]] to <4 x float>
209
209
// CHECK: [[DUP:%.*]] = shufflevector <4 x float> [[CPLX2]], <4 x float> poison, <4 x i32> <i32 0, i32 1, i32 0, i32 1>
210
210
// CHECK: [[RES:%.*]] = tail call <4 x float> @llvm.aarch64.neon.vcmla.rot0.v4f32(<4 x float> %acc, <4 x float> %lhs, <4 x float> [[DUP]])
@@ -232,7 +232,7 @@ float16x4_t test_vcmla_rot90_lane_f16(float16x4_t acc, float16x4_t lhs, float16x
232
232
// ACLE says this exists, but it won't map to a single instruction if lane > 1.
233
233
// CHECK-LABEL: @test_vcmla_rot90_laneq_f16(
234
234
// CHECK: [[CPLX:%.*]] = bitcast <8 x half> %rhs to <4 x i32>
235
- // CHECK: [[DUP:%.*]] = shufflevector <4 x i32> [[CPLX]], <4 x i32> undef , <2 x i32> <i32 3, i32 3>
235
+ // CHECK: [[DUP:%.*]] = shufflevector <4 x i32> [[CPLX]], <4 x i32> poison , <2 x i32> <i32 3, i32 3>
236
236
// CHECK: [[DUP_FLT:%.*]] = bitcast <2 x i32> [[DUP]] to <4 x half>
237
237
// CHECK: [[RES:%.*]] = tail call <4 x half> @llvm.aarch64.neon.vcmla.rot90.v4f16(<4 x half> %acc, <4 x half> %lhs, <4 x half> [[DUP_FLT]])
238
238
// CHECK: ret <4 x half> [[RES]]
@@ -250,7 +250,7 @@ float16x8_t test_vcmlaq_rot90_lane_f16(float16x8_t acc, float16x8_t lhs, float16
250
250
251
251
// CHECK-LABEL: @test_vcmlaq_rot90_laneq_f16(
252
252
// CHECK: [[CPLX:%.*]] = bitcast <8 x half> %rhs to <4 x i32>
253
- // CHECK: [[DUP:%.*]] = shufflevector <4 x i32> [[CPLX]], <4 x i32> undef , <4 x i32> <i32 3, i32 3, i32 3, i32 3>
253
+ // CHECK: [[DUP:%.*]] = shufflevector <4 x i32> [[CPLX]], <4 x i32> poison , <4 x i32> <i32 3, i32 3, i32 3, i32 3>
254
254
// CHECK: [[DUP_FLT:%.*]] = bitcast <4 x i32> [[DUP]] to <8 x half>
255
255
// CHECK: [[RES:%.*]] = tail call <8 x half> @llvm.aarch64.neon.vcmla.rot90.v8f16(<8 x half> %acc, <8 x half> %lhs, <8 x half> [[DUP_FLT]])
256
256
// CHECK: ret <8 x half> [[RES]]
@@ -268,7 +268,7 @@ float32x2_t test_vcmla_rot90_lane_f32(float32x2_t acc, float32x2_t lhs, float32x
268
268
// ACLE says this exists, but it won't map to a single instruction if lane > 1.
269
269
// CHECK-LABEL: @test_vcmla_rot90_laneq_f32(
270
270
// CHECK: [[CPLX:%.*]] = bitcast <4 x float> %rhs to <2 x i64>
271
- // CHECK: [[DUP:%.*]] = shufflevector <2 x i64> [[CPLX]], <2 x i64> undef , <1 x i32> <i32 1>
271
+ // CHECK: [[DUP:%.*]] = shufflevector <2 x i64> [[CPLX]], <2 x i64> poison , <1 x i32> <i32 1>
272
272
// CHECK: [[DUP_FLT:%.*]] = bitcast <1 x i64> [[DUP]] to <2 x float>
273
273
// CHECK: [[RES:%.*]] = tail call <2 x float> @llvm.aarch64.neon.vcmla.rot90.v2f32(<2 x float> %acc, <2 x float> %lhs, <2 x float> [[DUP_FLT]])
274
274
// CHECK: ret <2 x float> [[RES]]
@@ -278,7 +278,7 @@ float32x2_t test_vcmla_rot90_laneq_f32(float32x2_t acc, float32x2_t lhs, float32
278
278
279
279
// CHECK-LABEL: @test_vcmlaq_rot90_lane_f32(
280
280
// CHECK: [[CPLX:%.*]] = bitcast <2 x float> %rhs to i64
281
- // CHECK: [[CPLX_VEC:%.*]] = insertelement <2 x i64> undef , i64 [[CPLX]], i64 0
281
+ // CHECK: [[CPLX_VEC:%.*]] = insertelement <2 x i64> poison , i64 [[CPLX]], i64 0
282
282
// CHECK: [[CPLX2:%.*]] = bitcast <2 x i64> [[CPLX_VEC]] to <4 x float>
283
283
// CHECK: [[DUP:%.*]] = shufflevector <4 x float> [[CPLX2]], <4 x float> poison, <4 x i32> <i32 0, i32 1, i32 0, i32 1>
284
284
// CHECK: [[RES:%.*]] = tail call <4 x float> @llvm.aarch64.neon.vcmla.rot90.v4f32(<4 x float> %acc, <4 x float> %lhs, <4 x float> [[DUP]])
@@ -306,7 +306,7 @@ float16x4_t test_vcmla_rot180_lane_f16(float16x4_t acc, float16x4_t lhs, float16
306
306
// ACLE says this exists, but it won't map to a single instruction if lane > 1.
307
307
// CHECK-LABEL: @test_vcmla_rot180_laneq_f16(
308
308
// CHECK: [[CPLX:%.*]] = bitcast <8 x half> %rhs to <4 x i32>
309
- // CHECK: [[DUP:%.*]] = shufflevector <4 x i32> [[CPLX]], <4 x i32> undef , <2 x i32> <i32 3, i32 3>
309
+ // CHECK: [[DUP:%.*]] = shufflevector <4 x i32> [[CPLX]], <4 x i32> poison , <2 x i32> <i32 3, i32 3>
310
310
// CHECK: [[DUP_FLT:%.*]] = bitcast <2 x i32> [[DUP]] to <4 x half>
311
311
// CHECK: [[RES:%.*]] = tail call <4 x half> @llvm.aarch64.neon.vcmla.rot180.v4f16(<4 x half> %acc, <4 x half> %lhs, <4 x half> [[DUP_FLT]])
312
312
// CHECK: ret <4 x half> [[RES]]
@@ -324,7 +324,7 @@ float16x8_t test_vcmlaq_rot180_lane_f16(float16x8_t acc, float16x8_t lhs, float1
324
324
325
325
// CHECK-LABEL: @test_vcmlaq_rot180_laneq_f16(
326
326
// CHECK: [[CPLX:%.*]] = bitcast <8 x half> %rhs to <4 x i32>
327
- // CHECK: [[DUP:%.*]] = shufflevector <4 x i32> [[CPLX]], <4 x i32> undef , <4 x i32> <i32 3, i32 3, i32 3, i32 3>
327
+ // CHECK: [[DUP:%.*]] = shufflevector <4 x i32> [[CPLX]], <4 x i32> poison , <4 x i32> <i32 3, i32 3, i32 3, i32 3>
328
328
// CHECK: [[DUP_FLT:%.*]] = bitcast <4 x i32> [[DUP]] to <8 x half>
329
329
// CHECK: [[RES:%.*]] = tail call <8 x half> @llvm.aarch64.neon.vcmla.rot180.v8f16(<8 x half> %acc, <8 x half> %lhs, <8 x half> [[DUP_FLT]])
330
330
// CHECK: ret <8 x half> [[RES]]
@@ -342,7 +342,7 @@ float32x2_t test_vcmla_rot180_lane_f32(float32x2_t acc, float32x2_t lhs, float32
342
342
// ACLE says this exists, but it won't map to a single instruction if lane > 1.
343
343
// CHECK-LABEL: @test_vcmla_rot180_laneq_f32(
344
344
// CHECK: [[CPLX:%.*]] = bitcast <4 x float> %rhs to <2 x i64>
345
- // CHECK: [[DUP:%.*]] = shufflevector <2 x i64> [[CPLX]], <2 x i64> undef , <1 x i32> <i32 1>
345
+ // CHECK: [[DUP:%.*]] = shufflevector <2 x i64> [[CPLX]], <2 x i64> poison , <1 x i32> <i32 1>
346
346
// CHECK: [[DUP_FLT:%.*]] = bitcast <1 x i64> [[DUP]] to <2 x float>
347
347
// CHECK: [[RES:%.*]] = tail call <2 x float> @llvm.aarch64.neon.vcmla.rot180.v2f32(<2 x float> %acc, <2 x float> %lhs, <2 x float> [[DUP_FLT]])
348
348
// CHECK: ret <2 x float> [[RES]]
@@ -352,7 +352,7 @@ float32x2_t test_vcmla_rot180_laneq_f32(float32x2_t acc, float32x2_t lhs, float3
352
352
353
353
// CHECK-LABEL: @test_vcmlaq_rot180_lane_f32(
354
354
// CHECK: [[CPLX:%.*]] = bitcast <2 x float> %rhs to i64
355
- // CHECK: [[CPLX_VEC:%.*]] = insertelement <2 x i64> undef , i64 [[CPLX]], i64 0
355
+ // CHECK: [[CPLX_VEC:%.*]] = insertelement <2 x i64> poison , i64 [[CPLX]], i64 0
356
356
// CHECK: [[CPLX2:%.*]] = bitcast <2 x i64> [[CPLX_VEC]] to <4 x float>
357
357
// CHECK: [[DUP:%.*]] = shufflevector <4 x float> [[CPLX2]], <4 x float> poison, <4 x i32> <i32 0, i32 1, i32 0, i32 1>
358
358
// CHECK: [[RES:%.*]] = tail call <4 x float> @llvm.aarch64.neon.vcmla.rot180.v4f32(<4 x float> %acc, <4 x float> %lhs, <4 x float> [[DUP]])
@@ -380,7 +380,7 @@ float16x4_t test_vcmla_rot270_lane_f16(float16x4_t acc, float16x4_t lhs, float16
380
380
// ACLE says this exists, but it won't map to a single instruction if lane > 1.
381
381
// CHECK-LABEL: @test_vcmla_rot270_laneq_f16(
382
382
// CHECK: [[CPLX:%.*]] = bitcast <8 x half> %rhs to <4 x i32>
383
- // CHECK: [[DUP:%.*]] = shufflevector <4 x i32> [[CPLX]], <4 x i32> undef , <2 x i32> <i32 3, i32 3>
383
+ // CHECK: [[DUP:%.*]] = shufflevector <4 x i32> [[CPLX]], <4 x i32> poison , <2 x i32> <i32 3, i32 3>
384
384
// CHECK: [[DUP_FLT:%.*]] = bitcast <2 x i32> [[DUP]] to <4 x half>
385
385
// CHECK: [[RES:%.*]] = tail call <4 x half> @llvm.aarch64.neon.vcmla.rot270.v4f16(<4 x half> %acc, <4 x half> %lhs, <4 x half> [[DUP_FLT]])
386
386
// CHECK: ret <4 x half> [[RES]]
@@ -398,7 +398,7 @@ float16x8_t test_vcmlaq_rot270_lane_f16(float16x8_t acc, float16x8_t lhs, float1
398
398
399
399
// CHECK-LABEL: @test_vcmlaq_rot270_laneq_f16(
400
400
// CHECK: [[CPLX:%.*]] = bitcast <8 x half> %rhs to <4 x i32>
401
- // CHECK: [[DUP:%.*]] = shufflevector <4 x i32> [[CPLX]], <4 x i32> undef , <4 x i32> <i32 3, i32 3, i32 3, i32 3>
401
+ // CHECK: [[DUP:%.*]] = shufflevector <4 x i32> [[CPLX]], <4 x i32> poison , <4 x i32> <i32 3, i32 3, i32 3, i32 3>
402
402
// CHECK: [[DUP_FLT:%.*]] = bitcast <4 x i32> [[DUP]] to <8 x half>
403
403
// CHECK: [[RES:%.*]] = tail call <8 x half> @llvm.aarch64.neon.vcmla.rot270.v8f16(<8 x half> %acc, <8 x half> %lhs, <8 x half> [[DUP_FLT]])
404
404
// CHECK: ret <8 x half> [[RES]]
@@ -416,7 +416,7 @@ float32x2_t test_vcmla_rot270_lane_f32(float32x2_t acc, float32x2_t lhs, float32
416
416
// ACLE says this exists, but it won't map to a single instruction if lane > 1.
417
417
// CHECK-LABEL: @test_vcmla_rot270_laneq_f32(
418
418
// CHECK: [[CPLX:%.*]] = bitcast <4 x float> %rhs to <2 x i64>
419
- // CHECK: [[DUP:%.*]] = shufflevector <2 x i64> [[CPLX]], <2 x i64> undef , <1 x i32> <i32 1>
419
+ // CHECK: [[DUP:%.*]] = shufflevector <2 x i64> [[CPLX]], <2 x i64> poison , <1 x i32> <i32 1>
420
420
// CHECK: [[DUP_FLT:%.*]] = bitcast <1 x i64> [[DUP]] to <2 x float>
421
421
// CHECK: [[RES:%.*]] = tail call <2 x float> @llvm.aarch64.neon.vcmla.rot270.v2f32(<2 x float> %acc, <2 x float> %lhs, <2 x float> [[DUP_FLT]])
422
422
// CHECK: ret <2 x float> [[RES]]
@@ -426,7 +426,7 @@ float32x2_t test_vcmla_rot270_laneq_f32(float32x2_t acc, float32x2_t lhs, float3
426
426
427
427
// CHECK-LABEL: @test_vcmlaq_rot270_lane_f32(
428
428
// CHECK: [[CPLX:%.*]] = bitcast <2 x float> %rhs to i64
429
- // CHECK: [[CPLX_VEC:%.*]] = insertelement <2 x i64> undef , i64 [[CPLX]], i64 0
429
+ // CHECK: [[CPLX_VEC:%.*]] = insertelement <2 x i64> poison , i64 [[CPLX]], i64 0
430
430
// CHECK: [[CPLX2:%.*]] = bitcast <2 x i64> [[DUP]] to <4 x float>
431
431
// CHECK: [[DUP:%.*]] = shufflevector <4 x float> [[CPLX2]], <4 x float> poison, <4 x i32> <i32 0, i32 1, i32 0, i32 1>
432
432
// CHECK: [[RES:%.*]] = tail call <4 x float> @llvm.aarch64.neon.vcmla.rot270.v4f32(<4 x float> %acc, <4 x float> %lhs, <4 x float> [[DUP]])
0 commit comments