@@ -520,3 +520,69 @@ define void @test_vXi8(<2 x i8> %src16, <4 x i8> %src32, <8 x i8> %src64, <16x i
520520
521521 ret void
522522}
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