@@ -11,14 +11,12 @@ declare double @normal_callee(double)
11
11
define double @nonstreaming_caller_streaming_callee (double %x ) nounwind noinline optnone {
12
12
; CHECK-FISEL-LABEL: nonstreaming_caller_streaming_callee:
13
13
; CHECK-FISEL: // %bb.0: // %entry
14
- ; CHECK-FISEL-NEXT: cntd x9
15
14
; CHECK-FISEL-NEXT: sub sp, sp, #96
16
15
; CHECK-FISEL-NEXT: stp d15, d14, [sp, #16] // 16-byte Folded Spill
17
16
; CHECK-FISEL-NEXT: stp d13, d12, [sp, #32] // 16-byte Folded Spill
18
17
; CHECK-FISEL-NEXT: stp d11, d10, [sp, #48] // 16-byte Folded Spill
19
18
; CHECK-FISEL-NEXT: stp d9, d8, [sp, #64] // 16-byte Folded Spill
20
19
; CHECK-FISEL-NEXT: str x30, [sp, #80] // 8-byte Folded Spill
21
- ; CHECK-FISEL-NEXT: str x9, [sp, #88] // 8-byte Folded Spill
22
20
; CHECK-FISEL-NEXT: str d0, [sp] // 8-byte Folded Spill
23
21
; CHECK-FISEL-NEXT: smstart sm
24
22
; CHECK-FISEL-NEXT: ldr d0, [sp] // 8-byte Folded Reload
@@ -39,14 +37,12 @@ define double @nonstreaming_caller_streaming_callee(double %x) nounwind noinline
39
37
;
40
38
; CHECK-GISEL-LABEL: nonstreaming_caller_streaming_callee:
41
39
; CHECK-GISEL: // %bb.0: // %entry
42
- ; CHECK-GISEL-NEXT: cntd x9
43
40
; CHECK-GISEL-NEXT: sub sp, sp, #96
44
41
; CHECK-GISEL-NEXT: stp d15, d14, [sp, #16] // 16-byte Folded Spill
45
42
; CHECK-GISEL-NEXT: stp d13, d12, [sp, #32] // 16-byte Folded Spill
46
43
; CHECK-GISEL-NEXT: stp d11, d10, [sp, #48] // 16-byte Folded Spill
47
44
; CHECK-GISEL-NEXT: stp d9, d8, [sp, #64] // 16-byte Folded Spill
48
45
; CHECK-GISEL-NEXT: str x30, [sp, #80] // 8-byte Folded Spill
49
- ; CHECK-GISEL-NEXT: str x9, [sp, #88] // 8-byte Folded Spill
50
46
; CHECK-GISEL-NEXT: str d0, [sp] // 8-byte Folded Spill
51
47
; CHECK-GISEL-NEXT: smstart sm
52
48
; CHECK-GISEL-NEXT: ldr d0, [sp] // 8-byte Folded Reload
@@ -74,14 +70,12 @@ entry:
74
70
define double @streaming_caller_nonstreaming_callee (double %x ) nounwind noinline optnone "aarch64_pstate_sm_enabled" {
75
71
; CHECK-COMMON-LABEL: streaming_caller_nonstreaming_callee:
76
72
; CHECK-COMMON: // %bb.0: // %entry
77
- ; CHECK-COMMON-NEXT: cntd x9
78
73
; CHECK-COMMON-NEXT: sub sp, sp, #96
79
74
; CHECK-COMMON-NEXT: stp d15, d14, [sp, #16] // 16-byte Folded Spill
80
75
; CHECK-COMMON-NEXT: stp d13, d12, [sp, #32] // 16-byte Folded Spill
81
76
; CHECK-COMMON-NEXT: stp d11, d10, [sp, #48] // 16-byte Folded Spill
82
77
; CHECK-COMMON-NEXT: stp d9, d8, [sp, #64] // 16-byte Folded Spill
83
78
; CHECK-COMMON-NEXT: str x30, [sp, #80] // 8-byte Folded Spill
84
- ; CHECK-COMMON-NEXT: str x9, [sp, #88] // 8-byte Folded Spill
85
79
; CHECK-COMMON-NEXT: str d0, [sp] // 8-byte Folded Spill
86
80
; CHECK-COMMON-NEXT: smstop sm
87
81
; CHECK-COMMON-NEXT: ldr d0, [sp] // 8-byte Folded Reload
@@ -108,14 +102,12 @@ entry:
108
102
define double @locally_streaming_caller_normal_callee (double %x ) nounwind noinline optnone "aarch64_pstate_sm_body" {
109
103
; CHECK-COMMON-LABEL: locally_streaming_caller_normal_callee:
110
104
; CHECK-COMMON: // %bb.0:
111
- ; CHECK-COMMON-NEXT: cntd x9
112
105
; CHECK-COMMON-NEXT: sub sp, sp, #112
113
106
; CHECK-COMMON-NEXT: stp d15, d14, [sp, #32] // 16-byte Folded Spill
114
107
; CHECK-COMMON-NEXT: stp d13, d12, [sp, #48] // 16-byte Folded Spill
115
108
; CHECK-COMMON-NEXT: stp d11, d10, [sp, #64] // 16-byte Folded Spill
116
109
; CHECK-COMMON-NEXT: stp d9, d8, [sp, #80] // 16-byte Folded Spill
117
110
; CHECK-COMMON-NEXT: str x30, [sp, #96] // 8-byte Folded Spill
118
- ; CHECK-COMMON-NEXT: str x9, [sp, #104] // 8-byte Folded Spill
119
111
; CHECK-COMMON-NEXT: str d0, [sp, #24] // 8-byte Folded Spill
120
112
; CHECK-COMMON-NEXT: smstart sm
121
113
; CHECK-COMMON-NEXT: ldr d0, [sp, #24] // 8-byte Folded Reload
@@ -174,13 +166,11 @@ define double @normal_caller_to_locally_streaming_callee(double %x) nounwind noi
174
166
define void @locally_streaming_caller_streaming_callee_ptr (ptr %p ) nounwind noinline optnone "aarch64_pstate_sm_body" {
175
167
; CHECK-COMMON-LABEL: locally_streaming_caller_streaming_callee_ptr:
176
168
; CHECK-COMMON: // %bb.0:
177
- ; CHECK-COMMON-NEXT: cntd x9
178
169
; CHECK-COMMON-NEXT: stp d15, d14, [sp, #-80]! // 16-byte Folded Spill
179
170
; CHECK-COMMON-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill
180
171
; CHECK-COMMON-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill
181
172
; CHECK-COMMON-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill
182
173
; CHECK-COMMON-NEXT: str x30, [sp, #64] // 8-byte Folded Spill
183
- ; CHECK-COMMON-NEXT: str x9, [sp, #72] // 8-byte Folded Spill
184
174
; CHECK-COMMON-NEXT: smstart sm
185
175
; CHECK-COMMON-NEXT: blr x0
186
176
; CHECK-COMMON-NEXT: smstop sm
@@ -197,13 +187,11 @@ define void @locally_streaming_caller_streaming_callee_ptr(ptr %p) nounwind noin
197
187
define void @normal_call_to_streaming_callee_ptr (ptr %p ) nounwind noinline optnone {
198
188
; CHECK-COMMON-LABEL: normal_call_to_streaming_callee_ptr:
199
189
; CHECK-COMMON: // %bb.0:
200
- ; CHECK-COMMON-NEXT: cntd x9
201
190
; CHECK-COMMON-NEXT: stp d15, d14, [sp, #-80]! // 16-byte Folded Spill
202
191
; CHECK-COMMON-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill
203
192
; CHECK-COMMON-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill
204
193
; CHECK-COMMON-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill
205
194
; CHECK-COMMON-NEXT: str x30, [sp, #64] // 8-byte Folded Spill
206
- ; CHECK-COMMON-NEXT: str x9, [sp, #72] // 8-byte Folded Spill
207
195
; CHECK-COMMON-NEXT: smstart sm
208
196
; CHECK-COMMON-NEXT: blr x0
209
197
; CHECK-COMMON-NEXT: smstop sm
@@ -337,13 +325,12 @@ define fp128 @f128_call_za(fp128 %a, fp128 %b) "aarch64_inout_za" nounwind {
337
325
define fp128 @f128_call_sm (fp128 %a , fp128 %b ) "aarch64_pstate_sm_enabled" nounwind {
338
326
; CHECK-COMMON-LABEL: f128_call_sm:
339
327
; CHECK-COMMON: // %bb.0:
340
- ; CHECK-COMMON-NEXT: cntd x9
341
328
; CHECK-COMMON-NEXT: sub sp, sp, #112
342
329
; CHECK-COMMON-NEXT: stp d15, d14, [sp, #32] // 16-byte Folded Spill
343
330
; CHECK-COMMON-NEXT: stp d13, d12, [sp, #48] // 16-byte Folded Spill
344
331
; CHECK-COMMON-NEXT: stp d11, d10, [sp, #64] // 16-byte Folded Spill
345
332
; CHECK-COMMON-NEXT: stp d9, d8, [sp, #80] // 16-byte Folded Spill
346
- ; CHECK-COMMON-NEXT: stp x30, x9, [sp, #96] // 16 -byte Folded Spill
333
+ ; CHECK-COMMON-NEXT: str x30, [sp, #96] // 8 -byte Folded Spill
347
334
; CHECK-COMMON-NEXT: stp q1, q0, [sp] // 32-byte Folded Spill
348
335
; CHECK-COMMON-NEXT: smstop sm
349
336
; CHECK-COMMON-NEXT: ldp q1, q0, [sp] // 32-byte Folded Reload
@@ -399,13 +386,12 @@ define double @frem_call_za(double %a, double %b) "aarch64_inout_za" nounwind {
399
386
define float @frem_call_sm (float %a , float %b ) "aarch64_pstate_sm_enabled" nounwind {
400
387
; CHECK-COMMON-LABEL: frem_call_sm:
401
388
; CHECK-COMMON: // %bb.0:
402
- ; CHECK-COMMON-NEXT: cntd x9
403
389
; CHECK-COMMON-NEXT: sub sp, sp, #96
404
390
; CHECK-COMMON-NEXT: stp d15, d14, [sp, #16] // 16-byte Folded Spill
405
391
; CHECK-COMMON-NEXT: stp d13, d12, [sp, #32] // 16-byte Folded Spill
406
392
; CHECK-COMMON-NEXT: stp d11, d10, [sp, #48] // 16-byte Folded Spill
407
393
; CHECK-COMMON-NEXT: stp d9, d8, [sp, #64] // 16-byte Folded Spill
408
- ; CHECK-COMMON-NEXT: stp x30, x9, [sp, #80] // 16 -byte Folded Spill
394
+ ; CHECK-COMMON-NEXT: str x30, [sp, #80] // 8 -byte Folded Spill
409
395
; CHECK-COMMON-NEXT: stp s1, s0, [sp, #8] // 8-byte Folded Spill
410
396
; CHECK-COMMON-NEXT: smstop sm
411
397
; CHECK-COMMON-NEXT: ldp s1, s0, [sp, #8] // 8-byte Folded Reload
@@ -428,14 +414,12 @@ define float @frem_call_sm(float %a, float %b) "aarch64_pstate_sm_enabled" nounw
428
414
define float @frem_call_sm_compat (float %a , float %b ) "aarch64_pstate_sm_compatible" nounwind {
429
415
; CHECK-COMMON-LABEL: frem_call_sm_compat:
430
416
; CHECK-COMMON: // %bb.0:
431
- ; CHECK-COMMON-NEXT: cntd x9
432
- ; CHECK-COMMON-NEXT: sub sp, sp, #112
417
+ ; CHECK-COMMON-NEXT: sub sp, sp, #96
433
418
; CHECK-COMMON-NEXT: stp d15, d14, [sp, #16] // 16-byte Folded Spill
434
419
; CHECK-COMMON-NEXT: stp d13, d12, [sp, #32] // 16-byte Folded Spill
435
420
; CHECK-COMMON-NEXT: stp d11, d10, [sp, #48] // 16-byte Folded Spill
436
421
; CHECK-COMMON-NEXT: stp d9, d8, [sp, #64] // 16-byte Folded Spill
437
- ; CHECK-COMMON-NEXT: stp x30, x9, [sp, #80] // 16-byte Folded Spill
438
- ; CHECK-COMMON-NEXT: str x19, [sp, #96] // 8-byte Folded Spill
422
+ ; CHECK-COMMON-NEXT: stp x30, x19, [sp, #80] // 16-byte Folded Spill
439
423
; CHECK-COMMON-NEXT: stp s0, s1, [sp, #8] // 8-byte Folded Spill
440
424
; CHECK-COMMON-NEXT: bl __arm_sme_state
441
425
; CHECK-COMMON-NEXT: ldp s2, s0, [sp, #8] // 8-byte Folded Reload
@@ -452,14 +436,13 @@ define float @frem_call_sm_compat(float %a, float %b) "aarch64_pstate_sm_compati
452
436
; CHECK-COMMON-NEXT: // %bb.3:
453
437
; CHECK-COMMON-NEXT: smstart sm
454
438
; CHECK-COMMON-NEXT: .LBB12_4:
455
- ; CHECK-COMMON-NEXT: ldp d9, d8 , [sp, #64 ] // 16-byte Folded Reload
439
+ ; CHECK-COMMON-NEXT: ldp x30, x19 , [sp, #80 ] // 16-byte Folded Reload
456
440
; CHECK-COMMON-NEXT: ldr s0, [sp, #12] // 4-byte Folded Reload
441
+ ; CHECK-COMMON-NEXT: ldp d9, d8, [sp, #64] // 16-byte Folded Reload
457
442
; CHECK-COMMON-NEXT: ldp d11, d10, [sp, #48] // 16-byte Folded Reload
458
- ; CHECK-COMMON-NEXT: ldr x19, [sp, #96] // 8-byte Folded Reload
459
- ; CHECK-COMMON-NEXT: ldr x30, [sp, #80] // 8-byte Folded Reload
460
443
; CHECK-COMMON-NEXT: ldp d13, d12, [sp, #32] // 16-byte Folded Reload
461
444
; CHECK-COMMON-NEXT: ldp d15, d14, [sp, #16] // 16-byte Folded Reload
462
- ; CHECK-COMMON-NEXT: add sp, sp, #112
445
+ ; CHECK-COMMON-NEXT: add sp, sp, #96
463
446
; CHECK-COMMON-NEXT: ret
464
447
%res = frem float %a , %b
465
448
ret float %res
0 commit comments