@@ -66,6 +66,7 @@ define <2 x double> @pow_v2f64(<2 x double> %a, <2 x double> %b) {
66
66
; CHECK-SD-NEXT: mov d0, v0.d[1]
67
67
; CHECK-SD-NEXT: mov d1, v1.d[1]
68
68
; CHECK-SD-NEXT: bl pow
69
+ ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0
69
70
; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill
70
71
; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload
71
72
; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0
@@ -92,9 +93,10 @@ define <2 x double> @pow_v2f64(<2 x double> %a, <2 x double> %b) {
92
93
; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0
93
94
; CHECK-GI-NEXT: // kill: def $d1 killed $d1 killed $q1
94
95
; CHECK-GI-NEXT: bl pow
96
+ ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0
95
97
; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill
96
- ; CHECK-GI-NEXT: fmov d0, d8
97
98
; CHECK-GI-NEXT: fmov d1, d9
99
+ ; CHECK-GI-NEXT: fmov d0, d8
98
100
; CHECK-GI-NEXT: bl pow
99
101
; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload
100
102
; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0
@@ -198,6 +200,7 @@ define <4 x double> @pow_v4f64(<4 x double> %a, <4 x double> %b) {
198
200
; CHECK-SD-NEXT: stp q1, q3, [sp, #48] // 32-byte Folded Spill
199
201
; CHECK-SD-NEXT: mov d1, v2.d[1]
200
202
; CHECK-SD-NEXT: bl pow
203
+ ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0
201
204
; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill
202
205
; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload
203
206
; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0
@@ -211,6 +214,7 @@ define <4 x double> @pow_v4f64(<4 x double> %a, <4 x double> %b) {
211
214
; CHECK-SD-NEXT: mov d0, v0.d[1]
212
215
; CHECK-SD-NEXT: mov d1, v1.d[1]
213
216
; CHECK-SD-NEXT: bl pow
217
+ ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0
214
218
; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill
215
219
; CHECK-SD-NEXT: ldp q0, q1, [sp, #48] // 32-byte Folded Reload
216
220
; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0
@@ -246,19 +250,22 @@ define <4 x double> @pow_v4f64(<4 x double> %a, <4 x double> %b) {
246
250
; CHECK-GI-NEXT: // kill: def $d1 killed $d1 killed $q1
247
251
; CHECK-GI-NEXT: mov d9, v4.d[1]
248
252
; CHECK-GI-NEXT: bl pow
253
+ ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0
249
254
; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill
250
- ; CHECK-GI-NEXT: fmov d0, d8
251
255
; CHECK-GI-NEXT: fmov d1, d10
256
+ ; CHECK-GI-NEXT: fmov d0, d8
252
257
; CHECK-GI-NEXT: bl pow
258
+ ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0
253
259
; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill
254
- ; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload
255
260
; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload
256
- ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0
261
+ ; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload
257
262
; CHECK-GI-NEXT: // kill: def $d1 killed $d1 killed $q1
263
+ ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0
258
264
; CHECK-GI-NEXT: bl pow
265
+ ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0
259
266
; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill
260
- ; CHECK-GI-NEXT: fmov d0, d9
261
267
; CHECK-GI-NEXT: fmov d1, d11
268
+ ; CHECK-GI-NEXT: fmov d0, d9
262
269
; CHECK-GI-NEXT: bl pow
263
270
; CHECK-GI-NEXT: ldr q2, [sp, #48] // 16-byte Folded Reload
264
271
; CHECK-GI-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload
@@ -290,7 +297,8 @@ define <2 x float> @pow_v2f32(<2 x float> %a, <2 x float> %b) {
290
297
; CHECK-SD-NEXT: mov s0, v0.s[1]
291
298
; CHECK-SD-NEXT: mov s1, v1.s[1]
292
299
; CHECK-SD-NEXT: bl powf
293
- ; CHECK-SD-NEXT: str d0, [sp, #32] // 16-byte Folded Spill
300
+ ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0
301
+ ; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill
294
302
; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload
295
303
; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0
296
304
; CHECK-SD-NEXT: // kill: def $s1 killed $s1 killed $q1
@@ -319,9 +327,10 @@ define <2 x float> @pow_v2f32(<2 x float> %a, <2 x float> %b) {
319
327
; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0
320
328
; CHECK-GI-NEXT: // kill: def $s1 killed $s1 killed $q1
321
329
; CHECK-GI-NEXT: bl powf
322
- ; CHECK-GI-NEXT: str d0, [sp] // 16-byte Folded Spill
323
- ; CHECK-GI-NEXT: fmov s0, s8
330
+ ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0
331
+ ; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill
324
332
; CHECK-GI-NEXT: fmov s1, s9
333
+ ; CHECK-GI-NEXT: fmov s0, s8
325
334
; CHECK-GI-NEXT: bl powf
326
335
; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload
327
336
; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0
@@ -347,7 +356,8 @@ define <3 x float> @pow_v3f32(<3 x float> %a, <3 x float> %b) {
347
356
; CHECK-SD-NEXT: mov s0, v0.s[1]
348
357
; CHECK-SD-NEXT: mov s1, v1.s[1]
349
358
; CHECK-SD-NEXT: bl powf
350
- ; CHECK-SD-NEXT: str d0, [sp] // 16-byte Folded Spill
359
+ ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0
360
+ ; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill
351
361
; CHECK-SD-NEXT: ldp q0, q1, [sp, #16] // 32-byte Folded Reload
352
362
; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0
353
363
; CHECK-SD-NEXT: // kill: def $s1 killed $s1 killed $q1
@@ -387,13 +397,15 @@ define <3 x float> @pow_v3f32(<3 x float> %a, <3 x float> %b) {
387
397
; CHECK-GI-NEXT: mov s11, v1.s[2]
388
398
; CHECK-GI-NEXT: // kill: def $s1 killed $s1 killed $q1
389
399
; CHECK-GI-NEXT: bl powf
390
- ; CHECK-GI-NEXT: str d0, [sp, #16] // 16-byte Folded Spill
391
- ; CHECK-GI-NEXT: fmov s0, s8
400
+ ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0
401
+ ; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill
392
402
; CHECK-GI-NEXT: fmov s1, s10
403
+ ; CHECK-GI-NEXT: fmov s0, s8
393
404
; CHECK-GI-NEXT: bl powf
394
- ; CHECK-GI-NEXT: str d0, [sp] // 16-byte Folded Spill
395
- ; CHECK-GI-NEXT: fmov s0, s9
405
+ ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0
406
+ ; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill
396
407
; CHECK-GI-NEXT: fmov s1, s11
408
+ ; CHECK-GI-NEXT: fmov s0, s9
397
409
; CHECK-GI-NEXT: bl powf
398
410
; CHECK-GI-NEXT: ldp q2, q1, [sp] // 32-byte Folded Reload
399
411
; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0
@@ -422,7 +434,8 @@ define <4 x float> @pow_v4f32(<4 x float> %a, <4 x float> %b) {
422
434
; CHECK-SD-NEXT: mov s0, v0.s[1]
423
435
; CHECK-SD-NEXT: mov s1, v1.s[1]
424
436
; CHECK-SD-NEXT: bl powf
425
- ; CHECK-SD-NEXT: str d0, [sp] // 16-byte Folded Spill
437
+ ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0
438
+ ; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill
426
439
; CHECK-SD-NEXT: ldp q0, q1, [sp, #16] // 32-byte Folded Reload
427
440
; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0
428
441
; CHECK-SD-NEXT: // kill: def $s1 killed $s1 killed $q1
@@ -475,17 +488,20 @@ define <4 x float> @pow_v4f32(<4 x float> %a, <4 x float> %b) {
475
488
; CHECK-GI-NEXT: mov s13, v1.s[3]
476
489
; CHECK-GI-NEXT: // kill: def $s1 killed $s1 killed $q1
477
490
; CHECK-GI-NEXT: bl powf
478
- ; CHECK-GI-NEXT: str d0, [sp, #32] // 16-byte Folded Spill
479
- ; CHECK-GI-NEXT: fmov s0, s8
491
+ ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0
492
+ ; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill
480
493
; CHECK-GI-NEXT: fmov s1, s11
494
+ ; CHECK-GI-NEXT: fmov s0, s8
481
495
; CHECK-GI-NEXT: bl powf
482
- ; CHECK-GI-NEXT: str d0, [sp, #16] // 16-byte Folded Spill
483
- ; CHECK-GI-NEXT: fmov s0, s9
496
+ ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0
497
+ ; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill
484
498
; CHECK-GI-NEXT: fmov s1, s12
499
+ ; CHECK-GI-NEXT: fmov s0, s9
485
500
; CHECK-GI-NEXT: bl powf
486
- ; CHECK-GI-NEXT: str d0, [sp] // 16-byte Folded Spill
487
- ; CHECK-GI-NEXT: fmov s0, s10
501
+ ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0
502
+ ; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill
488
503
; CHECK-GI-NEXT: fmov s1, s13
504
+ ; CHECK-GI-NEXT: fmov s0, s10
489
505
; CHECK-GI-NEXT: bl powf
490
506
; CHECK-GI-NEXT: ldp q2, q1, [sp, #16] // 32-byte Folded Reload
491
507
; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0
@@ -517,7 +533,8 @@ define <8 x float> @pow_v8f32(<8 x float> %a, <8 x float> %b) {
517
533
; CHECK-SD-NEXT: stp q1, q3, [sp, #32] // 32-byte Folded Spill
518
534
; CHECK-SD-NEXT: mov s1, v2.s[1]
519
535
; CHECK-SD-NEXT: bl powf
520
- ; CHECK-SD-NEXT: str d0, [sp, #64] // 16-byte Folded Spill
536
+ ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0
537
+ ; CHECK-SD-NEXT: str q0, [sp, #64] // 16-byte Folded Spill
521
538
; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload
522
539
; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0
523
540
; CHECK-SD-NEXT: // kill: def $s1 killed $s1 killed $q1
@@ -546,7 +563,8 @@ define <8 x float> @pow_v8f32(<8 x float> %a, <8 x float> %b) {
546
563
; CHECK-SD-NEXT: mov s0, v0.s[1]
547
564
; CHECK-SD-NEXT: mov s1, v1.s[1]
548
565
; CHECK-SD-NEXT: bl powf
549
- ; CHECK-SD-NEXT: str d0, [sp, #16] // 16-byte Folded Spill
566
+ ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0
567
+ ; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill
550
568
; CHECK-SD-NEXT: ldp q0, q1, [sp, #32] // 32-byte Folded Reload
551
569
; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0
552
570
; CHECK-SD-NEXT: // kill: def $s1 killed $s1 killed $q1
@@ -614,32 +632,39 @@ define <8 x float> @pow_v8f32(<8 x float> %a, <8 x float> %b) {
614
632
; CHECK-GI-NEXT: mov s2, v3.s[3]
615
633
; CHECK-GI-NEXT: stp s2, s5, [sp, #200] // 8-byte Folded Spill
616
634
; CHECK-GI-NEXT: bl powf
617
- ; CHECK-GI-NEXT: str d0, [sp, #96] // 16-byte Folded Spill
618
- ; CHECK-GI-NEXT: fmov s0, s8
635
+ ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0
636
+ ; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Folded Spill
619
637
; CHECK-GI-NEXT: fmov s1, s14
638
+ ; CHECK-GI-NEXT: fmov s0, s8
620
639
; CHECK-GI-NEXT: bl powf
621
- ; CHECK-GI-NEXT: str d0, [sp, #32] // 16-byte Folded Spill
622
- ; CHECK-GI-NEXT: fmov s0, s9
640
+ ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0
641
+ ; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill
623
642
; CHECK-GI-NEXT: fmov s1, s15
643
+ ; CHECK-GI-NEXT: fmov s0, s9
624
644
; CHECK-GI-NEXT: bl powf
625
- ; CHECK-GI-NEXT: str d0, [sp, #80] // 16-byte Folded Spill
626
- ; CHECK-GI-NEXT: fmov s0, s10
645
+ ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0
646
+ ; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Folded Spill
627
647
; CHECK-GI-NEXT: fmov s1, s13
648
+ ; CHECK-GI-NEXT: fmov s0, s10
628
649
; CHECK-GI-NEXT: bl powf
629
- ; CHECK-GI-NEXT: str d0, [sp, #64] // 16-byte Folded Spill
650
+ ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0
651
+ ; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Folded Spill
630
652
; CHECK-GI-NEXT: ldp q1, q0, [sp] // 32-byte Folded Reload
631
653
; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0
632
654
; CHECK-GI-NEXT: // kill: def $s1 killed $s1 killed $q1
633
655
; CHECK-GI-NEXT: bl powf
634
656
; CHECK-GI-NEXT: fmov s1, s12
635
- ; CHECK-GI-NEXT: str d0, [sp, #16] // 16-byte Folded Spill
657
+ ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0
658
+ ; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill
636
659
; CHECK-GI-NEXT: ldr s0, [sp, #48] // 4-byte Folded Reload
637
660
; CHECK-GI-NEXT: bl powf
638
661
; CHECK-GI-NEXT: fmov s1, s11
639
- ; CHECK-GI-NEXT: str d0, [sp, #48] // 16-byte Folded Spill
662
+ ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0
663
+ ; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill
640
664
; CHECK-GI-NEXT: ldr s0, [sp, #112] // 4-byte Folded Reload
641
665
; CHECK-GI-NEXT: bl powf
642
- ; CHECK-GI-NEXT: str d0, [sp, #112] // 16-byte Folded Spill
666
+ ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0
667
+ ; CHECK-GI-NEXT: str q0, [sp, #112] // 16-byte Folded Spill
643
668
; CHECK-GI-NEXT: ldp s1, s0, [sp, #200] // 8-byte Folded Reload
644
669
; CHECK-GI-NEXT: bl powf
645
670
; CHECK-GI-NEXT: ldp q3, q2, [sp, #16] // 32-byte Folded Reload
0 commit comments