@@ -472,59 +472,61 @@ define <8 x double> @uitofp_fadd(<32 x i16> %l) {
472
472
define <8 x double > @uitofp_load_fadd (ptr %p ) {
473
473
; CHECK-LABEL: uitofp_load_fadd:
474
474
; CHECK: // %bb.0:
475
- ; CHECK-NEXT: ld4 { v0.8h, v1.8h, v2.8h, v3.8h }, [x0]
476
- ; CHECK-NEXT: ushll2 v4.4s, v0.8h, #0
477
- ; CHECK-NEXT: ushll v5.4s, v0.4h, #0
478
- ; CHECK-NEXT: ushll2 v6.4s, v1.8h, #0
479
- ; CHECK-NEXT: ushll v7.4s, v1.4h, #0
480
- ; CHECK-NEXT: ushll2 v16.4s, v2.8h, #0
481
- ; CHECK-NEXT: ushll v17.4s, v2.4h, #0
482
- ; CHECK-NEXT: ushll2 v18.4s, v3.8h, #0
483
- ; CHECK-NEXT: ushll v0.4s, v3.4h, #0
484
- ; CHECK-NEXT: ushll2 v1.2d, v4.4s, #0
485
- ; CHECK-NEXT: ushll2 v2.2d, v5.4s, #0
486
- ; CHECK-NEXT: ushll v3.2d, v4.2s, #0
487
- ; CHECK-NEXT: ushll v4.2d, v5.2s, #0
488
- ; CHECK-NEXT: ushll2 v5.2d, v6.4s, #0
489
- ; CHECK-NEXT: ushll2 v19.2d, v7.4s, #0
490
- ; CHECK-NEXT: ushll v6.2d, v6.2s, #0
491
- ; CHECK-NEXT: ushll v7.2d, v7.2s, #0
492
- ; CHECK-NEXT: ushll2 v20.2d, v16.4s, #0
493
- ; CHECK-NEXT: ushll2 v21.2d, v17.4s, #0
494
- ; CHECK-NEXT: ushll v16.2d, v16.2s, #0
495
- ; CHECK-NEXT: ushll v17.2d, v17.2s, #0
496
- ; CHECK-NEXT: ushll v22.2d, v0.2s, #0
497
- ; CHECK-NEXT: ushll2 v23.2d, v18.4s, #0
498
- ; CHECK-NEXT: ushll2 v0.2d, v0.4s, #0
499
- ; CHECK-NEXT: ushll v18.2d, v18.2s, #0
500
- ; CHECK-NEXT: ucvtf v1.2d, v1.2d
501
- ; CHECK-NEXT: ucvtf v2.2d, v2.2d
502
- ; CHECK-NEXT: ucvtf v3.2d, v3.2d
503
- ; CHECK-NEXT: ucvtf v4.2d, v4.2d
504
- ; CHECK-NEXT: ucvtf v5.2d, v5.2d
475
+ ; CHECK-NEXT: ldp q1, q2, [x0]
476
+ ; CHECK-NEXT: movi v0.2d, #0x0000000000ffff
477
+ ; CHECK-NEXT: ldp q3, q4, [x0, #32]
478
+ ; CHECK-NEXT: ushr v5.2d, v1.2d, #16
479
+ ; CHECK-NEXT: ushr v6.2d, v2.2d, #16
480
+ ; CHECK-NEXT: ushr v20.2d, v1.2d, #32
481
+ ; CHECK-NEXT: ushr v7.2d, v3.2d, #16
482
+ ; CHECK-NEXT: ushr v17.2d, v4.2d, #16
483
+ ; CHECK-NEXT: ushr v22.2d, v2.2d, #32
484
+ ; CHECK-NEXT: ushr v23.2d, v3.2d, #32
485
+ ; CHECK-NEXT: ushr v24.2d, v4.2d, #32
486
+ ; CHECK-NEXT: and v16.16b, v1.16b, v0.16b
487
+ ; CHECK-NEXT: and v18.16b, v2.16b, v0.16b
488
+ ; CHECK-NEXT: and v19.16b, v3.16b, v0.16b
489
+ ; CHECK-NEXT: and v21.16b, v4.16b, v0.16b
490
+ ; CHECK-NEXT: and v5.16b, v5.16b, v0.16b
491
+ ; CHECK-NEXT: and v6.16b, v6.16b, v0.16b
492
+ ; CHECK-NEXT: and v7.16b, v7.16b, v0.16b
493
+ ; CHECK-NEXT: and v17.16b, v17.16b, v0.16b
494
+ ; CHECK-NEXT: and v20.16b, v20.16b, v0.16b
495
+ ; CHECK-NEXT: and v22.16b, v22.16b, v0.16b
496
+ ; CHECK-NEXT: and v23.16b, v23.16b, v0.16b
497
+ ; CHECK-NEXT: and v0.16b, v24.16b, v0.16b
498
+ ; CHECK-NEXT: ushr v1.2d, v1.2d, #48
499
+ ; CHECK-NEXT: ushr v2.2d, v2.2d, #48
500
+ ; CHECK-NEXT: ushr v3.2d, v3.2d, #48
501
+ ; CHECK-NEXT: ushr v4.2d, v4.2d, #48
502
+ ; CHECK-NEXT: ucvtf v16.2d, v16.2d
503
+ ; CHECK-NEXT: ucvtf v18.2d, v18.2d
505
504
; CHECK-NEXT: ucvtf v19.2d, v19.2d
505
+ ; CHECK-NEXT: ucvtf v21.2d, v21.2d
506
+ ; CHECK-NEXT: ucvtf v5.2d, v5.2d
506
507
; CHECK-NEXT: ucvtf v6.2d, v6.2d
507
508
; CHECK-NEXT: ucvtf v7.2d, v7.2d
508
- ; CHECK-NEXT: ucvtf v20.2d, v20.2d
509
- ; CHECK-NEXT: ucvtf v21.2d, v21.2d
510
- ; CHECK-NEXT: ucvtf v16.2d, v16.2d
511
509
; CHECK-NEXT: ucvtf v17.2d, v17.2d
510
+ ; CHECK-NEXT: ucvtf v20.2d, v20.2d
512
511
; CHECK-NEXT: ucvtf v22.2d, v22.2d
513
512
; CHECK-NEXT: ucvtf v23.2d, v23.2d
514
513
; CHECK-NEXT: ucvtf v0.2d, v0.2d
515
- ; CHECK-NEXT: ucvtf v18.2d, v18.2d
516
- ; CHECK-NEXT: fadd v1.2d, v1.2d, v5.2d
517
- ; CHECK-NEXT: fadd v4.2d, v4.2d, v7.2d
518
- ; CHECK-NEXT: fadd v6.2d, v3.2d, v6.2d
519
- ; CHECK-NEXT: fadd v2.2d, v2.2d, v19.2d
520
- ; CHECK-NEXT: fadd v3.2d, v17.2d, v22.2d
521
- ; CHECK-NEXT: fadd v5.2d, v16.2d, v18.2d
522
- ; CHECK-NEXT: fadd v7.2d, v21.2d, v0.2d
523
- ; CHECK-NEXT: fadd v16.2d, v20.2d, v23.2d
524
- ; CHECK-NEXT: fadd v0.2d, v4.2d, v3.2d
525
- ; CHECK-NEXT: fadd v3.2d, v1.2d, v16.2d
526
- ; CHECK-NEXT: fadd v1.2d, v2.2d, v7.2d
527
- ; CHECK-NEXT: fadd v2.2d, v6.2d, v5.2d
514
+ ; CHECK-NEXT: ucvtf v1.2d, v1.2d
515
+ ; CHECK-NEXT: ucvtf v2.2d, v2.2d
516
+ ; CHECK-NEXT: ucvtf v3.2d, v3.2d
517
+ ; CHECK-NEXT: ucvtf v4.2d, v4.2d
518
+ ; CHECK-NEXT: fadd v6.2d, v18.2d, v6.2d
519
+ ; CHECK-NEXT: fadd v5.2d, v16.2d, v5.2d
520
+ ; CHECK-NEXT: fadd v17.2d, v21.2d, v17.2d
521
+ ; CHECK-NEXT: fadd v7.2d, v19.2d, v7.2d
522
+ ; CHECK-NEXT: fadd v1.2d, v20.2d, v1.2d
523
+ ; CHECK-NEXT: fadd v3.2d, v23.2d, v3.2d
524
+ ; CHECK-NEXT: fadd v2.2d, v22.2d, v2.2d
525
+ ; CHECK-NEXT: fadd v4.2d, v0.2d, v4.2d
526
+ ; CHECK-NEXT: fadd v0.2d, v5.2d, v1.2d
527
+ ; CHECK-NEXT: fadd v1.2d, v6.2d, v2.2d
528
+ ; CHECK-NEXT: fadd v2.2d, v7.2d, v3.2d
529
+ ; CHECK-NEXT: fadd v3.2d, v17.2d, v4.2d
528
530
; CHECK-NEXT: ret
529
531
%l = load <32 x i16 >, ptr %p
530
532
%s1 = shufflevector <32 x i16 > %l , <32 x i16 > undef , <8 x i32 > <i32 0 , i32 4 , i32 8 , i32 12 , i32 16 , i32 20 , i32 24 , i32 28 >
0 commit comments