; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py ; Check getShuffleCost for scalable vector ; RUN: opt -passes="print" 2>&1 -disable-output -mtriple=riscv64 -mattr=+m,+v < %s | FileCheck %s --check-prefixes=CHECK,ARGBASED ; RUN: opt -passes="print" 2>&1 -disable-output -mtriple=riscv64 -mattr=+v,+v -intrinsic-cost-strategy=type-based-intrinsic-cost < %s | FileCheck %s --check-prefixes=CHECK,TYPEBASED ; RUN: opt -passes="print" 2>&1 -disable-output -mtriple=riscv64 -mattr=+m,+v -cost-kind=code-size < %s | FileCheck %s --check-prefix=SIZE define void @vector_broadcast() { ; CHECK-LABEL: 'vector_broadcast' ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zero = shufflevector undef, undef, zeroinitializer ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %1 = shufflevector undef, undef, zeroinitializer ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %2 = shufflevector undef, undef, zeroinitializer ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %3 = shufflevector undef, undef, zeroinitializer ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %4 = shufflevector undef, undef, zeroinitializer ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %5 = shufflevector undef, undef, zeroinitializer ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %6 = shufflevector undef, undef, zeroinitializer ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %7 = shufflevector undef, undef, zeroinitializer ; CHECK-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %8 = shufflevector undef, undef, zeroinitializer ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %9 = shufflevector undef, undef, zeroinitializer ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %10 = shufflevector undef, undef, zeroinitializer ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %11 = shufflevector undef, undef, zeroinitializer ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; ; SIZE-LABEL: 'vector_broadcast' ; SIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %zero = shufflevector undef, undef, zeroinitializer ; SIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %1 = shufflevector undef, undef, zeroinitializer ; SIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %2 = shufflevector undef, undef, zeroinitializer ; SIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %3 = shufflevector undef, undef, zeroinitializer ; SIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %4 = shufflevector undef, undef, zeroinitializer ; SIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %5 = shufflevector undef, undef, zeroinitializer ; SIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %6 = shufflevector undef, undef, zeroinitializer ; SIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %7 = shufflevector undef, undef, zeroinitializer ; SIZE-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %8 = shufflevector undef, undef, zeroinitializer ; SIZE-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %9 = shufflevector undef, undef, zeroinitializer ; SIZE-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %10 = shufflevector undef, undef, zeroinitializer ; SIZE-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %11 = shufflevector undef, undef, zeroinitializer ; SIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void ; %zero = shufflevector undef, undef, zeroinitializer %1 = shufflevector undef, undef, zeroinitializer %2 = shufflevector undef, undef, zeroinitializer %3 = shufflevector undef, undef, zeroinitializer %4 = shufflevector undef, undef, zeroinitializer %5 = shufflevector undef, undef, zeroinitializer %6 = shufflevector undef, undef, zeroinitializer %7 = shufflevector undef, undef, zeroinitializer %8 = shufflevector undef, undef, zeroinitializer %9 = shufflevector undef, undef, zeroinitializer %10 = shufflevector undef, undef, zeroinitializer %11 = shufflevector undef, undef, zeroinitializer ret void } define void @vector_insert_extract( %v0, %v1, <16 x i32> %v2) { ; ARGBASED-LABEL: 'vector_insert_extract' ; ARGBASED-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %extract_fixed_from_scalable = call <16 x i32> @llvm.vector.extract.v16i32.nxv4i32( %v0, i64 0) ; ARGBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %insert_fixed_into_scalable = call @llvm.vector.insert.nxv4i32.v16i32( %v0, <16 x i32> %v2, i64 0) ; ARGBASED-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %extract_scalable_from_scalable = call @llvm.vector.extract.nxv4i32.nxv16i32( %v1, i64 0) ; ARGBASED-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %insert_scalable_into_scalable = call @llvm.vector.insert.nxv16i32.nxv4i32( %v1, %v0, i64 0) ; ARGBASED-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; ; TYPEBASED-LABEL: 'vector_insert_extract' ; TYPEBASED-NEXT: Cost Model: Invalid cost for instruction: %extract_fixed_from_scalable = call <16 x i32> @llvm.vector.extract.v16i32.nxv4i32( %v0, i64 0) ; TYPEBASED-NEXT: Cost Model: Invalid cost for instruction: %insert_fixed_into_scalable = call @llvm.vector.insert.nxv4i32.v16i32( %v0, <16 x i32> %v2, i64 0) ; TYPEBASED-NEXT: Cost Model: Invalid cost for instruction: %extract_scalable_from_scalable = call @llvm.vector.extract.nxv4i32.nxv16i32( %v1, i64 0) ; TYPEBASED-NEXT: Cost Model: Invalid cost for instruction: %insert_scalable_into_scalable = call @llvm.vector.insert.nxv16i32.nxv4i32( %v1, %v0, i64 0) ; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; ; SIZE-LABEL: 'vector_insert_extract' ; SIZE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %extract_fixed_from_scalable = call <16 x i32> @llvm.vector.extract.v16i32.nxv4i32( %v0, i64 0) ; SIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %insert_fixed_into_scalable = call @llvm.vector.insert.nxv4i32.v16i32( %v0, <16 x i32> %v2, i64 0) ; SIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %extract_scalable_from_scalable = call @llvm.vector.extract.nxv4i32.nxv16i32( %v1, i64 0) ; SIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %insert_scalable_into_scalable = call @llvm.vector.insert.nxv16i32.nxv4i32( %v1, %v0, i64 0) ; SIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void ; %extract_fixed_from_scalable = call <16 x i32> @llvm.vector.extract.v16i32.nxv4i32( %v0, i64 0) %insert_fixed_into_scalable = call @llvm.vector.insert.nxv4i32.v16i32( %v0, <16 x i32> %v2, i64 0) %extract_scalable_from_scalable = call @llvm.vector.extract.nxv4i32.nxv16i32( %v1, i64 0) %insert_scalable_into_scalable = call @llvm.vector.insert.nxv16i32.nxv4i32( %v1, %v0, i64 0) ret void } define void @vector_reverse() { ; CHECK-LABEL: 'vector_reverse' ; CHECK-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %reverse_nxv16i8 = call @llvm.vector.reverse.nxv16i8( undef) ; CHECK-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %reverse_nxv32i8 = call @llvm.vector.reverse.nxv32i8( undef) ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %reverse_nxv2i16 = call @llvm.vector.reverse.nxv2i16( undef) ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %reverse_nxv4i16 = call @llvm.vector.reverse.nxv4i16( undef) ; CHECK-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %reverse_nxv8i16 = call @llvm.vector.reverse.nxv8i16( undef) ; CHECK-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %reverse_nxv16i16 = call @llvm.vector.reverse.nxv16i16( undef) ; CHECK-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %reverse_nxv4i32 = call @llvm.vector.reverse.nxv4i32( undef) ; CHECK-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %reverse_nxv8i32 = call @llvm.vector.reverse.nxv8i32( undef) ; CHECK-NEXT: Cost Model: Found an estimated cost of 13 for instruction: %reverse_nxv16i32 = call @llvm.vector.reverse.nxv16i32( undef) ; CHECK-NEXT: Cost Model: Found an estimated cost of 21 for instruction: %reverse_nxv32i32 = call @llvm.vector.reverse.nxv32i32( undef) ; CHECK-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %reverse_nxv2i64 = call @llvm.vector.reverse.nxv2i64( undef) ; CHECK-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %reverse_nxv4i64 = call @llvm.vector.reverse.nxv4i64( undef) ; CHECK-NEXT: Cost Model: Found an estimated cost of 13 for instruction: %reverse_nxv8i64 = call @llvm.vector.reverse.nxv8i64( undef) ; CHECK-NEXT: Cost Model: Found an estimated cost of 21 for instruction: %reverse_nxv16i64 = call @llvm.vector.reverse.nxv16i64( undef) ; CHECK-NEXT: Cost Model: Found an estimated cost of 37 for instruction: %reverse_nxv32i64 = call @llvm.vector.reverse.nxv32i64( undef) ; CHECK-NEXT: Cost Model: Found an estimated cost of 15 for instruction: %reverse_nxv16i1 = call @llvm.vector.reverse.nxv16i1( undef) ; CHECK-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %reverse_nxv8i1 = call @llvm.vector.reverse.nxv8i1( undef) ; CHECK-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %reverse_nxv4i1 = call @llvm.vector.reverse.nxv4i1( undef) ; CHECK-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %reverse_nxv2i1 = call @llvm.vector.reverse.nxv2i1( undef) ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; ; SIZE-LABEL: 'vector_reverse' ; SIZE-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %reverse_nxv16i8 = call @llvm.vector.reverse.nxv16i8( undef) ; SIZE-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %reverse_nxv32i8 = call @llvm.vector.reverse.nxv32i8( undef) ; SIZE-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %reverse_nxv2i16 = call @llvm.vector.reverse.nxv2i16( undef) ; SIZE-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %reverse_nxv4i16 = call @llvm.vector.reverse.nxv4i16( undef) ; SIZE-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %reverse_nxv8i16 = call @llvm.vector.reverse.nxv8i16( undef) ; SIZE-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %reverse_nxv16i16 = call @llvm.vector.reverse.nxv16i16( undef) ; SIZE-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %reverse_nxv4i32 = call @llvm.vector.reverse.nxv4i32( undef) ; SIZE-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %reverse_nxv8i32 = call @llvm.vector.reverse.nxv8i32( undef) ; SIZE-NEXT: Cost Model: Found an estimated cost of 13 for instruction: %reverse_nxv16i32 = call @llvm.vector.reverse.nxv16i32( undef) ; SIZE-NEXT: Cost Model: Found an estimated cost of 21 for instruction: %reverse_nxv32i32 = call @llvm.vector.reverse.nxv32i32( undef) ; SIZE-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %reverse_nxv2i64 = call @llvm.vector.reverse.nxv2i64( undef) ; SIZE-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %reverse_nxv4i64 = call @llvm.vector.reverse.nxv4i64( undef) ; SIZE-NEXT: Cost Model: Found an estimated cost of 13 for instruction: %reverse_nxv8i64 = call @llvm.vector.reverse.nxv8i64( undef) ; SIZE-NEXT: Cost Model: Found an estimated cost of 21 for instruction: %reverse_nxv16i64 = call @llvm.vector.reverse.nxv16i64( undef) ; SIZE-NEXT: Cost Model: Found an estimated cost of 37 for instruction: %reverse_nxv32i64 = call @llvm.vector.reverse.nxv32i64( undef) ; SIZE-NEXT: Cost Model: Found an estimated cost of 11 for instruction: %reverse_nxv16i1 = call @llvm.vector.reverse.nxv16i1( undef) ; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %reverse_nxv8i1 = call @llvm.vector.reverse.nxv8i1( undef) ; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %reverse_nxv4i1 = call @llvm.vector.reverse.nxv4i1( undef) ; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %reverse_nxv2i1 = call @llvm.vector.reverse.nxv2i1( undef) ; SIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void ; %reverse_nxv16i8 = call @llvm.vector.reverse.nxv16i8( undef) %reverse_nxv32i8 = call @llvm.vector.reverse.nxv32i8( undef) %reverse_nxv2i16 = call @llvm.vector.reverse.nxv2i16( undef) %reverse_nxv4i16 = call @llvm.vector.reverse.nxv4i16( undef) %reverse_nxv8i16 = call @llvm.vector.reverse.nxv8i16( undef) %reverse_nxv16i16 = call @llvm.vector.reverse.nxv16i16( undef) %reverse_nxv4i32 = call @llvm.vector.reverse.nxv4i32( undef) %reverse_nxv8i32 = call @llvm.vector.reverse.nxv8i32( undef) %reverse_nxv16i32 = call @llvm.vector.reverse.nxv16i32( undef) %reverse_nxv32i32 = call @llvm.vector.reverse.nxv32i32( undef) %reverse_nxv2i64 = call @llvm.vector.reverse.nxv2i64( undef) %reverse_nxv4i64 = call @llvm.vector.reverse.nxv4i64( undef) %reverse_nxv8i64 = call @llvm.vector.reverse.nxv8i64( undef) %reverse_nxv16i64 = call @llvm.vector.reverse.nxv16i64( undef) %reverse_nxv32i64 = call @llvm.vector.reverse.nxv32i64( undef) %reverse_nxv16i1 = call @llvm.vector.reverse.nxv16i1( undef) %reverse_nxv8i1 = call @llvm.vector.reverse.nxv8i1( undef) %reverse_nxv4i1 = call @llvm.vector.reverse.nxv4i1( undef) %reverse_nxv2i1 = call @llvm.vector.reverse.nxv2i1( undef) ret void } define void @vector_splice() { ; ARGBASED-LABEL: 'vector_splice' ; ARGBASED-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %splice_nxv16i8 = call @llvm.vector.splice.nxv16i8( zeroinitializer, zeroinitializer, i32 1) ; ARGBASED-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %splice_nxv32i8 = call @llvm.vector.splice.nxv32i8( zeroinitializer, zeroinitializer, i32 1) ; ARGBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %splice_nxv2i16 = call @llvm.vector.splice.nxv2i16( zeroinitializer, zeroinitializer, i32 1) ; ARGBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %splice_nxv4i16 = call @llvm.vector.splice.nxv4i16( zeroinitializer, zeroinitializer, i32 1) ; ARGBASED-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %splice_nxv8i16 = call @llvm.vector.splice.nxv8i16( zeroinitializer, zeroinitializer, i32 1) ; ARGBASED-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %splice_nxv16i16 = call @llvm.vector.splice.nxv16i16( zeroinitializer, zeroinitializer, i32 1) ; ARGBASED-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %splice_nxv4i32 = call @llvm.vector.splice.nxv4i32( zeroinitializer, zeroinitializer, i32 1) ; ARGBASED-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %splice_nxv8i32 = call @llvm.vector.splice.nxv8i32( zeroinitializer, zeroinitializer, i32 1) ; ARGBASED-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %splice_nxv2i64 = call @llvm.vector.splice.nxv2i64( zeroinitializer, zeroinitializer, i32 1) ; ARGBASED-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %splice_nxv4i64 = call @llvm.vector.splice.nxv4i64( zeroinitializer, zeroinitializer, i32 1) ; ARGBASED-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %splice_nxv16i1 = call @llvm.vector.splice.nxv16i1( zeroinitializer, zeroinitializer, i32 1) ; ARGBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %splice_nxv8i1 = call @llvm.vector.splice.nxv8i1( zeroinitializer, zeroinitializer, i32 1) ; ARGBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %splice_nxv4i1 = call @llvm.vector.splice.nxv4i1( zeroinitializer, zeroinitializer, i32 1) ; ARGBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %splice_nxv2i1 = call @llvm.vector.splice.nxv2i1( zeroinitializer, zeroinitializer, i32 1) ; ARGBASED-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; ; TYPEBASED-LABEL: 'vector_splice' ; TYPEBASED-NEXT: Cost Model: Invalid cost for instruction: %splice_nxv16i8 = call @llvm.vector.splice.nxv16i8( zeroinitializer, zeroinitializer, i32 1) ; TYPEBASED-NEXT: Cost Model: Invalid cost for instruction: %splice_nxv32i8 = call @llvm.vector.splice.nxv32i8( zeroinitializer, zeroinitializer, i32 1) ; TYPEBASED-NEXT: Cost Model: Invalid cost for instruction: %splice_nxv2i16 = call @llvm.vector.splice.nxv2i16( zeroinitializer, zeroinitializer, i32 1) ; TYPEBASED-NEXT: Cost Model: Invalid cost for instruction: %splice_nxv4i16 = call @llvm.vector.splice.nxv4i16( zeroinitializer, zeroinitializer, i32 1) ; TYPEBASED-NEXT: Cost Model: Invalid cost for instruction: %splice_nxv8i16 = call @llvm.vector.splice.nxv8i16( zeroinitializer, zeroinitializer, i32 1) ; TYPEBASED-NEXT: Cost Model: Invalid cost for instruction: %splice_nxv16i16 = call @llvm.vector.splice.nxv16i16( zeroinitializer, zeroinitializer, i32 1) ; TYPEBASED-NEXT: Cost Model: Invalid cost for instruction: %splice_nxv4i32 = call @llvm.vector.splice.nxv4i32( zeroinitializer, zeroinitializer, i32 1) ; TYPEBASED-NEXT: Cost Model: Invalid cost for instruction: %splice_nxv8i32 = call @llvm.vector.splice.nxv8i32( zeroinitializer, zeroinitializer, i32 1) ; TYPEBASED-NEXT: Cost Model: Invalid cost for instruction: %splice_nxv2i64 = call @llvm.vector.splice.nxv2i64( zeroinitializer, zeroinitializer, i32 1) ; TYPEBASED-NEXT: Cost Model: Invalid cost for instruction: %splice_nxv4i64 = call @llvm.vector.splice.nxv4i64( zeroinitializer, zeroinitializer, i32 1) ; TYPEBASED-NEXT: Cost Model: Invalid cost for instruction: %splice_nxv16i1 = call @llvm.vector.splice.nxv16i1( zeroinitializer, zeroinitializer, i32 1) ; TYPEBASED-NEXT: Cost Model: Invalid cost for instruction: %splice_nxv8i1 = call @llvm.vector.splice.nxv8i1( zeroinitializer, zeroinitializer, i32 1) ; TYPEBASED-NEXT: Cost Model: Invalid cost for instruction: %splice_nxv4i1 = call @llvm.vector.splice.nxv4i1( zeroinitializer, zeroinitializer, i32 1) ; TYPEBASED-NEXT: Cost Model: Invalid cost for instruction: %splice_nxv2i1 = call @llvm.vector.splice.nxv2i1( zeroinitializer, zeroinitializer, i32 1) ; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; ; SIZE-LABEL: 'vector_splice' ; SIZE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %splice_nxv16i8 = call @llvm.vector.splice.nxv16i8( zeroinitializer, zeroinitializer, i32 1) ; SIZE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %splice_nxv32i8 = call @llvm.vector.splice.nxv32i8( zeroinitializer, zeroinitializer, i32 1) ; SIZE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %splice_nxv2i16 = call @llvm.vector.splice.nxv2i16( zeroinitializer, zeroinitializer, i32 1) ; SIZE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %splice_nxv4i16 = call @llvm.vector.splice.nxv4i16( zeroinitializer, zeroinitializer, i32 1) ; SIZE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %splice_nxv8i16 = call @llvm.vector.splice.nxv8i16( zeroinitializer, zeroinitializer, i32 1) ; SIZE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %splice_nxv16i16 = call @llvm.vector.splice.nxv16i16( zeroinitializer, zeroinitializer, i32 1) ; SIZE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %splice_nxv4i32 = call @llvm.vector.splice.nxv4i32( zeroinitializer, zeroinitializer, i32 1) ; SIZE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %splice_nxv8i32 = call @llvm.vector.splice.nxv8i32( zeroinitializer, zeroinitializer, i32 1) ; SIZE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %splice_nxv2i64 = call @llvm.vector.splice.nxv2i64( zeroinitializer, zeroinitializer, i32 1) ; SIZE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %splice_nxv4i64 = call @llvm.vector.splice.nxv4i64( zeroinitializer, zeroinitializer, i32 1) ; SIZE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %splice_nxv16i1 = call @llvm.vector.splice.nxv16i1( zeroinitializer, zeroinitializer, i32 1) ; SIZE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %splice_nxv8i1 = call @llvm.vector.splice.nxv8i1( zeroinitializer, zeroinitializer, i32 1) ; SIZE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %splice_nxv4i1 = call @llvm.vector.splice.nxv4i1( zeroinitializer, zeroinitializer, i32 1) ; SIZE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %splice_nxv2i1 = call @llvm.vector.splice.nxv2i1( zeroinitializer, zeroinitializer, i32 1) ; SIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void ; %splice_nxv16i8 = call @llvm.vector.splice.nxv16i8( zeroinitializer, zeroinitializer, i32 1) %splice_nxv32i8 = call @llvm.vector.splice.nxv32i8( zeroinitializer, zeroinitializer, i32 1) %splice_nxv2i16 = call @llvm.vector.splice.nxv2i16( zeroinitializer, zeroinitializer, i32 1) %splice_nxv4i16 = call @llvm.vector.splice.nxv4i16( zeroinitializer, zeroinitializer, i32 1) %splice_nxv8i16 = call @llvm.vector.splice.nxv8i16( zeroinitializer, zeroinitializer, i32 1) %splice_nxv16i16 = call @llvm.vector.splice.nxv16i16( zeroinitializer, zeroinitializer, i32 1) %splice_nxv4i32 = call @llvm.vector.splice.nxv4i32( zeroinitializer, zeroinitializer, i32 1) %splice_nxv8i32 = call @llvm.vector.splice.nxv8i32( zeroinitializer, zeroinitializer, i32 1) %splice_nxv2i64 = call @llvm.vector.splice.nxv2i64( zeroinitializer, zeroinitializer, i32 1) %splice_nxv4i64 = call @llvm.vector.splice.nxv4i64( zeroinitializer, zeroinitializer, i32 1) %splice_nxv16i1 = call @llvm.vector.splice.nxv16i1( zeroinitializer, zeroinitializer, i32 1) %splice_nxv8i1 = call @llvm.vector.splice.nxv8i1( zeroinitializer, zeroinitializer, i32 1) %splice_nxv4i1 = call @llvm.vector.splice.nxv4i1( zeroinitializer, zeroinitializer, i32 1) %splice_nxv2i1 = call @llvm.vector.splice.nxv2i1( zeroinitializer, zeroinitializer, i32 1) ret void }