Skip to content

Conversation

@efriedma-quic
Copy link
Collaborator

Using custom CHECK lines doesn't really help here.

Using custom CHECK lines doesn't really help here.
@efriedma-quic efriedma-quic added the skip-precommit-approval PR for CI feedback, not intended for review label Dec 5, 2025
@llvmbot
Copy link
Member

llvmbot commented Dec 5, 2025

@llvm/pr-subscribers-backend-aarch64

Author: Eli Friedman (efriedma-quic)

Changes

Using custom CHECK lines doesn't really help here.


Full diff: https://github.com/llvm/llvm-project/pull/170925.diff

1 Files Affected:

  • (modified) llvm/test/CodeGen/AArch64/wineh-pac.ll (+52-50)
diff --git a/llvm/test/CodeGen/AArch64/wineh-pac.ll b/llvm/test/CodeGen/AArch64/wineh-pac.ll
index 797dd10d7e49d..4a95b159ff859 100644
--- a/llvm/test/CodeGen/AArch64/wineh-pac.ll
+++ b/llvm/test/CodeGen/AArch64/wineh-pac.ll
@@ -1,63 +1,65 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 6
 ; RUN: llc < %s -mtriple=aarch64-windows | FileCheck %s
 
 define dso_local i32 @func(ptr %g, i32 %a) "sign-return-address"="non-leaf" "sign-return-address-key"="b_key" {
+; CHECK-LABEL: func:
+; CHECK:       .seh_proc func
+; CHECK-NEXT:  // %bb.0: // %entry
+; CHECK-NEXT:    hint #27
+; CHECK-NEXT:    .seh_pac_sign_lr
+; CHECK-NEXT:    str x19, [sp, #-16]! // 8-byte Folded Spill
+; CHECK-NEXT:    .seh_save_reg_x x19, 16
+; CHECK-NEXT:    str x30, [sp, #8] // 8-byte Spill
+; CHECK-NEXT:    .seh_save_reg x30, 8
+; CHECK-NEXT:    .seh_endprologue
+; CHECK-NEXT:    mov w19, w1
+; CHECK-NEXT:    blr x0
+; CHECK-NEXT:    mov w0, w19
+; CHECK-NEXT:    .seh_startepilogue
+; CHECK-NEXT:    ldr x30, [sp, #8] // 8-byte Reload
+; CHECK-NEXT:    .seh_save_reg x30, 8
+; CHECK-NEXT:    ldr x19, [sp], #16 // 8-byte Folded Reload
+; CHECK-NEXT:    .seh_save_reg_x x19, 16
+; CHECK-NEXT:    hint #31
+; CHECK-NEXT:    .seh_pac_sign_lr
+; CHECK-NEXT:    .seh_endepilogue
+; CHECK-NEXT:    ret
+; CHECK-NEXT:    .seh_endfunclet
+; CHECK-NEXT:    .seh_endproc
 entry:
   tail call void %g() #2
   ret i32 %a
 }
 
+;; For func2, check that the potentially folded autibsp+ret -> retab
+;; is handled correctly - currently we inhibit producing retab here.
+
 define dso_local i32 @func2(ptr %g, i32 %a) "sign-return-address"="non-leaf" "sign-return-address-key"="b_key" "target-features"="+v8.3a" {
+; CHECK-LABEL: func2:
+; CHECK:       .seh_proc func2
+; CHECK-NEXT:  // %bb.0: // %entry
+; CHECK-NEXT:    pacibsp
+; CHECK-NEXT:    .seh_pac_sign_lr
+; CHECK-NEXT:    str x19, [sp, #-16]! // 8-byte Folded Spill
+; CHECK-NEXT:    .seh_save_reg_x x19, 16
+; CHECK-NEXT:    str x30, [sp, #8] // 8-byte Spill
+; CHECK-NEXT:    .seh_save_reg x30, 8
+; CHECK-NEXT:    .seh_endprologue
+; CHECK-NEXT:    mov w19, w1
+; CHECK-NEXT:    blr x0
+; CHECK-NEXT:    mov w0, w19
+; CHECK-NEXT:    .seh_startepilogue
+; CHECK-NEXT:    ldr x30, [sp, #8] // 8-byte Reload
+; CHECK-NEXT:    .seh_save_reg x30, 8
+; CHECK-NEXT:    ldr x19, [sp], #16 // 8-byte Folded Reload
+; CHECK-NEXT:    .seh_save_reg_x x19, 16
+; CHECK-NEXT:    autibsp
+; CHECK-NEXT:    .seh_pac_sign_lr
+; CHECK-NEXT:    .seh_endepilogue
+; CHECK-NEXT:    ret
+; CHECK-NEXT:    .seh_endfunclet
+; CHECK-NEXT:    .seh_endproc
 entry:
   tail call void %g() #2
   ret i32 %a
 }
-
-
-; CHECK-LABEL: func:
-; CHECK-NEXT: .seh_proc func
-; CHECK-NEXT: // %bb.0:
-; CHECK-NEXT: hint #27
-; CHECK-NEXT: .seh_pac_sign_lr
-; CHECK-NEXT: str x19, [sp, #-16]!
-; CHECK-NEXT: .seh_save_reg_x x19, 16
-; CHECK-NEXT: str x30, [sp, #8]
-; CHECK-NEXT: .seh_save_reg x30, 8
-; CHECK-NEXT: .seh_endprologue
-
-; CHECK:      .seh_startepilogue
-; CHECK-NEXT: ldr x30, [sp, #8]
-; CHECK-NEXT: .seh_save_reg x30, 8
-; CHECK-NEXT: ldr x19, [sp], #16
-; CHECK-NEXT: .seh_save_reg_x x19, 16
-; CHECK-NEXT: hint #31
-; CHECK-NEXT: .seh_pac_sign_lr
-; CHECK-NEXT: .seh_endepilogue
-; CHECK-NEXT: ret
-; CHECK-NEXT: .seh_endfunclet
-; CHECK-NEXT: .seh_endproc
-
-;; For func2, check that the potentially folded autibsp+ret -> retab
-;; is handled correctly - currently we inhibit producing retab here.
-
-; CHECK-LABEL: func2:
-; CHECK-NEXT: .seh_proc func2
-; CHECK-NEXT: // %bb.0:
-; CHECK-NEXT: pacibsp
-; CHECK-NEXT: .seh_pac_sign_lr
-; CHECK-NEXT: str x19, [sp, #-16]!
-; CHECK-NEXT: .seh_save_reg_x x19, 16
-; CHECK-NEXT: str x30, [sp, #8]
-; CHECK-NEXT: .seh_save_reg x30, 8
-; CHECK-NEXT: .seh_endprologue
-
-; CHECK:      .seh_startepilogue
-; CHECK-NEXT: ldr x30, [sp, #8]
-; CHECK-NEXT: .seh_save_reg x30, 8
-; CHECK-NEXT: ldr x19, [sp], #16
-; CHECK-NEXT: .seh_save_reg_x x19, 16
-; CHECK-NEXT: autibsp
-; CHECK-NEXT: .seh_pac_sign_lr
-; CHECK-NEXT: .seh_endepilogue
-; CHECK-NEXT: ret
-; CHECK-NEXT: .seh_endfunclet
-; CHECK-NEXT: .seh_endproc

@efriedma-quic efriedma-quic enabled auto-merge (squash) December 5, 2025 21:33
@efriedma-quic efriedma-quic merged commit 7afeea4 into llvm:main Dec 5, 2025
12 of 13 checks passed
honeygoyal pushed a commit to honeygoyal/llvm-project that referenced this pull request Dec 9, 2025
Using custom CHECK lines doesn't really help here.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend:AArch64 skip-precommit-approval PR for CI feedback, not intended for review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants