@@ -62,7 +62,7 @@ body: |
6262 ; CHECK-NEXT: RET undef $lr
6363 $x8 = MRS 56965, implicit-def $nzcv
6464
65- CommitZASavePseudo $x8, 0, &__arm_tpidr2_save, csr_aarch64_sme_abi_support_routines_preservemost_from_x0
65+ CommitZASavePseudo $x8, 0, 0, &__arm_tpidr2_save, csr_aarch64_sme_abi_support_routines_preservemost_from_x0
6666
6767 RET_ReallyLR
6868
@@ -94,7 +94,72 @@ body: |
9494 ; CHECK-NEXT: RET undef $lr
9595 $x8 = MRS 56965, implicit-def $nzcv
9696
97- CommitZASavePseudo $x8, 1, &__arm_tpidr2_save, csr_aarch64_sme_abi_support_routines_preservemost_from_x0, implicit-def $zab0
97+ CommitZASavePseudo $x8, 1, 0, &__arm_tpidr2_save, csr_aarch64_sme_abi_support_routines_preservemost_from_x0, implicit-def $zab0
98+
99+ RET_ReallyLR
100+
101+ ...
102+ ---
103+ # X8 = TPIDR2_EL0
104+ name : commit_za_save_zero_zt0
105+ alignment : 4
106+ tracksRegLiveness : true
107+ body : |
108+ bb.0:
109+ ; CHECK-LABEL: name: commit_za_save_zero_zt0
110+ ; CHECK: successors: %bb.1(0x40000000), %bb.2(0x40000000)
111+ ; CHECK-NEXT: {{ $}}
112+ ; CHECK-NEXT: $x8 = MRS 56965, implicit-def $nzcv
113+ ; CHECK-NEXT: CBNZX $x8, %bb.1
114+ ; CHECK-NEXT: B %bb.2
115+ ; CHECK-NEXT: {{ $}}
116+ ; CHECK-NEXT: .1:
117+ ; CHECK-NEXT: successors: %bb.2(0x80000000)
118+ ; CHECK-NEXT: liveins: $x8
119+ ; CHECK-NEXT: {{ $}}
120+ ; CHECK-NEXT: BL &__arm_tpidr2_save, csr_aarch64_sme_abi_support_routines_preservemost_from_x0, implicit-def $lr, implicit $sp, implicit-def $zt0
121+ ; CHECK-NEXT: MSR 56965, $xzr
122+ ; CHECK-NEXT: $zt0 = ZERO_T
123+ ; CHECK-NEXT: B %bb.2
124+ ; CHECK-NEXT: {{ $}}
125+ ; CHECK-NEXT: .2:
126+ ; CHECK-NEXT: RET undef $lr
127+ $x8 = MRS 56965, implicit-def $nzcv
128+
129+ CommitZASavePseudo $x8, 0, 1, &__arm_tpidr2_save, csr_aarch64_sme_abi_support_routines_preservemost_from_x0, implicit-def $zt0
130+
131+ RET_ReallyLR
132+
133+ ...
134+ ---
135+ # X8 = TPIDR2_EL0
136+ name : commit_za_save_zero_everything
137+ alignment : 4
138+ tracksRegLiveness : true
139+ body : |
140+ bb.0:
141+ ; CHECK-LABEL: name: commit_za_save_zero_everything
142+ ; CHECK: successors: %bb.1(0x40000000), %bb.2(0x40000000)
143+ ; CHECK-NEXT: {{ $}}
144+ ; CHECK-NEXT: $x8 = MRS 56965, implicit-def $nzcv
145+ ; CHECK-NEXT: CBNZX $x8, %bb.1
146+ ; CHECK-NEXT: B %bb.2
147+ ; CHECK-NEXT: {{ $}}
148+ ; CHECK-NEXT: .1:
149+ ; CHECK-NEXT: successors: %bb.2(0x80000000)
150+ ; CHECK-NEXT: liveins: $x8
151+ ; CHECK-NEXT: {{ $}}
152+ ; CHECK-NEXT: BL &__arm_tpidr2_save, csr_aarch64_sme_abi_support_routines_preservemost_from_x0, implicit-def $lr, implicit $sp, implicit-def $zab0, implicit-def $zt0
153+ ; CHECK-NEXT: MSR 56965, $xzr
154+ ; CHECK-NEXT: ZERO_M 255, implicit-def $zab0
155+ ; CHECK-NEXT: $zt0 = ZERO_T
156+ ; CHECK-NEXT: B %bb.2
157+ ; CHECK-NEXT: {{ $}}
158+ ; CHECK-NEXT: .2:
159+ ; CHECK-NEXT: RET undef $lr
160+ $x8 = MRS 56965, implicit-def $nzcv
161+
162+ CommitZASavePseudo $x8, 1, 1, &__arm_tpidr2_save, csr_aarch64_sme_abi_support_routines_preservemost_from_x0, implicit-def $zab0, implicit-def $zt0
98163
99164 RET_ReallyLR
100165
0 commit comments