@@ -520,3 +520,69 @@ define void @test_vXi8(<2 x i8> %src16, <4 x i8> %src32, <8 x i8> %src64, <16x i
520
520
521
521
ret void
522
522
}
523
+
524
+ define void @fixed_m1_in_m2_notail (<8 x i32 > %src , <8 x i32 > %passthru ) vscale_range(2 ) {
525
+ ; CHECK-LABEL: 'fixed_m1_in_m2_notail'
526
+ ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %1 = shufflevector <8 x i32> %src, <8 x i32> %passthru, <8 x i32> <i32 8, i32 9, i32 10, i32 11, i32 4, i32 5, i32 6, i32 7>
527
+ ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %2 = shufflevector <8 x i32> %src, <8 x i32> %passthru, <8 x i32> <i32 0, i32 8, i32 9, i32 10, i32 11, i32 5, i32 6, i32 7>
528
+ ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %3 = shufflevector <8 x i32> %src, <8 x i32> %passthru, <8 x i32> <i32 0, i32 1, i32 8, i32 9, i32 10, i32 11, i32 6, i32 7>
529
+ ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %4 = shufflevector <8 x i32> %src, <8 x i32> %passthru, <8 x i32> <i32 0, i32 1, i32 2, i32 8, i32 9, i32 10, i32 11, i32 7>
530
+ ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %5 = shufflevector <8 x i32> %src, <8 x i32> %passthru, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 8, i32 9, i32 10, i32 11>
531
+ ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
532
+ ;
533
+ ; SIZE-LABEL: 'fixed_m1_in_m2_notail'
534
+ ; SIZE-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %1 = shufflevector <8 x i32> %src, <8 x i32> %passthru, <8 x i32> <i32 8, i32 9, i32 10, i32 11, i32 4, i32 5, i32 6, i32 7>
535
+ ; SIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %2 = shufflevector <8 x i32> %src, <8 x i32> %passthru, <8 x i32> <i32 0, i32 8, i32 9, i32 10, i32 11, i32 5, i32 6, i32 7>
536
+ ; SIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %3 = shufflevector <8 x i32> %src, <8 x i32> %passthru, <8 x i32> <i32 0, i32 1, i32 8, i32 9, i32 10, i32 11, i32 6, i32 7>
537
+ ; SIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %4 = shufflevector <8 x i32> %src, <8 x i32> %passthru, <8 x i32> <i32 0, i32 1, i32 2, i32 8, i32 9, i32 10, i32 11, i32 7>
538
+ ; SIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %5 = shufflevector <8 x i32> %src, <8 x i32> %passthru, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 8, i32 9, i32 10, i32 11>
539
+ ; SIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
540
+ ;
541
+ shufflevector <8 x i32 > %src , <8 x i32 > %passthru , <8 x i32 > <i32 8 , i32 9 , i32 10 , i32 11 , i32 4 , i32 5 , i32 6 , i32 7 >
542
+ shufflevector <8 x i32 > %src , <8 x i32 > %passthru , <8 x i32 > <i32 0 , i32 8 , i32 9 , i32 10 , i32 11 , i32 5 , i32 6 , i32 7 >
543
+ shufflevector <8 x i32 > %src , <8 x i32 > %passthru , <8 x i32 > <i32 0 , i32 1 , i32 8 , i32 9 , i32 10 , i32 11 , i32 6 , i32 7 >
544
+ shufflevector <8 x i32 > %src , <8 x i32 > %passthru , <8 x i32 > <i32 0 , i32 1 , i32 2 , i32 8 , i32 9 , i32 10 , i32 11 , i32 7 >
545
+ shufflevector <8 x i32 > %src , <8 x i32 > %passthru , <8 x i32 > <i32 0 , i32 1 , i32 2 , i32 3 , i32 8 , i32 9 , i32 10 , i32 11 >
546
+ ret void
547
+ }
548
+
549
+ define void @fixed_m2_in_m4_notail (<8 x i64 > %src , <8 x i64 > %passthru ) vscale_range(2 ) {
550
+ ; CHECK-LABEL: 'fixed_m2_in_m4_notail'
551
+ ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %1 = shufflevector <8 x i64> %src, <8 x i64> %passthru, <8 x i32> <i32 8, i32 9, i32 10, i32 11, i32 4, i32 5, i32 6, i32 7>
552
+ ; CHECK-NEXT: Cost Model: Found an estimated cost of 41 for instruction: %2 = shufflevector <8 x i64> %src, <8 x i64> %passthru, <8 x i32> <i32 0, i32 8, i32 8, i32 10, i32 11, i32 5, i32 6, i32 7>
553
+ ; CHECK-NEXT: Cost Model: Found an estimated cost of 41 for instruction: %3 = shufflevector <8 x i64> %src, <8 x i64> %passthru, <8 x i32> <i32 0, i32 1, i32 8, i32 8, i32 10, i32 11, i32 6, i32 7>
554
+ ; CHECK-NEXT: Cost Model: Found an estimated cost of 41 for instruction: %4 = shufflevector <8 x i64> %src, <8 x i64> %passthru, <8 x i32> <i32 0, i32 1, i32 2, i32 8, i32 8, i32 10, i32 11, i32 7>
555
+ ; CHECK-NEXT: Cost Model: Found an estimated cost of 41 for instruction: %5 = shufflevector <8 x i64> %src, <8 x i64> %passthru, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 8, i32 8, i32 10, i32 11>
556
+ ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
557
+ ;
558
+ ; SIZE-LABEL: 'fixed_m2_in_m4_notail'
559
+ ; SIZE-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %1 = shufflevector <8 x i64> %src, <8 x i64> %passthru, <8 x i32> <i32 8, i32 9, i32 10, i32 11, i32 4, i32 5, i32 6, i32 7>
560
+ ; SIZE-NEXT: Cost Model: Found an estimated cost of 11 for instruction: %2 = shufflevector <8 x i64> %src, <8 x i64> %passthru, <8 x i32> <i32 0, i32 8, i32 8, i32 10, i32 11, i32 5, i32 6, i32 7>
561
+ ; SIZE-NEXT: Cost Model: Found an estimated cost of 11 for instruction: %3 = shufflevector <8 x i64> %src, <8 x i64> %passthru, <8 x i32> <i32 0, i32 1, i32 8, i32 8, i32 10, i32 11, i32 6, i32 7>
562
+ ; SIZE-NEXT: Cost Model: Found an estimated cost of 11 for instruction: %4 = shufflevector <8 x i64> %src, <8 x i64> %passthru, <8 x i32> <i32 0, i32 1, i32 2, i32 8, i32 8, i32 10, i32 11, i32 7>
563
+ ; SIZE-NEXT: Cost Model: Found an estimated cost of 11 for instruction: %5 = shufflevector <8 x i64> %src, <8 x i64> %passthru, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 8, i32 8, i32 10, i32 11>
564
+ ; SIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
565
+ ;
566
+ shufflevector <8 x i64 > %src , <8 x i64 > %passthru , <8 x i32 > <i32 8 , i32 9 , i32 10 , i32 11 , i32 4 , i32 5 , i32 6 , i32 7 >
567
+ shufflevector <8 x i64 > %src , <8 x i64 > %passthru , <8 x i32 > <i32 0 , i32 8 , i32 8 , i32 10 , i32 11 , i32 5 , i32 6 , i32 7 >
568
+ shufflevector <8 x i64 > %src , <8 x i64 > %passthru , <8 x i32 > <i32 0 , i32 1 , i32 8 , i32 8 , i32 10 , i32 11 , i32 6 , i32 7 >
569
+ shufflevector <8 x i64 > %src , <8 x i64 > %passthru , <8 x i32 > <i32 0 , i32 1 , i32 2 , i32 8 , i32 8 , i32 10 , i32 11 , i32 7 >
570
+ shufflevector <8 x i64 > %src , <8 x i64 > %passthru , <8 x i32 > <i32 0 , i32 1 , i32 2 , i32 3 , i32 8 , i32 8 , i32 10 , i32 11 >
571
+ ret void
572
+ }
573
+
574
+ define void @fixed_m1_in_m2_tail (<8 x i32 > %src , <8 x i32 > %passthru ) vscale_range(2 ) {
575
+ ; CHECK-LABEL: 'fixed_m1_in_m2_tail'
576
+ ; CHECK-NEXT: Cost Model: Found an estimated cost of 19 for instruction: %1 = shufflevector <8 x i32> %src, <8 x i32> %passthru, <8 x i32> <i32 8, i32 9, i32 10, i32 4, i32 4, i32 5, i32 6, i32 8>
577
+ ; CHECK-NEXT: Cost Model: Found an estimated cost of 19 for instruction: %2 = shufflevector <8 x i32> %src, <8 x i32> %passthru, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 8, i32 8, i32 10, i32 7>
578
+ ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
579
+ ;
580
+ ; SIZE-LABEL: 'fixed_m1_in_m2_tail'
581
+ ; SIZE-NEXT: Cost Model: Found an estimated cost of 11 for instruction: %1 = shufflevector <8 x i32> %src, <8 x i32> %passthru, <8 x i32> <i32 8, i32 9, i32 10, i32 4, i32 4, i32 5, i32 6, i32 8>
582
+ ; SIZE-NEXT: Cost Model: Found an estimated cost of 11 for instruction: %2 = shufflevector <8 x i32> %src, <8 x i32> %passthru, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 8, i32 8, i32 10, i32 7>
583
+ ; SIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
584
+ ;
585
+ shufflevector <8 x i32 > %src , <8 x i32 > %passthru , <8 x i32 > <i32 8 , i32 9 , i32 10 , i32 4 , i32 4 , i32 5 , i32 6 , i32 8 >
586
+ shufflevector <8 x i32 > %src , <8 x i32 > %passthru , <8 x i32 > <i32 0 , i32 1 , i32 2 , i32 3 , i32 8 , i32 8 , i32 10 , i32 7 >
587
+ ret void
588
+ }
0 commit comments