================
@@ -213,19 +213,18 @@ declare double @za_shared_callee(double)
"aarch64_inout_za"
define double @za_new_caller_to_za_shared_callee(double %x) nounwind noinline
optnone "aarch64_new_za"{
; CHECK-COMMON-LABEL: za_new_caller_to_za_shared_callee:
-; CHECK-COMMON: // %bb.0: // %prelude
+; CHECK-COMMON: // %bb.0: // %entry
; CHECK-COMMON-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill
-; CHECK-COMMON-NEXT: rdsvl x8, #1
; CHECK-COMMON-NEXT: mrs x8, TPIDR2_EL0
-; CHECK-COMMON-NEXT: cbz x8, .LBB6_2
-; CHECK-COMMON-NEXT: b .LBB6_1
-; CHECK-COMMON-NEXT: .LBB6_1: // %save.za
+; CHECK-COMMON-NEXT: cbnz x8, .LBB6_1
+; CHECK-COMMON-NEXT: b .LBB6_2
+; CHECK-COMMON-NEXT: .LBB6_1: // %entry
; CHECK-COMMON-NEXT: bl __arm_tpidr2_save
; CHECK-COMMON-NEXT: msr TPIDR2_EL0, xzr
+; CHECK-COMMON-NEXT: zero {za}
----------------
MacDue wrote:
Yes, `smstart za` zeros ZA in the transition from `off` -> `on`. See:
https://www.scs.stanford.edu/~zyedidia/arm64/shared_pseudocode.html#impl-aarch64.SetPSTATE_ZA.1
(note this is also somewhere on the official site).
https://github.com/llvm/llvm-project/pull/172642
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits