@@ -622,7 +622,7 @@ body: |
622
622
STRQui killed renamable $q0, $sp, 2 :: (store 16, align 128)
623
623
RET undef $lr
624
624
625
- ...
625
+ ...
626
626
---
627
627
#
628
628
# CHECK-LABEL: name: ldst-no-reg-available
@@ -650,7 +650,7 @@ body: |
650
650
STRQui killed renamable $q0, $sp, 2 :: (store 16, align 32)
651
651
RET undef $lr
652
652
653
- ...
653
+ ...
654
654
---
655
655
#
656
656
# CHECK-LABEL: name: ldst-basereg-modified
@@ -677,7 +677,7 @@ body: |
677
677
STRQui killed renamable $q0, $sp, 2 :: (store 16, align 32)
678
678
RET undef $lr
679
679
680
- ...
680
+ ...
681
681
---
682
682
#
683
683
# CHECK-LABEL: name: ldr-dest-reg-implicit-killed
@@ -700,3 +700,115 @@ body: |
700
700
renamable $q0 = LDRQui $sp, 0 :: (load 16, align 32)
701
701
STRSui renamable $s0, $sp, 10, implicit killed $q0 :: (store (s32))
702
702
RET undef $lr
703
+
704
+ ...
705
+ ---
706
+ #
707
+ # CHECK-LABEL: name: bundled
708
+ # CHECK: renamable $q0, $q1 = LDPQi $sp, 0 :: (load (s128)), (load (s128), align 32)
709
+ # CHECK-NEXT: STPSi $s1, renamable $s0, $sp, 9 :: (store (s32))
710
+ # CHECK-NEXT: BUNDLE implicit-def $z3
711
+ # CHECK-NEXT: $z3 = MOVPRFX_ZZ $z19
712
+ # CHECK-NEXT: $z3 = FMUL_ZPmZ_S renamable $p0, killed $z3, renamable $z16
713
+ # CHECK-NEXT: }
714
+ # CHECK-NEXT: RET undef $lr
715
+ #
716
+ name : bundled
717
+ alignment : 4
718
+ tracksRegLiveness : true
719
+ frameInfo :
720
+ maxAlignment : 1
721
+ maxCallFrameSize : 0
722
+ machineFunctionInfo :
723
+ hasRedZone : false
724
+ body : |
725
+ bb.0.entry:
726
+ liveins: $z3, $z19, $p0, $z16
727
+ renamable $q0 = LDRQui $sp, 1 :: (load 16)
728
+ STRSui renamable $s0, $sp, 9, implicit killed $q0 :: (store (s32))
729
+ BUNDLE implicit-def $z3, implicit-def $q3, implicit-def $d3, implicit-def $s3, implicit-def $h3, implicit-def $b3, implicit $z19, implicit $p0, implicit $z16 {
730
+ $z3 = MOVPRFX_ZZ $z19
731
+ $z3 = FMUL_ZPmZ_S renamable $p0, killed $z3, renamable $z16
732
+ }
733
+ renamable $q0 = LDRQui $sp, 0 :: (load 16, align 32)
734
+ STRSui renamable $s0, $sp, 10, implicit killed $q0 :: (store (s32))
735
+ RET undef $lr
736
+ ...
737
+ ---
738
+ #
739
+ # CHECK-LABEL: name: bundled_use
740
+ # CHECK: renamable $q0 = LDRQui $sp, 1
741
+ # CHECK-NEXT: STRQui renamable $q0, $sp, 3, implicit-def $z0
742
+ # CHECK-NEXT: BUNDLE implicit-def $z3
743
+ # CHECK-NEXT: $z3 = MOVPRFX_ZZ $z19
744
+ # CHECK-NEXT: $z3 = FMUL_ZPmZ_S renamable $p0, killed $z3, renamable $z0
745
+ # CHECK-NEXT: }
746
+ # CHECK-NEXT: renamable $q0 = LDRQui $sp, 0
747
+ # CHECK-NEXT: STRQui killed renamable $q0, $sp, 2
748
+ # CHECK-NEXT: RET undef $lr
749
+ #
750
+ name : bundled_use
751
+ alignment : 4
752
+ tracksRegLiveness : true
753
+ frameInfo :
754
+ maxAlignment : 1
755
+ maxCallFrameSize : 0
756
+ machineFunctionInfo :
757
+ hasRedZone : false
758
+ body : |
759
+ bb.0.entry:
760
+ liveins: $z3, $z19, $p0, $z16
761
+ renamable $q0 = LDRQui $sp, 1 :: (load 16)
762
+ STRQui renamable $q0, $sp, 3, implicit-def $z0 :: (store 16, basealign 128)
763
+ BUNDLE implicit-def $z3, implicit-def $q3, implicit-def $d3, implicit-def $s3, implicit-def $h3, implicit-def $b3, implicit $z19, implicit $p0, implicit $z0, implicit $q0 {
764
+ $z3 = MOVPRFX_ZZ $z19
765
+ $z3 = FMUL_ZPmZ_S renamable $p0, killed $z3, renamable $z0
766
+ }
767
+ renamable $q0 = LDRQui $sp, 0 :: (load 16, align 128)
768
+ STRQui killed renamable $q0, $sp, 2 :: (store 16, align 128)
769
+ RET undef $lr
770
+
771
+ ...
772
+ ---
773
+ #
774
+ # CHECK-LABEL: name: bundle_at_limit
775
+ # CHECK: renamable $x3, $x4 = LDPXi $sp, 1 :: (load (s64))
776
+ #
777
+ name : bundle_at_limit
778
+ alignment : 4
779
+ tracksRegLiveness : true
780
+ frameInfo :
781
+ maxAlignment : 1
782
+ maxCallFrameSize : 0
783
+ machineFunctionInfo :
784
+ hasRedZone : false
785
+ body : |
786
+ bb.0.entry:
787
+ liveins: $x0, $x1, $x2, $z0, $p0, $z3, $z19
788
+ renamable $x3 = LDRXui $sp, 2 :: (load (s64))
789
+ $x2 = ADDXri renamable $x2, 1, 0
790
+ $x2 = ADDXri renamable $x3, 1, 0
791
+ $x2 = ADDXri renamable $x2, 1, 0
792
+ $x2 = ADDXri renamable $x2, 1, 0
793
+ $x2 = ADDXri renamable $x2, 1, 0
794
+ $x2 = ADDXri renamable $x2, 1, 0
795
+ $x2 = ADDXri renamable $x2, 1, 0
796
+ $x2 = ADDXri renamable $x2, 1, 0
797
+ $x2 = ADDXri renamable $x2, 1, 0
798
+ $x2 = ADDXri renamable $x2, 1, 0
799
+ $x2 = ADDXri renamable $x2, 1, 0
800
+ $x2 = ADDXri renamable $x2, 1, 0
801
+ $x2 = ADDXri renamable $x2, 1, 0
802
+ $x2 = ADDXri renamable $x2, 1, 0
803
+ $x2 = ADDXri renamable $x2, 1, 0
804
+ $x2 = ADDXri renamable $x2, 1, 0
805
+ $x2 = ADDXri renamable $x3, 1, 0
806
+ BUNDLE implicit-def $z3, implicit-def $q3, implicit-def $d3, implicit-def $s3, implicit-def $h3, implicit-def $b3, implicit $z19, implicit $p0, implicit $z0 {
807
+ $z3 = MOVPRFX_ZZ $z19
808
+ $z3 = FMUL_ZPmZ_S renamable $p0, killed $z3, renamable $z0
809
+ }
810
+ $x2 = ADDXri renamable $x3, 1, 0
811
+ renamable $x3 = LDRXui $sp, 1 :: (load (s64))
812
+ RET undef $lr
813
+
814
+ ...
0 commit comments