[llvm] [AArch64] Consider [u/s]itofp SVE packing costs (PR #225352)
Jack Styles via llvm-commits
llvm-commits at lists.llvm.org
Tue Sep 22 03:12:57 PDT 2026
https://github.com/Stylie777 created https://github.com/llvm/llvm-project/pull/225352
When using uitofp/sitofp with SVE instructions on fixed VF's the vector will need unpacking into the equivalent SVE vector. Upto now, the cost of this was not considered in the LoopVectorizer, only he cost of the FCVT. Add these costs when using SVE Vectors on a fixed VF.
The same can be applied for the reverse when using fptosi or fptoui as there will need to be packing operations to the types to be changed.
>From 2bdf08325d846314a4b76c1b88fc8068567c308d Mon Sep 17 00:00:00 2001
From: Jack Styles <jack.styles at arm.com>
Date: Tue, 15 Sep 2026 13:27:39 +0100
Subject: [PATCH] [AArch64] Consider [u/s]itofp SVE packing costs
When using uitofp/sitofp with SVE instructions on fixed VF's
the vector will need unpacking into the equivalent SVE vector.
Upto now, the cost of this was not considered in the
LoopVectorizer, only he cost of the FCVT. Add these costs when
using SVE Vectors on a fixed VF.
The same can be applied for the reverse when using fptosi or
fptoui as there will need to be packing operations to the
types to be changed.
---
.../AArch64/AArch64TargetTransformInfo.cpp | 78 +++-
.../Analysis/CostModel/AArch64/sve-cast.ll | 408 +++++++++---------
2 files changed, 265 insertions(+), 221 deletions(-)
diff --git a/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp b/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
index d8e8f58291a8d..451f1652ea5ce 100644
--- a/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
+++ b/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
@@ -3978,6 +3978,17 @@ InstructionCost AArch64TTIImpl::getCastInstrCost(unsigned Opcode, Type *Dst,
BF16Tbl, ISD, DstTy.getSimpleVT(), SrcTy.getSimpleVT()))
return Entry->Cost;
+ // Symbolic constants for the SVE sitofp/uitofp entries in the table below
+ // The cost of unpacking twice is artificially increased for now in order
+ // to avoid regressions against NEON, which will use tbl instructions directly
+ // instead of multiple layers of [s|u]unpk[lo|hi].
+ // We use the unpacks in cases where the destination type is illegal and
+ // requires splitting of the input, even if the input type itself is legal.
+ const unsigned int SVE_EXT_COST = 1;
+ const unsigned int SVE_FCVT_COST = 1;
+ const unsigned int SVE_UNPACK_ONCE = 4;
+ const unsigned int SVE_UNPACK_TWICE = 16;
+
// We have to estimate a cost of fixed length operation upon
// SVE registers(operations) with the number of registers required
// for a fixed type to be represented upon SVE registers.
@@ -3985,28 +3996,61 @@ InstructionCost AArch64TTIImpl::getCastInstrCost(unsigned Opcode, Type *Dst,
if (SrcTy.isFixedLengthVector() && DstTy.isFixedLengthVector() &&
SrcTy.getVectorNumElements() == DstTy.getVectorNumElements() &&
ST->useSVEForFixedLengthVectors(WiderTy)) {
+ // When going from a fixed vector to a scalable vector, types that get
+ // promoted will have associated unpacking costs that would not otherwise be
+ // present.
+ static const TypeConversionCostTblEntry FixedToScalablePackUnpackTbl[] = {
+ // f16 unpack
+ {ISD::UINT_TO_FP, MVT::nxv8f16, MVT::nxv8i8, SVE_UNPACK_ONCE},
+ {ISD::SINT_TO_FP, MVT::nxv8f16, MVT::nxv8i8, SVE_UNPACK_ONCE},
+ // f32 unpack
+ {ISD::UINT_TO_FP, MVT::nxv4f32, MVT::nxv4i8, SVE_UNPACK_ONCE},
+ {ISD::UINT_TO_FP, MVT::nxv4f32, MVT::nxv4i16, SVE_UNPACK_ONCE},
+ {ISD::SINT_TO_FP, MVT::nxv4f32, MVT::nxv4i8, SVE_UNPACK_ONCE},
+ {ISD::SINT_TO_FP, MVT::nxv4f32, MVT::nxv4i16, SVE_UNPACK_ONCE},
+ // f64 unpack
+ {ISD::UINT_TO_FP, MVT::nxv2f64, MVT::nxv2i8, SVE_UNPACK_TWICE},
+ {ISD::UINT_TO_FP, MVT::nxv2f64, MVT::nxv2i16, SVE_UNPACK_TWICE},
+ {ISD::UINT_TO_FP, MVT::nxv2f64, MVT::nxv2i32, SVE_UNPACK_ONCE},
+ {ISD::SINT_TO_FP, MVT::nxv2f64, MVT::nxv2i8, SVE_UNPACK_TWICE},
+ {ISD::SINT_TO_FP, MVT::nxv2f64, MVT::nxv2i16, SVE_UNPACK_TWICE},
+ {ISD::SINT_TO_FP, MVT::nxv2f64, MVT::nxv2i32, SVE_UNPACK_ONCE},
+ // f16 pack
+ {ISD::FP_TO_UINT, MVT::nxv8i8, MVT::nxv8f16, 1}, // uzp
+ {ISD::FP_TO_SINT, MVT::nxv8i8, MVT::nxv8f16, 1}, // uzp
+ // f32 pack
+ {ISD::FP_TO_UINT, MVT::nxv4i8, MVT::nxv4f32, 2}, // 2 uzp
+ {ISD::FP_TO_UINT, MVT::nxv4i16, MVT::nxv4f32, 1}, // uzp
+ {ISD::FP_TO_SINT, MVT::nxv4i8, MVT::nxv4f32, 2}, // 2 uzp
+ {ISD::FP_TO_SINT, MVT::nxv4i16, MVT::nxv4f32, 1}, // uzp
+ // f64 pack
+ {ISD::FP_TO_UINT, MVT::nxv2i8, MVT::nxv2f64, 2}, // 2 uzp
+ {ISD::FP_TO_UINT, MVT::nxv2i16, MVT::nxv2f64, 2}, // 2 uzp
+ {ISD::FP_TO_UINT, MVT::nxv2i32, MVT::nxv2f64, 1}, // uzp
+ {ISD::FP_TO_SINT, MVT::nxv2i8, MVT::nxv2f64, 2}, // 2 uzp
+ {ISD::FP_TO_SINT, MVT::nxv2i16, MVT::nxv2f64, 2}, // 2 uzp
+ {ISD::FP_TO_SINT, MVT::nxv2i32, MVT::nxv2f64, 1}, // uzp
+ };
+
std::pair<InstructionCost, MVT> LT =
getTypeLegalizationCost(WiderTy.getTypeForEVT(Dst->getContext()));
+ InstructionCost Cost = LT.first;
unsigned NumElements =
AArch64::SVEBitsPerBlock / LT.second.getScalarSizeInBits();
- return LT.first *
- getCastInstrCost(
- Opcode,
- ScalableVectorType::get(Dst->getScalarType(), NumElements),
- ScalableVectorType::get(Src->getScalarType(), NumElements), CCH,
- CostKind, I);
- }
+ auto *SrcScalabeTy =
+ ScalableVectorType::get(Src->getScalarType(), NumElements);
+ auto *DstScalabeTy =
+ ScalableVectorType::get(Dst->getScalarType(), NumElements);
+ InstructionCost ConversionCost =
+ getCastInstrCost(Opcode, DstScalabeTy, SrcScalabeTy, CCH, CostKind, I);
+ if (const auto *Entry = ConvertCostTableLookup(
+ FixedToScalablePackUnpackTbl, ISD,
+ TLI->getValueType(DL, DstScalabeTy).getSimpleVT(),
+ TLI->getValueType(DL, SrcScalabeTy).getSimpleVT()))
+ return Cost * (ConversionCost + Entry->Cost);
- // Symbolic constants for the SVE sitofp/uitofp entries in the table below
- // The cost of unpacking twice is artificially increased for now in order
- // to avoid regressions against NEON, which will use tbl instructions directly
- // instead of multiple layers of [s|u]unpk[lo|hi].
- // We use the unpacks in cases where the destination type is illegal and
- // requires splitting of the input, even if the input type itself is legal.
- const unsigned int SVE_EXT_COST = 1;
- const unsigned int SVE_FCVT_COST = 1;
- const unsigned int SVE_UNPACK_ONCE = 4;
- const unsigned int SVE_UNPACK_TWICE = 16;
+ return Cost * ConversionCost;
+ }
static const TypeConversionCostTblEntry ConversionTbl[] = {
{ISD::TRUNCATE, MVT::v2i8, MVT::v2i64, 1}, // xtn
diff --git a/llvm/test/Analysis/CostModel/AArch64/sve-cast.ll b/llvm/test/Analysis/CostModel/AArch64/sve-cast.ll
index 7b482f39a228f..85edb0a7481d6 100644
--- a/llvm/test/Analysis/CostModel/AArch64/sve-cast.ll
+++ b/llvm/test/Analysis/CostModel/AArch64/sve-cast.ll
@@ -823,162 +823,162 @@ define i32 @casts_no_users() {
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 8 for: %r89 = fpext <16 x float> poison to <16 x double>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r90 = fptoui <2 x float> poison to <2 x i1>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r91 = fptosi <2 x float> poison to <2 x i1>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r92 = fptoui <2 x float> poison to <2 x i8>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r93 = fptosi <2 x float> poison to <2 x i8>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r94 = fptoui <2 x float> poison to <2 x i16>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r95 = fptosi <2 x float> poison to <2 x i16>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 3 for: %r92 = fptoui <2 x float> poison to <2 x i8>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 3 for: %r93 = fptosi <2 x float> poison to <2 x i8>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r94 = fptoui <2 x float> poison to <2 x i16>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r95 = fptosi <2 x float> poison to <2 x i16>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r96 = fptoui <2 x float> poison to <2 x i32>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r97 = fptosi <2 x float> poison to <2 x i32>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r98 = fptoui <2 x float> poison to <2 x i64>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r99 = fptosi <2 x float> poison to <2 x i64>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r100 = fptoui <2 x double> poison to <2 x i1>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r101 = fptosi <2 x double> poison to <2 x i1>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r102 = fptoui <2 x double> poison to <2 x i8>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r103 = fptosi <2 x double> poison to <2 x i8>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r104 = fptoui <2 x double> poison to <2 x i16>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r105 = fptosi <2 x double> poison to <2 x i16>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r106 = fptoui <2 x double> poison to <2 x i32>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r107 = fptosi <2 x double> poison to <2 x i32>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 3 for: %r102 = fptoui <2 x double> poison to <2 x i8>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 3 for: %r103 = fptosi <2 x double> poison to <2 x i8>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 3 for: %r104 = fptoui <2 x double> poison to <2 x i16>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 3 for: %r105 = fptosi <2 x double> poison to <2 x i16>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r106 = fptoui <2 x double> poison to <2 x i32>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r107 = fptosi <2 x double> poison to <2 x i32>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r108 = fptoui <2 x double> poison to <2 x i64>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r109 = fptosi <2 x double> poison to <2 x i64>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r110 = fptoui <4 x float> poison to <4 x i1>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r111 = fptosi <4 x float> poison to <4 x i1>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r112 = fptoui <4 x float> poison to <4 x i8>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r113 = fptosi <4 x float> poison to <4 x i8>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r114 = fptoui <4 x float> poison to <4 x i16>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r115 = fptosi <4 x float> poison to <4 x i16>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 3 for: %r112 = fptoui <4 x float> poison to <4 x i8>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 3 for: %r113 = fptosi <4 x float> poison to <4 x i8>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r114 = fptoui <4 x float> poison to <4 x i16>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r115 = fptosi <4 x float> poison to <4 x i16>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r116 = fptoui <4 x float> poison to <4 x i32>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r117 = fptosi <4 x float> poison to <4 x i32>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r118 = fptoui <4 x float> poison to <4 x i64>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r119 = fptosi <4 x float> poison to <4 x i64>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r120 = fptoui <4 x double> poison to <4 x i1>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r121 = fptosi <4 x double> poison to <4 x i1>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r122 = fptoui <4 x double> poison to <4 x i8>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r123 = fptosi <4 x double> poison to <4 x i8>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r124 = fptoui <4 x double> poison to <4 x i16>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r125 = fptosi <4 x double> poison to <4 x i16>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r126 = fptoui <4 x double> poison to <4 x i32>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r127 = fptosi <4 x double> poison to <4 x i32>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 6 for: %r122 = fptoui <4 x double> poison to <4 x i8>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 6 for: %r123 = fptosi <4 x double> poison to <4 x i8>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 6 for: %r124 = fptoui <4 x double> poison to <4 x i16>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 6 for: %r125 = fptosi <4 x double> poison to <4 x i16>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r126 = fptoui <4 x double> poison to <4 x i32>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r127 = fptosi <4 x double> poison to <4 x i32>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r128 = fptoui <4 x double> poison to <4 x i64>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r129 = fptosi <4 x double> poison to <4 x i64>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r130 = fptoui <8 x float> poison to <8 x i1>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r131 = fptosi <8 x float> poison to <8 x i1>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r132 = fptoui <8 x float> poison to <8 x i8>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r133 = fptosi <8 x float> poison to <8 x i8>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r134 = fptoui <8 x float> poison to <8 x i16>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r135 = fptosi <8 x float> poison to <8 x i16>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 6 for: %r132 = fptoui <8 x float> poison to <8 x i8>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 6 for: %r133 = fptosi <8 x float> poison to <8 x i8>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r134 = fptoui <8 x float> poison to <8 x i16>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r135 = fptosi <8 x float> poison to <8 x i16>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r136 = fptoui <8 x float> poison to <8 x i32>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r137 = fptosi <8 x float> poison to <8 x i32>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r138 = fptoui <8 x float> poison to <8 x i64>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r139 = fptosi <8 x float> poison to <8 x i64>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r140 = fptoui <8 x double> poison to <8 x i1>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r141 = fptosi <8 x double> poison to <8 x i1>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r142 = fptoui <8 x double> poison to <8 x i8>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r143 = fptosi <8 x double> poison to <8 x i8>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r144 = fptoui <8 x double> poison to <8 x i16>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r145 = fptosi <8 x double> poison to <8 x i16>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r146 = fptoui <8 x double> poison to <8 x i32>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r147 = fptosi <8 x double> poison to <8 x i32>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 12 for: %r142 = fptoui <8 x double> poison to <8 x i8>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 12 for: %r143 = fptosi <8 x double> poison to <8 x i8>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 12 for: %r144 = fptoui <8 x double> poison to <8 x i16>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 12 for: %r145 = fptosi <8 x double> poison to <8 x i16>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 8 for: %r146 = fptoui <8 x double> poison to <8 x i32>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 8 for: %r147 = fptosi <8 x double> poison to <8 x i32>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r148 = fptoui <8 x double> poison to <8 x i64>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r149 = fptosi <8 x double> poison to <8 x i64>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r150 = fptoui <16 x float> poison to <16 x i1>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r151 = fptosi <16 x float> poison to <16 x i1>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r152 = fptoui <16 x float> poison to <16 x i8>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r153 = fptosi <16 x float> poison to <16 x i8>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r154 = fptoui <16 x float> poison to <16 x i16>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r155 = fptosi <16 x float> poison to <16 x i16>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 12 for: %r152 = fptoui <16 x float> poison to <16 x i8>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 12 for: %r153 = fptosi <16 x float> poison to <16 x i8>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 8 for: %r154 = fptoui <16 x float> poison to <16 x i16>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 8 for: %r155 = fptosi <16 x float> poison to <16 x i16>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r156 = fptoui <16 x float> poison to <16 x i32>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r157 = fptosi <16 x float> poison to <16 x i32>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 8 for: %r158 = fptoui <16 x float> poison to <16 x i64>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 8 for: %r159 = fptosi <16 x float> poison to <16 x i64>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 8 for: %r160 = fptoui <16 x double> poison to <16 x i1>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 8 for: %r161 = fptosi <16 x double> poison to <16 x i1>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 8 for: %r162 = fptoui <16 x double> poison to <16 x i8>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 8 for: %r163 = fptosi <16 x double> poison to <16 x i8>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 8 for: %r164 = fptoui <16 x double> poison to <16 x i16>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 8 for: %r165 = fptosi <16 x double> poison to <16 x i16>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 8 for: %r166 = fptoui <16 x double> poison to <16 x i32>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 8 for: %r167 = fptosi <16 x double> poison to <16 x i32>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 24 for: %r162 = fptoui <16 x double> poison to <16 x i8>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 24 for: %r163 = fptosi <16 x double> poison to <16 x i8>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 24 for: %r164 = fptoui <16 x double> poison to <16 x i16>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 24 for: %r165 = fptosi <16 x double> poison to <16 x i16>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 16 for: %r166 = fptoui <16 x double> poison to <16 x i32>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 16 for: %r167 = fptosi <16 x double> poison to <16 x i32>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 8 for: %r168 = fptoui <16 x double> poison to <16 x i64>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 8 for: %r169 = fptosi <16 x double> poison to <16 x i64>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r170 = uitofp <2 x i1> poison to <2 x float>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r171 = sitofp <2 x i1> poison to <2 x float>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r172 = uitofp <2 x i8> poison to <2 x float>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r173 = sitofp <2 x i8> poison to <2 x float>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r174 = uitofp <2 x i16> poison to <2 x float>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r175 = sitofp <2 x i16> poison to <2 x float>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 6 for: %r172 = uitofp <2 x i8> poison to <2 x float>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 6 for: %r173 = sitofp <2 x i8> poison to <2 x float>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 5 for: %r174 = uitofp <2 x i16> poison to <2 x float>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 5 for: %r175 = sitofp <2 x i16> poison to <2 x float>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r176 = uitofp <2 x i32> poison to <2 x float>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r177 = sitofp <2 x i32> poison to <2 x float>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r178 = uitofp <2 x i64> poison to <2 x float>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r179 = sitofp <2 x i64> poison to <2 x float>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r180 = uitofp <2 x i1> poison to <2 x double>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r181 = sitofp <2 x i1> poison to <2 x double>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r182 = uitofp <2 x i8> poison to <2 x double>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r183 = sitofp <2 x i8> poison to <2 x double>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r184 = uitofp <2 x i16> poison to <2 x double>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r185 = sitofp <2 x i16> poison to <2 x double>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r186 = uitofp <2 x i32> poison to <2 x double>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r187 = sitofp <2 x i32> poison to <2 x double>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 18 for: %r182 = uitofp <2 x i8> poison to <2 x double>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 18 for: %r183 = sitofp <2 x i8> poison to <2 x double>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 17 for: %r184 = uitofp <2 x i16> poison to <2 x double>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 17 for: %r185 = sitofp <2 x i16> poison to <2 x double>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 5 for: %r186 = uitofp <2 x i32> poison to <2 x double>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 5 for: %r187 = sitofp <2 x i32> poison to <2 x double>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r188 = uitofp <2 x i64> poison to <2 x double>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r189 = sitofp <2 x i64> poison to <2 x double>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r190 = uitofp <4 x i1> poison to <4 x float>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r191 = sitofp <4 x i1> poison to <4 x float>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r192 = uitofp <4 x i8> poison to <4 x float>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r193 = sitofp <4 x i8> poison to <4 x float>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r194 = uitofp <4 x i16> poison to <4 x float>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r195 = sitofp <4 x i16> poison to <4 x float>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 6 for: %r192 = uitofp <4 x i8> poison to <4 x float>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 6 for: %r193 = sitofp <4 x i8> poison to <4 x float>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 5 for: %r194 = uitofp <4 x i16> poison to <4 x float>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 5 for: %r195 = sitofp <4 x i16> poison to <4 x float>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r196 = uitofp <4 x i32> poison to <4 x float>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r197 = sitofp <4 x i32> poison to <4 x float>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r198 = uitofp <4 x i64> poison to <4 x float>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r199 = sitofp <4 x i64> poison to <4 x float>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r200 = uitofp <4 x i1> poison to <4 x double>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r201 = sitofp <4 x i1> poison to <4 x double>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r202 = uitofp <4 x i8> poison to <4 x double>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r203 = sitofp <4 x i8> poison to <4 x double>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r204 = uitofp <4 x i16> poison to <4 x double>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r205 = sitofp <4 x i16> poison to <4 x double>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r206 = uitofp <4 x i32> poison to <4 x double>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r207 = sitofp <4 x i32> poison to <4 x double>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 36 for: %r202 = uitofp <4 x i8> poison to <4 x double>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 36 for: %r203 = sitofp <4 x i8> poison to <4 x double>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 34 for: %r204 = uitofp <4 x i16> poison to <4 x double>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 34 for: %r205 = sitofp <4 x i16> poison to <4 x double>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 10 for: %r206 = uitofp <4 x i32> poison to <4 x double>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 10 for: %r207 = sitofp <4 x i32> poison to <4 x double>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r208 = uitofp <4 x i64> poison to <4 x double>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r209 = sitofp <4 x i64> poison to <4 x double>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r210 = uitofp <8 x i1> poison to <8 x float>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r211 = sitofp <8 x i1> poison to <8 x float>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r212 = uitofp <8 x i8> poison to <8 x float>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r213 = sitofp <8 x i8> poison to <8 x float>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r214 = uitofp <8 x i16> poison to <8 x float>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r215 = sitofp <8 x i16> poison to <8 x float>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 12 for: %r212 = uitofp <8 x i8> poison to <8 x float>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 12 for: %r213 = sitofp <8 x i8> poison to <8 x float>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 10 for: %r214 = uitofp <8 x i16> poison to <8 x float>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 10 for: %r215 = sitofp <8 x i16> poison to <8 x float>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r216 = uitofp <8 x i32> poison to <8 x float>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r217 = sitofp <8 x i32> poison to <8 x float>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r218 = uitofp <8 x i64> poison to <8 x float>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r219 = sitofp <8 x i64> poison to <8 x float>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r220 = uitofp <8 x i1> poison to <8 x double>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r221 = sitofp <8 x i1> poison to <8 x double>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 8 for: %r222 = uitofp <8 x i8> poison to <8 x double>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 8 for: %r223 = sitofp <8 x i8> poison to <8 x double>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r224 = uitofp <8 x i16> poison to <8 x double>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r225 = sitofp <8 x i16> poison to <8 x double>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r226 = uitofp <8 x i32> poison to <8 x double>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r227 = sitofp <8 x i32> poison to <8 x double>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 72 for: %r222 = uitofp <8 x i8> poison to <8 x double>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 72 for: %r223 = sitofp <8 x i8> poison to <8 x double>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 68 for: %r224 = uitofp <8 x i16> poison to <8 x double>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 68 for: %r225 = sitofp <8 x i16> poison to <8 x double>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 20 for: %r226 = uitofp <8 x i32> poison to <8 x double>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 20 for: %r227 = sitofp <8 x i32> poison to <8 x double>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r228 = uitofp <8 x i64> poison to <8 x double>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r229 = sitofp <8 x i64> poison to <8 x double>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r230 = uitofp <16 x i1> poison to <16 x float>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r231 = sitofp <16 x i1> poison to <16 x float>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 8 for: %r232 = uitofp <16 x i8> poison to <16 x float>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 8 for: %r233 = sitofp <16 x i8> poison to <16 x float>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r234 = uitofp <16 x i16> poison to <16 x float>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r235 = sitofp <16 x i16> poison to <16 x float>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 24 for: %r232 = uitofp <16 x i8> poison to <16 x float>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 24 for: %r233 = sitofp <16 x i8> poison to <16 x float>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 20 for: %r234 = uitofp <16 x i16> poison to <16 x float>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 20 for: %r235 = sitofp <16 x i16> poison to <16 x float>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r236 = uitofp <16 x i32> poison to <16 x float>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r237 = sitofp <16 x i32> poison to <16 x float>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 8 for: %r238 = uitofp <16 x i64> poison to <16 x float>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 8 for: %r239 = sitofp <16 x i64> poison to <16 x float>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 8 for: %r240 = uitofp <16 x i1> poison to <16 x double>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 8 for: %r241 = sitofp <16 x i1> poison to <16 x double>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 16 for: %r242 = uitofp <16 x i8> poison to <16 x double>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 16 for: %r243 = sitofp <16 x i8> poison to <16 x double>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 8 for: %r244 = uitofp <16 x i16> poison to <16 x double>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 8 for: %r245 = sitofp <16 x i16> poison to <16 x double>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 8 for: %r246 = uitofp <16 x i32> poison to <16 x double>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 8 for: %r247 = sitofp <16 x i32> poison to <16 x double>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 144 for: %r242 = uitofp <16 x i8> poison to <16 x double>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 144 for: %r243 = sitofp <16 x i8> poison to <16 x double>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 136 for: %r244 = uitofp <16 x i16> poison to <16 x double>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 136 for: %r245 = sitofp <16 x i16> poison to <16 x double>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 40 for: %r246 = uitofp <16 x i32> poison to <16 x double>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 40 for: %r247 = sitofp <16 x i32> poison to <16 x double>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 8 for: %r248 = uitofp <16 x i64> poison to <16 x double>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 8 for: %r249 = sitofp <16 x i64> poison to <16 x double>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef
@@ -1066,52 +1066,52 @@ define i32 @casts_no_users() {
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r119 = fptosi <4 x float> poison to <4 x i64>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r120 = fptoui <4 x double> poison to <4 x i1>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r121 = fptosi <4 x double> poison to <4 x i1>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r122 = fptoui <4 x double> poison to <4 x i8>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r123 = fptosi <4 x double> poison to <4 x i8>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r124 = fptoui <4 x double> poison to <4 x i16>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r125 = fptosi <4 x double> poison to <4 x i16>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r126 = fptoui <4 x double> poison to <4 x i32>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r127 = fptosi <4 x double> poison to <4 x i32>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 3 for: %r122 = fptoui <4 x double> poison to <4 x i8>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 3 for: %r123 = fptosi <4 x double> poison to <4 x i8>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 3 for: %r124 = fptoui <4 x double> poison to <4 x i16>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 3 for: %r125 = fptosi <4 x double> poison to <4 x i16>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r126 = fptoui <4 x double> poison to <4 x i32>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r127 = fptosi <4 x double> poison to <4 x i32>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r128 = fptoui <4 x double> poison to <4 x i64>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r129 = fptosi <4 x double> poison to <4 x i64>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r130 = fptoui <8 x float> poison to <8 x i1>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r131 = fptosi <8 x float> poison to <8 x i1>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r132 = fptoui <8 x float> poison to <8 x i8>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r133 = fptosi <8 x float> poison to <8 x i8>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r134 = fptoui <8 x float> poison to <8 x i16>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r135 = fptosi <8 x float> poison to <8 x i16>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 3 for: %r132 = fptoui <8 x float> poison to <8 x i8>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 3 for: %r133 = fptosi <8 x float> poison to <8 x i8>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r134 = fptoui <8 x float> poison to <8 x i16>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r135 = fptosi <8 x float> poison to <8 x i16>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r136 = fptoui <8 x float> poison to <8 x i32>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r137 = fptosi <8 x float> poison to <8 x i32>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r138 = fptoui <8 x float> poison to <8 x i64>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r139 = fptosi <8 x float> poison to <8 x i64>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r140 = fptoui <8 x double> poison to <8 x i1>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r141 = fptosi <8 x double> poison to <8 x i1>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r142 = fptoui <8 x double> poison to <8 x i8>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r143 = fptosi <8 x double> poison to <8 x i8>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r144 = fptoui <8 x double> poison to <8 x i16>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r145 = fptosi <8 x double> poison to <8 x i16>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r146 = fptoui <8 x double> poison to <8 x i32>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r147 = fptosi <8 x double> poison to <8 x i32>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 6 for: %r142 = fptoui <8 x double> poison to <8 x i8>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 6 for: %r143 = fptosi <8 x double> poison to <8 x i8>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 6 for: %r144 = fptoui <8 x double> poison to <8 x i16>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 6 for: %r145 = fptosi <8 x double> poison to <8 x i16>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 4 for: %r146 = fptoui <8 x double> poison to <8 x i32>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 4 for: %r147 = fptosi <8 x double> poison to <8 x i32>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r148 = fptoui <8 x double> poison to <8 x i64>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r149 = fptosi <8 x double> poison to <8 x i64>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r150 = fptoui <16 x float> poison to <16 x i1>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r151 = fptosi <16 x float> poison to <16 x i1>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r152 = fptoui <16 x float> poison to <16 x i8>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r153 = fptosi <16 x float> poison to <16 x i8>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r154 = fptoui <16 x float> poison to <16 x i16>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r155 = fptosi <16 x float> poison to <16 x i16>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 6 for: %r152 = fptoui <16 x float> poison to <16 x i8>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 6 for: %r153 = fptosi <16 x float> poison to <16 x i8>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 4 for: %r154 = fptoui <16 x float> poison to <16 x i16>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 4 for: %r155 = fptosi <16 x float> poison to <16 x i16>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r156 = fptoui <16 x float> poison to <16 x i32>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r157 = fptosi <16 x float> poison to <16 x i32>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 4 for: %r158 = fptoui <16 x float> poison to <16 x i64>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 4 for: %r159 = fptosi <16 x float> poison to <16 x i64>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 4 for: %r160 = fptoui <16 x double> poison to <16 x i1>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 4 for: %r161 = fptosi <16 x double> poison to <16 x i1>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 4 for: %r162 = fptoui <16 x double> poison to <16 x i8>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 4 for: %r163 = fptosi <16 x double> poison to <16 x i8>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 4 for: %r164 = fptoui <16 x double> poison to <16 x i16>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 4 for: %r165 = fptosi <16 x double> poison to <16 x i16>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 4 for: %r166 = fptoui <16 x double> poison to <16 x i32>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 4 for: %r167 = fptosi <16 x double> poison to <16 x i32>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 12 for: %r162 = fptoui <16 x double> poison to <16 x i8>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 12 for: %r163 = fptosi <16 x double> poison to <16 x i8>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 12 for: %r164 = fptoui <16 x double> poison to <16 x i16>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 12 for: %r165 = fptosi <16 x double> poison to <16 x i16>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 8 for: %r166 = fptoui <16 x double> poison to <16 x i32>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 8 for: %r167 = fptosi <16 x double> poison to <16 x i32>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 4 for: %r168 = fptoui <16 x double> poison to <16 x i64>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 4 for: %r169 = fptosi <16 x double> poison to <16 x i64>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r170 = uitofp <2 x i1> poison to <2 x float>
@@ -1146,52 +1146,52 @@ define i32 @casts_no_users() {
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r199 = sitofp <4 x i64> poison to <4 x float>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r200 = uitofp <4 x i1> poison to <4 x double>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r201 = sitofp <4 x i1> poison to <4 x double>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r202 = uitofp <4 x i8> poison to <4 x double>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r203 = sitofp <4 x i8> poison to <4 x double>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r204 = uitofp <4 x i16> poison to <4 x double>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r205 = sitofp <4 x i16> poison to <4 x double>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r206 = uitofp <4 x i32> poison to <4 x double>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r207 = sitofp <4 x i32> poison to <4 x double>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 18 for: %r202 = uitofp <4 x i8> poison to <4 x double>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 18 for: %r203 = sitofp <4 x i8> poison to <4 x double>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 17 for: %r204 = uitofp <4 x i16> poison to <4 x double>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 17 for: %r205 = sitofp <4 x i16> poison to <4 x double>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 5 for: %r206 = uitofp <4 x i32> poison to <4 x double>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 5 for: %r207 = sitofp <4 x i32> poison to <4 x double>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r208 = uitofp <4 x i64> poison to <4 x double>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r209 = sitofp <4 x i64> poison to <4 x double>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r210 = uitofp <8 x i1> poison to <8 x float>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r211 = sitofp <8 x i1> poison to <8 x float>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r212 = uitofp <8 x i8> poison to <8 x float>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r213 = sitofp <8 x i8> poison to <8 x float>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r214 = uitofp <8 x i16> poison to <8 x float>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r215 = sitofp <8 x i16> poison to <8 x float>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 6 for: %r212 = uitofp <8 x i8> poison to <8 x float>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 6 for: %r213 = sitofp <8 x i8> poison to <8 x float>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 5 for: %r214 = uitofp <8 x i16> poison to <8 x float>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 5 for: %r215 = sitofp <8 x i16> poison to <8 x float>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r216 = uitofp <8 x i32> poison to <8 x float>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r217 = sitofp <8 x i32> poison to <8 x float>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r218 = uitofp <8 x i64> poison to <8 x float>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r219 = sitofp <8 x i64> poison to <8 x float>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r220 = uitofp <8 x i1> poison to <8 x double>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r221 = sitofp <8 x i1> poison to <8 x double>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 4 for: %r222 = uitofp <8 x i8> poison to <8 x double>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 4 for: %r223 = sitofp <8 x i8> poison to <8 x double>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r224 = uitofp <8 x i16> poison to <8 x double>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r225 = sitofp <8 x i16> poison to <8 x double>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r226 = uitofp <8 x i32> poison to <8 x double>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r227 = sitofp <8 x i32> poison to <8 x double>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 36 for: %r222 = uitofp <8 x i8> poison to <8 x double>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 36 for: %r223 = sitofp <8 x i8> poison to <8 x double>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 34 for: %r224 = uitofp <8 x i16> poison to <8 x double>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 34 for: %r225 = sitofp <8 x i16> poison to <8 x double>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 10 for: %r226 = uitofp <8 x i32> poison to <8 x double>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 10 for: %r227 = sitofp <8 x i32> poison to <8 x double>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r228 = uitofp <8 x i64> poison to <8 x double>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r229 = sitofp <8 x i64> poison to <8 x double>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r230 = uitofp <16 x i1> poison to <16 x float>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r231 = sitofp <16 x i1> poison to <16 x float>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 4 for: %r232 = uitofp <16 x i8> poison to <16 x float>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 4 for: %r233 = sitofp <16 x i8> poison to <16 x float>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r234 = uitofp <16 x i16> poison to <16 x float>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r235 = sitofp <16 x i16> poison to <16 x float>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 12 for: %r232 = uitofp <16 x i8> poison to <16 x float>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 12 for: %r233 = sitofp <16 x i8> poison to <16 x float>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 10 for: %r234 = uitofp <16 x i16> poison to <16 x float>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 10 for: %r235 = sitofp <16 x i16> poison to <16 x float>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r236 = uitofp <16 x i32> poison to <16 x float>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r237 = sitofp <16 x i32> poison to <16 x float>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 4 for: %r238 = uitofp <16 x i64> poison to <16 x float>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 4 for: %r239 = sitofp <16 x i64> poison to <16 x float>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 4 for: %r240 = uitofp <16 x i1> poison to <16 x double>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 4 for: %r241 = sitofp <16 x i1> poison to <16 x double>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 8 for: %r242 = uitofp <16 x i8> poison to <16 x double>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 8 for: %r243 = sitofp <16 x i8> poison to <16 x double>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 4 for: %r244 = uitofp <16 x i16> poison to <16 x double>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 4 for: %r245 = sitofp <16 x i16> poison to <16 x double>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 4 for: %r246 = uitofp <16 x i32> poison to <16 x double>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 4 for: %r247 = sitofp <16 x i32> poison to <16 x double>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 72 for: %r242 = uitofp <16 x i8> poison to <16 x double>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 72 for: %r243 = sitofp <16 x i8> poison to <16 x double>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 68 for: %r244 = uitofp <16 x i16> poison to <16 x double>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 68 for: %r245 = sitofp <16 x i16> poison to <16 x double>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 20 for: %r246 = uitofp <16 x i32> poison to <16 x double>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 20 for: %r247 = sitofp <16 x i32> poison to <16 x double>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 4 for: %r248 = uitofp <16 x i64> poison to <16 x double>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 4 for: %r249 = sitofp <16 x i64> poison to <16 x double>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef
@@ -1279,52 +1279,52 @@ define i32 @casts_no_users() {
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r119 = fptosi <4 x float> poison to <4 x i64>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r120 = fptoui <4 x double> poison to <4 x i1>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r121 = fptosi <4 x double> poison to <4 x i1>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r122 = fptoui <4 x double> poison to <4 x i8>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r123 = fptosi <4 x double> poison to <4 x i8>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r124 = fptoui <4 x double> poison to <4 x i16>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r125 = fptosi <4 x double> poison to <4 x i16>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r126 = fptoui <4 x double> poison to <4 x i32>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r127 = fptosi <4 x double> poison to <4 x i32>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 3 for: %r122 = fptoui <4 x double> poison to <4 x i8>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 3 for: %r123 = fptosi <4 x double> poison to <4 x i8>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 3 for: %r124 = fptoui <4 x double> poison to <4 x i16>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 3 for: %r125 = fptosi <4 x double> poison to <4 x i16>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 2 for: %r126 = fptoui <4 x double> poison to <4 x i32>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 2 for: %r127 = fptosi <4 x double> poison to <4 x i32>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r128 = fptoui <4 x double> poison to <4 x i64>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r129 = fptosi <4 x double> poison to <4 x i64>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r130 = fptoui <8 x float> poison to <8 x i1>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r131 = fptosi <8 x float> poison to <8 x i1>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r132 = fptoui <8 x float> poison to <8 x i8>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r133 = fptosi <8 x float> poison to <8 x i8>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r134 = fptoui <8 x float> poison to <8 x i16>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r135 = fptosi <8 x float> poison to <8 x i16>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 3 for: %r132 = fptoui <8 x float> poison to <8 x i8>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 3 for: %r133 = fptosi <8 x float> poison to <8 x i8>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 2 for: %r134 = fptoui <8 x float> poison to <8 x i16>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 2 for: %r135 = fptosi <8 x float> poison to <8 x i16>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r136 = fptoui <8 x float> poison to <8 x i32>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r137 = fptosi <8 x float> poison to <8 x i32>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r138 = fptoui <8 x float> poison to <8 x i64>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r139 = fptosi <8 x float> poison to <8 x i64>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r140 = fptoui <8 x double> poison to <8 x i1>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r141 = fptosi <8 x double> poison to <8 x i1>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r142 = fptoui <8 x double> poison to <8 x i8>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r143 = fptosi <8 x double> poison to <8 x i8>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r144 = fptoui <8 x double> poison to <8 x i16>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r145 = fptosi <8 x double> poison to <8 x i16>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r146 = fptoui <8 x double> poison to <8 x i32>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r147 = fptosi <8 x double> poison to <8 x i32>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 3 for: %r142 = fptoui <8 x double> poison to <8 x i8>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 3 for: %r143 = fptosi <8 x double> poison to <8 x i8>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 3 for: %r144 = fptoui <8 x double> poison to <8 x i16>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 3 for: %r145 = fptosi <8 x double> poison to <8 x i16>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 2 for: %r146 = fptoui <8 x double> poison to <8 x i32>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 2 for: %r147 = fptosi <8 x double> poison to <8 x i32>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r148 = fptoui <8 x double> poison to <8 x i64>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r149 = fptosi <8 x double> poison to <8 x i64>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r150 = fptoui <16 x float> poison to <16 x i1>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r151 = fptosi <16 x float> poison to <16 x i1>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r152 = fptoui <16 x float> poison to <16 x i8>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r153 = fptosi <16 x float> poison to <16 x i8>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r154 = fptoui <16 x float> poison to <16 x i16>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r155 = fptosi <16 x float> poison to <16 x i16>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 3 for: %r152 = fptoui <16 x float> poison to <16 x i8>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 3 for: %r153 = fptosi <16 x float> poison to <16 x i8>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 2 for: %r154 = fptoui <16 x float> poison to <16 x i16>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 2 for: %r155 = fptosi <16 x float> poison to <16 x i16>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r156 = fptoui <16 x float> poison to <16 x i32>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r157 = fptosi <16 x float> poison to <16 x i32>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r158 = fptoui <16 x float> poison to <16 x i64>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r159 = fptosi <16 x float> poison to <16 x i64>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r160 = fptoui <16 x double> poison to <16 x i1>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r161 = fptosi <16 x double> poison to <16 x i1>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r162 = fptoui <16 x double> poison to <16 x i8>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r163 = fptosi <16 x double> poison to <16 x i8>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r164 = fptoui <16 x double> poison to <16 x i16>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r165 = fptosi <16 x double> poison to <16 x i16>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r166 = fptoui <16 x double> poison to <16 x i32>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r167 = fptosi <16 x double> poison to <16 x i32>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 3 for: %r162 = fptoui <16 x double> poison to <16 x i8>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 3 for: %r163 = fptosi <16 x double> poison to <16 x i8>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 3 for: %r164 = fptoui <16 x double> poison to <16 x i16>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 3 for: %r165 = fptosi <16 x double> poison to <16 x i16>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 2 for: %r166 = fptoui <16 x double> poison to <16 x i32>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 2 for: %r167 = fptosi <16 x double> poison to <16 x i32>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r168 = fptoui <16 x double> poison to <16 x i64>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r169 = fptosi <16 x double> poison to <16 x i64>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r170 = uitofp <2 x i1> poison to <2 x float>
@@ -1359,52 +1359,52 @@ define i32 @casts_no_users() {
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r199 = sitofp <4 x i64> poison to <4 x float>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r200 = uitofp <4 x i1> poison to <4 x double>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r201 = sitofp <4 x i1> poison to <4 x double>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 2 for: %r202 = uitofp <4 x i8> poison to <4 x double>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 2 for: %r203 = sitofp <4 x i8> poison to <4 x double>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r204 = uitofp <4 x i16> poison to <4 x double>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r205 = sitofp <4 x i16> poison to <4 x double>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r206 = uitofp <4 x i32> poison to <4 x double>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r207 = sitofp <4 x i32> poison to <4 x double>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 18 for: %r202 = uitofp <4 x i8> poison to <4 x double>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 18 for: %r203 = sitofp <4 x i8> poison to <4 x double>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 17 for: %r204 = uitofp <4 x i16> poison to <4 x double>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 17 for: %r205 = sitofp <4 x i16> poison to <4 x double>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 5 for: %r206 = uitofp <4 x i32> poison to <4 x double>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 5 for: %r207 = sitofp <4 x i32> poison to <4 x double>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r208 = uitofp <4 x i64> poison to <4 x double>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r209 = sitofp <4 x i64> poison to <4 x double>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r210 = uitofp <8 x i1> poison to <8 x float>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r211 = sitofp <8 x i1> poison to <8 x float>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 2 for: %r212 = uitofp <8 x i8> poison to <8 x float>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 2 for: %r213 = sitofp <8 x i8> poison to <8 x float>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r214 = uitofp <8 x i16> poison to <8 x float>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r215 = sitofp <8 x i16> poison to <8 x float>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 6 for: %r212 = uitofp <8 x i8> poison to <8 x float>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 6 for: %r213 = sitofp <8 x i8> poison to <8 x float>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 5 for: %r214 = uitofp <8 x i16> poison to <8 x float>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 5 for: %r215 = sitofp <8 x i16> poison to <8 x float>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r216 = uitofp <8 x i32> poison to <8 x float>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r217 = sitofp <8 x i32> poison to <8 x float>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r218 = uitofp <8 x i64> poison to <8 x float>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r219 = sitofp <8 x i64> poison to <8 x float>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r220 = uitofp <8 x i1> poison to <8 x double>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r221 = sitofp <8 x i1> poison to <8 x double>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 2 for: %r222 = uitofp <8 x i8> poison to <8 x double>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 2 for: %r223 = sitofp <8 x i8> poison to <8 x double>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r224 = uitofp <8 x i16> poison to <8 x double>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r225 = sitofp <8 x i16> poison to <8 x double>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r226 = uitofp <8 x i32> poison to <8 x double>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r227 = sitofp <8 x i32> poison to <8 x double>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 18 for: %r222 = uitofp <8 x i8> poison to <8 x double>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 18 for: %r223 = sitofp <8 x i8> poison to <8 x double>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 17 for: %r224 = uitofp <8 x i16> poison to <8 x double>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 17 for: %r225 = sitofp <8 x i16> poison to <8 x double>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 5 for: %r226 = uitofp <8 x i32> poison to <8 x double>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 5 for: %r227 = sitofp <8 x i32> poison to <8 x double>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r228 = uitofp <8 x i64> poison to <8 x double>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r229 = sitofp <8 x i64> poison to <8 x double>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r230 = uitofp <16 x i1> poison to <16 x float>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r231 = sitofp <16 x i1> poison to <16 x float>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 2 for: %r232 = uitofp <16 x i8> poison to <16 x float>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 2 for: %r233 = sitofp <16 x i8> poison to <16 x float>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r234 = uitofp <16 x i16> poison to <16 x float>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r235 = sitofp <16 x i16> poison to <16 x float>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 6 for: %r232 = uitofp <16 x i8> poison to <16 x float>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 6 for: %r233 = sitofp <16 x i8> poison to <16 x float>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 5 for: %r234 = uitofp <16 x i16> poison to <16 x float>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 5 for: %r235 = sitofp <16 x i16> poison to <16 x float>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r236 = uitofp <16 x i32> poison to <16 x float>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r237 = sitofp <16 x i32> poison to <16 x float>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r238 = uitofp <16 x i64> poison to <16 x float>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r239 = sitofp <16 x i64> poison to <16 x float>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r240 = uitofp <16 x i1> poison to <16 x double>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r241 = sitofp <16 x i1> poison to <16 x double>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 2 for: %r242 = uitofp <16 x i8> poison to <16 x double>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 2 for: %r243 = sitofp <16 x i8> poison to <16 x double>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r244 = uitofp <16 x i16> poison to <16 x double>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r245 = sitofp <16 x i16> poison to <16 x double>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r246 = uitofp <16 x i32> poison to <16 x double>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r247 = sitofp <16 x i32> poison to <16 x double>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 18 for: %r242 = uitofp <16 x i8> poison to <16 x double>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 18 for: %r243 = sitofp <16 x i8> poison to <16 x double>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 17 for: %r244 = uitofp <16 x i16> poison to <16 x double>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 17 for: %r245 = sitofp <16 x i16> poison to <16 x double>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 5 for: %r246 = uitofp <16 x i32> poison to <16 x double>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 5 for: %r247 = sitofp <16 x i32> poison to <16 x double>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r248 = uitofp <16 x i64> poison to <16 x double>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r249 = sitofp <16 x i64> poison to <16 x double>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef
@@ -2169,8 +2169,8 @@ define void @fp16cast() {
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r39 = fptosi half poison to i64
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r90 = fptoui <2 x half> poison to <2 x i1>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r91 = fptosi <2 x half> poison to <2 x i1>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r92 = fptoui <2 x half> poison to <2 x i8>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r93 = fptosi <2 x half> poison to <2 x i8>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r92 = fptoui <2 x half> poison to <2 x i8>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r93 = fptosi <2 x half> poison to <2 x i8>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r94 = fptoui <2 x half> poison to <2 x i16>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r95 = fptosi <2 x half> poison to <2 x i16>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r96 = fptoui <2 x half> poison to <2 x i32>
@@ -2179,8 +2179,8 @@ define void @fp16cast() {
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r99 = fptosi <2 x half> poison to <2 x i64>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r110 = fptoui <4 x half> poison to <4 x i1>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r111 = fptosi <4 x half> poison to <4 x i1>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r112 = fptoui <4 x half> poison to <4 x i8>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r113 = fptosi <4 x half> poison to <4 x i8>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r112 = fptoui <4 x half> poison to <4 x i8>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r113 = fptosi <4 x half> poison to <4 x i8>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r114 = fptoui <4 x half> poison to <4 x i16>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r115 = fptosi <4 x half> poison to <4 x i16>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r116 = fptoui <4 x half> poison to <4 x i32>
@@ -2189,8 +2189,8 @@ define void @fp16cast() {
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r119 = fptosi <4 x half> poison to <4 x i64>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r130 = fptoui <8 x half> poison to <8 x i1>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r131 = fptosi <8 x half> poison to <8 x i1>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r132 = fptoui <8 x half> poison to <8 x i8>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r133 = fptosi <8 x half> poison to <8 x i8>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r132 = fptoui <8 x half> poison to <8 x i8>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r133 = fptosi <8 x half> poison to <8 x i8>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r134 = fptoui <8 x half> poison to <8 x i16>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r135 = fptosi <8 x half> poison to <8 x i16>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r136 = fptoui <8 x half> poison to <8 x i32>
@@ -2199,8 +2199,8 @@ define void @fp16cast() {
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r139 = fptosi <8 x half> poison to <8 x i64>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r150 = fptoui <16 x half> poison to <16 x i1>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r151 = fptosi <16 x half> poison to <16 x i1>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r152 = fptoui <16 x half> poison to <16 x i8>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r153 = fptosi <16 x half> poison to <16 x i8>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r152 = fptoui <16 x half> poison to <16 x i8>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r153 = fptosi <16 x half> poison to <16 x i8>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r154 = fptoui <16 x half> poison to <16 x i16>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r155 = fptosi <16 x half> poison to <16 x i16>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r156 = fptoui <16 x half> poison to <16 x i32>
@@ -2209,8 +2209,8 @@ define void @fp16cast() {
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 8 for: %r159 = fptosi <16 x half> poison to <16 x i64>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r250 = uitofp <8 x i1> poison to <8 x half>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r251 = sitofp <8 x i1> poison to <8 x half>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r252 = uitofp <8 x i8> poison to <8 x half>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r253 = sitofp <8 x i8> poison to <8 x half>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 6 for: %r252 = uitofp <8 x i8> poison to <8 x half>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 6 for: %r253 = sitofp <8 x i8> poison to <8 x half>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r254 = uitofp <8 x i16> poison to <8 x half>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 1 for: %r255 = sitofp <8 x i16> poison to <8 x half>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r256 = uitofp <8 x i32> poison to <8 x half>
@@ -2219,8 +2219,8 @@ define void @fp16cast() {
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r259 = sitofp <8 x i64> poison to <8 x half>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r260 = uitofp <16 x i1> poison to <16 x half>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r261 = sitofp <16 x i1> poison to <16 x half>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r262 = uitofp <16 x i8> poison to <16 x half>
-; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r263 = sitofp <16 x i8> poison to <16 x half>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 12 for: %r262 = uitofp <16 x i8> poison to <16 x half>
+; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 12 for: %r263 = sitofp <16 x i8> poison to <16 x half>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r264 = uitofp <16 x i16> poison to <16 x half>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 2 for: %r265 = sitofp <16 x i16> poison to <16 x half>
; SVE128-NO-NEON-NEXT: Cost Model: Found costs of 4 for: %r266 = uitofp <16 x i32> poison to <16 x half>
@@ -2272,8 +2272,8 @@ define void @fp16cast() {
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r139 = fptosi <8 x half> poison to <8 x i64>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r150 = fptoui <16 x half> poison to <16 x i1>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r151 = fptosi <16 x half> poison to <16 x i1>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r152 = fptoui <16 x half> poison to <16 x i8>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r153 = fptosi <16 x half> poison to <16 x i8>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r152 = fptoui <16 x half> poison to <16 x i8>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r153 = fptosi <16 x half> poison to <16 x i8>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r154 = fptoui <16 x half> poison to <16 x i16>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r155 = fptosi <16 x half> poison to <16 x i16>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r156 = fptoui <16 x half> poison to <16 x i32>
@@ -2292,8 +2292,8 @@ define void @fp16cast() {
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r259 = sitofp <8 x i64> poison to <8 x half>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r260 = uitofp <16 x i1> poison to <16 x half>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r261 = sitofp <16 x i1> poison to <16 x half>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r262 = uitofp <16 x i8> poison to <16 x half>
-; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r263 = sitofp <16 x i8> poison to <16 x half>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 6 for: %r262 = uitofp <16 x i8> poison to <16 x half>
+; FIXED-MIN-256-NEXT: Cost Model: Found costs of 6 for: %r263 = sitofp <16 x i8> poison to <16 x half>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r264 = uitofp <16 x i16> poison to <16 x half>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 1 for: %r265 = sitofp <16 x i16> poison to <16 x half>
; FIXED-MIN-256-NEXT: Cost Model: Found costs of 2 for: %r266 = uitofp <16 x i32> poison to <16 x half>
@@ -2345,8 +2345,8 @@ define void @fp16cast() {
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r139 = fptosi <8 x half> poison to <8 x i64>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r150 = fptoui <16 x half> poison to <16 x i1>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r151 = fptosi <16 x half> poison to <16 x i1>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r152 = fptoui <16 x half> poison to <16 x i8>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r153 = fptosi <16 x half> poison to <16 x i8>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 2 for: %r152 = fptoui <16 x half> poison to <16 x i8>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 2 for: %r153 = fptosi <16 x half> poison to <16 x i8>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r154 = fptoui <16 x half> poison to <16 x i16>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r155 = fptosi <16 x half> poison to <16 x i16>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r156 = fptoui <16 x half> poison to <16 x i32>
@@ -2365,8 +2365,8 @@ define void @fp16cast() {
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r259 = sitofp <8 x i64> poison to <8 x half>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r260 = uitofp <16 x i1> poison to <16 x half>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r261 = sitofp <16 x i1> poison to <16 x half>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 2 for: %r262 = uitofp <16 x i8> poison to <16 x half>
-; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 2 for: %r263 = sitofp <16 x i8> poison to <16 x half>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 6 for: %r262 = uitofp <16 x i8> poison to <16 x half>
+; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 6 for: %r263 = sitofp <16 x i8> poison to <16 x half>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r264 = uitofp <16 x i16> poison to <16 x half>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r265 = sitofp <16 x i16> poison to <16 x half>
; FIXED-MIN-2048-NEXT: Cost Model: Found costs of 1 for: %r266 = uitofp <16 x i32> poison to <16 x half>
More information about the llvm-commits
mailing list