@@ -52,19 +52,19 @@ define void @loop1(ptr noalias nocapture noundef writeonly %dst, ptr nocapture n
52
52
; CHECK-NEXT: b.eq .LBB0_8
53
53
; CHECK-NEXT: .LBB0_6: // %for.body.preheader1
54
54
; CHECK-NEXT: movi d0, #0000000000000000
55
- ; CHECK-NEXT: sub w10, w2, w10
56
55
; CHECK-NEXT: mov w11, #1132396544 // =0x437f0000
56
+ ; CHECK-NEXT: sub w10, w2, w10
57
+ ; CHECK-NEXT: fmov s1, w11
57
58
; CHECK-NEXT: .LBB0_7: // %for.body
58
59
; CHECK-NEXT: // =>This Inner Loop Header: Depth=1
59
- ; CHECK-NEXT: fmov s2, w11
60
- ; CHECK-NEXT: ldr s1, [x8], #4
61
- ; CHECK-NEXT: fcmp s1, s2
62
- ; CHECK-NEXT: fcsel s2, s2, s1, gt
63
- ; CHECK-NEXT: fcmp s1, #0.0
64
- ; CHECK-NEXT: fcsel s1, s0, s2, mi
60
+ ; CHECK-NEXT: ldr s2, [x8], #4
61
+ ; CHECK-NEXT: fcmp s2, s1
62
+ ; CHECK-NEXT: fcsel s3, s1, s2, gt
63
+ ; CHECK-NEXT: fcmp s2, #0.0
64
+ ; CHECK-NEXT: fcsel s2, s0, s3, mi
65
65
; CHECK-NEXT: subs w10, w10, #1
66
- ; CHECK-NEXT: fcvtzs w12, s1
67
- ; CHECK-NEXT: strb w12 , [x9], #1
66
+ ; CHECK-NEXT: fcvtzs w11, s2
67
+ ; CHECK-NEXT: strb w11 , [x9], #1
68
68
; CHECK-NEXT: b.ne .LBB0_7
69
69
; CHECK-NEXT: .LBB0_8: // %for.cond.cleanup
70
70
; CHECK-NEXT: ret
@@ -165,25 +165,25 @@ define void @loop2(ptr noalias nocapture noundef writeonly %dst, ptr nocapture n
165
165
; CHECK-NEXT: mov x9, x0
166
166
; CHECK-NEXT: .LBB1_5: // %for.body.preheader1
167
167
; CHECK-NEXT: movi d0, #0000000000000000
168
- ; CHECK-NEXT: sub w10, w2, w10
169
168
; CHECK-NEXT: mov w11, #1132396544 // =0x437f0000
169
+ ; CHECK-NEXT: sub w10, w2, w10
170
+ ; CHECK-NEXT: fmov s1, w11
170
171
; CHECK-NEXT: .LBB1_6: // %for.body
171
172
; CHECK-NEXT: // =>This Inner Loop Header: Depth=1
172
- ; CHECK-NEXT: ldp s1, s3, [x8], #8
173
- ; CHECK-NEXT: fmov s2, w11
174
- ; CHECK-NEXT: fcmp s1, s2
175
- ; CHECK-NEXT: fcsel s4, s2, s1, gt
176
- ; CHECK-NEXT: fcmp s1, #0.0
177
- ; CHECK-NEXT: fcsel s1, s0, s4, mi
178
- ; CHECK-NEXT: fcmp s3, s2
179
- ; CHECK-NEXT: fcsel s2, s2, s3, gt
173
+ ; CHECK-NEXT: ldp s2, s3, [x8], #8
174
+ ; CHECK-NEXT: fcmp s2, s1
175
+ ; CHECK-NEXT: fcsel s4, s1, s2, gt
176
+ ; CHECK-NEXT: fcmp s2, #0.0
177
+ ; CHECK-NEXT: fcsel s2, s0, s4, mi
178
+ ; CHECK-NEXT: fcmp s3, s1
179
+ ; CHECK-NEXT: fcsel s4, s1, s3, gt
180
180
; CHECK-NEXT: fcmp s3, #0.0
181
- ; CHECK-NEXT: fcvtzs w12, s1
182
- ; CHECK-NEXT: fcsel s2 , s0, s2 , mi
181
+ ; CHECK-NEXT: fcvtzs w11, s2
182
+ ; CHECK-NEXT: fcsel s3 , s0, s4 , mi
183
183
; CHECK-NEXT: subs w10, w10, #1
184
- ; CHECK-NEXT: strb w12 , [x9]
185
- ; CHECK-NEXT: fcvtzs w13, s2
186
- ; CHECK-NEXT: strb w13 , [x9, #1]
184
+ ; CHECK-NEXT: strb w11 , [x9]
185
+ ; CHECK-NEXT: fcvtzs w12, s3
186
+ ; CHECK-NEXT: strb w12 , [x9, #1]
187
187
; CHECK-NEXT: add x9, x9, #2
188
188
; CHECK-NEXT: b.ne .LBB1_6
189
189
; CHECK-NEXT: .LBB1_7: // %for.cond.cleanup
@@ -380,33 +380,33 @@ define void @loop3(ptr noalias nocapture noundef writeonly %dst, ptr nocapture n
380
380
; CHECK-NEXT: mov x9, x0
381
381
; CHECK-NEXT: .LBB2_7: // %for.body.preheader1
382
382
; CHECK-NEXT: movi d0, #0000000000000000
383
- ; CHECK-NEXT: sub w10, w2, w10
384
383
; CHECK-NEXT: mov w11, #1132396544 // =0x437f0000
384
+ ; CHECK-NEXT: sub w10, w2, w10
385
+ ; CHECK-NEXT: fmov s1, w11
385
386
; CHECK-NEXT: .LBB2_8: // %for.body
386
387
; CHECK-NEXT: // =>This Inner Loop Header: Depth=1
387
- ; CHECK-NEXT: ldp s1, s3, [x8]
388
- ; CHECK-NEXT: fmov s2, w11
389
- ; CHECK-NEXT: fcmp s1, s2
390
- ; CHECK-NEXT: fcsel s4, s2, s1, gt
391
- ; CHECK-NEXT: fcmp s1, #0.0
392
- ; CHECK-NEXT: fcsel s1, s0, s4, mi
393
- ; CHECK-NEXT: fcmp s3, s2
394
- ; CHECK-NEXT: fcsel s4, s2, s3, gt
388
+ ; CHECK-NEXT: ldp s2, s3, [x8]
389
+ ; CHECK-NEXT: fcmp s2, s1
390
+ ; CHECK-NEXT: fcsel s4, s1, s2, gt
391
+ ; CHECK-NEXT: fcmp s2, #0.0
392
+ ; CHECK-NEXT: fcsel s2, s0, s4, mi
393
+ ; CHECK-NEXT: fcmp s3, s1
394
+ ; CHECK-NEXT: fcsel s4, s1, s3, gt
395
395
; CHECK-NEXT: fcmp s3, #0.0
396
396
; CHECK-NEXT: ldr s3, [x8, #8]
397
- ; CHECK-NEXT: fcvtzs w12, s1
397
+ ; CHECK-NEXT: fcvtzs w11, s2
398
398
; CHECK-NEXT: add x8, x8, #12
399
399
; CHECK-NEXT: fcsel s4, s0, s4, mi
400
- ; CHECK-NEXT: fcmp s3, s2
401
- ; CHECK-NEXT: strb w12 , [x9]
402
- ; CHECK-NEXT: fcsel s2, s2 , s3, gt
400
+ ; CHECK-NEXT: fcmp s3, s1
401
+ ; CHECK-NEXT: strb w11 , [x9]
402
+ ; CHECK-NEXT: fcsel s5, s1 , s3, gt
403
403
; CHECK-NEXT: fcmp s3, #0.0
404
- ; CHECK-NEXT: fcvtzs w13 , s4
405
- ; CHECK-NEXT: fcsel s2 , s0, s2 , mi
404
+ ; CHECK-NEXT: fcvtzs w12 , s4
405
+ ; CHECK-NEXT: fcsel s3 , s0, s5 , mi
406
406
; CHECK-NEXT: subs w10, w10, #1
407
- ; CHECK-NEXT: strb w13 , [x9, #1]
408
- ; CHECK-NEXT: fcvtzs w14, s2
409
- ; CHECK-NEXT: strb w14 , [x9, #2]
407
+ ; CHECK-NEXT: strb w12 , [x9, #1]
408
+ ; CHECK-NEXT: fcvtzs w13, s3
409
+ ; CHECK-NEXT: strb w13 , [x9, #2]
410
410
; CHECK-NEXT: add x9, x9, #3
411
411
; CHECK-NEXT: b.ne .LBB2_8
412
412
; CHECK-NEXT: .LBB2_9: // %for.cond.cleanup
@@ -549,39 +549,39 @@ define void @loop4(ptr noalias nocapture noundef writeonly %dst, ptr nocapture n
549
549
; CHECK-NEXT: mov x9, x0
550
550
; CHECK-NEXT: .LBB3_5: // %for.body.preheader1
551
551
; CHECK-NEXT: movi d0, #0000000000000000
552
- ; CHECK-NEXT: sub w10, w2, w10
553
552
; CHECK-NEXT: mov w11, #1132396544 // =0x437f0000
553
+ ; CHECK-NEXT: sub w10, w2, w10
554
+ ; CHECK-NEXT: fmov s1, w11
554
555
; CHECK-NEXT: .LBB3_6: // %for.body
555
556
; CHECK-NEXT: // =>This Inner Loop Header: Depth=1
556
- ; CHECK-NEXT: ldp s1, s3, [x8]
557
- ; CHECK-NEXT: fmov s2, w11
558
- ; CHECK-NEXT: fcmp s1, s2
559
- ; CHECK-NEXT: fcsel s4, s2, s1, gt
560
- ; CHECK-NEXT: fcmp s1, #0.0
561
- ; CHECK-NEXT: fcsel s1, s0, s4, mi
562
- ; CHECK-NEXT: fcmp s3, s2
563
- ; CHECK-NEXT: fcsel s4, s2, s3, gt
557
+ ; CHECK-NEXT: ldp s2, s3, [x8]
558
+ ; CHECK-NEXT: fcmp s2, s1
559
+ ; CHECK-NEXT: fcsel s4, s1, s2, gt
560
+ ; CHECK-NEXT: fcmp s2, #0.0
561
+ ; CHECK-NEXT: fcsel s2, s0, s4, mi
562
+ ; CHECK-NEXT: fcmp s3, s1
563
+ ; CHECK-NEXT: fcsel s4, s1, s3, gt
564
564
; CHECK-NEXT: fcmp s3, #0.0
565
565
; CHECK-NEXT: ldp s3, s5, [x8, #8]
566
- ; CHECK-NEXT: fcvtzs w12, s1
566
+ ; CHECK-NEXT: fcvtzs w11, s2
567
567
; CHECK-NEXT: add x8, x8, #16
568
568
; CHECK-NEXT: fcsel s4, s0, s4, mi
569
- ; CHECK-NEXT: fcmp s3, s2
570
- ; CHECK-NEXT: strb w12 , [x9]
571
- ; CHECK-NEXT: fcsel s6, s2 , s3, gt
569
+ ; CHECK-NEXT: fcmp s3, s1
570
+ ; CHECK-NEXT: strb w11 , [x9]
571
+ ; CHECK-NEXT: fcsel s6, s1 , s3, gt
572
572
; CHECK-NEXT: fcmp s3, #0.0
573
- ; CHECK-NEXT: fcvtzs w13 , s4
573
+ ; CHECK-NEXT: fcvtzs w12 , s4
574
574
; CHECK-NEXT: fcsel s3, s0, s6, mi
575
- ; CHECK-NEXT: fcmp s5, s2
576
- ; CHECK-NEXT: strb w13 , [x9, #1]
577
- ; CHECK-NEXT: fcsel s2, s2 , s5, gt
575
+ ; CHECK-NEXT: fcmp s5, s1
576
+ ; CHECK-NEXT: strb w12 , [x9, #1]
577
+ ; CHECK-NEXT: fcsel s6, s1 , s5, gt
578
578
; CHECK-NEXT: fcmp s5, #0.0
579
- ; CHECK-NEXT: fcvtzs w14 , s3
580
- ; CHECK-NEXT: fcsel s2 , s0, s2 , mi
579
+ ; CHECK-NEXT: fcvtzs w13 , s3
580
+ ; CHECK-NEXT: fcsel s5 , s0, s6 , mi
581
581
; CHECK-NEXT: subs w10, w10, #1
582
- ; CHECK-NEXT: strb w14 , [x9, #2]
583
- ; CHECK-NEXT: fcvtzs w15, s2
584
- ; CHECK-NEXT: strb w15 , [x9, #3]
582
+ ; CHECK-NEXT: strb w13 , [x9, #2]
583
+ ; CHECK-NEXT: fcvtzs w14, s5
584
+ ; CHECK-NEXT: strb w14 , [x9, #3]
585
585
; CHECK-NEXT: add x9, x9, #4
586
586
; CHECK-NEXT: b.ne .LBB3_6
587
587
; CHECK-NEXT: .LBB3_7: // %for.cond.cleanup
0 commit comments