@@ -337,15 +337,6 @@ llvm.func @arm_sme_vector_to_tile_vert(%tileslice : i32,
337
337
338
338
// -----
339
339
340
- llvm.func @prevent_dce.nxv16i8 (vector <[16 ]xi8 >)
341
- llvm.func @prevent_dce.nxv8i16 (vector <[8 ]xi16 >)
342
- llvm.func @prevent_dce.nxv4i32 (vector <[4 ]xi32 >)
343
- llvm.func @prevent_dce.nxv2i64 (vector <[2 ]xi64 >)
344
- llvm.func @prevent_dce.nxv1i128 (vector <[1 ]xi128 >)
345
- llvm.func @prevent_dce.nxv8f16 (vector <[8 ]xf16 >)
346
- llvm.func @prevent_dce.nxv8bf16 (vector <[8 ]xbf16 >)
347
- llvm.func @prevent_dce.nxv4f32 (vector <[4 ]xf32 >)
348
- llvm.func @prevent_dce.nxv2f64 (vector <[2 ]xf64 >)
349
340
350
341
llvm.func @arm_sme_tile_slice_to_vector_horiz (%tileslice : i32 ,
351
342
%nxv16i1 : vector <[16 ]xi1 >,
@@ -366,54 +357,35 @@ llvm.func @arm_sme_tile_slice_to_vector_horiz(%tileslice : i32,
366
357
// CHECK: call <vscale x 16 x i8> @llvm.aarch64.sme.read.horiz.nxv16i8
367
358
%res0 = " arm_sme.intr.read.horiz" (%nxv16i8 , %nxv16i1 , %tile , %tileslice )
368
359
: (vector <[16 ]xi8 >, vector <[16 ]xi1 >, i32 , i32 ) -> vector <[16 ]xi8 >
369
- llvm.call @prevent_dce.nxv16i8 (%res0 ) : (vector <[16 ]xi8 >) -> ()
370
360
// CHECK: call <vscale x 8 x i16> @llvm.aarch64.sme.read.horiz.nxv8i16
371
361
%res1 = " arm_sme.intr.read.horiz" (%nxv8i16 , %nxv8i1 , %tile , %tileslice )
372
362
: (vector <[8 ]xi16 >, vector <[8 ]xi1 >, i32 , i32 ) -> vector <[8 ]xi16 >
373
- llvm.call @prevent_dce.nxv8i16 (%res1 ) : (vector <[8 ]xi16 >) -> ()
374
363
// CHECK: call <vscale x 4 x i32> @llvm.aarch64.sme.read.horiz.nxv4i32
375
364
%res2 = " arm_sme.intr.read.horiz" (%nxv4i32 , %nxv4i1 , %tile , %tileslice )
376
365
: (vector <[4 ]xi32 >, vector <[4 ]xi1 >, i32 , i32 ) -> vector <[4 ]xi32 >
377
- llvm.call @prevent_dce.nxv4i32 (%res2 ) : (vector <[4 ]xi32 >) -> ()
378
366
// CHECK: call <vscale x 2 x i64> @llvm.aarch64.sme.read.horiz.nxv2i64
379
367
%res3 = " arm_sme.intr.read.horiz" (%nxv2i64 , %nxv2i1 , %tile , %tileslice )
380
368
: (vector <[2 ]xi64 >, vector <[2 ]xi1 >, i32 , i32 ) -> vector <[2 ]xi64 >
381
- llvm.call @prevent_dce.nxv2i64 (%res3 ) : (vector <[2 ]xi64 >) -> ()
382
369
// CHECK: call <vscale x 1 x i128> @llvm.aarch64.sme.read.horiz.nxv1i128
383
370
%res4 = " arm_sme.intr.read.horiz" (%nxv1i128 , %nxv1i1 , %tile , %tileslice )
384
371
: (vector <[1 ]xi128 >, vector <[1 ]xi1 >, i32 , i32 ) -> vector <[1 ]xi128 >
385
- llvm.call @prevent_dce.nxv1i128 (%res4 ) : (vector <[1 ]xi128 >) -> ()
386
372
// CHECK: call <vscale x 8 x half> @llvm.aarch64.sme.read.horiz.nxv8f16
387
373
%res5 = " arm_sme.intr.read.horiz" (%nxv8f16 , %nxv8i1 , %tile , %tileslice )
388
374
: (vector <[8 ]xf16 >, vector <[8 ]xi1 >, i32 , i32 ) -> vector <[8 ]xf16 >
389
- llvm.call @prevent_dce.nxv8f16 (%res5 ) : (vector <[8 ]xf16 >) -> ()
390
375
// CHECK: call <vscale x 8 x bfloat> @llvm.aarch64.sme.read.horiz.nxv8bf16
391
376
%res6 = " arm_sme.intr.read.horiz" (%nxv8bf16 , %nxv8i1 , %tile , %tileslice )
392
377
: (vector <[8 ]xbf16 >, vector <[8 ]xi1 >, i32 , i32 ) -> vector <[8 ]xbf16 >
393
- llvm.call @prevent_dce.nxv8bf16 (%res6 ) : (vector <[8 ]xbf16 >) -> ()
394
378
// CHECK: call <vscale x 4 x float> @llvm.aarch64.sme.read.horiz.nxv4f32
395
379
%res7 = " arm_sme.intr.read.horiz" (%nxv4f32 , %nxv4i1 , %tile , %tileslice )
396
380
: (vector <[4 ]xf32 >, vector <[4 ]xi1 >, i32 , i32 ) -> vector <[4 ]xf32 >
397
- llvm.call @prevent_dce.nxv4f32 (%res7 ) : (vector <[4 ]xf32 >) -> ()
398
381
// CHECK: call <vscale x 2 x double> @llvm.aarch64.sme.read.horiz.nxv2f64
399
382
%res8 = " arm_sme.intr.read.horiz" (%nxv2f64 , %nxv2i1 , %tile , %tileslice )
400
383
: (vector <[2 ]xf64 >, vector <[2 ]xi1 >, i32 , i32 ) -> vector <[2 ]xf64 >
401
- llvm.call @prevent_dce.nxv2f64 (%res8 ) : (vector <[2 ]xf64 >) -> ()
402
384
llvm.return
403
385
}
404
386
405
387
// -----
406
388
407
- llvm.func @prevent_dce.nxv16i8 (vector <[16 ]xi8 >)
408
- llvm.func @prevent_dce.nxv8i16 (vector <[8 ]xi16 >)
409
- llvm.func @prevent_dce.nxv4i32 (vector <[4 ]xi32 >)
410
- llvm.func @prevent_dce.nxv2i64 (vector <[2 ]xi64 >)
411
- llvm.func @prevent_dce.nxv1i128 (vector <[1 ]xi128 >)
412
- llvm.func @prevent_dce.nxv8f16 (vector <[8 ]xf16 >)
413
- llvm.func @prevent_dce.nxv8bf16 (vector <[8 ]xbf16 >)
414
- llvm.func @prevent_dce.nxv4f32 (vector <[4 ]xf32 >)
415
- llvm.func @prevent_dce.nxv2f64 (vector <[2 ]xf64 >)
416
-
417
389
llvm.func @arm_sme_tile_slice_to_vector_vert (%tileslice : i32 ,
418
390
%nxv16i1 : vector <[16 ]xi1 >,
419
391
%nxv8i1 : vector <[8 ]xi1 >,
@@ -433,38 +405,29 @@ llvm.func @arm_sme_tile_slice_to_vector_vert(%tileslice : i32,
433
405
// CHECK: call <vscale x 16 x i8> @llvm.aarch64.sme.read.vert.nxv16i8
434
406
%res0 = " arm_sme.intr.read.vert" (%nxv16i8 , %nxv16i1 , %tile , %tileslice )
435
407
: (vector <[16 ]xi8 >, vector <[16 ]xi1 >, i32 , i32 ) -> vector <[16 ]xi8 >
436
- llvm.call @prevent_dce.nxv16i8 (%res0 ) : (vector <[16 ]xi8 >) -> ()
437
408
// CHECK: call <vscale x 8 x i16> @llvm.aarch64.sme.read.vert.nxv8i16
438
409
%res1 = " arm_sme.intr.read.vert" (%nxv8i16 , %nxv8i1 , %tile , %tileslice )
439
410
: (vector <[8 ]xi16 >, vector <[8 ]xi1 >, i32 , i32 ) -> vector <[8 ]xi16 >
440
- llvm.call @prevent_dce.nxv8i16 (%res1 ) : (vector <[8 ]xi16 >) -> ()
441
411
// CHECK: call <vscale x 4 x i32> @llvm.aarch64.sme.read.vert.nxv4i32
442
412
%res2 = " arm_sme.intr.read.vert" (%nxv4i32 , %nxv4i1 , %tile , %tileslice )
443
413
: (vector <[4 ]xi32 >, vector <[4 ]xi1 >, i32 , i32 ) -> vector <[4 ]xi32 >
444
- llvm.call @prevent_dce.nxv4i32 (%res2 ) : (vector <[4 ]xi32 >) -> ()
445
414
// CHECK: call <vscale x 2 x i64> @llvm.aarch64.sme.read.vert.nxv2i64
446
415
%res3 = " arm_sme.intr.read.vert" (%nxv2i64 , %nxv2i1 , %tile , %tileslice )
447
416
: (vector <[2 ]xi64 >, vector <[2 ]xi1 >, i32 , i32 ) -> vector <[2 ]xi64 >
448
- llvm.call @prevent_dce.nxv2i64 (%res3 ) : (vector <[2 ]xi64 >) -> ()
449
417
// CHECK: call <vscale x 1 x i128> @llvm.aarch64.sme.read.vert.nxv1i128
450
418
%res4 = " arm_sme.intr.read.vert" (%nxv1i128 , %nxv1i1 , %tile , %tileslice )
451
419
: (vector <[1 ]xi128 >, vector <[1 ]xi1 >, i32 , i32 ) -> vector <[1 ]xi128 >
452
- llvm.call @prevent_dce.nxv1i128 (%res4 ) : (vector <[1 ]xi128 >) -> ()
453
420
// CHECK: call <vscale x 8 x half> @llvm.aarch64.sme.read.vert.nxv8f16
454
421
%res5 = " arm_sme.intr.read.vert" (%nxv8f16 , %nxv8i1 , %tile , %tileslice )
455
422
: (vector <[8 ]xf16 >, vector <[8 ]xi1 >, i32 , i32 ) -> vector <[8 ]xf16 >
456
- llvm.call @prevent_dce.nxv8f16 (%res5 ) : (vector <[8 ]xf16 >) -> ()
457
423
// CHECK: call <vscale x 8 x bfloat> @llvm.aarch64.sme.read.vert.nxv8bf16
458
424
%res6 = " arm_sme.intr.read.vert" (%nxv8bf16 , %nxv8i1 , %tile , %tileslice )
459
425
: (vector <[8 ]xbf16 >, vector <[8 ]xi1 >, i32 , i32 ) -> vector <[8 ]xbf16 >
460
- llvm.call @prevent_dce.nxv8bf16 (%res6 ) : (vector <[8 ]xbf16 >) -> ()
461
426
// CHECK: call <vscale x 4 x float> @llvm.aarch64.sme.read.vert.nxv4f32
462
427
%res7 = " arm_sme.intr.read.vert" (%nxv4f32 , %nxv4i1 , %tile , %tileslice )
463
428
: (vector <[4 ]xf32 >, vector <[4 ]xi1 >, i32 , i32 ) -> vector <[4 ]xf32 >
464
- llvm.call @prevent_dce.nxv4f32 (%res7 ) : (vector <[4 ]xf32 >) -> ()
465
429
// CHECK: call <vscale x 2 x double> @llvm.aarch64.sme.read.vert.nxv2f64
466
430
%res8 = " arm_sme.intr.read.vert" (%nxv2f64 , %nxv2i1 , %tile , %tileslice )
467
431
: (vector <[2 ]xf64 >, vector <[2 ]xi1 >, i32 , i32 ) -> vector <[2 ]xf64 >
468
- llvm.call @prevent_dce.nxv2f64 (%res8 ) : (vector <[2 ]xf64 >) -> ()
469
432
llvm.return
470
433
}
0 commit comments