Index: llvm/lib/Target/AArch64/AArch64ISelLowering.h =================================================================== --- llvm/lib/Target/AArch64/AArch64ISelLowering.h +++ llvm/lib/Target/AArch64/AArch64ISelLowering.h @@ -891,6 +891,11 @@ SDValue Chain, SDValue InFlag, SDValue PStateSM, bool Entry) const; + // Normally SVE is only used for byte size vectors that do not fit within a + // NEON vector. This changes when OverrideNEON is true, allowing SVE to be + // used for 64bit and 128bit vectors as well. + bool useSVEForFixedLengthVectorVT(EVT VT, bool OverrideNEON = false) const; + private: /// Keep a pointer to the AArch64Subtarget around so that we can /// make the right decision when generating code for different targets. @@ -1168,11 +1173,6 @@ bool isTargetCanonicalConstantNode(SDValue Op) const override; - // Normally SVE is only used for byte size vectors that do not fit within a - // NEON vector. This changes when OverrideNEON is true, allowing SVE to be - // used for 64bit and 128bit vectors as well. - bool useSVEForFixedLengthVectorVT(EVT VT, bool OverrideNEON = false) const; - // With the exception of data-predicate transitions, no instructions are // required to cast between legal scalable vector types. However: // 1. Packed and unpacked types have different bit lengths, meaning BITCAST Index: llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp =================================================================== --- llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp +++ llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp @@ -1932,6 +1932,28 @@ FP16Tbl, ISD, DstTy.getSimpleVT(), SrcTy.getSimpleVT())) return AdjustCost(Entry->Cost); + if (ST->hasSVE() && + (getTLI()->useSVEForFixedLengthVectorVT(SrcTy.getSimpleVT()) || + getTLI()->useSVEForFixedLengthVectorVT(DstTy.getSimpleVT()))) { + if (const auto *Entry = ConvertCostTableLookup( + ConversionTbl, ISD, + MVT::getVectorVT(DstTy.getSimpleVT().getVectorElementType(), + DstTy.getSimpleVT().getVectorMinNumElements(), + true), + MVT::getVectorVT(SrcTy.getSimpleVT().getVectorElementType(), + SrcTy.getSimpleVT().getVectorMinNumElements(), + true))) { + return AdjustCost(Entry->Cost); + } + auto Dst = EVT::getVectorVT(I->getContext(), DstTy.getVectorElementType(), + DstTy.getVectorNumElements(), true); + auto Src = EVT::getVectorVT(I->getContext(), SrcTy.getVectorElementType(), + SrcTy.getVectorNumElements(), true); + return AdjustCost(BaseT::getCastInstrCost( + Opcode, Dst.getTypeForEVT(I->getContext()), + Src.getTypeForEVT(I->getContext()), CCH, CostKind, I)); + } + return AdjustCost( BaseT::getCastInstrCost(Opcode, Dst, Src, CCH, CostKind, I)); } Index: llvm/test/Analysis/CostModel/AArch64/cast.ll =================================================================== --- llvm/test/Analysis/CostModel/AArch64/cast.ll +++ llvm/test/Analysis/CostModel/AArch64/cast.ll @@ -1,6 +1,8 @@ ; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py ; RUN: opt -passes="print" 2>&1 -disable-output -mtriple=aarch64-none-linux-gnueabi %s | FileCheck --check-prefixes=CHECK,CHECK-NOFP16 %s ; RUN: opt -passes="print" 2>&1 -disable-output -mtriple=aarch64-none-linux-gnueabi -mattr=+fullfp16 %s | FileCheck --check-prefixes=CHECK,CHECK-FP16 %s +; RUN: opt -passes="print" 2>&1 -disable-output -mtriple=aarch64-none-linux-gnueabi -mattr=+sve -scalable-vectorization=off -aarch64-sve-vector-bits-min=256 %s | FileCheck --check-prefixes=SVE,FIXED-OVER-SVE256 %s +; RUN: opt -passes="print" 2>&1 -disable-output -mtriple=aarch64-none-linux-gnueabi -mattr=+sve -scalable-vectorization=off -aarch64-sve-vector-bits-min=2048 %s | FileCheck --check-prefixes=SVE,FIXED-OVER-SVE2048 %s target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" @@ -75,6 +77,148 @@ ; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %s16i32i64 = sext <16 x i32> undef to <16 x i64> ; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %z16i32i64 = zext <16 x i32> undef to <16 x i64> ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void +; +; FIXED-OVER-SVE256-LABEL: 'ext' +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r0 = sext i1 undef to i8 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r1 = zext i1 undef to i8 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r2 = sext i1 undef to i16 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r3 = zext i1 undef to i16 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r4 = sext i1 undef to i32 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r5 = zext i1 undef to i32 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r6 = sext i1 undef to i64 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r7 = zext i1 undef to i64 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r9 = sext i8 undef to i16 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r10 = zext i8 undef to i16 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r11 = sext i8 undef to i32 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r12 = zext i8 undef to i32 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r13 = sext i8 undef to i64 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r14 = zext i8 undef to i64 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r17 = sext i16 undef to i32 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r18 = zext i16 undef to i32 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r19 = sext i16 undef to i64 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r20 = zext i16 undef to i64 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r24 = sext i32 undef to i64 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r25 = zext i32 undef to i64 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %s2i8i16 = sext <2 x i8> undef to <2 x i16> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %z2i8i16 = zext <2 x i8> undef to <2 x i16> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %s2i8i32 = sext <2 x i8> undef to <2 x i32> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %z2i8i32 = zext <2 x i8> undef to <2 x i32> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %s2i8i64 = sext <2 x i8> undef to <2 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %z2i8i64 = zext <2 x i8> undef to <2 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %s2i16i32 = sext <2 x i16> undef to <2 x i32> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %z2i16i32 = zext <2 x i16> undef to <2 x i32> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %s2i16i64 = sext <2 x i16> undef to <2 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %z2i16i64 = zext <2 x i16> undef to <2 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %s2i32i64 = sext <2 x i32> undef to <2 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %z2i32i64 = zext <2 x i32> undef to <2 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %s4i8i16 = sext <4 x i8> undef to <4 x i16> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %z4i8i16 = zext <4 x i8> undef to <4 x i16> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %s4i8i32 = sext <4 x i8> undef to <4 x i32> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %z4i8i32 = zext <4 x i8> undef to <4 x i32> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %s4i8i64 = sext <4 x i8> undef to <4 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %z4i8i64 = zext <4 x i8> undef to <4 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %s4i16i32 = sext <4 x i16> undef to <4 x i32> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %z4i16i32 = zext <4 x i16> undef to <4 x i32> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %s4i16i64 = sext <4 x i16> undef to <4 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %z4i16i64 = zext <4 x i16> undef to <4 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %s4i32i64 = sext <4 x i32> undef to <4 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %z4i32i64 = zext <4 x i32> undef to <4 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %s8i8i16 = sext <8 x i8> undef to <8 x i16> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %z8i8i16 = zext <8 x i8> undef to <8 x i16> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %s8i8i32 = sext <8 x i8> undef to <8 x i32> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %z8i8i32 = zext <8 x i8> undef to <8 x i32> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %s8i8i64 = sext <8 x i8> undef to <8 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %z8i8i64 = zext <8 x i8> undef to <8 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %s8i16i32 = sext <8 x i16> undef to <8 x i32> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %z8i16i32 = zext <8 x i16> undef to <8 x i32> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %s8i16i64 = sext <8 x i16> undef to <8 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %z8i16i64 = zext <8 x i16> undef to <8 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %s8i32i64 = sext <8 x i32> undef to <8 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %z8i32i64 = zext <8 x i32> undef to <8 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %s16i8i16 = sext <16 x i8> undef to <16 x i16> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %z16i8i16 = zext <16 x i8> undef to <16 x i16> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %s16i8i32 = sext <16 x i8> undef to <16 x i32> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %z16i8i32 = zext <16 x i8> undef to <16 x i32> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 15 for instruction: %s16i8i64 = sext <16 x i8> undef to <16 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 15 for instruction: %z16i8i64 = zext <16 x i8> undef to <16 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %s16i16i32 = sext <16 x i16> undef to <16 x i32> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %z16i16i32 = zext <16 x i16> undef to <16 x i32> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %s16i16i64 = sext <16 x i16> undef to <16 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %z16i16i64 = zext <16 x i16> undef to <16 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %s16i32i64 = sext <16 x i32> undef to <16 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %z16i32i64 = zext <16 x i32> undef to <16 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void +; +; FIXED-OVER-SVE2048-LABEL: 'ext' +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r0 = sext i1 undef to i8 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r1 = zext i1 undef to i8 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r2 = sext i1 undef to i16 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r3 = zext i1 undef to i16 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r4 = sext i1 undef to i32 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r5 = zext i1 undef to i32 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r6 = sext i1 undef to i64 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r7 = zext i1 undef to i64 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r9 = sext i8 undef to i16 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r10 = zext i8 undef to i16 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r11 = sext i8 undef to i32 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r12 = zext i8 undef to i32 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r13 = sext i8 undef to i64 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r14 = zext i8 undef to i64 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r17 = sext i16 undef to i32 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r18 = zext i16 undef to i32 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r19 = sext i16 undef to i64 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r20 = zext i16 undef to i64 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r24 = sext i32 undef to i64 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r25 = zext i32 undef to i64 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %s2i8i16 = sext <2 x i8> undef to <2 x i16> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %z2i8i16 = zext <2 x i8> undef to <2 x i16> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %s2i8i32 = sext <2 x i8> undef to <2 x i32> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %z2i8i32 = zext <2 x i8> undef to <2 x i32> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %s2i8i64 = sext <2 x i8> undef to <2 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %z2i8i64 = zext <2 x i8> undef to <2 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %s2i16i32 = sext <2 x i16> undef to <2 x i32> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %z2i16i32 = zext <2 x i16> undef to <2 x i32> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %s2i16i64 = sext <2 x i16> undef to <2 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %z2i16i64 = zext <2 x i16> undef to <2 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %s2i32i64 = sext <2 x i32> undef to <2 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %z2i32i64 = zext <2 x i32> undef to <2 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %s4i8i16 = sext <4 x i8> undef to <4 x i16> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %z4i8i16 = zext <4 x i8> undef to <4 x i16> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %s4i8i32 = sext <4 x i8> undef to <4 x i32> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %z4i8i32 = zext <4 x i8> undef to <4 x i32> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %s4i8i64 = sext <4 x i8> undef to <4 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %z4i8i64 = zext <4 x i8> undef to <4 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %s4i16i32 = sext <4 x i16> undef to <4 x i32> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %z4i16i32 = zext <4 x i16> undef to <4 x i32> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %s4i16i64 = sext <4 x i16> undef to <4 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %z4i16i64 = zext <4 x i16> undef to <4 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %s4i32i64 = sext <4 x i32> undef to <4 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %z4i32i64 = zext <4 x i32> undef to <4 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %s8i8i16 = sext <8 x i8> undef to <8 x i16> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %z8i8i16 = zext <8 x i8> undef to <8 x i16> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %s8i8i32 = sext <8 x i8> undef to <8 x i32> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %z8i8i32 = zext <8 x i8> undef to <8 x i32> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %s8i8i64 = sext <8 x i8> undef to <8 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %z8i8i64 = zext <8 x i8> undef to <8 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %s8i16i32 = sext <8 x i16> undef to <8 x i32> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %z8i16i32 = zext <8 x i16> undef to <8 x i32> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %s8i16i64 = sext <8 x i16> undef to <8 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %z8i16i64 = zext <8 x i16> undef to <8 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %s8i32i64 = sext <8 x i32> undef to <8 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %z8i32i64 = zext <8 x i32> undef to <8 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %s16i8i16 = sext <16 x i8> undef to <16 x i16> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %z16i8i16 = zext <16 x i8> undef to <16 x i16> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %s16i8i32 = sext <16 x i8> undef to <16 x i32> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %z16i8i32 = zext <16 x i8> undef to <16 x i32> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %s16i8i64 = sext <16 x i8> undef to <16 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %z16i8i64 = zext <16 x i8> undef to <16 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %s16i16i32 = sext <16 x i16> undef to <16 x i32> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %z16i16i32 = zext <16 x i16> undef to <16 x i32> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %s16i16i64 = sext <16 x i16> undef to <16 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %z16i16i64 = zext <16 x i16> undef to <16 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %s16i32i64 = sext <16 x i32> undef to <16 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %z16i32i64 = zext <16 x i32> undef to <16 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; %r0 = sext i1 undef to i8 %r1 = zext i1 undef to i8 @@ -188,6 +332,43 @@ ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %s16i16i64 = trunc <16 x i64> undef to <16 x i16> ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %s16i32i64 = trunc <16 x i64> undef to <16 x i32> ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void +; +; SVE-LABEL: 'trunc' +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r8 = trunc i8 undef to i1 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r15 = trunc i16 undef to i1 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r16 = trunc i16 undef to i8 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r21 = trunc i32 undef to i1 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r22 = trunc i32 undef to i8 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r23 = trunc i32 undef to i16 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r26 = trunc i64 undef to i1 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r27 = trunc i64 undef to i8 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r28 = trunc i64 undef to i16 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r29 = trunc i64 undef to i32 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %s2i8i16 = trunc <2 x i16> undef to <2 x i8> +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %s2i8i32 = trunc <2 x i32> undef to <2 x i8> +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %s2i8i64 = trunc <2 x i64> undef to <2 x i8> +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %s2i16i32 = trunc <2 x i32> undef to <2 x i16> +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %s2i16i64 = trunc <2 x i64> undef to <2 x i16> +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %s2i32i64 = trunc <2 x i64> undef to <2 x i32> +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %s4i8i16 = trunc <4 x i16> undef to <4 x i8> +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %s4i8i32 = trunc <4 x i32> undef to <4 x i8> +; SVE-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %s4i8i64 = trunc <4 x i64> undef to <4 x i8> +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %s4i16i32 = trunc <4 x i32> undef to <4 x i16> +; SVE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %s4i16i64 = trunc <4 x i64> undef to <4 x i16> +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %s4i32i64 = trunc <4 x i64> undef to <4 x i32> +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %s8i8i16 = trunc <8 x i16> undef to <8 x i8> +; SVE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %s8i8i32 = trunc <8 x i32> undef to <8 x i8> +; SVE-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %s8i8i64 = trunc <8 x i64> undef to <8 x i8> +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %s8i16i32 = trunc <8 x i32> undef to <8 x i16> +; SVE-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %s8i16i64 = trunc <8 x i64> undef to <8 x i16> +; SVE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %s8i32i64 = trunc <8 x i64> undef to <8 x i32> +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %s16i8i16 = trunc <16 x i16> undef to <16 x i8> +; SVE-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %s16i8i32 = trunc <16 x i32> undef to <16 x i8> +; SVE-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %s16i8i64 = trunc <16 x i64> undef to <16 x i8> +; SVE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %s16i16i32 = trunc <16 x i32> undef to <16 x i16> +; SVE-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %s16i16i64 = trunc <16 x i64> undef to <16 x i16> +; SVE-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %s16i32i64 = trunc <16 x i64> undef to <16 x i32> +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; %r8 = trunc i8 undef to i1 %r15 = trunc i16 undef to i1 @@ -443,6 +624,432 @@ ; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r248 = uitofp <16 x i64> undef to <16 x double> ; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r249 = sitofp <16 x i64> undef to <16 x double> ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef +; +; FIXED-OVER-SVE256-LABEL: 'casts_no_users' +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r30 = fptoui float undef to i1 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r31 = fptosi float undef to i1 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r32 = fptoui float undef to i8 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r33 = fptosi float undef to i8 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r34 = fptoui float undef to i16 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r35 = fptosi float undef to i16 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r36 = fptoui float undef to i32 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r37 = fptosi float undef to i32 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r38 = fptoui float undef to i64 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r39 = fptosi float undef to i64 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r40 = fptoui double undef to i1 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r41 = fptosi double undef to i1 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r42 = fptoui double undef to i8 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r43 = fptosi double undef to i8 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r44 = fptoui double undef to i16 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r45 = fptosi double undef to i16 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r46 = fptoui double undef to i32 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r47 = fptosi double undef to i32 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r48 = fptoui double undef to i64 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r49 = fptosi double undef to i64 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r50 = sitofp i1 undef to float +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r51 = uitofp i1 undef to float +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r52 = sitofp i1 undef to double +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r53 = uitofp i1 undef to double +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r54 = sitofp i8 undef to float +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r55 = uitofp i8 undef to float +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r56 = sitofp i8 undef to double +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r57 = uitofp i8 undef to double +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r58 = sitofp i16 undef to float +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r59 = uitofp i16 undef to float +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r60 = sitofp i16 undef to double +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r61 = uitofp i16 undef to double +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r62 = sitofp i32 undef to float +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r63 = uitofp i32 undef to float +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r64 = sitofp i32 undef to double +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r65 = uitofp i32 undef to double +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r66 = sitofp i64 undef to float +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r67 = uitofp i64 undef to float +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r68 = sitofp i64 undef to double +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r69 = uitofp i64 undef to double +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r80 = fptrunc double undef to float +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r81 = fptrunc <2 x double> undef to <2 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r82 = fptrunc <4 x double> undef to <4 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %r83 = fptrunc <8 x double> undef to <8 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %r84 = fptrunc <16 x double> undef to <16 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r85 = fpext float undef to double +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r86 = fpext <2 x float> undef to <2 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r87 = fpext <4 x float> undef to <4 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %r88 = fpext <8 x float> undef to <8 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %r89 = fpext <16 x float> undef to <16 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r90 = fptoui <2 x float> undef to <2 x i1> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r91 = fptosi <2 x float> undef to <2 x i1> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r92 = fptoui <2 x float> undef to <2 x i8> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r93 = fptosi <2 x float> undef to <2 x i8> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r94 = fptoui <2 x float> undef to <2 x i16> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r95 = fptosi <2 x float> undef to <2 x i16> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r96 = fptoui <2 x float> undef to <2 x i32> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r97 = fptosi <2 x float> undef to <2 x i32> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r98 = fptoui <2 x float> undef to <2 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r99 = fptosi <2 x float> undef to <2 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r100 = fptoui <2 x double> undef to <2 x i1> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r101 = fptosi <2 x double> undef to <2 x i1> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r102 = fptoui <2 x double> undef to <2 x i8> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r103 = fptosi <2 x double> undef to <2 x i8> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r104 = fptoui <2 x double> undef to <2 x i16> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r105 = fptosi <2 x double> undef to <2 x i16> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r106 = fptoui <2 x double> undef to <2 x i32> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r107 = fptosi <2 x double> undef to <2 x i32> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r108 = fptoui <2 x double> undef to <2 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r109 = fptosi <2 x double> undef to <2 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 22 for instruction: %r110 = fptoui <4 x float> undef to <4 x i1> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 22 for instruction: %r111 = fptosi <4 x float> undef to <4 x i1> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r112 = fptoui <4 x float> undef to <4 x i8> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r113 = fptosi <4 x float> undef to <4 x i8> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r114 = fptoui <4 x float> undef to <4 x i16> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r115 = fptosi <4 x float> undef to <4 x i16> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r116 = fptoui <4 x float> undef to <4 x i32> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r117 = fptosi <4 x float> undef to <4 x i32> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r118 = fptoui <4 x float> undef to <4 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r119 = fptosi <4 x float> undef to <4 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r120 = fptoui <4 x double> undef to <4 x i1> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r121 = fptosi <4 x double> undef to <4 x i1> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r122 = fptoui <4 x double> undef to <4 x i8> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r123 = fptosi <4 x double> undef to <4 x i8> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r124 = fptoui <4 x double> undef to <4 x i16> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r125 = fptosi <4 x double> undef to <4 x i16> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r126 = fptoui <4 x double> undef to <4 x i32> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r127 = fptosi <4 x double> undef to <4 x i32> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r128 = fptoui <4 x double> undef to <4 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r129 = fptosi <4 x double> undef to <4 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r130 = fptoui <8 x float> undef to <8 x i1> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r131 = fptosi <8 x float> undef to <8 x i1> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r132 = fptoui <8 x float> undef to <8 x i8> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r133 = fptosi <8 x float> undef to <8 x i8> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r134 = fptoui <8 x float> undef to <8 x i16> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r135 = fptosi <8 x float> undef to <8 x i16> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r136 = fptoui <8 x float> undef to <8 x i32> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r137 = fptosi <8 x float> undef to <8 x i32> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r138 = fptoui <8 x float> undef to <8 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r139 = fptosi <8 x float> undef to <8 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r140 = fptoui <8 x double> undef to <8 x i1> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r141 = fptosi <8 x double> undef to <8 x i1> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %r142 = fptoui <8 x double> undef to <8 x i8> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %r143 = fptosi <8 x double> undef to <8 x i8> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %r144 = fptoui <8 x double> undef to <8 x i16> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %r145 = fptosi <8 x double> undef to <8 x i16> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r146 = fptoui <8 x double> undef to <8 x i32> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r147 = fptosi <8 x double> undef to <8 x i32> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r148 = fptoui <8 x double> undef to <8 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r149 = fptosi <8 x double> undef to <8 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r150 = fptoui <16 x float> undef to <16 x i1> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r151 = fptosi <16 x float> undef to <16 x i1> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %r152 = fptoui <16 x float> undef to <16 x i8> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %r153 = fptosi <16 x float> undef to <16 x i8> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r154 = fptoui <16 x float> undef to <16 x i16> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r155 = fptosi <16 x float> undef to <16 x i16> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r156 = fptoui <16 x float> undef to <16 x i32> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r157 = fptosi <16 x float> undef to <16 x i32> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r158 = fptoui <16 x float> undef to <16 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r159 = fptosi <16 x float> undef to <16 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %r160 = fptoui <16 x double> undef to <16 x i1> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %r161 = fptosi <16 x double> undef to <16 x i1> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 15 for instruction: %r162 = fptoui <16 x double> undef to <16 x i8> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 15 for instruction: %r163 = fptosi <16 x double> undef to <16 x i8> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r164 = fptoui <16 x double> undef to <16 x i16> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r165 = fptosi <16 x double> undef to <16 x i16> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r166 = fptoui <16 x double> undef to <16 x i32> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r167 = fptosi <16 x double> undef to <16 x i32> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r168 = fptoui <16 x double> undef to <16 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r169 = fptosi <16 x double> undef to <16 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r170 = uitofp <2 x i1> undef to <2 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r171 = sitofp <2 x i1> undef to <2 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r172 = uitofp <2 x i8> undef to <2 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r173 = sitofp <2 x i8> undef to <2 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r174 = uitofp <2 x i16> undef to <2 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r175 = sitofp <2 x i16> undef to <2 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r176 = uitofp <2 x i32> undef to <2 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r177 = sitofp <2 x i32> undef to <2 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r178 = uitofp <2 x i64> undef to <2 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r179 = sitofp <2 x i64> undef to <2 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r180 = uitofp <2 x i1> undef to <2 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r181 = sitofp <2 x i1> undef to <2 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r182 = uitofp <2 x i8> undef to <2 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r183 = sitofp <2 x i8> undef to <2 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r184 = uitofp <2 x i16> undef to <2 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r185 = sitofp <2 x i16> undef to <2 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r186 = uitofp <2 x i32> undef to <2 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r187 = sitofp <2 x i32> undef to <2 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r188 = uitofp <2 x i64> undef to <2 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r189 = sitofp <2 x i64> undef to <2 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r190 = uitofp <4 x i1> undef to <4 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r191 = sitofp <4 x i1> undef to <4 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r192 = uitofp <4 x i8> undef to <4 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r193 = sitofp <4 x i8> undef to <4 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r194 = uitofp <4 x i16> undef to <4 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r195 = sitofp <4 x i16> undef to <4 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r196 = uitofp <4 x i32> undef to <4 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r197 = sitofp <4 x i32> undef to <4 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r198 = uitofp <4 x i64> undef to <4 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r199 = sitofp <4 x i64> undef to <4 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r200 = uitofp <4 x i1> undef to <4 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r201 = sitofp <4 x i1> undef to <4 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r202 = uitofp <4 x i8> undef to <4 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r203 = sitofp <4 x i8> undef to <4 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r204 = uitofp <4 x i16> undef to <4 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r205 = sitofp <4 x i16> undef to <4 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r206 = uitofp <4 x i32> undef to <4 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r207 = sitofp <4 x i32> undef to <4 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r208 = uitofp <4 x i64> undef to <4 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r209 = sitofp <4 x i64> undef to <4 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r210 = uitofp <8 x i1> undef to <8 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r211 = sitofp <8 x i1> undef to <8 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %r212 = uitofp <8 x i8> undef to <8 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %r213 = sitofp <8 x i8> undef to <8 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r214 = uitofp <8 x i16> undef to <8 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r215 = sitofp <8 x i16> undef to <8 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r216 = uitofp <8 x i32> undef to <8 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r217 = sitofp <8 x i32> undef to <8 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r218 = uitofp <8 x i64> undef to <8 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r219 = sitofp <8 x i64> undef to <8 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %r220 = uitofp <8 x i1> undef to <8 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %r221 = sitofp <8 x i1> undef to <8 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %r222 = uitofp <8 x i8> undef to <8 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %r223 = sitofp <8 x i8> undef to <8 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %r224 = uitofp <8 x i16> undef to <8 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %r225 = sitofp <8 x i16> undef to <8 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %r226 = uitofp <8 x i16> undef to <8 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %r227 = sitofp <8 x i16> undef to <8 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r228 = uitofp <8 x i64> undef to <8 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r229 = sitofp <8 x i64> undef to <8 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %r230 = uitofp <16 x i1> undef to <16 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %r231 = sitofp <16 x i1> undef to <16 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 21 for instruction: %r232 = uitofp <16 x i8> undef to <16 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 21 for instruction: %r233 = sitofp <16 x i8> undef to <16 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r234 = uitofp <16 x i16> undef to <16 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r235 = sitofp <16 x i16> undef to <16 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r236 = uitofp <16 x i32> undef to <16 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r237 = sitofp <16 x i32> undef to <16 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r238 = uitofp <16 x i64> undef to <16 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r239 = sitofp <16 x i64> undef to <16 x float> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 11 for instruction: %r240 = uitofp <16 x i1> undef to <16 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 11 for instruction: %r241 = sitofp <16 x i1> undef to <16 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 11 for instruction: %r242 = uitofp <16 x i8> undef to <16 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 11 for instruction: %r243 = sitofp <16 x i8> undef to <16 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r244 = uitofp <16 x i16> undef to <16 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r245 = sitofp <16 x i16> undef to <16 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r246 = uitofp <16 x i16> undef to <16 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r247 = sitofp <16 x i16> undef to <16 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r248 = uitofp <16 x i64> undef to <16 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r249 = sitofp <16 x i64> undef to <16 x double> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef +; +; FIXED-OVER-SVE2048-LABEL: 'casts_no_users' +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r30 = fptoui float undef to i1 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r31 = fptosi float undef to i1 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r32 = fptoui float undef to i8 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r33 = fptosi float undef to i8 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r34 = fptoui float undef to i16 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r35 = fptosi float undef to i16 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r36 = fptoui float undef to i32 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r37 = fptosi float undef to i32 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r38 = fptoui float undef to i64 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r39 = fptosi float undef to i64 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r40 = fptoui double undef to i1 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r41 = fptosi double undef to i1 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r42 = fptoui double undef to i8 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r43 = fptosi double undef to i8 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r44 = fptoui double undef to i16 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r45 = fptosi double undef to i16 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r46 = fptoui double undef to i32 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r47 = fptosi double undef to i32 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r48 = fptoui double undef to i64 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r49 = fptosi double undef to i64 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r50 = sitofp i1 undef to float +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r51 = uitofp i1 undef to float +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r52 = sitofp i1 undef to double +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r53 = uitofp i1 undef to double +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r54 = sitofp i8 undef to float +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r55 = uitofp i8 undef to float +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r56 = sitofp i8 undef to double +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r57 = uitofp i8 undef to double +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r58 = sitofp i16 undef to float +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r59 = uitofp i16 undef to float +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r60 = sitofp i16 undef to double +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r61 = uitofp i16 undef to double +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r62 = sitofp i32 undef to float +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r63 = uitofp i32 undef to float +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r64 = sitofp i32 undef to double +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r65 = uitofp i32 undef to double +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r66 = sitofp i64 undef to float +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r67 = uitofp i64 undef to float +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r68 = sitofp i64 undef to double +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r69 = uitofp i64 undef to double +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r80 = fptrunc double undef to float +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r81 = fptrunc <2 x double> undef to <2 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r82 = fptrunc <4 x double> undef to <4 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %r83 = fptrunc <8 x double> undef to <8 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r84 = fptrunc <16 x double> undef to <16 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r85 = fpext float undef to double +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r86 = fpext <2 x float> undef to <2 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r87 = fpext <4 x float> undef to <4 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %r88 = fpext <8 x float> undef to <8 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r89 = fpext <16 x float> undef to <16 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r90 = fptoui <2 x float> undef to <2 x i1> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r91 = fptosi <2 x float> undef to <2 x i1> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r92 = fptoui <2 x float> undef to <2 x i8> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r93 = fptosi <2 x float> undef to <2 x i8> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r94 = fptoui <2 x float> undef to <2 x i16> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r95 = fptosi <2 x float> undef to <2 x i16> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r96 = fptoui <2 x float> undef to <2 x i32> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r97 = fptosi <2 x float> undef to <2 x i32> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r98 = fptoui <2 x float> undef to <2 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r99 = fptosi <2 x float> undef to <2 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r100 = fptoui <2 x double> undef to <2 x i1> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r101 = fptosi <2 x double> undef to <2 x i1> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r102 = fptoui <2 x double> undef to <2 x i8> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r103 = fptosi <2 x double> undef to <2 x i8> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r104 = fptoui <2 x double> undef to <2 x i16> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r105 = fptosi <2 x double> undef to <2 x i16> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r106 = fptoui <2 x double> undef to <2 x i32> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r107 = fptosi <2 x double> undef to <2 x i32> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r108 = fptoui <2 x double> undef to <2 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r109 = fptosi <2 x double> undef to <2 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 22 for instruction: %r110 = fptoui <4 x float> undef to <4 x i1> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 22 for instruction: %r111 = fptosi <4 x float> undef to <4 x i1> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r112 = fptoui <4 x float> undef to <4 x i8> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r113 = fptosi <4 x float> undef to <4 x i8> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r114 = fptoui <4 x float> undef to <4 x i16> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r115 = fptosi <4 x float> undef to <4 x i16> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r116 = fptoui <4 x float> undef to <4 x i32> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r117 = fptosi <4 x float> undef to <4 x i32> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r118 = fptoui <4 x float> undef to <4 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r119 = fptosi <4 x float> undef to <4 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r120 = fptoui <4 x double> undef to <4 x i1> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r121 = fptosi <4 x double> undef to <4 x i1> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r122 = fptoui <4 x double> undef to <4 x i8> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r123 = fptosi <4 x double> undef to <4 x i8> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r124 = fptoui <4 x double> undef to <4 x i16> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r125 = fptosi <4 x double> undef to <4 x i16> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r126 = fptoui <4 x double> undef to <4 x i32> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r127 = fptosi <4 x double> undef to <4 x i32> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r128 = fptoui <4 x double> undef to <4 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r129 = fptosi <4 x double> undef to <4 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r130 = fptoui <8 x float> undef to <8 x i1> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r131 = fptosi <8 x float> undef to <8 x i1> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r132 = fptoui <8 x float> undef to <8 x i8> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r133 = fptosi <8 x float> undef to <8 x i8> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r134 = fptoui <8 x float> undef to <8 x i16> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r135 = fptosi <8 x float> undef to <8 x i16> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r136 = fptoui <8 x float> undef to <8 x i32> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r137 = fptosi <8 x float> undef to <8 x i32> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r138 = fptoui <8 x float> undef to <8 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r139 = fptosi <8 x float> undef to <8 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r140 = fptoui <8 x double> undef to <8 x i1> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r141 = fptosi <8 x double> undef to <8 x i1> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %r142 = fptoui <8 x double> undef to <8 x i8> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %r143 = fptosi <8 x double> undef to <8 x i8> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %r144 = fptoui <8 x double> undef to <8 x i16> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %r145 = fptosi <8 x double> undef to <8 x i16> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r146 = fptoui <8 x double> undef to <8 x i32> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r147 = fptosi <8 x double> undef to <8 x i32> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r148 = fptoui <8 x double> undef to <8 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r149 = fptosi <8 x double> undef to <8 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r150 = fptoui <16 x float> undef to <16 x i1> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r151 = fptosi <16 x float> undef to <16 x i1> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r152 = fptoui <16 x float> undef to <16 x i8> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r153 = fptosi <16 x float> undef to <16 x i8> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r154 = fptoui <16 x float> undef to <16 x i16> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r155 = fptosi <16 x float> undef to <16 x i16> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r156 = fptoui <16 x float> undef to <16 x i32> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r157 = fptosi <16 x float> undef to <16 x i32> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r158 = fptoui <16 x float> undef to <16 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r159 = fptosi <16 x float> undef to <16 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r160 = fptoui <16 x double> undef to <16 x i1> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r161 = fptosi <16 x double> undef to <16 x i1> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r162 = fptoui <16 x double> undef to <16 x i8> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r163 = fptosi <16 x double> undef to <16 x i8> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r164 = fptoui <16 x double> undef to <16 x i16> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r165 = fptosi <16 x double> undef to <16 x i16> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r166 = fptoui <16 x double> undef to <16 x i32> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r167 = fptosi <16 x double> undef to <16 x i32> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r168 = fptoui <16 x double> undef to <16 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r169 = fptosi <16 x double> undef to <16 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r170 = uitofp <2 x i1> undef to <2 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r171 = sitofp <2 x i1> undef to <2 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r172 = uitofp <2 x i8> undef to <2 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r173 = sitofp <2 x i8> undef to <2 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r174 = uitofp <2 x i16> undef to <2 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r175 = sitofp <2 x i16> undef to <2 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r176 = uitofp <2 x i32> undef to <2 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r177 = sitofp <2 x i32> undef to <2 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r178 = uitofp <2 x i64> undef to <2 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r179 = sitofp <2 x i64> undef to <2 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r180 = uitofp <2 x i1> undef to <2 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r181 = sitofp <2 x i1> undef to <2 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r182 = uitofp <2 x i8> undef to <2 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r183 = sitofp <2 x i8> undef to <2 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r184 = uitofp <2 x i16> undef to <2 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r185 = sitofp <2 x i16> undef to <2 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r186 = uitofp <2 x i32> undef to <2 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r187 = sitofp <2 x i32> undef to <2 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r188 = uitofp <2 x i64> undef to <2 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r189 = sitofp <2 x i64> undef to <2 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r190 = uitofp <4 x i1> undef to <4 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r191 = sitofp <4 x i1> undef to <4 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r192 = uitofp <4 x i8> undef to <4 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r193 = sitofp <4 x i8> undef to <4 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r194 = uitofp <4 x i16> undef to <4 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r195 = sitofp <4 x i16> undef to <4 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r196 = uitofp <4 x i32> undef to <4 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r197 = sitofp <4 x i32> undef to <4 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r198 = uitofp <4 x i64> undef to <4 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r199 = sitofp <4 x i64> undef to <4 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r200 = uitofp <4 x i1> undef to <4 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r201 = sitofp <4 x i1> undef to <4 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r202 = uitofp <4 x i8> undef to <4 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r203 = sitofp <4 x i8> undef to <4 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r204 = uitofp <4 x i16> undef to <4 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r205 = sitofp <4 x i16> undef to <4 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r206 = uitofp <4 x i32> undef to <4 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r207 = sitofp <4 x i32> undef to <4 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r208 = uitofp <4 x i64> undef to <4 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r209 = sitofp <4 x i64> undef to <4 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r210 = uitofp <8 x i1> undef to <8 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r211 = sitofp <8 x i1> undef to <8 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %r212 = uitofp <8 x i8> undef to <8 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %r213 = sitofp <8 x i8> undef to <8 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r214 = uitofp <8 x i16> undef to <8 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r215 = sitofp <8 x i16> undef to <8 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r216 = uitofp <8 x i32> undef to <8 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r217 = sitofp <8 x i32> undef to <8 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r218 = uitofp <8 x i64> undef to <8 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r219 = sitofp <8 x i64> undef to <8 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r220 = uitofp <8 x i1> undef to <8 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r221 = sitofp <8 x i1> undef to <8 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r222 = uitofp <8 x i8> undef to <8 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r223 = sitofp <8 x i8> undef to <8 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r224 = uitofp <8 x i16> undef to <8 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r225 = sitofp <8 x i16> undef to <8 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r226 = uitofp <8 x i16> undef to <8 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r227 = sitofp <8 x i16> undef to <8 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r228 = uitofp <8 x i64> undef to <8 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r229 = sitofp <8 x i64> undef to <8 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r230 = uitofp <16 x i1> undef to <16 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r231 = sitofp <16 x i1> undef to <16 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 21 for instruction: %r232 = uitofp <16 x i8> undef to <16 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 21 for instruction: %r233 = sitofp <16 x i8> undef to <16 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r234 = uitofp <16 x i16> undef to <16 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r235 = sitofp <16 x i16> undef to <16 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r236 = uitofp <16 x i32> undef to <16 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r237 = sitofp <16 x i32> undef to <16 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r238 = uitofp <16 x i64> undef to <16 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r239 = sitofp <16 x i64> undef to <16 x float> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r240 = uitofp <16 x i1> undef to <16 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r241 = sitofp <16 x i1> undef to <16 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r242 = uitofp <16 x i8> undef to <16 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r243 = sitofp <16 x i8> undef to <16 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r244 = uitofp <16 x i16> undef to <16 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r245 = sitofp <16 x i16> undef to <16 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r246 = uitofp <16 x i16> undef to <16 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r247 = sitofp <16 x i16> undef to <16 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r248 = uitofp <16 x i64> undef to <16 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r249 = sitofp <16 x i64> undef to <16 x double> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef ; %r30 = fptoui float undef to i1 %r31 = fptosi float undef to i1 @@ -730,6 +1337,64 @@ ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store i32 %r24, i32* undef, align 4 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store i64 %r25, i64* undef, align 8 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 %r12 +; +; SVE-LABEL: 'casts_with_users' +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r0 = sext i8 %a to i16 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r1 = sext i8 %a to i32 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r2 = sext i8 %a to i64 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r3 = sext i16 %b to i32 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r4 = sext i16 %b to i64 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r5 = sext i32 %c to i64 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store i16 %r0, i16* undef, align 2 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store i32 %r1, i32* undef, align 4 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store i64 %r2, i64* undef, align 8 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store i32 %r3, i32* undef, align 4 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store i64 %r4, i64* undef, align 8 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store i64 %r5, i64* undef, align 8 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r6 = zext i8 %a to i16 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r7 = zext i8 %a to i32 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r8 = zext i8 %a to i64 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r9 = zext i16 %b to i32 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r10 = zext i16 %b to i64 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r11 = zext i32 %c to i64 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store i16 %r6, i16* undef, align 2 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store i32 %r7, i32* undef, align 4 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store i64 %r8, i64* undef, align 8 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store i32 %r9, i32* undef, align 4 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store i64 %r10, i64* undef, align 8 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store i64 %r11, i64* undef, align 8 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r12 = trunc i64 %d to i32 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r13 = trunc i64 %d to i16 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r14 = trunc i64 %d to i8 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r15 = trunc i32 %c to i16 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r16 = trunc i32 %c to i8 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r17 = trunc i16 %b to i8 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %tie.trunc.8 = add i8 %r14, %r16 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %tie.trunc.8.1 = add i8 %tie.trunc.8, %r17 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %tie.trunc.16 = add i16 %r13, %r15 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %free.trunc.16.8 = trunc i16 %r6 to i8 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %free.trunc.32.8 = trunc i32 %r7 to i8 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %free.trunc.32.16 = trunc i32 %r9 to i16 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %free.trunc.64.8 = trunc i64 %r8 to i8 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %free.trunc.64.16 = trunc i64 %r10 to i16 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %free.trunc.64.32 = trunc i64 %r11 to i32 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r18 = sext i1 %e to i8 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r19 = sext i1 %e to i16 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r20 = sext i1 %e to i32 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r21 = sext i1 %e to i64 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r22 = zext i1 %e to i8 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r23 = zext i1 %e to i16 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r24 = zext i1 %e to i32 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r25 = zext i1 %e to i64 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store i8 %r18, i8* undef, align 1 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store i16 %r19, i16* undef, align 2 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store i32 %r20, i32* undef, align 4 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store i64 %r21, i64* undef, align 8 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store i8 %r22, i8* undef, align 1 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store i16 %r23, i16* undef, align 2 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store i32 %r24, i32* undef, align 4 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store i64 %r25, i64* undef, align 8 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 %r12 ; %r0 = sext i8 %a to i16 %r1 = sext i8 %a to i32 @@ -804,6 +1469,17 @@ ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %g = bitcast half undef to i16 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %h = bitcast i16 undef to half ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef +; +; SVE-LABEL: 'bitcasts' +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %a = bitcast i32 undef to i32 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %b = bitcast float undef to float +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %c = bitcast i32 undef to float +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %d = bitcast float undef to i32 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %e = bitcast i64 undef to double +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %f = bitcast double undef to i64 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %g = bitcast half undef to i16 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %h = bitcast i16 undef to half +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef ; %a = bitcast i32 undef to i32 %b = bitcast float undef to float @@ -861,6 +1537,51 @@ ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16 = sext %loadnxv4i32 to ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v17 = zext %loadnxv4i32 to ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef +; +; SVE-LABEL: 'load_extends' +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %loadi8 = load i8, i8* undef, align 1 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %loadi16 = load i16, i16* undef, align 2 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %loadi32 = load i32, i32* undef, align 4 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %loadv2i8 = load <2 x i8>, <2 x i8>* undef, align 2 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %loadv4i8 = load <4 x i8>, <4 x i8>* undef, align 4 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %loadv8i8 = load <8 x i8>, <8 x i8>* undef, align 8 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %loadv2i16 = load <2 x i16>, <2 x i16>* undef, align 4 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %loadv4i16 = load <4 x i16>, <4 x i16>* undef, align 8 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %loadv2i32 = load <2 x i32>, <2 x i32>* undef, align 8 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %loadv4i32 = load <4 x i32>, <4 x i32>* undef, align 16 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %loadnxv2i32 = load , * undef, align 8 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %loadnxv4i32 = load , * undef, align 16 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r0 = sext i8 %loadi8 to i16 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r1 = zext i8 %loadi8 to i16 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r2 = sext i8 %loadi8 to i32 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r3 = zext i8 %loadi8 to i32 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r4 = sext i8 %loadi8 to i64 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r5 = zext i8 %loadi8 to i64 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r6 = sext i16 %loadi16 to i32 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r7 = zext i16 %loadi16 to i32 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r8 = sext i16 %loadi16 to i64 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r9 = zext i16 %loadi16 to i64 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r10 = sext i32 %loadi32 to i64 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r11 = zext i32 %loadi32 to i64 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v0 = sext <8 x i8> %loadv8i8 to <8 x i16> +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v1 = zext <8 x i8> %loadv8i8 to <8 x i16> +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2 = sext <4 x i8> %loadv4i8 to <4 x i32> +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v3 = zext <4 x i8> %loadv4i8 to <4 x i32> +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4 = sext <2 x i8> %loadv2i8 to <2 x i64> +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v5 = zext <2 x i8> %loadv2i8 to <2 x i64> +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v6 = sext <4 x i16> %loadv4i16 to <4 x i32> +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v7 = zext <4 x i16> %loadv4i16 to <4 x i32> +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8 = sext <2 x i16> %loadv2i16 to <2 x i64> +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v9 = zext <2 x i16> %loadv2i16 to <2 x i64> +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v10 = sext <2 x i32> %loadv2i32 to <2 x i64> +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v11 = zext <2 x i32> %loadv2i32 to <2 x i64> +; SVE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v12 = sext <4 x i32> %loadv4i32 to <4 x i64> +; SVE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v13 = zext <4 x i32> %loadv4i32 to <4 x i64> +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %v14 = sext %loadnxv2i32 to +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %v15 = zext %loadnxv2i32 to +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16 = sext %loadnxv4i32 to +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v17 = zext %loadnxv4i32 to +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef ; %loadi8 = load i8, i8* undef %loadi16 = load i16, i16* undef @@ -925,6 +1646,21 @@ ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r5 = trunc i16 undef to i8 ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store i8 %r5, i8* undef, align 1 ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef +; +; SVE-LABEL: 'store_truncs' +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r0 = trunc i64 undef to i8 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store i8 %r0, i8* undef, align 1 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r1 = trunc i64 undef to i16 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store i16 %r1, i16* undef, align 2 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r2 = trunc i64 undef to i32 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store i32 %r2, i32* undef, align 4 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r3 = trunc i32 undef to i8 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store i8 %r3, i8* undef, align 1 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r4 = trunc i32 undef to i16 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store i16 %r4, i16* undef, align 2 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %r5 = trunc i16 undef to i8 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store i8 %r5, i8* undef, align 1 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef ; %r0 = trunc i64 undef to i8 store i8 %r0, i8* undef @@ -960,6 +1696,25 @@ ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %z32_64 = zext i32 %e32 to i64 ; CHECK-NEXT: Cost Model: Found an estimated cost of 13 for instruction: call void @use(i16 %s8_16, i16 %z8_16, i32 %s8_32, i32 %z8_32, i64 %s8_64, i64 %z8_64, i32 %s16_32, i32 %z16_32, i64 %s16_64, i64 %z16_64, i64 %s32_64, i64 %z32_64) ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void +; +; SVE-LABEL: 'extend_extract' +; SVE-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %e8 = extractelement <8 x i8> undef, i32 1 +; SVE-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %e16 = extractelement <8 x i16> undef, i32 1 +; SVE-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %e32 = extractelement <8 x i32> undef, i32 1 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %s8_16 = sext i8 %e8 to i16 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %z8_16 = zext i8 %e8 to i16 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %s8_32 = sext i8 %e8 to i32 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %z8_32 = zext i8 %e8 to i32 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %s8_64 = sext i8 %e8 to i64 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %z8_64 = zext i8 %e8 to i64 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %s16_32 = sext i16 %e16 to i32 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %z16_32 = zext i16 %e16 to i32 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %s16_64 = sext i16 %e16 to i64 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %z16_64 = zext i16 %e16 to i64 +; SVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %s32_64 = sext i32 %e32 to i64 +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %z32_64 = zext i32 %e32 to i64 +; SVE-NEXT: Cost Model: Found an estimated cost of 13 for instruction: call void @use(i16 %s8_16, i16 %z8_16, i32 %s8_32, i32 %z8_32, i64 %s8_64, i64 %z8_64, i32 %s16_32, i32 %z16_32, i64 %s16_64, i64 %z16_64, i64 %s32_64, i64 %z32_64) +; SVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; %e8 = extractelement <8 x i8> undef, i32 1 %e16 = extractelement <8 x i16> undef, i32 1 @@ -1128,6 +1883,152 @@ ; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %r268 = uitofp <16 x i64> undef to <16 x half> ; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %r269 = sitofp <16 x i64> undef to <16 x half> ; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void +; +; FIXED-OVER-SVE256-LABEL: 'fp16cast' +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r30 = fptoui half undef to i1 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r31 = fptosi half undef to i1 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r32 = fptoui half undef to i8 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r33 = fptosi half undef to i8 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r34 = fptoui half undef to i16 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r35 = fptosi half undef to i16 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r36 = fptoui half undef to i32 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r37 = fptosi half undef to i32 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r38 = fptoui half undef to i64 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r39 = fptosi half undef to i64 +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r90 = fptoui <2 x half> undef to <2 x i1> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r91 = fptosi <2 x half> undef to <2 x i1> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r92 = fptoui <2 x half> undef to <2 x i8> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r93 = fptosi <2 x half> undef to <2 x i8> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r94 = fptoui <2 x half> undef to <2 x i16> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r95 = fptosi <2 x half> undef to <2 x i16> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r96 = fptoui <2 x half> undef to <2 x i32> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r97 = fptosi <2 x half> undef to <2 x i32> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r98 = fptoui <2 x half> undef to <2 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r99 = fptosi <2 x half> undef to <2 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r110 = fptoui <4 x half> undef to <4 x i1> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r111 = fptosi <4 x half> undef to <4 x i1> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r112 = fptoui <4 x half> undef to <4 x i8> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r113 = fptosi <4 x half> undef to <4 x i8> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r114 = fptoui <4 x half> undef to <4 x i16> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r115 = fptosi <4 x half> undef to <4 x i16> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r116 = fptoui <4 x half> undef to <4 x i32> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r117 = fptosi <4 x half> undef to <4 x i32> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r118 = fptoui <4 x half> undef to <4 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r119 = fptosi <4 x half> undef to <4 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 50 for instruction: %r130 = fptoui <8 x half> undef to <8 x i1> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 50 for instruction: %r131 = fptosi <8 x half> undef to <8 x i1> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r132 = fptoui <8 x half> undef to <8 x i8> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r133 = fptosi <8 x half> undef to <8 x i8> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r134 = fptoui <8 x half> undef to <8 x i16> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r135 = fptosi <8 x half> undef to <8 x i16> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r136 = fptoui <8 x half> undef to <8 x i32> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r137 = fptosi <8 x half> undef to <8 x i32> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %r138 = fptoui <8 x half> undef to <8 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %r139 = fptosi <8 x half> undef to <8 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r150 = fptoui <16 x half> undef to <16 x i1> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r151 = fptosi <16 x half> undef to <16 x i1> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r152 = fptoui <16 x half> undef to <16 x i8> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r153 = fptosi <16 x half> undef to <16 x i8> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r154 = fptoui <16 x half> undef to <16 x i16> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r155 = fptosi <16 x half> undef to <16 x i16> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r156 = fptoui <16 x half> undef to <16 x i32> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r157 = fptosi <16 x half> undef to <16 x i32> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r158 = fptoui <16 x half> undef to <16 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r159 = fptosi <16 x half> undef to <16 x i64> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r250 = uitofp <8 x i1> undef to <8 x half> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r251 = sitofp <8 x i1> undef to <8 x half> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r252 = uitofp <8 x i8> undef to <8 x half> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r253 = sitofp <8 x i8> undef to <8 x half> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r254 = uitofp <8 x i16> undef to <8 x half> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r255 = sitofp <8 x i16> undef to <8 x half> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r256 = uitofp <8 x i32> undef to <8 x half> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r257 = sitofp <8 x i32> undef to <8 x half> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r258 = uitofp <8 x i64> undef to <8 x half> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r259 = sitofp <8 x i64> undef to <8 x half> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r260 = uitofp <16 x i1> undef to <16 x half> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r261 = sitofp <16 x i1> undef to <16 x half> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r262 = uitofp <16 x i8> undef to <16 x half> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r263 = sitofp <16 x i8> undef to <16 x half> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r264 = uitofp <16 x i16> undef to <16 x half> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r265 = sitofp <16 x i16> undef to <16 x half> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r266 = uitofp <16 x i32> undef to <16 x half> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r267 = sitofp <16 x i32> undef to <16 x half> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r268 = uitofp <16 x i64> undef to <16 x half> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r269 = sitofp <16 x i64> undef to <16 x half> +; FIXED-OVER-SVE256-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void +; +; FIXED-OVER-SVE2048-LABEL: 'fp16cast' +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r30 = fptoui half undef to i1 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r31 = fptosi half undef to i1 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r32 = fptoui half undef to i8 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r33 = fptosi half undef to i8 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r34 = fptoui half undef to i16 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r35 = fptosi half undef to i16 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r36 = fptoui half undef to i32 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r37 = fptosi half undef to i32 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r38 = fptoui half undef to i64 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r39 = fptosi half undef to i64 +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r90 = fptoui <2 x half> undef to <2 x i1> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r91 = fptosi <2 x half> undef to <2 x i1> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r92 = fptoui <2 x half> undef to <2 x i8> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r93 = fptosi <2 x half> undef to <2 x i8> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r94 = fptoui <2 x half> undef to <2 x i16> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r95 = fptosi <2 x half> undef to <2 x i16> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r96 = fptoui <2 x half> undef to <2 x i32> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r97 = fptosi <2 x half> undef to <2 x i32> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r98 = fptoui <2 x half> undef to <2 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r99 = fptosi <2 x half> undef to <2 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r110 = fptoui <4 x half> undef to <4 x i1> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r111 = fptosi <4 x half> undef to <4 x i1> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r112 = fptoui <4 x half> undef to <4 x i8> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r113 = fptosi <4 x half> undef to <4 x i8> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r114 = fptoui <4 x half> undef to <4 x i16> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r115 = fptosi <4 x half> undef to <4 x i16> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r116 = fptoui <4 x half> undef to <4 x i32> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r117 = fptosi <4 x half> undef to <4 x i32> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r118 = fptoui <4 x half> undef to <4 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r119 = fptosi <4 x half> undef to <4 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 50 for instruction: %r130 = fptoui <8 x half> undef to <8 x i1> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 50 for instruction: %r131 = fptosi <8 x half> undef to <8 x i1> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r132 = fptoui <8 x half> undef to <8 x i8> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r133 = fptosi <8 x half> undef to <8 x i8> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r134 = fptoui <8 x half> undef to <8 x i16> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r135 = fptosi <8 x half> undef to <8 x i16> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r136 = fptoui <8 x half> undef to <8 x i32> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r137 = fptosi <8 x half> undef to <8 x i32> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %r138 = fptoui <8 x half> undef to <8 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %r139 = fptosi <8 x half> undef to <8 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r150 = fptoui <16 x half> undef to <16 x i1> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r151 = fptosi <16 x half> undef to <16 x i1> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r152 = fptoui <16 x half> undef to <16 x i8> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r153 = fptosi <16 x half> undef to <16 x i8> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r154 = fptoui <16 x half> undef to <16 x i16> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r155 = fptosi <16 x half> undef to <16 x i16> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r156 = fptoui <16 x half> undef to <16 x i32> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r157 = fptosi <16 x half> undef to <16 x i32> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r158 = fptoui <16 x half> undef to <16 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r159 = fptosi <16 x half> undef to <16 x i64> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r250 = uitofp <8 x i1> undef to <8 x half> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r251 = sitofp <8 x i1> undef to <8 x half> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r252 = uitofp <8 x i8> undef to <8 x half> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r253 = sitofp <8 x i8> undef to <8 x half> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r254 = uitofp <8 x i16> undef to <8 x half> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r255 = sitofp <8 x i16> undef to <8 x half> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r256 = uitofp <8 x i32> undef to <8 x half> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r257 = sitofp <8 x i32> undef to <8 x half> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r258 = uitofp <8 x i64> undef to <8 x half> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r259 = sitofp <8 x i64> undef to <8 x half> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r260 = uitofp <16 x i1> undef to <16 x half> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r261 = sitofp <16 x i1> undef to <16 x half> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r262 = uitofp <16 x i8> undef to <16 x half> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r263 = sitofp <16 x i8> undef to <16 x half> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r264 = uitofp <16 x i16> undef to <16 x half> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r265 = sitofp <16 x i16> undef to <16 x half> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r266 = uitofp <16 x i32> undef to <16 x half> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r267 = sitofp <16 x i32> undef to <16 x half> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r268 = uitofp <16 x i64> undef to <16 x half> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r269 = sitofp <16 x i64> undef to <16 x half> +; FIXED-OVER-SVE2048-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; %r30 = fptoui half undef to i1 %r31 = fptosi half undef to i1