@@ -75,10 +75,8 @@ define i32 @f(<vscale x 2 x i64> %x) {
75
75
; CHECK-NEXT: .seh_startepilogue
76
76
; CHECK-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload
77
77
; CHECK-NEXT: .seh_save_reg x30, 8
78
- ; CHECK-NEXT: ldr x28, [sp] // 8-byte Folded Reload
79
- ; CHECK-NEXT: .seh_save_reg x28, 0
80
- ; CHECK-NEXT: add sp, sp, #16
81
- ; CHECK-NEXT: .seh_stackalloc 16
78
+ ; CHECK-NEXT: ldr x28, [sp], #16 // 8-byte Folded Reload
79
+ ; CHECK-NEXT: .seh_save_reg_x x28, 16
82
80
; CHECK-NEXT: ldr z8, [sp, #2, mul vl] // 16-byte Folded Reload
83
81
; CHECK-NEXT: .seh_save_zreg z8, 2
84
82
; CHECK-NEXT: ldr z9, [sp, #3, mul vl] // 16-byte Folded Reload
@@ -234,10 +232,8 @@ define void @f2(i64 %n, <vscale x 2 x i64> %x) {
234
232
; CHECK-NEXT: .seh_save_fplr 16
235
233
; CHECK-NEXT: ldr x28, [sp, #8] // 8-byte Folded Reload
236
234
; CHECK-NEXT: .seh_save_reg x28, 8
237
- ; CHECK-NEXT: ldr x19, [sp] // 8-byte Folded Reload
238
- ; CHECK-NEXT: .seh_save_reg x19, 0
239
- ; CHECK-NEXT: add sp, sp, #32
240
- ; CHECK-NEXT: .seh_stackalloc 32
235
+ ; CHECK-NEXT: ldr x19, [sp], #32 // 8-byte Folded Reload
236
+ ; CHECK-NEXT: .seh_save_reg_x x19, 32
241
237
; CHECK-NEXT: ldr z8, [sp, #2, mul vl] // 16-byte Folded Reload
242
238
; CHECK-NEXT: .seh_save_zreg z8, 2
243
239
; CHECK-NEXT: ldr z9, [sp, #3, mul vl] // 16-byte Folded Reload
@@ -384,10 +380,8 @@ define void @f3(i64 %n, <vscale x 2 x i64> %x) {
384
380
; CHECK-NEXT: .seh_stackalloc 16
385
381
; CHECK-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload
386
382
; CHECK-NEXT: .seh_save_reg x30, 8
387
- ; CHECK-NEXT: ldr x28, [sp] // 8-byte Folded Reload
388
- ; CHECK-NEXT: .seh_save_reg x28, 0
389
- ; CHECK-NEXT: add sp, sp, #16
390
- ; CHECK-NEXT: .seh_stackalloc 16
383
+ ; CHECK-NEXT: ldr x28, [sp], #16 // 8-byte Folded Reload
384
+ ; CHECK-NEXT: .seh_save_reg_x x28, 16
391
385
; CHECK-NEXT: ldr z8, [sp, #2, mul vl] // 16-byte Folded Reload
392
386
; CHECK-NEXT: .seh_save_zreg z8, 2
393
387
; CHECK-NEXT: ldr z9, [sp, #3, mul vl] // 16-byte Folded Reload
@@ -538,10 +532,8 @@ define void @f4(i64 %n, <vscale x 2 x i64> %x) {
538
532
; CHECK-NEXT: .seh_stackalloc 16
539
533
; CHECK-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload
540
534
; CHECK-NEXT: .seh_save_reg x30, 8
541
- ; CHECK-NEXT: ldr x28, [sp] // 8-byte Folded Reload
542
- ; CHECK-NEXT: .seh_save_reg x28, 0
543
- ; CHECK-NEXT: add sp, sp, #16
544
- ; CHECK-NEXT: .seh_stackalloc 16
535
+ ; CHECK-NEXT: ldr x28, [sp], #16 // 8-byte Folded Reload
536
+ ; CHECK-NEXT: .seh_save_reg_x x28, 16
545
537
; CHECK-NEXT: ldr z8, [sp, #2, mul vl] // 16-byte Folded Reload
546
538
; CHECK-NEXT: .seh_save_zreg z8, 2
547
539
; CHECK-NEXT: ldr z9, [sp, #3, mul vl] // 16-byte Folded Reload
@@ -702,10 +694,8 @@ define void @f5(i64 %n, <vscale x 2 x i64> %x) {
702
694
; CHECK-NEXT: .seh_save_fplr 16
703
695
; CHECK-NEXT: ldr x28, [sp, #8] // 8-byte Folded Reload
704
696
; CHECK-NEXT: .seh_save_reg x28, 8
705
- ; CHECK-NEXT: ldr x19, [sp] // 8-byte Folded Reload
706
- ; CHECK-NEXT: .seh_save_reg x19, 0
707
- ; CHECK-NEXT: add sp, sp, #32
708
- ; CHECK-NEXT: .seh_stackalloc 32
697
+ ; CHECK-NEXT: ldr x19, [sp], #32 // 8-byte Folded Reload
698
+ ; CHECK-NEXT: .seh_save_reg_x x19, 32
709
699
; CHECK-NEXT: ldr z8, [sp, #2, mul vl] // 16-byte Folded Reload
710
700
; CHECK-NEXT: .seh_save_zreg z8, 2
711
701
; CHECK-NEXT: ldr z9, [sp, #3, mul vl] // 16-byte Folded Reload
@@ -860,10 +850,10 @@ define void @f6(<vscale x 2 x i64> %x, [8 x i64] %pad, i64 %n9) personality ptr
860
850
; CHECK-NEXT: stur x0, [x8, #16]
861
851
; CHECK-NEXT: addvl x8, x29, #18
862
852
; CHECK-NEXT: ldr x1, [x8, #32]
863
- ; CHECK-NEXT: .Ltmp0:
853
+ ; CHECK-NEXT: .Ltmp0: // EH_LABEL
864
854
; CHECK-NEXT: add x0, x19, #0
865
855
; CHECK-NEXT: bl g6
866
- ; CHECK-NEXT: .Ltmp1:
856
+ ; CHECK-NEXT: .Ltmp1: // EH_LABEL
867
857
; CHECK-NEXT: // %bb.1: // %invoke.cont
868
858
; CHECK-NEXT: .seh_startepilogue
869
859
; CHECK-NEXT: add sp, sp, #64
@@ -872,10 +862,8 @@ define void @f6(<vscale x 2 x i64> %x, [8 x i64] %pad, i64 %n9) personality ptr
872
862
; CHECK-NEXT: .seh_save_fplr 16
873
863
; CHECK-NEXT: ldr x28, [sp, #8] // 8-byte Folded Reload
874
864
; CHECK-NEXT: .seh_save_reg x28, 8
875
- ; CHECK-NEXT: ldr x19, [sp] // 8-byte Folded Reload
876
- ; CHECK-NEXT: .seh_save_reg x19, 0
877
- ; CHECK-NEXT: add sp, sp, #32
878
- ; CHECK-NEXT: .seh_stackalloc 32
865
+ ; CHECK-NEXT: ldr x19, [sp], #32 // 8-byte Folded Reload
866
+ ; CHECK-NEXT: .seh_save_reg_x x19, 32
879
867
; CHECK-NEXT: ldr z8, [sp, #2, mul vl] // 16-byte Folded Reload
880
868
; CHECK-NEXT: .seh_save_zreg z8, 2
881
869
; CHECK-NEXT: ldr z9, [sp, #3, mul vl] // 16-byte Folded Reload
@@ -932,8 +920,6 @@ define void @f6(<vscale x 2 x i64> %x, [8 x i64] %pad, i64 %n9) personality ptr
932
920
; CHECK-NEXT: .seh_save_preg p14, 10
933
921
; CHECK-NEXT: ldr p15, [sp, #11, mul vl] // 2-byte Folded Reload
934
922
; CHECK-NEXT: .seh_save_preg p15, 11
935
- ; CHECK-NEXT: add sp, sp, #16
936
- ; CHECK-NEXT: .seh_stackalloc 16
937
923
; CHECK-NEXT: addvl sp, sp, #18
938
924
; CHECK-NEXT: .seh_allocz 18
939
925
; CHECK-NEXT: add sp, sp, #16
@@ -1024,10 +1010,8 @@ define void @f6(<vscale x 2 x i64> %x, [8 x i64] %pad, i64 %n9) personality ptr
1024
1010
; CHECK-NEXT: .seh_save_fplr 16
1025
1011
; CHECK-NEXT: ldr x28, [sp, #8] // 8-byte Folded Reload
1026
1012
; CHECK-NEXT: .seh_save_reg x28, 8
1027
- ; CHECK-NEXT: ldr x19, [sp] // 8-byte Folded Reload
1028
- ; CHECK-NEXT: .seh_save_reg x19, 0
1029
- ; CHECK-NEXT: add sp, sp, #32
1030
- ; CHECK-NEXT: .seh_stackalloc 32
1013
+ ; CHECK-NEXT: ldr x19, [sp], #32 // 8-byte Folded Reload
1014
+ ; CHECK-NEXT: .seh_save_reg_x x19, 32
1031
1015
; CHECK-NEXT: ldr z8, [sp, #2, mul vl] // 16-byte Folded Reload
1032
1016
; CHECK-NEXT: .seh_save_zreg z8, 2
1033
1017
; CHECK-NEXT: ldr z9, [sp, #3, mul vl] // 16-byte Folded Reload
@@ -1144,10 +1128,8 @@ define void @f8(<vscale x 2 x i64> %v) {
1144
1128
; CHECK-NEXT: //APP
1145
1129
; CHECK-NEXT: //NO_APP
1146
1130
; CHECK-NEXT: .seh_startepilogue
1147
- ; CHECK-NEXT: ldr x30, [sp] // 8-byte Folded Reload
1148
- ; CHECK-NEXT: .seh_save_reg x30, 0
1149
- ; CHECK-NEXT: add sp, sp, #16
1150
- ; CHECK-NEXT: .seh_stackalloc 16
1131
+ ; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload
1132
+ ; CHECK-NEXT: .seh_save_reg_x x30, 16
1151
1133
; CHECK-NEXT: ldr z8, [sp] // 16-byte Folded Reload
1152
1134
; CHECK-NEXT: .seh_save_zreg z8, 0
1153
1135
; CHECK-NEXT: addvl sp, sp, #1
@@ -1196,14 +1178,10 @@ define void @f9(<vscale x 2 x i64> %v, ...) {
1196
1178
; CHECK-NEXT: //APP
1197
1179
; CHECK-NEXT: //NO_APP
1198
1180
; CHECK-NEXT: .seh_startepilogue
1199
- ; CHECK-NEXT: ldr x30, [sp] // 8-byte Folded Reload
1200
- ; CHECK-NEXT: .seh_save_reg x30, 0
1201
- ; CHECK-NEXT: add sp, sp, #16
1202
- ; CHECK-NEXT: .seh_stackalloc 16
1181
+ ; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload
1182
+ ; CHECK-NEXT: .seh_save_reg_x x30, 16
1203
1183
; CHECK-NEXT: ldr z8, [sp] // 16-byte Folded Reload
1204
1184
; CHECK-NEXT: .seh_save_zreg z8, 0
1205
- ; CHECK-NEXT: add sp, sp, #64
1206
- ; CHECK-NEXT: .seh_stackalloc 64
1207
1185
; CHECK-NEXT: addvl sp, sp, #1
1208
1186
; CHECK-NEXT: .seh_allocz 1
1209
1187
; CHECK-NEXT: add sp, sp, #64
@@ -1301,10 +1279,8 @@ define void @f10(i64 %n, <vscale x 2 x i64> %x) "frame-pointer"="all" {
1301
1279
; CHECK-NEXT: .seh_stackalloc 16
1302
1280
; CHECK-NEXT: ldp x29, x30, [sp, #8] // 16-byte Folded Reload
1303
1281
; CHECK-NEXT: .seh_save_fplr 8
1304
- ; CHECK-NEXT: ldr x28, [sp] // 8-byte Folded Reload
1305
- ; CHECK-NEXT: .seh_save_reg x28, 0
1306
- ; CHECK-NEXT: add sp, sp, #32
1307
- ; CHECK-NEXT: .seh_stackalloc 32
1282
+ ; CHECK-NEXT: ldr x28, [sp], #32 // 8-byte Folded Reload
1283
+ ; CHECK-NEXT: .seh_save_reg_x x28, 32
1308
1284
; CHECK-NEXT: ldr z8, [sp, #2, mul vl] // 16-byte Folded Reload
1309
1285
; CHECK-NEXT: .seh_save_zreg z8, 2
1310
1286
; CHECK-NEXT: ldr z9, [sp, #3, mul vl] // 16-byte Folded Reload
@@ -1390,10 +1366,8 @@ define i32 @f11(double %d, <vscale x 4 x i32> %vs) "aarch64_pstate_sm_compatible
1390
1366
; CHECK-NEXT: //NO_APP
1391
1367
; CHECK-NEXT: str d0, [sp, #8]
1392
1368
; CHECK-NEXT: .seh_startepilogue
1393
- ; CHECK-NEXT: ldr x30, [sp] // 8-byte Folded Reload
1394
- ; CHECK-NEXT: .seh_save_reg x30, 0
1395
- ; CHECK-NEXT: add sp, sp, #16
1396
- ; CHECK-NEXT: .seh_stackalloc 16
1369
+ ; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload
1370
+ ; CHECK-NEXT: .seh_save_reg_x x30, 16
1397
1371
; CHECK-NEXT: ldr z8, [sp] // 16-byte Folded Reload
1398
1372
; CHECK-NEXT: .seh_save_zreg z8, 0
1399
1373
; CHECK-NEXT: addvl sp, sp, #1
@@ -1431,10 +1405,8 @@ define i32 @f12(double %d, <vscale x 4 x i32> %vs) "aarch64_pstate_sm_compatible
1431
1405
; CHECK-NEXT: .seh_startepilogue
1432
1406
; CHECK-NEXT: addvl sp, sp, #1
1433
1407
; CHECK-NEXT: .seh_allocz 1
1434
- ; CHECK-NEXT: ldr x30, [sp] // 8-byte Folded Reload
1435
- ; CHECK-NEXT: .seh_save_reg x30, 0
1436
- ; CHECK-NEXT: add sp, sp, #16
1437
- ; CHECK-NEXT: .seh_stackalloc 16
1408
+ ; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload
1409
+ ; CHECK-NEXT: .seh_save_reg_x x30, 16
1438
1410
; CHECK-NEXT: ldr z8, [sp] // 16-byte Folded Reload
1439
1411
; CHECK-NEXT: .seh_save_zreg z8, 0
1440
1412
; CHECK-NEXT: addvl sp, sp, #1
@@ -1475,10 +1447,8 @@ define i32 @f13(double %d, <vscale x 4 x i32> %vs) "frame-pointer"="all" {
1475
1447
; CHECK-NEXT: .seh_startepilogue
1476
1448
; CHECK-NEXT: ldp x29, x30, [sp, #8] // 16-byte Folded Reload
1477
1449
; CHECK-NEXT: .seh_save_fplr 8
1478
- ; CHECK-NEXT: ldr x28, [sp] // 8-byte Folded Reload
1479
- ; CHECK-NEXT: .seh_save_reg x28, 0
1480
- ; CHECK-NEXT: add sp, sp, #32
1481
- ; CHECK-NEXT: .seh_stackalloc 32
1450
+ ; CHECK-NEXT: ldr x28, [sp], #32 // 8-byte Folded Reload
1451
+ ; CHECK-NEXT: .seh_save_reg_x x28, 32
1482
1452
; CHECK-NEXT: ldr z8, [sp] // 16-byte Folded Reload
1483
1453
; CHECK-NEXT: .seh_save_zreg z8, 0
1484
1454
; CHECK-NEXT: addvl sp, sp, #1
@@ -1521,10 +1491,8 @@ define i32 @f14(double %d, <vscale x 4 x i32> %vs) "frame-pointer"="all" {
1521
1491
; CHECK-NEXT: .seh_allocz 1
1522
1492
; CHECK-NEXT: ldp x29, x30, [sp, #8] // 16-byte Folded Reload
1523
1493
; CHECK-NEXT: .seh_save_fplr 8
1524
- ; CHECK-NEXT: ldr x28, [sp] // 8-byte Folded Reload
1525
- ; CHECK-NEXT: .seh_save_reg x28, 0
1526
- ; CHECK-NEXT: add sp, sp, #32
1527
- ; CHECK-NEXT: .seh_stackalloc 32
1494
+ ; CHECK-NEXT: ldr x28, [sp], #32 // 8-byte Folded Reload
1495
+ ; CHECK-NEXT: .seh_save_reg_x x28, 32
1528
1496
; CHECK-NEXT: ldr z8, [sp] // 16-byte Folded Reload
1529
1497
; CHECK-NEXT: .seh_save_zreg z8, 0
1530
1498
; CHECK-NEXT: addvl sp, sp, #1
@@ -1572,10 +1540,8 @@ define tailcc void @f15(double %d, <vscale x 4 x i32> %vs, [9 x i64], i32 %i) {
1572
1540
; CHECK-NEXT: .seh_stackalloc 16
1573
1541
; CHECK-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload
1574
1542
; CHECK-NEXT: .seh_save_reg x30, 8
1575
- ; CHECK-NEXT: ldr x28, [sp] // 8-byte Folded Reload
1576
- ; CHECK-NEXT: .seh_save_reg x28, 0
1577
- ; CHECK-NEXT: add sp, sp, #16
1578
- ; CHECK-NEXT: .seh_stackalloc 16
1543
+ ; CHECK-NEXT: ldr x28, [sp], #16 // 8-byte Folded Reload
1544
+ ; CHECK-NEXT: .seh_save_reg_x x28, 16
1579
1545
; CHECK-NEXT: ldr z8, [sp] // 16-byte Folded Reload
1580
1546
; CHECK-NEXT: .seh_save_zreg z8, 0
1581
1547
; CHECK-NEXT: addvl sp, sp, #1
0 commit comments