Skip to content

Commit 7afeea4

Browse files
Autogenerate llvm/test/CodeGen/AArch64/wineh-pac.ll (llvm#170925)
Using custom CHECK lines doesn't really help here.
1 parent a55221d commit 7afeea4

File tree

1 file changed

+52
-50
lines changed

1 file changed

+52
-50
lines changed

llvm/test/CodeGen/AArch64/wineh-pac.ll

Lines changed: 52 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,65 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 6
12
; RUN: llc < %s -mtriple=aarch64-windows | FileCheck %s
23

34
define dso_local i32 @func(ptr %g, i32 %a) "sign-return-address"="non-leaf" "sign-return-address-key"="b_key" {
5+
; CHECK-LABEL: func:
6+
; CHECK: .seh_proc func
7+
; CHECK-NEXT: // %bb.0: // %entry
8+
; CHECK-NEXT: hint #27
9+
; CHECK-NEXT: .seh_pac_sign_lr
10+
; CHECK-NEXT: str x19, [sp, #-16]! // 8-byte Folded Spill
11+
; CHECK-NEXT: .seh_save_reg_x x19, 16
12+
; CHECK-NEXT: str x30, [sp, #8] // 8-byte Spill
13+
; CHECK-NEXT: .seh_save_reg x30, 8
14+
; CHECK-NEXT: .seh_endprologue
15+
; CHECK-NEXT: mov w19, w1
16+
; CHECK-NEXT: blr x0
17+
; CHECK-NEXT: mov w0, w19
18+
; CHECK-NEXT: .seh_startepilogue
19+
; CHECK-NEXT: ldr x30, [sp, #8] // 8-byte Reload
20+
; CHECK-NEXT: .seh_save_reg x30, 8
21+
; CHECK-NEXT: ldr x19, [sp], #16 // 8-byte Folded Reload
22+
; CHECK-NEXT: .seh_save_reg_x x19, 16
23+
; CHECK-NEXT: hint #31
24+
; CHECK-NEXT: .seh_pac_sign_lr
25+
; CHECK-NEXT: .seh_endepilogue
26+
; CHECK-NEXT: ret
27+
; CHECK-NEXT: .seh_endfunclet
28+
; CHECK-NEXT: .seh_endproc
429
entry:
530
tail call void %g() #2
631
ret i32 %a
732
}
833

34+
;; For func2, check that the potentially folded autibsp+ret -> retab
35+
;; is handled correctly - currently we inhibit producing retab here.
36+
937
define dso_local i32 @func2(ptr %g, i32 %a) "sign-return-address"="non-leaf" "sign-return-address-key"="b_key" "target-features"="+v8.3a" {
38+
; CHECK-LABEL: func2:
39+
; CHECK: .seh_proc func2
40+
; CHECK-NEXT: // %bb.0: // %entry
41+
; CHECK-NEXT: pacibsp
42+
; CHECK-NEXT: .seh_pac_sign_lr
43+
; CHECK-NEXT: str x19, [sp, #-16]! // 8-byte Folded Spill
44+
; CHECK-NEXT: .seh_save_reg_x x19, 16
45+
; CHECK-NEXT: str x30, [sp, #8] // 8-byte Spill
46+
; CHECK-NEXT: .seh_save_reg x30, 8
47+
; CHECK-NEXT: .seh_endprologue
48+
; CHECK-NEXT: mov w19, w1
49+
; CHECK-NEXT: blr x0
50+
; CHECK-NEXT: mov w0, w19
51+
; CHECK-NEXT: .seh_startepilogue
52+
; CHECK-NEXT: ldr x30, [sp, #8] // 8-byte Reload
53+
; CHECK-NEXT: .seh_save_reg x30, 8
54+
; CHECK-NEXT: ldr x19, [sp], #16 // 8-byte Folded Reload
55+
; CHECK-NEXT: .seh_save_reg_x x19, 16
56+
; CHECK-NEXT: autibsp
57+
; CHECK-NEXT: .seh_pac_sign_lr
58+
; CHECK-NEXT: .seh_endepilogue
59+
; CHECK-NEXT: ret
60+
; CHECK-NEXT: .seh_endfunclet
61+
; CHECK-NEXT: .seh_endproc
1062
entry:
1163
tail call void %g() #2
1264
ret i32 %a
1365
}
14-
15-
16-
; CHECK-LABEL: func:
17-
; CHECK-NEXT: .seh_proc func
18-
; CHECK-NEXT: // %bb.0:
19-
; CHECK-NEXT: hint #27
20-
; CHECK-NEXT: .seh_pac_sign_lr
21-
; CHECK-NEXT: str x19, [sp, #-16]!
22-
; CHECK-NEXT: .seh_save_reg_x x19, 16
23-
; CHECK-NEXT: str x30, [sp, #8]
24-
; CHECK-NEXT: .seh_save_reg x30, 8
25-
; CHECK-NEXT: .seh_endprologue
26-
27-
; CHECK: .seh_startepilogue
28-
; CHECK-NEXT: ldr x30, [sp, #8]
29-
; CHECK-NEXT: .seh_save_reg x30, 8
30-
; CHECK-NEXT: ldr x19, [sp], #16
31-
; CHECK-NEXT: .seh_save_reg_x x19, 16
32-
; CHECK-NEXT: hint #31
33-
; CHECK-NEXT: .seh_pac_sign_lr
34-
; CHECK-NEXT: .seh_endepilogue
35-
; CHECK-NEXT: ret
36-
; CHECK-NEXT: .seh_endfunclet
37-
; CHECK-NEXT: .seh_endproc
38-
39-
;; For func2, check that the potentially folded autibsp+ret -> retab
40-
;; is handled correctly - currently we inhibit producing retab here.
41-
42-
; CHECK-LABEL: func2:
43-
; CHECK-NEXT: .seh_proc func2
44-
; CHECK-NEXT: // %bb.0:
45-
; CHECK-NEXT: pacibsp
46-
; CHECK-NEXT: .seh_pac_sign_lr
47-
; CHECK-NEXT: str x19, [sp, #-16]!
48-
; CHECK-NEXT: .seh_save_reg_x x19, 16
49-
; CHECK-NEXT: str x30, [sp, #8]
50-
; CHECK-NEXT: .seh_save_reg x30, 8
51-
; CHECK-NEXT: .seh_endprologue
52-
53-
; CHECK: .seh_startepilogue
54-
; CHECK-NEXT: ldr x30, [sp, #8]
55-
; CHECK-NEXT: .seh_save_reg x30, 8
56-
; CHECK-NEXT: ldr x19, [sp], #16
57-
; CHECK-NEXT: .seh_save_reg_x x19, 16
58-
; CHECK-NEXT: autibsp
59-
; CHECK-NEXT: .seh_pac_sign_lr
60-
; CHECK-NEXT: .seh_endepilogue
61-
; CHECK-NEXT: ret
62-
; CHECK-NEXT: .seh_endfunclet
63-
; CHECK-NEXT: .seh_endproc

0 commit comments

Comments
 (0)