1
1
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4
2
- ; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sme2p1 -mattr=+sme -verify-machineinstrs < %s | FileCheck %s
2
+ ; RUN: llc -verify-machineinstrs -force-streaming < %s | FileCheck %s
3
+
4
+ target triple = "aarch64-linux"
3
5
4
6
;MOVAZ (tile to vector, Multi)
5
7
@@ -420,7 +422,6 @@ define {<vscale x 2 x double>, <vscale x 2 x double>,<vscale x 2 x double>, <vsc
420
422
ret {<vscale x 2 x double >, <vscale x 2 x double >,<vscale x 2 x double >, <vscale x 2 x double >} %res
421
423
}
422
424
423
- attributes #0 = { "target-features" ="+sve" }
424
425
425
426
declare {<vscale x 16 x i8 >, <vscale x 16 x i8 >} @llvm.aarch64.sme.readz.horiz.za8.x2.nxv16i8 (i32 , i32 )
426
427
declare {<vscale x 8 x i16 >, <vscale x 8 x i16 >} @llvm.aarch64.sme.readz.horiz.x2.nxv8i16 (i32 , i32 )
@@ -463,7 +464,7 @@ declare {<vscale x 2 x double>, <vscale x 2 x double>,<vscale x 2 x double>, <vs
463
464
;;
464
465
; Horiz
465
466
;;
466
- define <vscale x 16 x i8 > @test_readz_hor_z8_i8 (i32 %tile , i32 %slice ) {
467
+ define <vscale x 16 x i8 > @test_readz_hor_z8_i8 (i32 %tile , i32 %slice ) # 0 {
467
468
; CHECK-LABEL: test_readz_hor_z8_i8:
468
469
; CHECK: // %bb.0:
469
470
; CHECK-NEXT: mov w12, w1
@@ -476,7 +477,7 @@ define <vscale x 16 x i8> @test_readz_hor_z8_i8(i32 %tile, i32 %slice) {
476
477
ret <vscale x 16 x i8 > %res2
477
478
}
478
479
479
- define <vscale x 8 x i16 > @test_readz_hor_z16_i16 (i32 %tile , i32 %slice ) {
480
+ define <vscale x 8 x i16 > @test_readz_hor_z16_i16 (i32 %tile , i32 %slice ) # 0 {
480
481
; CHECK-LABEL: test_readz_hor_z16_i16:
481
482
; CHECK: // %bb.0:
482
483
; CHECK-NEXT: mov w12, w1
@@ -489,7 +490,7 @@ define <vscale x 8 x i16> @test_readz_hor_z16_i16(i32 %tile, i32 %slice) {
489
490
ret <vscale x 8 x i16 > %res2
490
491
}
491
492
492
- define <vscale x 4 x i32 > @test_readz_hor_z32_i32 (i32 %tile , i32 %slice ) {
493
+ define <vscale x 4 x i32 > @test_readz_hor_z32_i32 (i32 %tile , i32 %slice ) # 0 {
493
494
; CHECK-LABEL: test_readz_hor_z32_i32:
494
495
; CHECK: // %bb.0:
495
496
; CHECK-NEXT: mov w12, w1
@@ -502,7 +503,7 @@ define <vscale x 4 x i32> @test_readz_hor_z32_i32(i32 %tile, i32 %slice) {
502
503
ret <vscale x 4 x i32 > %res2
503
504
}
504
505
505
- define <vscale x 2 x i64 > @test_readz_hor_z64_i64 (i32 %tile , i32 %slice ) {
506
+ define <vscale x 2 x i64 > @test_readz_hor_z64_i64 (i32 %tile , i32 %slice ) # 0 {
506
507
; CHECK-LABEL: test_readz_hor_z64_i64:
507
508
; CHECK: // %bb.0:
508
509
; CHECK-NEXT: mov w12, w1
@@ -515,7 +516,7 @@ define <vscale x 2 x i64> @test_readz_hor_z64_i64(i32 %tile, i32 %slice) {
515
516
ret <vscale x 2 x i64 > %res
516
517
}
517
518
518
- define <vscale x 8 x bfloat> @test_readz_hor_z16_bf16 (i32 %tile , i32 %slice ) {
519
+ define <vscale x 8 x bfloat> @test_readz_hor_z16_bf16 (i32 %tile , i32 %slice ) # 0 {
519
520
; CHECK-LABEL: test_readz_hor_z16_bf16:
520
521
; CHECK: // %bb.0:
521
522
; CHECK-NEXT: mov w12, w1
@@ -528,7 +529,7 @@ define <vscale x 8 x bfloat> @test_readz_hor_z16_bf16(i32 %tile, i32 %slice) {
528
529
ret <vscale x 8 x bfloat> %res2
529
530
}
530
531
531
- define <vscale x 8 x half > @test_readz_hor_z16_f16 (i32 %tile , i32 %slice ) {
532
+ define <vscale x 8 x half > @test_readz_hor_z16_f16 (i32 %tile , i32 %slice ) # 0 {
532
533
; CHECK-LABEL: test_readz_hor_z16_f16:
533
534
; CHECK: // %bb.0:
534
535
; CHECK-NEXT: mov w12, w1
@@ -541,7 +542,7 @@ define <vscale x 8 x half> @test_readz_hor_z16_f16(i32 %tile, i32 %slice) {
541
542
ret <vscale x 8 x half > %res2
542
543
}
543
544
544
- define <vscale x 4 x float > @test_readz_hor_z32_f32 (i32 %tile , i32 %slice ) {
545
+ define <vscale x 4 x float > @test_readz_hor_z32_f32 (i32 %tile , i32 %slice ) # 0 {
545
546
; CHECK-LABEL: test_readz_hor_z32_f32:
546
547
; CHECK: // %bb.0:
547
548
; CHECK-NEXT: mov w12, w1
@@ -554,7 +555,7 @@ define <vscale x 4 x float> @test_readz_hor_z32_f32(i32 %tile, i32 %slice) {
554
555
ret <vscale x 4 x float > %res2
555
556
}
556
557
557
- define <vscale x 2 x double > @test_readz_hor_z64_f64 (i32 %tile , i32 %slice ) {
558
+ define <vscale x 2 x double > @test_readz_hor_z64_f64 (i32 %tile , i32 %slice ) # 0 {
558
559
; CHECK-LABEL: test_readz_hor_z64_f64:
559
560
; CHECK: // %bb.0:
560
561
; CHECK-NEXT: mov w12, w1
@@ -567,7 +568,7 @@ define <vscale x 2 x double> @test_readz_hor_z64_f64(i32 %tile, i32 %slice) {
567
568
ret <vscale x 2 x double > %res
568
569
}
569
570
570
- define <vscale x 16 x i8 > @test_readz_hor_z128_i8 (i32 %tile , i32 %slice ) {
571
+ define <vscale x 16 x i8 > @test_readz_hor_z128_i8 (i32 %tile , i32 %slice ) # 0 {
571
572
; CHECK-LABEL: test_readz_hor_z128_i8:
572
573
; CHECK: // %bb.0:
573
574
; CHECK-NEXT: mov w12, w1
@@ -579,7 +580,7 @@ define <vscale x 16 x i8> @test_readz_hor_z128_i8(i32 %tile, i32 %slice) {
579
580
ret <vscale x 16 x i8 > %res2
580
581
}
581
582
582
- define <vscale x 8 x i16 > @test_readz_hor_z128_i16 (i32 %tile , i32 %slice ) {
583
+ define <vscale x 8 x i16 > @test_readz_hor_z128_i16 (i32 %tile , i32 %slice ) # 0 {
583
584
; CHECK-LABEL: test_readz_hor_z128_i16:
584
585
; CHECK: // %bb.0:
585
586
; CHECK-NEXT: mov w12, w1
@@ -591,7 +592,7 @@ define <vscale x 8 x i16> @test_readz_hor_z128_i16(i32 %tile, i32 %slice) {
591
592
ret <vscale x 8 x i16 > %res2
592
593
}
593
594
594
- define <vscale x 4 x i32 > @test_readz_hor_z128_i32 (i32 %tile , i32 %slice ) {
595
+ define <vscale x 4 x i32 > @test_readz_hor_z128_i32 (i32 %tile , i32 %slice ) # 0 {
595
596
; CHECK-LABEL: test_readz_hor_z128_i32:
596
597
; CHECK: // %bb.0:
597
598
; CHECK-NEXT: mov w12, w1
@@ -603,7 +604,7 @@ define <vscale x 4 x i32> @test_readz_hor_z128_i32(i32 %tile, i32 %slice) {
603
604
ret <vscale x 4 x i32 > %res2
604
605
}
605
606
606
- define <vscale x 2 x i64 > @test_readz_hor_z128_i64 (i32 %tile , i32 %slice ) {
607
+ define <vscale x 2 x i64 > @test_readz_hor_z128_i64 (i32 %tile , i32 %slice ) # 0 {
607
608
; CHECK-LABEL: test_readz_hor_z128_i64:
608
609
; CHECK: // %bb.0:
609
610
; CHECK-NEXT: mov w12, w1
@@ -615,7 +616,7 @@ define <vscale x 2 x i64> @test_readz_hor_z128_i64(i32 %tile, i32 %slice) {
615
616
ret <vscale x 2 x i64 > %res
616
617
}
617
618
618
- define <vscale x 8 x bfloat> @test_readz_hor_z128_bf16 (i32 %tile , i32 %slice ) {
619
+ define <vscale x 8 x bfloat> @test_readz_hor_z128_bf16 (i32 %tile , i32 %slice ) # 0 {
619
620
; CHECK-LABEL: test_readz_hor_z128_bf16:
620
621
; CHECK: // %bb.0:
621
622
; CHECK-NEXT: mov w12, w1
@@ -627,7 +628,7 @@ define <vscale x 8 x bfloat> @test_readz_hor_z128_bf16(i32 %tile, i32 %slice) {
627
628
ret <vscale x 8 x bfloat> %res2
628
629
}
629
630
630
- define <vscale x 8 x half > @test_readz_hor_z128_f16 (i32 %tile , i32 %slice ) {
631
+ define <vscale x 8 x half > @test_readz_hor_z128_f16 (i32 %tile , i32 %slice ) # 0 {
631
632
; CHECK-LABEL: test_readz_hor_z128_f16:
632
633
; CHECK: // %bb.0:
633
634
; CHECK-NEXT: mov w12, w1
@@ -639,7 +640,7 @@ define <vscale x 8 x half> @test_readz_hor_z128_f16(i32 %tile, i32 %slice) {
639
640
ret <vscale x 8 x half > %res2
640
641
}
641
642
642
- define <vscale x 4 x float > @test_readz_hor_z128_f32 (i32 %tile , i32 %slice ) {
643
+ define <vscale x 4 x float > @test_readz_hor_z128_f32 (i32 %tile , i32 %slice ) # 0 {
643
644
; CHECK-LABEL: test_readz_hor_z128_f32:
644
645
; CHECK: // %bb.0:
645
646
; CHECK-NEXT: mov w12, w1
@@ -651,7 +652,7 @@ define <vscale x 4 x float> @test_readz_hor_z128_f32(i32 %tile, i32 %slice) {
651
652
ret <vscale x 4 x float > %res2
652
653
}
653
654
654
- define <vscale x 2 x double > @test_readz_hor_z128_f64 (i32 %tile , i32 %slice ) {
655
+ define <vscale x 2 x double > @test_readz_hor_z128_f64 (i32 %tile , i32 %slice ) # 0 {
655
656
; CHECK-LABEL: test_readz_hor_z128_f64:
656
657
; CHECK: // %bb.0:
657
658
; CHECK-NEXT: mov w12, w1
@@ -666,7 +667,7 @@ define <vscale x 2 x double> @test_readz_hor_z128_f64(i32 %tile, i32 %slice) {
666
667
;;
667
668
; Vert
668
669
;;
669
- define <vscale x 16 x i8 > @test_readz_ver_z8_i8 (i32 %tile , i32 %slice ) {
670
+ define <vscale x 16 x i8 > @test_readz_ver_z8_i8 (i32 %tile , i32 %slice ) # 0 {
670
671
; CHECK-LABEL: test_readz_ver_z8_i8:
671
672
; CHECK: // %bb.0:
672
673
; CHECK-NEXT: mov w12, w1
@@ -679,7 +680,7 @@ define <vscale x 16 x i8> @test_readz_ver_z8_i8(i32 %tile, i32 %slice) {
679
680
ret <vscale x 16 x i8 > %res2
680
681
}
681
682
682
- define <vscale x 8 x i16 > @test_readz_ver_z16_i16 (i32 %tile , i32 %slice ) {
683
+ define <vscale x 8 x i16 > @test_readz_ver_z16_i16 (i32 %tile , i32 %slice ) # 0 {
683
684
; CHECK-LABEL: test_readz_ver_z16_i16:
684
685
; CHECK: // %bb.0:
685
686
; CHECK-NEXT: mov w12, w1
@@ -692,7 +693,7 @@ define <vscale x 8 x i16> @test_readz_ver_z16_i16(i32 %tile, i32 %slice) {
692
693
ret <vscale x 8 x i16 > %res2
693
694
}
694
695
695
- define <vscale x 4 x i32 > @test_readz_ver_z32_i32 (i32 %tile , i32 %slice ) {
696
+ define <vscale x 4 x i32 > @test_readz_ver_z32_i32 (i32 %tile , i32 %slice ) # 0 {
696
697
; CHECK-LABEL: test_readz_ver_z32_i32:
697
698
; CHECK: // %bb.0:
698
699
; CHECK-NEXT: mov w12, w1
@@ -705,7 +706,7 @@ define <vscale x 4 x i32> @test_readz_ver_z32_i32(i32 %tile, i32 %slice) {
705
706
ret <vscale x 4 x i32 > %res2
706
707
}
707
708
708
- define <vscale x 2 x i64 > @test_readz_ver_z64_i64 (i32 %tile , i32 %slice ) {
709
+ define <vscale x 2 x i64 > @test_readz_ver_z64_i64 (i32 %tile , i32 %slice ) # 0 {
709
710
; CHECK-LABEL: test_readz_ver_z64_i64:
710
711
; CHECK: // %bb.0:
711
712
; CHECK-NEXT: mov w12, w1
@@ -718,7 +719,7 @@ define <vscale x 2 x i64> @test_readz_ver_z64_i64(i32 %tile, i32 %slice) {
718
719
ret <vscale x 2 x i64 > %res
719
720
}
720
721
721
- define <vscale x 8 x bfloat> @test_readz_ver_z16_bf16 (i32 %tile , i32 %slice ) {
722
+ define <vscale x 8 x bfloat> @test_readz_ver_z16_bf16 (i32 %tile , i32 %slice ) # 0 {
722
723
; CHECK-LABEL: test_readz_ver_z16_bf16:
723
724
; CHECK: // %bb.0:
724
725
; CHECK-NEXT: mov w12, w1
@@ -731,7 +732,7 @@ define <vscale x 8 x bfloat> @test_readz_ver_z16_bf16(i32 %tile, i32 %slice) {
731
732
ret <vscale x 8 x bfloat> %res2
732
733
}
733
734
734
- define <vscale x 8 x half > @test_readz_ver_z16_f16 (i32 %tile , i32 %slice ) {
735
+ define <vscale x 8 x half > @test_readz_ver_z16_f16 (i32 %tile , i32 %slice ) # 0 {
735
736
; CHECK-LABEL: test_readz_ver_z16_f16:
736
737
; CHECK: // %bb.0:
737
738
; CHECK-NEXT: mov w12, w1
@@ -744,7 +745,7 @@ define <vscale x 8 x half> @test_readz_ver_z16_f16(i32 %tile, i32 %slice) {
744
745
ret <vscale x 8 x half > %res2
745
746
}
746
747
747
- define <vscale x 4 x float > @test_readz_ver_z32_f32 (i32 %tile , i32 %slice ) {
748
+ define <vscale x 4 x float > @test_readz_ver_z32_f32 (i32 %tile , i32 %slice ) # 0 {
748
749
; CHECK-LABEL: test_readz_ver_z32_f32:
749
750
; CHECK: // %bb.0:
750
751
; CHECK-NEXT: mov w12, w1
@@ -757,7 +758,7 @@ define <vscale x 4 x float> @test_readz_ver_z32_f32(i32 %tile, i32 %slice) {
757
758
ret <vscale x 4 x float > %res2
758
759
}
759
760
760
- define <vscale x 2 x double > @test_readz_ver_z64_f64 (i32 %tile , i32 %slice ) {
761
+ define <vscale x 2 x double > @test_readz_ver_z64_f64 (i32 %tile , i32 %slice ) # 0 {
761
762
; CHECK-LABEL: test_readz_ver_z64_f64:
762
763
; CHECK: // %bb.0:
763
764
; CHECK-NEXT: mov w12, w1
@@ -770,7 +771,7 @@ define <vscale x 2 x double> @test_readz_ver_z64_f64(i32 %tile, i32 %slice) {
770
771
ret <vscale x 2 x double > %res
771
772
}
772
773
773
- define <vscale x 16 x i8 > @test_readz_ver_z128_i8 (i32 %tile , i32 %slice ) {
774
+ define <vscale x 16 x i8 > @test_readz_ver_z128_i8 (i32 %tile , i32 %slice ) # 0 {
774
775
; CHECK-LABEL: test_readz_ver_z128_i8:
775
776
; CHECK: // %bb.0:
776
777
; CHECK-NEXT: mov w12, w1
@@ -782,7 +783,7 @@ define <vscale x 16 x i8> @test_readz_ver_z128_i8(i32 %tile, i32 %slice) {
782
783
ret <vscale x 16 x i8 > %res2
783
784
}
784
785
785
- define <vscale x 8 x i16 > @test_readz_ver_z128_i16 (i32 %tile , i32 %slice ) {
786
+ define <vscale x 8 x i16 > @test_readz_ver_z128_i16 (i32 %tile , i32 %slice ) # 0 {
786
787
; CHECK-LABEL: test_readz_ver_z128_i16:
787
788
; CHECK: // %bb.0:
788
789
; CHECK-NEXT: mov w12, w1
@@ -794,7 +795,7 @@ define <vscale x 8 x i16> @test_readz_ver_z128_i16(i32 %tile, i32 %slice) {
794
795
ret <vscale x 8 x i16 > %res2
795
796
}
796
797
797
- define <vscale x 4 x i32 > @test_readz_ver_z128_i32 (i32 %tile , i32 %slice ) {
798
+ define <vscale x 4 x i32 > @test_readz_ver_z128_i32 (i32 %tile , i32 %slice ) # 0 {
798
799
; CHECK-LABEL: test_readz_ver_z128_i32:
799
800
; CHECK: // %bb.0:
800
801
; CHECK-NEXT: mov w12, w1
@@ -806,7 +807,7 @@ define <vscale x 4 x i32> @test_readz_ver_z128_i32(i32 %tile, i32 %slice) {
806
807
ret <vscale x 4 x i32 > %res2
807
808
}
808
809
809
- define <vscale x 2 x i64 > @test_readz_ver_z128_i64 (i32 %tile , i32 %slice ) {
810
+ define <vscale x 2 x i64 > @test_readz_ver_z128_i64 (i32 %tile , i32 %slice ) # 0 {
810
811
; CHECK-LABEL: test_readz_ver_z128_i64:
811
812
; CHECK: // %bb.0:
812
813
; CHECK-NEXT: mov w12, w1
@@ -818,7 +819,7 @@ define <vscale x 2 x i64> @test_readz_ver_z128_i64(i32 %tile, i32 %slice) {
818
819
ret <vscale x 2 x i64 > %res
819
820
}
820
821
821
- define <vscale x 8 x bfloat> @test_readz_ver_z128_bf16 (i32 %tile , i32 %slice ) {
822
+ define <vscale x 8 x bfloat> @test_readz_ver_z128_bf16 (i32 %tile , i32 %slice ) # 0 {
822
823
; CHECK-LABEL: test_readz_ver_z128_bf16:
823
824
; CHECK: // %bb.0:
824
825
; CHECK-NEXT: mov w12, w1
@@ -830,7 +831,7 @@ define <vscale x 8 x bfloat> @test_readz_ver_z128_bf16(i32 %tile, i32 %slice) {
830
831
ret <vscale x 8 x bfloat> %res2
831
832
}
832
833
833
- define <vscale x 8 x half > @test_readz_ver_z128_f16 (i32 %tile , i32 %slice ) {
834
+ define <vscale x 8 x half > @test_readz_ver_z128_f16 (i32 %tile , i32 %slice ) # 0 {
834
835
; CHECK-LABEL: test_readz_ver_z128_f16:
835
836
; CHECK: // %bb.0:
836
837
; CHECK-NEXT: mov w12, w1
@@ -842,7 +843,7 @@ define <vscale x 8 x half> @test_readz_ver_z128_f16(i32 %tile, i32 %slice) {
842
843
ret <vscale x 8 x half > %res2
843
844
}
844
845
845
- define <vscale x 4 x float > @test_readz_ver_z128_f32 (i32 %tile , i32 %slice ) {
846
+ define <vscale x 4 x float > @test_readz_ver_z128_f32 (i32 %tile , i32 %slice ) # 0 {
846
847
; CHECK-LABEL: test_readz_ver_z128_f32:
847
848
; CHECK: // %bb.0:
848
849
; CHECK-NEXT: mov w12, w1
@@ -854,7 +855,7 @@ define <vscale x 4 x float> @test_readz_ver_z128_f32(i32 %tile, i32 %slice) {
854
855
ret <vscale x 4 x float > %res2
855
856
}
856
857
857
- define <vscale x 2 x double > @test_readz_ver_z128_f64 (i32 %tile , i32 %slice ) {
858
+ define <vscale x 2 x double > @test_readz_ver_z128_f64 (i32 %tile , i32 %slice ) # 0 {
858
859
; CHECK-LABEL: test_readz_ver_z128_f64:
859
860
; CHECK: // %bb.0:
860
861
; CHECK-NEXT: mov w12, w1
@@ -900,3 +901,4 @@ declare <vscale x 8 x bfloat> @llvm.aarch64.sme.readz.q.vert.nxv8bf16(i32, i32)
900
901
declare <vscale x 8 x half > @llvm.aarch64.sme.readz.q.vert.nxv8f16 (i32 , i32 )
901
902
declare <vscale x 4 x float > @llvm.aarch64.sme.readz.q.vert.nxv4f32 (i32 , i32 )
902
903
declare <vscale x 2 x double > @llvm.aarch64.sme.readz.q.vert.nxv2f64 (i32 , i32 )
904
+ attributes #0 = { nounwind "target-features" = "+sme2p1" }
0 commit comments