[ARM] Put some of the TTI costmodel behind hasNeon calls.

This puts some of the calls in ARMTargetTransformInfo.cpp behind hasNeon()
checks, now that we have MVE, and updates all the tests accordingly.

Differential Revision: https://reviews.llvm.org/D63447

llvm-svn: 368587
This commit is contained in:
David Green 2019-08-12 15:59:52 +00:00
parent 84cb4b2b53
commit 83bbfaa5e4
8 changed files with 386 additions and 385 deletions

View File

@ -343,8 +343,8 @@ int ARMTTIImpl::getVectorInstrCost(unsigned Opcode, Type *ValTy,
ValTy->isVectorTy() && ValTy->getScalarSizeInBits() <= 32) ValTy->isVectorTy() && ValTy->getScalarSizeInBits() <= 32)
return 3; return 3;
if ((Opcode == Instruction::InsertElement || if (ST->hasNEON() && (Opcode == Instruction::InsertElement ||
Opcode == Instruction::ExtractElement)) { Opcode == Instruction::ExtractElement)) {
// Cross-class copies are expensive on many microarchitectures, // Cross-class copies are expensive on many microarchitectures,
// so assume they are expensive by default. // so assume they are expensive by default.
if (ValTy->getVectorElementType()->isIntegerTy()) if (ValTy->getVectorElementType()->isIntegerTy())
@ -397,13 +397,16 @@ int ARMTTIImpl::getAddressComputationCost(Type *Ty, ScalarEvolution *SE,
unsigned NumVectorInstToHideOverhead = 10; unsigned NumVectorInstToHideOverhead = 10;
int MaxMergeDistance = 64; int MaxMergeDistance = 64;
if (Ty->isVectorTy() && SE && if (ST->hasNEON()) {
!BaseT::isConstantStridedAccessLessThan(SE, Ptr, MaxMergeDistance + 1)) if (Ty->isVectorTy() && SE &&
return NumVectorInstToHideOverhead; !BaseT::isConstantStridedAccessLessThan(SE, Ptr, MaxMergeDistance + 1))
return NumVectorInstToHideOverhead;
// In many cases the address computation is not merged into the instruction // In many cases the address computation is not merged into the instruction
// addressing mode. // addressing mode.
return 1; return 1;
}
return BaseT::getAddressComputationCost(Ty, SE, Ptr);
} }
int ARMTTIImpl::getMemcpyCost(const Instruction *I) { int ARMTTIImpl::getMemcpyCost(const Instruction *I) {
@ -442,76 +445,74 @@ int ARMTTIImpl::getMemcpyCost(const Instruction *I) {
int ARMTTIImpl::getShuffleCost(TTI::ShuffleKind Kind, Type *Tp, int Index, int ARMTTIImpl::getShuffleCost(TTI::ShuffleKind Kind, Type *Tp, int Index,
Type *SubTp) { Type *SubTp) {
if (Kind == TTI::SK_Broadcast) { if (ST->hasNEON()) {
static const CostTblEntry NEONDupTbl[] = { if (Kind == TTI::SK_Broadcast) {
// VDUP handles these cases. static const CostTblEntry NEONDupTbl[] = {
{ISD::VECTOR_SHUFFLE, MVT::v2i32, 1}, // VDUP handles these cases.
{ISD::VECTOR_SHUFFLE, MVT::v2f32, 1}, {ISD::VECTOR_SHUFFLE, MVT::v2i32, 1},
{ISD::VECTOR_SHUFFLE, MVT::v2i64, 1}, {ISD::VECTOR_SHUFFLE, MVT::v2f32, 1},
{ISD::VECTOR_SHUFFLE, MVT::v2f64, 1}, {ISD::VECTOR_SHUFFLE, MVT::v2i64, 1},
{ISD::VECTOR_SHUFFLE, MVT::v4i16, 1}, {ISD::VECTOR_SHUFFLE, MVT::v2f64, 1},
{ISD::VECTOR_SHUFFLE, MVT::v8i8, 1}, {ISD::VECTOR_SHUFFLE, MVT::v4i16, 1},
{ISD::VECTOR_SHUFFLE, MVT::v8i8, 1},
{ISD::VECTOR_SHUFFLE, MVT::v4i32, 1}, {ISD::VECTOR_SHUFFLE, MVT::v4i32, 1},
{ISD::VECTOR_SHUFFLE, MVT::v4f32, 1}, {ISD::VECTOR_SHUFFLE, MVT::v4f32, 1},
{ISD::VECTOR_SHUFFLE, MVT::v8i16, 1}, {ISD::VECTOR_SHUFFLE, MVT::v8i16, 1},
{ISD::VECTOR_SHUFFLE, MVT::v16i8, 1}}; {ISD::VECTOR_SHUFFLE, MVT::v16i8, 1}};
std::pair<int, MVT> LT = TLI->getTypeLegalizationCost(DL, Tp); std::pair<int, MVT> LT = TLI->getTypeLegalizationCost(DL, Tp);
if (const auto *Entry = CostTableLookup(NEONDupTbl, ISD::VECTOR_SHUFFLE, if (const auto *Entry =
LT.second)) CostTableLookup(NEONDupTbl, ISD::VECTOR_SHUFFLE, LT.second))
return LT.first * Entry->Cost; return LT.first * Entry->Cost;
}
if (Kind == TTI::SK_Reverse) {
static const CostTblEntry NEONShuffleTbl[] = {
// Reverse shuffle cost one instruction if we are shuffling within a
// double word (vrev) or two if we shuffle a quad word (vrev, vext).
{ISD::VECTOR_SHUFFLE, MVT::v2i32, 1},
{ISD::VECTOR_SHUFFLE, MVT::v2f32, 1},
{ISD::VECTOR_SHUFFLE, MVT::v2i64, 1},
{ISD::VECTOR_SHUFFLE, MVT::v2f64, 1},
{ISD::VECTOR_SHUFFLE, MVT::v4i16, 1},
{ISD::VECTOR_SHUFFLE, MVT::v8i8, 1},
return BaseT::getShuffleCost(Kind, Tp, Index, SubTp); {ISD::VECTOR_SHUFFLE, MVT::v4i32, 2},
} {ISD::VECTOR_SHUFFLE, MVT::v4f32, 2},
if (Kind == TTI::SK_Reverse) { {ISD::VECTOR_SHUFFLE, MVT::v8i16, 2},
static const CostTblEntry NEONShuffleTbl[] = { {ISD::VECTOR_SHUFFLE, MVT::v16i8, 2}};
// Reverse shuffle cost one instruction if we are shuffling within a
// double word (vrev) or two if we shuffle a quad word (vrev, vext).
{ISD::VECTOR_SHUFFLE, MVT::v2i32, 1},
{ISD::VECTOR_SHUFFLE, MVT::v2f32, 1},
{ISD::VECTOR_SHUFFLE, MVT::v2i64, 1},
{ISD::VECTOR_SHUFFLE, MVT::v2f64, 1},
{ISD::VECTOR_SHUFFLE, MVT::v4i16, 1},
{ISD::VECTOR_SHUFFLE, MVT::v8i8, 1},
{ISD::VECTOR_SHUFFLE, MVT::v4i32, 2}, std::pair<int, MVT> LT = TLI->getTypeLegalizationCost(DL, Tp);
{ISD::VECTOR_SHUFFLE, MVT::v4f32, 2},
{ISD::VECTOR_SHUFFLE, MVT::v8i16, 2},
{ISD::VECTOR_SHUFFLE, MVT::v16i8, 2}};
std::pair<int, MVT> LT = TLI->getTypeLegalizationCost(DL, Tp); if (const auto *Entry =
CostTableLookup(NEONShuffleTbl, ISD::VECTOR_SHUFFLE, LT.second))
return LT.first * Entry->Cost;
}
if (Kind == TTI::SK_Select) {
static const CostTblEntry NEONSelShuffleTbl[] = {
// Select shuffle cost table for ARM. Cost is the number of
// instructions
// required to create the shuffled vector.
if (const auto *Entry = CostTableLookup(NEONShuffleTbl, ISD::VECTOR_SHUFFLE, {ISD::VECTOR_SHUFFLE, MVT::v2f32, 1},
LT.second)) {ISD::VECTOR_SHUFFLE, MVT::v2i64, 1},
return LT.first * Entry->Cost; {ISD::VECTOR_SHUFFLE, MVT::v2f64, 1},
{ISD::VECTOR_SHUFFLE, MVT::v2i32, 1},
return BaseT::getShuffleCost(Kind, Tp, Index, SubTp); {ISD::VECTOR_SHUFFLE, MVT::v4i32, 2},
} {ISD::VECTOR_SHUFFLE, MVT::v4f32, 2},
if (Kind == TTI::SK_Select) { {ISD::VECTOR_SHUFFLE, MVT::v4i16, 2},
static const CostTblEntry NEONSelShuffleTbl[] = {
// Select shuffle cost table for ARM. Cost is the number of instructions
// required to create the shuffled vector.
{ISD::VECTOR_SHUFFLE, MVT::v2f32, 1}, {ISD::VECTOR_SHUFFLE, MVT::v8i16, 16},
{ISD::VECTOR_SHUFFLE, MVT::v2i64, 1},
{ISD::VECTOR_SHUFFLE, MVT::v2f64, 1},
{ISD::VECTOR_SHUFFLE, MVT::v2i32, 1},
{ISD::VECTOR_SHUFFLE, MVT::v4i32, 2}, {ISD::VECTOR_SHUFFLE, MVT::v16i8, 32}};
{ISD::VECTOR_SHUFFLE, MVT::v4f32, 2},
{ISD::VECTOR_SHUFFLE, MVT::v4i16, 2},
{ISD::VECTOR_SHUFFLE, MVT::v8i16, 16}, std::pair<int, MVT> LT = TLI->getTypeLegalizationCost(DL, Tp);
if (const auto *Entry = CostTableLookup(NEONSelShuffleTbl,
{ISD::VECTOR_SHUFFLE, MVT::v16i8, 32}}; ISD::VECTOR_SHUFFLE, LT.second))
return LT.first * Entry->Cost;
std::pair<int, MVT> LT = TLI->getTypeLegalizationCost(DL, Tp); }
if (const auto *Entry = CostTableLookup(NEONSelShuffleTbl,
ISD::VECTOR_SHUFFLE, LT.second))
return LT.first * Entry->Cost;
return BaseT::getShuffleCost(Kind, Tp, Index, SubTp);
} }
return BaseT::getShuffleCost(Kind, Tp, Index, SubTp); return BaseT::getShuffleCost(Kind, Tp, Index, SubTp);
} }
@ -592,7 +593,7 @@ int ARMTTIImpl::getMemoryOpCost(unsigned Opcode, Type *Src, unsigned Alignment,
unsigned AddressSpace, const Instruction *I) { unsigned AddressSpace, const Instruction *I) {
std::pair<int, MVT> LT = TLI->getTypeLegalizationCost(DL, Src); std::pair<int, MVT> LT = TLI->getTypeLegalizationCost(DL, Src);
if (Src->isVectorTy() && Alignment != 16 && if (ST->hasNEON() && Src->isVectorTy() && Alignment != 16 &&
Src->getVectorElementType()->isDoubleTy()) { Src->getVectorElementType()->isDoubleTy()) {
// Unaligned loads/stores are extremely inefficient. // Unaligned loads/stores are extremely inefficient.
// We need 4 uops for vst.1/vld.1 vs 1uop for vldr/vstr. // We need 4 uops for vst.1/vld.1 vs 1uop for vldr/vstr.

View File

@ -104,12 +104,12 @@ define void @i64() {
define void @vi8() { define void @vi8() {
; CHECK-LABEL: 'vi8' ; CHECK-LABEL: 'vi8'
; CHECK-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %c2 = add <2 x i8> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %c2 = add <2 x i8> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %d2 = sub <2 x i8> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %d2 = sub <2 x i8> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %e2 = mul <2 x i8> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %e2 = mul <2 x i8> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %f2 = ashr <2 x i8> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %f2 = ashr <2 x i8> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %g2 = lshr <2 x i8> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %g2 = lshr <2 x i8> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %h2 = shl <2 x i8> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %h2 = shl <2 x i8> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %i2 = and <2 x i8> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %i2 = and <2 x i8> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %j2 = or <2 x i8> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %j2 = or <2 x i8> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %k2 = xor <2 x i8> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %k2 = xor <2 x i8> undef, undef
@ -183,12 +183,12 @@ define void @vi8() {
define void @vi16() { define void @vi16() {
; CHECK-LABEL: 'vi16' ; CHECK-LABEL: 'vi16'
; CHECK-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %c2 = add <2 x i16> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %c2 = add <2 x i16> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %d2 = sub <2 x i16> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %d2 = sub <2 x i16> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %e2 = mul <2 x i16> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %e2 = mul <2 x i16> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %f2 = ashr <2 x i16> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %f2 = ashr <2 x i16> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %g2 = lshr <2 x i16> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %g2 = lshr <2 x i16> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %h2 = shl <2 x i16> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %h2 = shl <2 x i16> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %i2 = and <2 x i16> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %i2 = and <2 x i16> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %j2 = or <2 x i16> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %j2 = or <2 x i16> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %k2 = xor <2 x i16> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %k2 = xor <2 x i16> undef, undef
@ -262,12 +262,12 @@ define void @vi16() {
define void @vi32() { define void @vi32() {
; CHECK-LABEL: 'vi32' ; CHECK-LABEL: 'vi32'
; CHECK-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %c2 = add <2 x i32> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %c2 = add <2 x i32> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %d2 = sub <2 x i32> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %d2 = sub <2 x i32> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %e2 = mul <2 x i32> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %e2 = mul <2 x i32> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %f2 = ashr <2 x i32> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %f2 = ashr <2 x i32> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %g2 = lshr <2 x i32> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %g2 = lshr <2 x i32> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %h2 = shl <2 x i32> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %h2 = shl <2 x i32> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %i2 = and <2 x i32> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %i2 = and <2 x i32> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %j2 = or <2 x i32> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %j2 = or <2 x i32> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %k2 = xor <2 x i32> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %k2 = xor <2 x i32> undef, undef
@ -341,39 +341,39 @@ define void @vi32() {
define void @vi64() { define void @vi64() {
; CHECK-LABEL: 'vi64' ; CHECK-LABEL: 'vi64'
; CHECK-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %c2 = add <2 x i64> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %c2 = add <2 x i64> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %d2 = sub <2 x i64> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %d2 = sub <2 x i64> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %e2 = mul <2 x i64> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %e2 = mul <2 x i64> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %f2 = ashr <2 x i64> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %f2 = ashr <2 x i64> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %g2 = lshr <2 x i64> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %g2 = lshr <2 x i64> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %h2 = shl <2 x i64> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %h2 = shl <2 x i64> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %i2 = and <2 x i64> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %i2 = and <2 x i64> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %j2 = or <2 x i64> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %j2 = or <2 x i64> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %k2 = xor <2 x i64> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %k2 = xor <2 x i64> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %c4 = add <4 x i64> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %c4 = add <4 x i64> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %d4 = sub <4 x i64> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %d4 = sub <4 x i64> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %e4 = mul <4 x i64> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %e4 = mul <4 x i64> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %f4 = ashr <4 x i64> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %f4 = ashr <4 x i64> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %g4 = lshr <4 x i64> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %g4 = lshr <4 x i64> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %h4 = shl <4 x i64> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %h4 = shl <4 x i64> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %i4 = and <4 x i64> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %i4 = and <4 x i64> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %j4 = or <4 x i64> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %j4 = or <4 x i64> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %k4 = xor <4 x i64> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %k4 = xor <4 x i64> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 64 for instruction: %c8 = add <8 x i64> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 48 for instruction: %c8 = add <8 x i64> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 64 for instruction: %d8 = sub <8 x i64> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 48 for instruction: %d8 = sub <8 x i64> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 64 for instruction: %e8 = mul <8 x i64> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 48 for instruction: %e8 = mul <8 x i64> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 64 for instruction: %f8 = ashr <8 x i64> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 48 for instruction: %f8 = ashr <8 x i64> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 64 for instruction: %g8 = lshr <8 x i64> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 48 for instruction: %g8 = lshr <8 x i64> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 64 for instruction: %h8 = shl <8 x i64> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 48 for instruction: %h8 = shl <8 x i64> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %i8 = and <8 x i64> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %i8 = and <8 x i64> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %j8 = or <8 x i64> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %j8 = or <8 x i64> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %k8 = xor <8 x i64> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %k8 = xor <8 x i64> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 128 for instruction: %c16 = add <16 x i64> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 96 for instruction: %c16 = add <16 x i64> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 128 for instruction: %d16 = sub <16 x i64> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 96 for instruction: %d16 = sub <16 x i64> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 128 for instruction: %e16 = mul <16 x i64> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 96 for instruction: %e16 = mul <16 x i64> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 128 for instruction: %f16 = ashr <16 x i64> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 96 for instruction: %f16 = ashr <16 x i64> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 128 for instruction: %g16 = lshr <16 x i64> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 96 for instruction: %g16 = lshr <16 x i64> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 128 for instruction: %h16 = shl <16 x i64> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 96 for instruction: %h16 = shl <16 x i64> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %i16 = and <16 x i64> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %i16 = and <16 x i64> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %j16 = or <16 x i64> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %j16 = or <16 x i64> undef, undef
; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %k16 = xor <16 x i64> undef, undef ; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %k16 = xor <16 x i64> undef, undef

View File

@ -351,26 +351,26 @@ define i32 @casts() {
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 13 for instruction: %r87 = fpext <4 x float> undef to <4 x double> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 13 for instruction: %r87 = fpext <4 x float> undef to <4 x double>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 27 for instruction: %r88 = fpext <8 x float> undef to <8 x double> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 27 for instruction: %r88 = fpext <8 x float> undef to <8 x double>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 55 for instruction: %r89 = fpext <16 x float> undef to <16 x double> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 55 for instruction: %r89 = fpext <16 x float> undef to <16 x double>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %r90 = fptoui <2 x float> undef to <2 x i1> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %r90 = fptoui <2 x float> undef to <2 x i1>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %r91 = fptosi <2 x float> undef to <2 x i1> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %r91 = fptosi <2 x float> undef to <2 x i1>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %r92 = fptoui <2 x float> undef to <2 x i8> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %r92 = fptoui <2 x float> undef to <2 x i8>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %r93 = fptosi <2 x float> undef to <2 x i8> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %r93 = fptosi <2 x float> undef to <2 x i8>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %r94 = fptoui <2 x float> undef to <2 x i16> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %r94 = fptoui <2 x float> undef to <2 x i16>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %r95 = fptosi <2 x float> undef to <2 x i16> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %r95 = fptosi <2 x float> undef to <2 x i16>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %r96 = fptoui <2 x float> undef to <2 x i32> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %r96 = fptoui <2 x float> undef to <2 x i32>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %r97 = fptosi <2 x float> undef to <2 x i32> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %r97 = fptosi <2 x float> undef to <2 x i32>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %r98 = fptoui <2 x float> undef to <2 x i64> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %r98 = fptoui <2 x float> undef to <2 x i64>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %r99 = fptosi <2 x float> undef to <2 x i64> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %r99 = fptosi <2 x float> undef to <2 x i64>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %r100 = fptoui <2 x double> undef to <2 x i1> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %r100 = fptoui <2 x double> undef to <2 x i1>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %r101 = fptosi <2 x double> undef to <2 x i1> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %r101 = fptosi <2 x double> undef to <2 x i1>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %r102 = fptoui <2 x double> undef to <2 x i8> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %r102 = fptoui <2 x double> undef to <2 x i8>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %r103 = fptosi <2 x double> undef to <2 x i8> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %r103 = fptosi <2 x double> undef to <2 x i8>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %r104 = fptoui <2 x double> undef to <2 x i16> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %r104 = fptoui <2 x double> undef to <2 x i16>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %r105 = fptosi <2 x double> undef to <2 x i16> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %r105 = fptosi <2 x double> undef to <2 x i16>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %r106 = fptoui <2 x double> undef to <2 x i32> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %r106 = fptoui <2 x double> undef to <2 x i32>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %r107 = fptosi <2 x double> undef to <2 x i32> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %r107 = fptosi <2 x double> undef to <2 x i32>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %r108 = fptoui <2 x double> undef to <2 x i64> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %r108 = fptoui <2 x double> undef to <2 x i64>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %r109 = fptosi <2 x double> undef to <2 x i64> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %r109 = fptosi <2 x double> undef to <2 x i64>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r110 = fptoui <4 x float> undef to <4 x i1> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r110 = fptoui <4 x float> undef to <4 x i1>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r111 = fptosi <4 x float> undef to <4 x i1> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r111 = fptosi <4 x float> undef to <4 x i1>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r112 = fptoui <4 x float> undef to <4 x i8> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r112 = fptoui <4 x float> undef to <4 x i8>
@ -379,18 +379,18 @@ define i32 @casts() {
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r115 = fptosi <4 x float> undef to <4 x i16> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r115 = fptosi <4 x float> undef to <4 x i16>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r116 = fptoui <4 x float> undef to <4 x i32> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r116 = fptoui <4 x float> undef to <4 x i32>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r117 = fptosi <4 x float> undef to <4 x i32> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r117 = fptosi <4 x float> undef to <4 x i32>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 29 for instruction: %r118 = fptoui <4 x float> undef to <4 x i64> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 21 for instruction: %r118 = fptoui <4 x float> undef to <4 x i64>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 29 for instruction: %r119 = fptosi <4 x float> undef to <4 x i64> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 21 for instruction: %r119 = fptosi <4 x float> undef to <4 x i64>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 29 for instruction: %r120 = fptoui <4 x double> undef to <4 x i1> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 13 for instruction: %r120 = fptoui <4 x double> undef to <4 x i1>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 29 for instruction: %r121 = fptosi <4 x double> undef to <4 x i1> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 13 for instruction: %r121 = fptosi <4 x double> undef to <4 x i1>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 29 for instruction: %r122 = fptoui <4 x double> undef to <4 x i8> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 13 for instruction: %r122 = fptoui <4 x double> undef to <4 x i8>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 29 for instruction: %r123 = fptosi <4 x double> undef to <4 x i8> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 13 for instruction: %r123 = fptosi <4 x double> undef to <4 x i8>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 29 for instruction: %r124 = fptoui <4 x double> undef to <4 x i16> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 13 for instruction: %r124 = fptoui <4 x double> undef to <4 x i16>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 29 for instruction: %r125 = fptosi <4 x double> undef to <4 x i16> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 13 for instruction: %r125 = fptosi <4 x double> undef to <4 x i16>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 29 for instruction: %r126 = fptoui <4 x double> undef to <4 x i32> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 13 for instruction: %r126 = fptoui <4 x double> undef to <4 x i32>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 29 for instruction: %r127 = fptosi <4 x double> undef to <4 x i32> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 13 for instruction: %r127 = fptosi <4 x double> undef to <4 x i32>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 29 for instruction: %r128 = fptoui <4 x double> undef to <4 x i64> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 21 for instruction: %r128 = fptoui <4 x double> undef to <4 x i64>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 29 for instruction: %r129 = fptosi <4 x double> undef to <4 x i64> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 21 for instruction: %r129 = fptosi <4 x double> undef to <4 x i64>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r130 = fptoui <8 x float> undef to <8 x i1> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r130 = fptoui <8 x float> undef to <8 x i1>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r131 = fptosi <8 x float> undef to <8 x i1> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r131 = fptosi <8 x float> undef to <8 x i1>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r132 = fptoui <8 x float> undef to <8 x i8> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r132 = fptoui <8 x float> undef to <8 x i8>
@ -399,18 +399,18 @@ define i32 @casts() {
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r135 = fptosi <8 x float> undef to <8 x i16> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r135 = fptosi <8 x float> undef to <8 x i16>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r136 = fptoui <8 x float> undef to <8 x i32> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r136 = fptoui <8 x float> undef to <8 x i32>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r137 = fptosi <8 x float> undef to <8 x i32> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r137 = fptosi <8 x float> undef to <8 x i32>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 59 for instruction: %r138 = fptoui <8 x float> undef to <8 x i64> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 43 for instruction: %r138 = fptoui <8 x float> undef to <8 x i64>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 59 for instruction: %r139 = fptosi <8 x float> undef to <8 x i64> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 43 for instruction: %r139 = fptosi <8 x float> undef to <8 x i64>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 59 for instruction: %r140 = fptoui <8 x double> undef to <8 x i1> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 27 for instruction: %r140 = fptoui <8 x double> undef to <8 x i1>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 59 for instruction: %r141 = fptosi <8 x double> undef to <8 x i1> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 27 for instruction: %r141 = fptosi <8 x double> undef to <8 x i1>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 59 for instruction: %r142 = fptoui <8 x double> undef to <8 x i8> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 27 for instruction: %r142 = fptoui <8 x double> undef to <8 x i8>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 59 for instruction: %r143 = fptosi <8 x double> undef to <8 x i8> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 27 for instruction: %r143 = fptosi <8 x double> undef to <8 x i8>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 59 for instruction: %r144 = fptoui <8 x double> undef to <8 x i16> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 27 for instruction: %r144 = fptoui <8 x double> undef to <8 x i16>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 59 for instruction: %r145 = fptosi <8 x double> undef to <8 x i16> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 27 for instruction: %r145 = fptosi <8 x double> undef to <8 x i16>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 59 for instruction: %r146 = fptoui <8 x double> undef to <8 x i32> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 27 for instruction: %r146 = fptoui <8 x double> undef to <8 x i32>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 59 for instruction: %r147 = fptosi <8 x double> undef to <8 x i32> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 27 for instruction: %r147 = fptosi <8 x double> undef to <8 x i32>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 59 for instruction: %r148 = fptoui <8 x double> undef to <8 x i64> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 43 for instruction: %r148 = fptoui <8 x double> undef to <8 x i64>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 59 for instruction: %r149 = fptosi <8 x double> undef to <8 x i64> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 43 for instruction: %r149 = fptosi <8 x double> undef to <8 x i64>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %r150 = fptoui <16 x float> undef to <16 x i1> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %r150 = fptoui <16 x float> undef to <16 x i1>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %r151 = fptosi <16 x float> undef to <16 x i1> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %r151 = fptosi <16 x float> undef to <16 x i1>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %r152 = fptoui <16 x float> undef to <16 x i8> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %r152 = fptoui <16 x float> undef to <16 x i8>
@ -419,18 +419,18 @@ define i32 @casts() {
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %r155 = fptosi <16 x float> undef to <16 x i16> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %r155 = fptosi <16 x float> undef to <16 x i16>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r156 = fptoui <16 x float> undef to <16 x i32> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r156 = fptoui <16 x float> undef to <16 x i32>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r157 = fptosi <16 x float> undef to <16 x i32> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r157 = fptosi <16 x float> undef to <16 x i32>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 119 for instruction: %r158 = fptoui <16 x float> undef to <16 x i64> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 87 for instruction: %r158 = fptoui <16 x float> undef to <16 x i64>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 119 for instruction: %r159 = fptosi <16 x float> undef to <16 x i64> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 87 for instruction: %r159 = fptosi <16 x float> undef to <16 x i64>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 119 for instruction: %r160 = fptoui <16 x double> undef to <16 x i1> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 55 for instruction: %r160 = fptoui <16 x double> undef to <16 x i1>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 119 for instruction: %r161 = fptosi <16 x double> undef to <16 x i1> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 55 for instruction: %r161 = fptosi <16 x double> undef to <16 x i1>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 119 for instruction: %r162 = fptoui <16 x double> undef to <16 x i8> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 55 for instruction: %r162 = fptoui <16 x double> undef to <16 x i8>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 119 for instruction: %r163 = fptosi <16 x double> undef to <16 x i8> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 55 for instruction: %r163 = fptosi <16 x double> undef to <16 x i8>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 119 for instruction: %r164 = fptoui <16 x double> undef to <16 x i16> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 55 for instruction: %r164 = fptoui <16 x double> undef to <16 x i16>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 119 for instruction: %r165 = fptosi <16 x double> undef to <16 x i16> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 55 for instruction: %r165 = fptosi <16 x double> undef to <16 x i16>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 119 for instruction: %r166 = fptoui <16 x double> undef to <16 x i32> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 55 for instruction: %r166 = fptoui <16 x double> undef to <16 x i32>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 119 for instruction: %r167 = fptosi <16 x double> undef to <16 x i32> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 55 for instruction: %r167 = fptosi <16 x double> undef to <16 x i32>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 119 for instruction: %r168 = fptoui <16 x double> undef to <16 x i64> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 87 for instruction: %r168 = fptoui <16 x double> undef to <16 x i64>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 119 for instruction: %r169 = fptosi <16 x double> undef to <16 x i64> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 87 for instruction: %r169 = fptosi <16 x double> undef to <16 x i64>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r170 = uitofp <2 x i1> undef to <2 x float> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r170 = uitofp <2 x i1> undef to <2 x float>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r171 = sitofp <2 x i1> undef to <2 x float> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r171 = sitofp <2 x i1> undef to <2 x float>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r172 = uitofp <2 x i8> undef to <2 x float> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r172 = uitofp <2 x i8> undef to <2 x float>

View File

@ -225,22 +225,22 @@ define void @vi8() {
; CHECK-NEON-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; CHECK-NEON-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
; ;
; CHECK-MVE-LABEL: 'vi8' ; CHECK-MVE-LABEL: 'vi8'
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %t1 = sdiv <2 x i8> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %t1 = sdiv <2 x i8> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %t2 = udiv <2 x i8> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %t2 = udiv <2 x i8> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %t3 = srem <2 x i8> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %t3 = srem <2 x i8> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %t4 = urem <2 x i8> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %t4 = urem <2 x i8> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %f1 = sdiv <4 x i8> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %f1 = sdiv <4 x i8> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %f2 = udiv <4 x i8> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %f2 = udiv <4 x i8> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 28 for instruction: %f3 = srem <4 x i8> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %f3 = srem <4 x i8> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 28 for instruction: %f4 = urem <4 x i8> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %f4 = urem <4 x i8> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 64 for instruction: %e1 = sdiv <8 x i8> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %e1 = sdiv <8 x i8> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 64 for instruction: %e2 = udiv <8 x i8> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %e2 = udiv <8 x i8> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 56 for instruction: %e3 = srem <8 x i8> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %e3 = srem <8 x i8> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 56 for instruction: %e4 = urem <8 x i8> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %e4 = urem <8 x i8> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 128 for instruction: %s1 = sdiv <16 x i8> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 64 for instruction: %s1 = sdiv <16 x i8> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 128 for instruction: %s2 = udiv <16 x i8> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 64 for instruction: %s2 = udiv <16 x i8> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 112 for instruction: %s3 = srem <16 x i8> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 48 for instruction: %s3 = srem <16 x i8> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 112 for instruction: %s4 = urem <16 x i8> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 48 for instruction: %s4 = urem <16 x i8> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
; ;
%t1 = sdiv <2 x i8> undef, undef %t1 = sdiv <2 x i8> undef, undef
@ -283,22 +283,22 @@ define void @vi16() {
; CHECK-NEON-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; CHECK-NEON-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
; ;
; CHECK-MVE-LABEL: 'vi16' ; CHECK-MVE-LABEL: 'vi16'
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %t1 = sdiv <2 x i16> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %t1 = sdiv <2 x i16> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %t2 = udiv <2 x i16> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %t2 = udiv <2 x i16> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %t3 = srem <2 x i16> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %t3 = srem <2 x i16> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %t4 = urem <2 x i16> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %t4 = urem <2 x i16> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %f1 = sdiv <4 x i16> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %f1 = sdiv <4 x i16> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %f2 = udiv <4 x i16> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %f2 = udiv <4 x i16> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 28 for instruction: %f3 = srem <4 x i16> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %f3 = srem <4 x i16> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 28 for instruction: %f4 = urem <4 x i16> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %f4 = urem <4 x i16> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 64 for instruction: %e1 = sdiv <8 x i16> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %e1 = sdiv <8 x i16> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 64 for instruction: %e2 = udiv <8 x i16> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %e2 = udiv <8 x i16> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 56 for instruction: %e3 = srem <8 x i16> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %e3 = srem <8 x i16> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 56 for instruction: %e4 = urem <8 x i16> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %e4 = urem <8 x i16> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 128 for instruction: %s1 = sdiv <16 x i16> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 64 for instruction: %s1 = sdiv <16 x i16> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 128 for instruction: %s2 = udiv <16 x i16> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 64 for instruction: %s2 = udiv <16 x i16> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 112 for instruction: %s3 = srem <16 x i16> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 48 for instruction: %s3 = srem <16 x i16> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 112 for instruction: %s4 = urem <16 x i16> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 48 for instruction: %s4 = urem <16 x i16> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
; ;
%t1 = sdiv <2 x i16> undef, undef %t1 = sdiv <2 x i16> undef, undef
@ -341,22 +341,22 @@ define void @vi32() {
; CHECK-NEON-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; CHECK-NEON-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
; ;
; CHECK-MVE-LABEL: 'vi32' ; CHECK-MVE-LABEL: 'vi32'
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %t1 = sdiv <2 x i32> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %t1 = sdiv <2 x i32> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %t2 = udiv <2 x i32> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %t2 = udiv <2 x i32> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %t3 = srem <2 x i32> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %t3 = srem <2 x i32> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %t4 = urem <2 x i32> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %t4 = urem <2 x i32> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %f1 = sdiv <4 x i32> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %f1 = sdiv <4 x i32> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %f2 = udiv <4 x i32> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %f2 = udiv <4 x i32> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 28 for instruction: %f3 = srem <4 x i32> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %f3 = srem <4 x i32> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 28 for instruction: %f4 = urem <4 x i32> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %f4 = urem <4 x i32> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 64 for instruction: %e1 = sdiv <8 x i32> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %e1 = sdiv <8 x i32> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 64 for instruction: %e2 = udiv <8 x i32> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %e2 = udiv <8 x i32> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 56 for instruction: %e3 = srem <8 x i32> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %e3 = srem <8 x i32> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 56 for instruction: %e4 = urem <8 x i32> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %e4 = urem <8 x i32> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 128 for instruction: %s1 = sdiv <16 x i32> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 64 for instruction: %s1 = sdiv <16 x i32> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 128 for instruction: %s2 = udiv <16 x i32> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 64 for instruction: %s2 = udiv <16 x i32> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 112 for instruction: %s3 = srem <16 x i32> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 48 for instruction: %s3 = srem <16 x i32> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 112 for instruction: %s4 = urem <16 x i32> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 48 for instruction: %s4 = urem <16 x i32> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
; ;
%t1 = sdiv <2 x i32> undef, undef %t1 = sdiv <2 x i32> undef, undef
@ -399,22 +399,22 @@ define void @vi64() {
; CHECK-NEON-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; CHECK-NEON-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
; ;
; CHECK-MVE-LABEL: 'vi64' ; CHECK-MVE-LABEL: 'vi64'
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %t1 = sdiv <2 x i64> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %t1 = sdiv <2 x i64> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %t2 = udiv <2 x i64> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %t2 = udiv <2 x i64> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %t3 = srem <2 x i64> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %t3 = srem <2 x i64> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %t4 = urem <2 x i64> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %t4 = urem <2 x i64> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 40 for instruction: %f1 = sdiv <4 x i64> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %f1 = sdiv <4 x i64> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 40 for instruction: %f2 = udiv <4 x i64> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %f2 = udiv <4 x i64> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 28 for instruction: %f3 = srem <4 x i64> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %f3 = srem <4 x i64> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 28 for instruction: %f4 = urem <4 x i64> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %f4 = urem <4 x i64> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 80 for instruction: %e1 = sdiv <8 x i64> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 64 for instruction: %e1 = sdiv <8 x i64> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 80 for instruction: %e2 = udiv <8 x i64> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 64 for instruction: %e2 = udiv <8 x i64> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 56 for instruction: %e3 = srem <8 x i64> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 40 for instruction: %e3 = srem <8 x i64> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 56 for instruction: %e4 = urem <8 x i64> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 40 for instruction: %e4 = urem <8 x i64> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 160 for instruction: %s1 = sdiv <16 x i64> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 128 for instruction: %s1 = sdiv <16 x i64> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 160 for instruction: %s2 = udiv <16 x i64> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 128 for instruction: %s2 = udiv <16 x i64> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 112 for instruction: %s3 = srem <16 x i64> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 80 for instruction: %s3 = srem <16 x i64> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 112 for instruction: %s4 = urem <16 x i64> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 80 for instruction: %s4 = urem <16 x i64> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
; ;
%t1 = sdiv <2 x i64> undef, undef %t1 = sdiv <2 x i64> undef, undef
@ -447,12 +447,12 @@ define void @vf16() {
; CHECK-NEON-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; CHECK-NEON-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
; ;
; CHECK-MVE-LABEL: 'vf16' ; CHECK-MVE-LABEL: 'vf16'
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %1 = fdiv <2 x half> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %1 = fdiv <2 x half> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %2 = fdiv <2 x half> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %2 = fdiv <2 x half> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %3 = fdiv <4 x half> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %3 = fdiv <4 x half> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %4 = fdiv <4 x half> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %4 = fdiv <4 x half> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 48 for instruction: %5 = fdiv <8 x half> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %5 = fdiv <8 x half> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 48 for instruction: %6 = fdiv <8 x half> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %6 = fdiv <8 x half> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
; ;
%1 = fdiv <2 x half> undef, undef %1 = fdiv <2 x half> undef, undef
@ -475,12 +475,12 @@ define void @vf32() {
; CHECK-NEON-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; CHECK-NEON-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
; ;
; CHECK-MVE-LABEL: 'vf32' ; CHECK-MVE-LABEL: 'vf32'
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %1 = fdiv <2 x float> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %1 = fdiv <2 x float> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %2 = fdiv <2 x float> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %2 = fdiv <2 x float> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %3 = fdiv <4 x float> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %3 = fdiv <4 x float> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %4 = fdiv <4 x float> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %4 = fdiv <4 x float> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 48 for instruction: %5 = fdiv <8 x float> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %5 = fdiv <8 x float> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 48 for instruction: %6 = fdiv <8 x float> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %6 = fdiv <8 x float> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
; ;
%1 = fdiv <2 x float> undef, undef %1 = fdiv <2 x float> undef, undef
@ -541,22 +541,22 @@ define void @vi8_2() {
; CHECK-NEON-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; CHECK-NEON-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
; ;
; CHECK-MVE-LABEL: 'vi8_2' ; CHECK-MVE-LABEL: 'vi8_2'
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %t1 = sdiv <2 x i8> undef, <i8 2, i8 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %t1 = sdiv <2 x i8> undef, <i8 2, i8 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %t2 = udiv <2 x i8> undef, <i8 2, i8 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %t2 = udiv <2 x i8> undef, <i8 2, i8 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 18 for instruction: %t3 = srem <2 x i8> undef, <i8 2, i8 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %t3 = srem <2 x i8> undef, <i8 2, i8 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 18 for instruction: %t4 = urem <2 x i8> undef, <i8 2, i8 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %t4 = urem <2 x i8> undef, <i8 2, i8 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %f1 = sdiv <4 x i8> undef, <i8 2, i8 2, i8 2, i8 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %f1 = sdiv <4 x i8> undef, <i8 2, i8 2, i8 2, i8 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %f2 = udiv <4 x i8> undef, <i8 2, i8 2, i8 2, i8 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %f2 = udiv <4 x i8> undef, <i8 2, i8 2, i8 2, i8 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 28 for instruction: %f3 = srem <4 x i8> undef, <i8 2, i8 2, i8 2, i8 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %f3 = srem <4 x i8> undef, <i8 2, i8 2, i8 2, i8 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 28 for instruction: %f4 = urem <4 x i8> undef, <i8 2, i8 2, i8 2, i8 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %f4 = urem <4 x i8> undef, <i8 2, i8 2, i8 2, i8 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 64 for instruction: %e1 = sdiv <8 x i8> undef, <i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %e1 = sdiv <8 x i8> undef, <i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 64 for instruction: %e2 = udiv <8 x i8> undef, <i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %e2 = udiv <8 x i8> undef, <i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 56 for instruction: %e3 = srem <8 x i8> undef, <i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %e3 = srem <8 x i8> undef, <i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 56 for instruction: %e4 = urem <8 x i8> undef, <i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %e4 = urem <8 x i8> undef, <i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 128 for instruction: %s1 = sdiv <16 x i8> undef, <i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 64 for instruction: %s1 = sdiv <16 x i8> undef, <i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 128 for instruction: %s2 = udiv <16 x i8> undef, <i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 64 for instruction: %s2 = udiv <16 x i8> undef, <i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 112 for instruction: %s3 = srem <16 x i8> undef, <i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 48 for instruction: %s3 = srem <16 x i8> undef, <i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 112 for instruction: %s4 = urem <16 x i8> undef, <i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 48 for instruction: %s4 = urem <16 x i8> undef, <i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
; ;
%t1 = sdiv <2 x i8> undef, <i8 2, i8 2> %t1 = sdiv <2 x i8> undef, <i8 2, i8 2>
@ -599,22 +599,22 @@ define void @vi16_2() {
; CHECK-NEON-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; CHECK-NEON-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
; ;
; CHECK-MVE-LABEL: 'vi16_2' ; CHECK-MVE-LABEL: 'vi16_2'
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %t1 = sdiv <2 x i16> undef, <i16 2, i16 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %t1 = sdiv <2 x i16> undef, <i16 2, i16 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %t2 = udiv <2 x i16> undef, <i16 2, i16 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %t2 = udiv <2 x i16> undef, <i16 2, i16 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 18 for instruction: %t3 = srem <2 x i16> undef, <i16 2, i16 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %t3 = srem <2 x i16> undef, <i16 2, i16 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 18 for instruction: %t4 = urem <2 x i16> undef, <i16 2, i16 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %t4 = urem <2 x i16> undef, <i16 2, i16 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %f1 = sdiv <4 x i16> undef, <i16 2, i16 2, i16 2, i16 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %f1 = sdiv <4 x i16> undef, <i16 2, i16 2, i16 2, i16 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %f2 = udiv <4 x i16> undef, <i16 2, i16 2, i16 2, i16 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %f2 = udiv <4 x i16> undef, <i16 2, i16 2, i16 2, i16 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 28 for instruction: %f3 = srem <4 x i16> undef, <i16 2, i16 2, i16 2, i16 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %f3 = srem <4 x i16> undef, <i16 2, i16 2, i16 2, i16 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 28 for instruction: %f4 = urem <4 x i16> undef, <i16 2, i16 2, i16 2, i16 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %f4 = urem <4 x i16> undef, <i16 2, i16 2, i16 2, i16 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 64 for instruction: %e1 = sdiv <8 x i16> undef, <i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %e1 = sdiv <8 x i16> undef, <i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 64 for instruction: %e2 = udiv <8 x i16> undef, <i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %e2 = udiv <8 x i16> undef, <i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 56 for instruction: %e3 = srem <8 x i16> undef, <i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %e3 = srem <8 x i16> undef, <i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 56 for instruction: %e4 = urem <8 x i16> undef, <i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %e4 = urem <8 x i16> undef, <i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 128 for instruction: %s1 = sdiv <16 x i16> undef, <i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 64 for instruction: %s1 = sdiv <16 x i16> undef, <i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 128 for instruction: %s2 = udiv <16 x i16> undef, <i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 64 for instruction: %s2 = udiv <16 x i16> undef, <i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 112 for instruction: %s3 = srem <16 x i16> undef, <i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 48 for instruction: %s3 = srem <16 x i16> undef, <i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 112 for instruction: %s4 = urem <16 x i16> undef, <i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 48 for instruction: %s4 = urem <16 x i16> undef, <i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
; ;
%t1 = sdiv <2 x i16> undef, <i16 2, i16 2> %t1 = sdiv <2 x i16> undef, <i16 2, i16 2>
@ -657,22 +657,22 @@ define void @vi32_2() {
; CHECK-NEON-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; CHECK-NEON-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
; ;
; CHECK-MVE-LABEL: 'vi32_2' ; CHECK-MVE-LABEL: 'vi32_2'
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %t1 = sdiv <2 x i32> undef, <i32 2, i32 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %t1 = sdiv <2 x i32> undef, <i32 2, i32 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %t2 = udiv <2 x i32> undef, <i32 2, i32 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %t2 = udiv <2 x i32> undef, <i32 2, i32 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 18 for instruction: %t3 = srem <2 x i32> undef, <i32 2, i32 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %t3 = srem <2 x i32> undef, <i32 2, i32 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 18 for instruction: %t4 = urem <2 x i32> undef, <i32 2, i32 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %t4 = urem <2 x i32> undef, <i32 2, i32 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %f1 = sdiv <4 x i32> undef, <i32 2, i32 2, i32 2, i32 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %f1 = sdiv <4 x i32> undef, <i32 2, i32 2, i32 2, i32 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %f2 = udiv <4 x i32> undef, <i32 2, i32 2, i32 2, i32 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %f2 = udiv <4 x i32> undef, <i32 2, i32 2, i32 2, i32 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 28 for instruction: %f3 = srem <4 x i32> undef, <i32 2, i32 2, i32 2, i32 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %f3 = srem <4 x i32> undef, <i32 2, i32 2, i32 2, i32 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 28 for instruction: %f4 = urem <4 x i32> undef, <i32 2, i32 2, i32 2, i32 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %f4 = urem <4 x i32> undef, <i32 2, i32 2, i32 2, i32 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 64 for instruction: %e1 = sdiv <8 x i32> undef, <i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %e1 = sdiv <8 x i32> undef, <i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 64 for instruction: %e2 = udiv <8 x i32> undef, <i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %e2 = udiv <8 x i32> undef, <i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 56 for instruction: %e3 = srem <8 x i32> undef, <i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %e3 = srem <8 x i32> undef, <i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 56 for instruction: %e4 = urem <8 x i32> undef, <i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %e4 = urem <8 x i32> undef, <i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 128 for instruction: %s1 = sdiv <16 x i32> undef, <i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 64 for instruction: %s1 = sdiv <16 x i32> undef, <i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 128 for instruction: %s2 = udiv <16 x i32> undef, <i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 64 for instruction: %s2 = udiv <16 x i32> undef, <i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 112 for instruction: %s3 = srem <16 x i32> undef, <i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 48 for instruction: %s3 = srem <16 x i32> undef, <i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 112 for instruction: %s4 = urem <16 x i32> undef, <i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 48 for instruction: %s4 = urem <16 x i32> undef, <i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
; ;
%t1 = sdiv <2 x i32> undef, <i32 2, i32 2> %t1 = sdiv <2 x i32> undef, <i32 2, i32 2>
@ -715,22 +715,22 @@ define void @vi64_2() {
; CHECK-NEON-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; CHECK-NEON-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
; ;
; CHECK-MVE-LABEL: 'vi64_2' ; CHECK-MVE-LABEL: 'vi64_2'
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %t1 = sdiv <2 x i64> undef, <i64 2, i64 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %t1 = sdiv <2 x i64> undef, <i64 2, i64 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %t2 = udiv <2 x i64> undef, <i64 2, i64 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %t2 = udiv <2 x i64> undef, <i64 2, i64 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 18 for instruction: %t3 = srem <2 x i64> undef, <i64 2, i64 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %t3 = srem <2 x i64> undef, <i64 2, i64 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 18 for instruction: %t4 = urem <2 x i64> undef, <i64 2, i64 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %t4 = urem <2 x i64> undef, <i64 2, i64 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 44 for instruction: %f1 = sdiv <4 x i64> undef, <i64 2, i64 2, i64 2, i64 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 36 for instruction: %f1 = sdiv <4 x i64> undef, <i64 2, i64 2, i64 2, i64 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 44 for instruction: %f2 = udiv <4 x i64> undef, <i64 2, i64 2, i64 2, i64 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 36 for instruction: %f2 = udiv <4 x i64> undef, <i64 2, i64 2, i64 2, i64 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %f3 = srem <4 x i64> undef, <i64 2, i64 2, i64 2, i64 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %f3 = srem <4 x i64> undef, <i64 2, i64 2, i64 2, i64 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %f4 = urem <4 x i64> undef, <i64 2, i64 2, i64 2, i64 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %f4 = urem <4 x i64> undef, <i64 2, i64 2, i64 2, i64 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 84 for instruction: %e1 = sdiv <8 x i64> undef, <i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 68 for instruction: %e1 = sdiv <8 x i64> undef, <i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 84 for instruction: %e2 = udiv <8 x i64> undef, <i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 68 for instruction: %e2 = udiv <8 x i64> undef, <i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 60 for instruction: %e3 = srem <8 x i64> undef, <i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 44 for instruction: %e3 = srem <8 x i64> undef, <i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 60 for instruction: %e4 = urem <8 x i64> undef, <i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 44 for instruction: %e4 = urem <8 x i64> undef, <i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 164 for instruction: %s1 = sdiv <16 x i64> undef, <i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 132 for instruction: %s1 = sdiv <16 x i64> undef, <i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 164 for instruction: %s2 = udiv <16 x i64> undef, <i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 132 for instruction: %s2 = udiv <16 x i64> undef, <i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 116 for instruction: %s3 = srem <16 x i64> undef, <i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 84 for instruction: %s3 = srem <16 x i64> undef, <i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 116 for instruction: %s4 = urem <16 x i64> undef, <i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 84 for instruction: %s4 = urem <16 x i64> undef, <i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
; ;
%t1 = sdiv <2 x i64> undef, <i64 2, i64 2> %t1 = sdiv <2 x i64> undef, <i64 2, i64 2>
@ -763,12 +763,12 @@ define void @vf16_2() {
; CHECK-NEON-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; CHECK-NEON-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
; ;
; CHECK-MVE-LABEL: 'vf16_2' ; CHECK-MVE-LABEL: 'vf16_2'
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %1 = fdiv <2 x half> undef, <half 0xH4000, half 0xH4000> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %1 = fdiv <2 x half> undef, <half 0xH4000, half 0xH4000>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %2 = fdiv <2 x half> undef, <half 0xH4000, half 0xH4000> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %2 = fdiv <2 x half> undef, <half 0xH4000, half 0xH4000>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %3 = fdiv <4 x half> undef, <half 0xH4000, half 0xH4000, half 0xH4000, half 0xH4000> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %3 = fdiv <4 x half> undef, <half 0xH4000, half 0xH4000, half 0xH4000, half 0xH4000>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %4 = fdiv <4 x half> undef, <half 0xH4000, half 0xH4000, half 0xH4000, half 0xH4000> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %4 = fdiv <4 x half> undef, <half 0xH4000, half 0xH4000, half 0xH4000, half 0xH4000>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 48 for instruction: %5 = fdiv <8 x half> undef, <half 0xH4000, half 0xH4000, half 0xH4000, half 0xH4000, half 0xH4000, half 0xH4000, half 0xH4000, half 0xH4000> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %5 = fdiv <8 x half> undef, <half 0xH4000, half 0xH4000, half 0xH4000, half 0xH4000, half 0xH4000, half 0xH4000, half 0xH4000, half 0xH4000>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 48 for instruction: %6 = fdiv <8 x half> undef, <half 0xH4000, half 0xH4000, half 0xH4000, half 0xH4000, half 0xH4000, half 0xH4000, half 0xH4000, half 0xH4000> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %6 = fdiv <8 x half> undef, <half 0xH4000, half 0xH4000, half 0xH4000, half 0xH4000, half 0xH4000, half 0xH4000, half 0xH4000, half 0xH4000>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
; ;
%1 = fdiv <2 x half> undef, <half 2., half 2.> %1 = fdiv <2 x half> undef, <half 2., half 2.>
@ -791,12 +791,12 @@ define void @vf32_2() {
; CHECK-NEON-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; CHECK-NEON-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
; ;
; CHECK-MVE-LABEL: 'vf32_2' ; CHECK-MVE-LABEL: 'vf32_2'
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %1 = fdiv <2 x float> undef, <float 2.000000e+00, float 2.000000e+00> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %1 = fdiv <2 x float> undef, <float 2.000000e+00, float 2.000000e+00>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %2 = fdiv <2 x float> undef, <float 2.000000e+00, float 2.000000e+00> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %2 = fdiv <2 x float> undef, <float 2.000000e+00, float 2.000000e+00>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %3 = fdiv <4 x float> undef, <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %3 = fdiv <4 x float> undef, <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %4 = fdiv <4 x float> undef, <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %4 = fdiv <4 x float> undef, <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 48 for instruction: %5 = fdiv <8 x float> undef, <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %5 = fdiv <8 x float> undef, <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 48 for instruction: %6 = fdiv <8 x float> undef, <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %6 = fdiv <8 x float> undef, <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
; ;
%1 = fdiv <2 x float> undef, <float 2., float 2.> %1 = fdiv <2 x float> undef, <float 2., float 2.>

View File

@ -61,15 +61,15 @@ define void @f64() {
define void @vf32() { define void @vf32() {
; CHECK-MVE-LABEL: 'vf32' ; CHECK-MVE-LABEL: 'vf32'
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %c2 = fadd <2 x float> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %c2 = fadd <2 x float> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %d2 = fsub <2 x float> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %d2 = fsub <2 x float> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %e2 = fmul <2 x float> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %e2 = fmul <2 x float> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %c4 = fadd <4 x float> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %c4 = fadd <4 x float> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %d4 = fsub <4 x float> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %d4 = fsub <4 x float> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %e4 = fmul <4 x float> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %e4 = fmul <4 x float> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 48 for instruction: %c8 = fadd <8 x float> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %c8 = fadd <8 x float> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 48 for instruction: %d8 = fsub <8 x float> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %d8 = fsub <8 x float> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 48 for instruction: %e8 = fmul <8 x float> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %e8 = fmul <8 x float> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
; ;
; CHECK-MVEFP-LABEL: 'vf32' ; CHECK-MVEFP-LABEL: 'vf32'
@ -98,15 +98,15 @@ define void @vf32() {
define void @vf16() { define void @vf16() {
; CHECK-MVE-LABEL: 'vf16' ; CHECK-MVE-LABEL: 'vf16'
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %c2 = fadd <2 x half> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %c2 = fadd <2 x half> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %d2 = fsub <2 x half> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %d2 = fsub <2 x half> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %e2 = fmul <2 x half> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %e2 = fmul <2 x half> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %c4 = fadd <4 x half> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %c4 = fadd <4 x half> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %d4 = fsub <4 x half> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %d4 = fsub <4 x half> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %e4 = fmul <4 x half> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %e4 = fmul <4 x half> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 48 for instruction: %c8 = fadd <8 x half> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %c8 = fadd <8 x half> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 48 for instruction: %d8 = fsub <8 x half> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %d8 = fsub <8 x half> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 48 for instruction: %e8 = fmul <8 x half> undef, undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %e8 = fmul <8 x half> undef, undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
; ;
; CHECK-MVEFP-LABEL: 'vf16' ; CHECK-MVEFP-LABEL: 'vf16'

View File

@ -23,14 +23,14 @@ define void @stores() {
; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 8 for instruction: store <8 x i16> undef, <8 x i16>* undef, align 2 ; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 8 for instruction: store <8 x i16> undef, <8 x i16>* undef, align 2
; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 16 for instruction: store <16 x i8> undef, <16 x i8>* undef, align 1 ; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 16 for instruction: store <16 x i8> undef, <16 x i8>* undef, align 1
; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 4 for instruction: store <4 x float> undef, <4 x float>* undef, align 4 ; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 4 for instruction: store <4 x float> undef, <4 x float>* undef, align 4
; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 32 for instruction: store <4 x double> undef, <4 x double>* undef, align 4 ; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 8 for instruction: store <4 x double> undef, <4 x double>* undef, align 4
; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 2 for instruction: store <2 x float> undef, <2 x float>* undef, align 4 ; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 2 for instruction: store <2 x float> undef, <2 x float>* undef, align 4
; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 16 for instruction: store <2 x double> undef, <2 x double>* undef, align 4 ; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 4 for instruction: store <2 x double> undef, <2 x double>* undef, align 4
; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 4 for instruction: store <2 x i64> undef, <2 x i64>* undef, align 1 ; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 4 for instruction: store <2 x i64> undef, <2 x i64>* undef, align 1
; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 4 for instruction: store <4 x i32> undef, <4 x i32>* undef, align 1 ; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 4 for instruction: store <4 x i32> undef, <4 x i32>* undef, align 1
; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 8 for instruction: store <8 x i16> undef, <8 x i16>* undef, align 1 ; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 8 for instruction: store <8 x i16> undef, <8 x i16>* undef, align 1
; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 4 for instruction: store <4 x float> undef, <4 x float>* undef, align 1 ; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 4 for instruction: store <4 x float> undef, <4 x float>* undef, align 1
; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 16 for instruction: store <2 x double> undef, <2 x double>* undef, align 1 ; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 4 for instruction: store <2 x double> undef, <2 x double>* undef, align 1
; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
; ;
; CHECK-FP-LABEL: 'stores' ; CHECK-FP-LABEL: 'stores'
@ -49,14 +49,14 @@ define void @stores() {
; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 8 for instruction: store <8 x i16> undef, <8 x i16>* undef, align 2 ; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 8 for instruction: store <8 x i16> undef, <8 x i16>* undef, align 2
; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 16 for instruction: store <16 x i8> undef, <16 x i8>* undef, align 1 ; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 16 for instruction: store <16 x i8> undef, <16 x i8>* undef, align 1
; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 4 for instruction: store <4 x float> undef, <4 x float>* undef, align 4 ; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 4 for instruction: store <4 x float> undef, <4 x float>* undef, align 4
; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 16 for instruction: store <4 x double> undef, <4 x double>* undef, align 4 ; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 4 for instruction: store <4 x double> undef, <4 x double>* undef, align 4
; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 2 for instruction: store <2 x float> undef, <2 x float>* undef, align 4 ; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 2 for instruction: store <2 x float> undef, <2 x float>* undef, align 4
; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 8 for instruction: store <2 x double> undef, <2 x double>* undef, align 4 ; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 2 for instruction: store <2 x double> undef, <2 x double>* undef, align 4
; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 4 for instruction: store <2 x i64> undef, <2 x i64>* undef, align 1 ; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 4 for instruction: store <2 x i64> undef, <2 x i64>* undef, align 1
; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 4 for instruction: store <4 x i32> undef, <4 x i32>* undef, align 1 ; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 4 for instruction: store <4 x i32> undef, <4 x i32>* undef, align 1
; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 8 for instruction: store <8 x i16> undef, <8 x i16>* undef, align 1 ; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 8 for instruction: store <8 x i16> undef, <8 x i16>* undef, align 1
; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 4 for instruction: store <4 x float> undef, <4 x float>* undef, align 1 ; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 4 for instruction: store <4 x float> undef, <4 x float>* undef, align 1
; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 8 for instruction: store <2 x double> undef, <2 x double>* undef, align 1 ; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 2 for instruction: store <2 x double> undef, <2 x double>* undef, align 1
; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
; ;
; CHECK-MVE-LABEL: 'stores' ; CHECK-MVE-LABEL: 'stores'
@ -75,14 +75,14 @@ define void @stores() {
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store <8 x i16> undef, <8 x i16>* undef, align 2 ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store <8 x i16> undef, <8 x i16>* undef, align 2
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store <16 x i8> undef, <16 x i8>* undef, align 1 ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store <16 x i8> undef, <16 x i8>* undef, align 1
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store <4 x float> undef, <4 x float>* undef, align 4 ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store <4 x float> undef, <4 x float>* undef, align 4
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 8 for instruction: store <4 x double> undef, <4 x double>* undef, align 4 ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: store <4 x double> undef, <4 x double>* undef, align 4
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store <2 x float> undef, <2 x float>* undef, align 4 ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store <2 x float> undef, <2 x float>* undef, align 4
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 4 for instruction: store <2 x double> undef, <2 x double>* undef, align 4 ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store <2 x double> undef, <2 x double>* undef, align 4
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store <2 x i64> undef, <2 x i64>* undef, align 1 ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store <2 x i64> undef, <2 x i64>* undef, align 1
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store <4 x i32> undef, <4 x i32>* undef, align 1 ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store <4 x i32> undef, <4 x i32>* undef, align 1
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store <8 x i16> undef, <8 x i16>* undef, align 1 ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store <8 x i16> undef, <8 x i16>* undef, align 1
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store <4 x float> undef, <4 x float>* undef, align 1 ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store <4 x float> undef, <4 x float>* undef, align 1
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 4 for instruction: store <2 x double> undef, <2 x double>* undef, align 1 ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: store <2 x double> undef, <2 x double>* undef, align 1
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
; ;
; CHECK-NEON-LABEL: 'stores' ; CHECK-NEON-LABEL: 'stores'
@ -158,14 +158,14 @@ define void @loads() {
; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %13 = load <8 x i16>, <8 x i16>* undef, align 2 ; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %13 = load <8 x i16>, <8 x i16>* undef, align 2
; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %14 = load <16 x i8>, <16 x i8>* undef, align 1 ; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %14 = load <16 x i8>, <16 x i8>* undef, align 1
; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %15 = load <4 x float>, <4 x float>* undef, align 4 ; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %15 = load <4 x float>, <4 x float>* undef, align 4
; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %16 = load <4 x double>, <4 x double>* undef, align 4 ; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %16 = load <4 x double>, <4 x double>* undef, align 4
; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %17 = load <2 x float>, <2 x float>* undef, align 4 ; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %17 = load <2 x float>, <2 x float>* undef, align 4
; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %18 = load <2 x double>, <2 x double>* undef, align 4 ; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %18 = load <2 x double>, <2 x double>* undef, align 4
; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %19 = load <2 x i64>, <2 x i64>* undef, align 1 ; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %19 = load <2 x i64>, <2 x i64>* undef, align 1
; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %20 = load <4 x i32>, <4 x i32>* undef, align 1 ; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %20 = load <4 x i32>, <4 x i32>* undef, align 1
; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %21 = load <8 x i16>, <8 x i16>* undef, align 1 ; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %21 = load <8 x i16>, <8 x i16>* undef, align 1
; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %22 = load <4 x float>, <4 x float>* undef, align 1 ; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %22 = load <4 x float>, <4 x float>* undef, align 1
; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %23 = load <2 x double>, <2 x double>* undef, align 1 ; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %23 = load <2 x double>, <2 x double>* undef, align 1
; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; CHECK-NOVEC-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
; ;
; CHECK-FP-LABEL: 'loads' ; CHECK-FP-LABEL: 'loads'
@ -184,14 +184,14 @@ define void @loads() {
; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %13 = load <8 x i16>, <8 x i16>* undef, align 2 ; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %13 = load <8 x i16>, <8 x i16>* undef, align 2
; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %14 = load <16 x i8>, <16 x i8>* undef, align 1 ; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %14 = load <16 x i8>, <16 x i8>* undef, align 1
; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %15 = load <4 x float>, <4 x float>* undef, align 4 ; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %15 = load <4 x float>, <4 x float>* undef, align 4
; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %16 = load <4 x double>, <4 x double>* undef, align 4 ; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %16 = load <4 x double>, <4 x double>* undef, align 4
; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %17 = load <2 x float>, <2 x float>* undef, align 4 ; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %17 = load <2 x float>, <2 x float>* undef, align 4
; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %18 = load <2 x double>, <2 x double>* undef, align 4 ; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %18 = load <2 x double>, <2 x double>* undef, align 4
; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %19 = load <2 x i64>, <2 x i64>* undef, align 1 ; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %19 = load <2 x i64>, <2 x i64>* undef, align 1
; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %20 = load <4 x i32>, <4 x i32>* undef, align 1 ; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %20 = load <4 x i32>, <4 x i32>* undef, align 1
; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %21 = load <8 x i16>, <8 x i16>* undef, align 1 ; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %21 = load <8 x i16>, <8 x i16>* undef, align 1
; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %22 = load <4 x float>, <4 x float>* undef, align 1 ; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %22 = load <4 x float>, <4 x float>* undef, align 1
; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %23 = load <2 x double>, <2 x double>* undef, align 1 ; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %23 = load <2 x double>, <2 x double>* undef, align 1
; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; CHECK-FP-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
; ;
; CHECK-MVE-LABEL: 'loads' ; CHECK-MVE-LABEL: 'loads'
@ -210,14 +210,14 @@ define void @loads() {
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %13 = load <8 x i16>, <8 x i16>* undef, align 2 ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %13 = load <8 x i16>, <8 x i16>* undef, align 2
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %14 = load <16 x i8>, <16 x i8>* undef, align 1 ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %14 = load <16 x i8>, <16 x i8>* undef, align 1
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %15 = load <4 x float>, <4 x float>* undef, align 4 ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %15 = load <4 x float>, <4 x float>* undef, align 4
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %16 = load <4 x double>, <4 x double>* undef, align 4 ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %16 = load <4 x double>, <4 x double>* undef, align 4
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %17 = load <2 x float>, <2 x float>* undef, align 4 ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %17 = load <2 x float>, <2 x float>* undef, align 4
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %18 = load <2 x double>, <2 x double>* undef, align 4 ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %18 = load <2 x double>, <2 x double>* undef, align 4
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %19 = load <2 x i64>, <2 x i64>* undef, align 1 ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %19 = load <2 x i64>, <2 x i64>* undef, align 1
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %20 = load <4 x i32>, <4 x i32>* undef, align 1 ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %20 = load <4 x i32>, <4 x i32>* undef, align 1
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %21 = load <8 x i16>, <8 x i16>* undef, align 1 ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %21 = load <8 x i16>, <8 x i16>* undef, align 1
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %22 = load <4 x float>, <4 x float>* undef, align 1 ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %22 = load <4 x float>, <4 x float>* undef, align 1
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %23 = load <2 x double>, <2 x double>* undef, align 1 ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %23 = load <2 x double>, <2 x double>* undef, align 1
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
; ;
; CHECK-NEON-LABEL: 'loads' ; CHECK-NEON-LABEL: 'loads'

View File

@ -10,26 +10,26 @@ define void @casts() {
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4 = select i1 undef, i64 undef, i64 undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4 = select i1 undef, i64 undef, i64 undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v5 = select i1 undef, float undef, float undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v5 = select i1 undef, float undef, float undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v6 = select i1 undef, double undef, double undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v6 = select i1 undef, double undef, double undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %v7 = select <2 x i1> undef, <2 x i8> undef, <2 x i8> undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v7 = select <2 x i1> undef, <2 x i8> undef, <2 x i8> undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8 = select <4 x i1> undef, <4 x i8> undef, <4 x i8> undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8 = select <4 x i1> undef, <4 x i8> undef, <4 x i8> undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v9 = select <8 x i1> undef, <8 x i8> undef, <8 x i8> undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v9 = select <8 x i1> undef, <8 x i8> undef, <8 x i8> undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v10 = select <16 x i1> undef, <16 x i8> undef, <16 x i8> undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v10 = select <16 x i1> undef, <16 x i8> undef, <16 x i8> undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %v11 = select <2 x i1> undef, <2 x i16> undef, <2 x i16> undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v11 = select <2 x i1> undef, <2 x i16> undef, <2 x i16> undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v12 = select <4 x i1> undef, <4 x i16> undef, <4 x i16> undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v12 = select <4 x i1> undef, <4 x i16> undef, <4 x i16> undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v13 = select <8 x i1> undef, <8 x i16> undef, <8 x i16> undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v13 = select <8 x i1> undef, <8 x i16> undef, <8 x i16> undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v13b = select <16 x i1> undef, <16 x i16> undef, <16 x i16> undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v13b = select <16 x i1> undef, <16 x i16> undef, <16 x i16> undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %v14 = select <2 x i1> undef, <2 x i32> undef, <2 x i32> undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v14 = select <2 x i1> undef, <2 x i32> undef, <2 x i32> undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v15 = select <4 x i1> undef, <4 x i32> undef, <4 x i32> undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v15 = select <4 x i1> undef, <4 x i32> undef, <4 x i32> undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v15b = select <8 x i1> undef, <8 x i32> undef, <8 x i32> undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v15b = select <8 x i1> undef, <8 x i32> undef, <8 x i32> undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v15c = select <16 x i1> undef, <16 x i32> undef, <16 x i32> undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v15c = select <16 x i1> undef, <16 x i32> undef, <16 x i32> undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %v16 = select <2 x i1> undef, <2 x i64> undef, <2 x i64> undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %v16 = select <2 x i1> undef, <2 x i64> undef, <2 x i64> undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %v16a = select <4 x i1> undef, <4 x i64> undef, <4 x i64> undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %v16a = select <4 x i1> undef, <4 x i64> undef, <4 x i64> undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 40 for instruction: %v16b = select <8 x i1> undef, <8 x i64> undef, <8 x i64> undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %v16b = select <8 x i1> undef, <8 x i64> undef, <8 x i64> undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 80 for instruction: %v16c = select <16 x i1> undef, <16 x i64> undef, <16 x i64> undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 64 for instruction: %v16c = select <16 x i1> undef, <16 x i64> undef, <16 x i64> undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v17 = select <2 x i1> undef, <2 x float> undef, <2 x float> undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v17 = select <2 x i1> undef, <2 x float> undef, <2 x float> undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v18 = select <4 x i1> undef, <4 x float> undef, <4 x float> undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v18 = select <4 x i1> undef, <4 x float> undef, <4 x float> undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v19 = select <2 x i1> undef, <2 x double> undef, <2 x double> undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v19 = select <2 x i1> undef, <2 x double> undef, <2 x double> undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v20 = select <1 x i1> undef, <1 x i32> undef, <1 x i32> undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v20 = select <1 x i1> undef, <1 x i32> undef, <1 x i32> undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v21 = select <3 x i1> undef, <3 x float> undef, <3 x float> undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v21 = select <3 x i1> undef, <3 x float> undef, <3 x float> undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %v22 = select <5 x i1> undef, <5 x double> undef, <5 x double> undef ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %v22 = select <5 x i1> undef, <5 x double> undef, <5 x double> undef
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void

View File

@ -4,17 +4,17 @@
define void @broadcast() { define void @broadcast() {
; CHECK-MVE-LABEL: 'broadcast' ; CHECK-MVE-LABEL: 'broadcast'
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v7 = shufflevector <2 x i8> undef, <2 x i8> undef, <2 x i32> zeroinitializer ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v7 = shufflevector <2 x i8> undef, <2 x i8> undef, <2 x i32> zeroinitializer
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8 = shufflevector <4 x i8> undef, <4 x i8> undef, <4 x i32> zeroinitializer ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %v8 = shufflevector <4 x i8> undef, <4 x i8> undef, <4 x i32> zeroinitializer
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v9 = shufflevector <8 x i8> undef, <8 x i8> undef, <8 x i32> zeroinitializer ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %v9 = shufflevector <8 x i8> undef, <8 x i8> undef, <8 x i32> zeroinitializer
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v10 = shufflevector <16 x i8> undef, <16 x i8> undef, <16 x i32> zeroinitializer ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 17 for instruction: %v10 = shufflevector <16 x i8> undef, <16 x i8> undef, <16 x i32> zeroinitializer
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v11 = shufflevector <2 x i16> undef, <2 x i16> undef, <2 x i32> zeroinitializer ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v11 = shufflevector <2 x i16> undef, <2 x i16> undef, <2 x i32> zeroinitializer
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v12 = shufflevector <4 x i16> undef, <4 x i16> undef, <4 x i32> zeroinitializer ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %v12 = shufflevector <4 x i16> undef, <4 x i16> undef, <4 x i32> zeroinitializer
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v13 = shufflevector <8 x i16> undef, <8 x i16> undef, <8 x i32> zeroinitializer ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %v13 = shufflevector <8 x i16> undef, <8 x i16> undef, <8 x i32> zeroinitializer
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v14 = shufflevector <2 x i32> undef, <2 x i32> undef, <2 x i32> zeroinitializer ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v14 = shufflevector <2 x i32> undef, <2 x i32> undef, <2 x i32> zeroinitializer
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v15 = shufflevector <4 x i32> undef, <4 x i32> undef, <4 x i32> zeroinitializer ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %v15 = shufflevector <4 x i32> undef, <4 x i32> undef, <4 x i32> zeroinitializer
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16 = shufflevector <2 x float> undef, <2 x float> undef, <2 x i32> zeroinitializer ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v16 = shufflevector <2 x float> undef, <2 x float> undef, <2 x i32> zeroinitializer
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v17 = shufflevector <4 x float> undef, <4 x float> undef, <4 x i32> zeroinitializer ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %v17 = shufflevector <4 x float> undef, <4 x float> undef, <4 x i32> zeroinitializer
; CHECK-MVE-NEXT: Cost Model: Unknown cost for instruction: %v18 = shufflevector <8 x half> undef, <8 x half> undef, <4 x i32> zeroinitializer ; CHECK-MVE-NEXT: Cost Model: Unknown cost for instruction: %v18 = shufflevector <8 x half> undef, <8 x half> undef, <4 x i32> zeroinitializer
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
; ;
@ -55,18 +55,18 @@ define void @broadcast() {
;; Reverse shuffles should be lowered to vrev and possibly a vext (for quadwords, on neon) ;; Reverse shuffles should be lowered to vrev and possibly a vext (for quadwords, on neon)
define void @reverse() { define void @reverse() {
; CHECK-MVE-LABEL: 'reverse' ; CHECK-MVE-LABEL: 'reverse'
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v7 = shufflevector <2 x i8> undef, <2 x i8> undef, <2 x i32> <i32 1, i32 0> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v7 = shufflevector <2 x i8> undef, <2 x i8> undef, <2 x i32> <i32 1, i32 0>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8 = shufflevector <4 x i8> undef, <4 x i8> undef, <4 x i32> <i32 3, i32 2, i32 1, i32 0> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %v8 = shufflevector <4 x i8> undef, <4 x i8> undef, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v9 = shufflevector <8 x i8> undef, <8 x i8> undef, <8 x i32> <i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %v9 = shufflevector <8 x i8> undef, <8 x i8> undef, <8 x i32> <i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v10 = shufflevector <16 x i8> undef, <16 x i8> undef, <16 x i32> <i32 15, i32 14, i32 13, i32 12, i32 11, i32 10, i32 9, i32 8, i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %v10 = shufflevector <16 x i8> undef, <16 x i8> undef, <16 x i32> <i32 15, i32 14, i32 13, i32 12, i32 11, i32 10, i32 9, i32 8, i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v11 = shufflevector <2 x i16> undef, <2 x i16> undef, <2 x i32> <i32 1, i32 0> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v11 = shufflevector <2 x i16> undef, <2 x i16> undef, <2 x i32> <i32 1, i32 0>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v12 = shufflevector <4 x i16> undef, <4 x i16> undef, <4 x i32> <i32 3, i32 2, i32 1, i32 0> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %v12 = shufflevector <4 x i16> undef, <4 x i16> undef, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v13 = shufflevector <8 x i16> undef, <8 x i16> undef, <8 x i32> <i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %v13 = shufflevector <8 x i16> undef, <8 x i16> undef, <8 x i32> <i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v14 = shufflevector <2 x i32> undef, <2 x i32> undef, <2 x i32> <i32 1, i32 0> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v14 = shufflevector <2 x i32> undef, <2 x i32> undef, <2 x i32> <i32 1, i32 0>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v15 = shufflevector <4 x i32> undef, <4 x i32> undef, <4 x i32> <i32 3, i32 2, i32 1, i32 0> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %v15 = shufflevector <4 x i32> undef, <4 x i32> undef, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v16 = shufflevector <2 x float> undef, <2 x float> undef, <2 x i32> <i32 1, i32 0> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v16 = shufflevector <2 x float> undef, <2 x float> undef, <2 x i32> <i32 1, i32 0>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v17 = shufflevector <4 x float> undef, <4 x float> undef, <4 x i32> <i32 3, i32 2, i32 1, i32 0> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %v17 = shufflevector <4 x float> undef, <4 x float> undef, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %v18 = shufflevector <8 x half> undef, <8 x half> undef, <8 x i32> <i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0> ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %v18 = shufflevector <8 x half> undef, <8 x half> undef, <8 x i32> <i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>
; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; CHECK-MVE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void
; ;
; CHECK-NEON-LABEL: 'reverse' ; CHECK-NEON-LABEL: 'reverse'