| From 47f4cd9c3dbfb383dd7706f20ba9eda2dd17c5b8 Mon Sep 17 00:00:00 2001 |
| From: David Green <david.green@arm.com> |
| Date: Thu, 3 Mar 2022 11:17:24 +0000 |
| Subject: [PATCH] [AArch64] Update costs for some fp16 converts |
| |
| This updates the costs for FP16 converts, as some of them were pretty |
| high. |
| |
| Differential Revision: https://reviews.llvm.org/D120771 |
| --- |
| .../AArch64/AArch64TargetTransformInfo.cpp | 26 +++ |
| llvm/test/Analysis/CostModel/AArch64/cast.ll | 160 ++++++++++++------ |
| 2 files changed, 133 insertions(+), 53 deletions(-) |
| |
| diff --git a/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp b/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp |
| index e5b530db61bd..ec360a21e0d4 100644 |
| --- a/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp |
| +++ b/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp |
| @@ -1608,6 +1608,32 @@ InstructionCost AArch64TTIImpl::getCastInstrCost(unsigned Opcode, Type *Dst, |
| SrcTy.getSimpleVT())) |
| return AdjustCost(Entry->Cost); |
| |
| + static const TypeConversionCostTblEntry FP16Tbl[] = { |
| + {ISD::FP_TO_SINT, MVT::v4i8, MVT::v4f16, 1}, // fcvtzs |
| + {ISD::FP_TO_UINT, MVT::v4i8, MVT::v4f16, 1}, |
| + {ISD::FP_TO_SINT, MVT::v4i16, MVT::v4f16, 1}, // fcvtzs |
| + {ISD::FP_TO_UINT, MVT::v4i16, MVT::v4f16, 1}, |
| + {ISD::FP_TO_SINT, MVT::v4i32, MVT::v4f16, 2}, // fcvtl+fcvtzs |
| + {ISD::FP_TO_UINT, MVT::v4i32, MVT::v4f16, 2}, |
| + {ISD::FP_TO_SINT, MVT::v8i8, MVT::v8f16, 2}, // fcvtzs+xtn |
| + {ISD::FP_TO_UINT, MVT::v8i8, MVT::v8f16, 2}, |
| + {ISD::FP_TO_SINT, MVT::v8i16, MVT::v8f16, 1}, // fcvtzs |
| + {ISD::FP_TO_UINT, MVT::v8i16, MVT::v8f16, 1}, |
| + {ISD::FP_TO_SINT, MVT::v8i32, MVT::v8f16, 4}, // 2*fcvtl+2*fcvtzs |
| + {ISD::FP_TO_UINT, MVT::v8i32, MVT::v8f16, 4}, |
| + {ISD::FP_TO_SINT, MVT::v16i8, MVT::v16f16, 3}, // 2*fcvtzs+xtn |
| + {ISD::FP_TO_UINT, MVT::v16i8, MVT::v16f16, 3}, |
| + {ISD::FP_TO_SINT, MVT::v16i16, MVT::v16f16, 2}, // 2*fcvtzs |
| + {ISD::FP_TO_UINT, MVT::v16i16, MVT::v16f16, 2}, |
| + {ISD::FP_TO_SINT, MVT::v16i32, MVT::v16f16, 8}, // 4*fcvtl+4*fcvtzs |
| + {ISD::FP_TO_UINT, MVT::v16i32, MVT::v16f16, 8}, |
| + }; |
| + |
| + if (ST->hasFullFP16()) |
| + if (const auto *Entry = ConvertCostTableLookup( |
| + FP16Tbl, ISD, DstTy.getSimpleVT(), SrcTy.getSimpleVT())) |
| + return AdjustCost(Entry->Cost); |
| + |
| return AdjustCost( |
| BaseT::getCastInstrCost(Opcode, Dst, Src, CCH, CostKind, I)); |
| } |
| diff --git a/llvm/test/Analysis/CostModel/AArch64/cast.ll b/llvm/test/Analysis/CostModel/AArch64/cast.ll |
| index 588a67136115..20515376c792 100644 |
| --- a/llvm/test/Analysis/CostModel/AArch64/cast.ll |
| +++ b/llvm/test/Analysis/CostModel/AArch64/cast.ll |
| @@ -1,5 +1,6 @@ |
| ; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py |
| -; RUN: opt -cost-model -analyze -mtriple=aarch64-none-linux-gnueabi %s | FileCheck --check-prefixes=CHECK %s |
| +; RUN: opt -cost-model -analyze -mtriple=aarch64-none-linux-gnueabi %s | FileCheck --check-prefixes=CHECK,CHECK-NOFP16 %s |
| +; RUN: opt -cost-model -analyze -mtriple=aarch64-none-linux-gnueabi -mattr=+fullfp16 %s | FileCheck --check-prefixes=CHECK,CHECK-FP16 %s |
| |
| define void @ext() { |
| ; CHECK-LABEL: 'ext' |
| @@ -1022,58 +1023,111 @@ define void @extend_extract() { |
| declare void @use(i16, i16, i32, i32, i64, i64, i32, i32, i64, i64, i64, i64) |
| |
| define void @fp16cast() { |
| -; CHECK-LABEL: 'fp16cast' |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r30 = fptoui half undef to i1 |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r31 = fptosi half undef to i1 |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r32 = fptoui half undef to i8 |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r33 = fptosi half undef to i8 |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r34 = fptoui half undef to i16 |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r35 = fptosi half undef to i16 |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r36 = fptoui half undef to i32 |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r37 = fptosi half undef to i32 |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r38 = fptoui half undef to i64 |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r39 = fptosi half undef to i64 |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r90 = fptoui <2 x half> undef to <2 x i1> |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r91 = fptosi <2 x half> undef to <2 x i1> |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r92 = fptoui <2 x half> undef to <2 x i8> |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r93 = fptosi <2 x half> undef to <2 x i8> |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r94 = fptoui <2 x half> undef to <2 x i16> |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r95 = fptosi <2 x half> undef to <2 x i16> |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r96 = fptoui <2 x half> undef to <2 x i32> |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r97 = fptosi <2 x half> undef to <2 x i32> |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r98 = fptoui <2 x half> undef to <2 x i64> |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r99 = fptosi <2 x half> undef to <2 x i64> |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r110 = fptoui <4 x half> undef to <4 x i1> |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r111 = fptosi <4 x half> undef to <4 x i1> |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r112 = fptoui <4 x half> undef to <4 x i8> |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r113 = fptosi <4 x half> undef to <4 x i8> |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r114 = fptoui <4 x half> undef to <4 x i16> |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r115 = fptosi <4 x half> undef to <4 x i16> |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 22 for instruction: %r116 = fptoui <4 x half> undef to <4 x i32> |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 22 for instruction: %r117 = fptosi <4 x half> undef to <4 x i32> |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 17 for instruction: %r118 = fptoui <4 x half> undef to <4 x i64> |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 17 for instruction: %r119 = fptosi <4 x half> undef to <4 x i64> |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 50 for instruction: %r130 = fptoui <8 x half> undef to <8 x i1> |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 50 for instruction: %r131 = fptosi <8 x half> undef to <8 x i1> |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 50 for instruction: %r132 = fptoui <8 x half> undef to <8 x i8> |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 50 for instruction: %r133 = fptosi <8 x half> undef to <8 x i8> |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r134 = fptoui <8 x half> undef to <8 x i16> |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r135 = fptosi <8 x half> undef to <8 x i16> |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 45 for instruction: %r136 = fptoui <8 x half> undef to <8 x i32> |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 45 for instruction: %r137 = fptosi <8 x half> undef to <8 x i32> |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 35 for instruction: %r138 = fptoui <8 x half> undef to <8 x i64> |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 35 for instruction: %r139 = fptosi <8 x half> undef to <8 x i64> |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 101 for instruction: %r150 = fptoui <16 x half> undef to <16 x i1> |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 101 for instruction: %r151 = fptosi <16 x half> undef to <16 x i1> |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 101 for instruction: %r152 = fptoui <16 x half> undef to <16 x i8> |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 101 for instruction: %r153 = fptosi <16 x half> undef to <16 x i8> |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r154 = fptoui <16 x half> undef to <16 x i16> |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r155 = fptosi <16 x half> undef to <16 x i16> |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 90 for instruction: %r156 = fptoui <16 x half> undef to <16 x i32> |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 90 for instruction: %r157 = fptosi <16 x half> undef to <16 x i32> |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 70 for instruction: %r158 = fptoui <16 x half> undef to <16 x i64> |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 70 for instruction: %r159 = fptosi <16 x half> undef to <16 x i64> |
| -; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void |
| +; CHECK-NOFP16-LABEL: 'fp16cast' |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r30 = fptoui half undef to i1 |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r31 = fptosi half undef to i1 |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r32 = fptoui half undef to i8 |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r33 = fptosi half undef to i8 |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r34 = fptoui half undef to i16 |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r35 = fptosi half undef to i16 |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r36 = fptoui half undef to i32 |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r37 = fptosi half undef to i32 |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r38 = fptoui half undef to i64 |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r39 = fptosi half undef to i64 |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r90 = fptoui <2 x half> undef to <2 x i1> |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r91 = fptosi <2 x half> undef to <2 x i1> |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r92 = fptoui <2 x half> undef to <2 x i8> |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r93 = fptosi <2 x half> undef to <2 x i8> |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r94 = fptoui <2 x half> undef to <2 x i16> |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r95 = fptosi <2 x half> undef to <2 x i16> |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r96 = fptoui <2 x half> undef to <2 x i32> |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r97 = fptosi <2 x half> undef to <2 x i32> |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r98 = fptoui <2 x half> undef to <2 x i64> |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r99 = fptosi <2 x half> undef to <2 x i64> |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r110 = fptoui <4 x half> undef to <4 x i1> |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r111 = fptosi <4 x half> undef to <4 x i1> |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r112 = fptoui <4 x half> undef to <4 x i8> |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r113 = fptosi <4 x half> undef to <4 x i8> |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r114 = fptoui <4 x half> undef to <4 x i16> |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r115 = fptosi <4 x half> undef to <4 x i16> |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 22 for instruction: %r116 = fptoui <4 x half> undef to <4 x i32> |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 22 for instruction: %r117 = fptosi <4 x half> undef to <4 x i32> |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 17 for instruction: %r118 = fptoui <4 x half> undef to <4 x i64> |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 17 for instruction: %r119 = fptosi <4 x half> undef to <4 x i64> |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 50 for instruction: %r130 = fptoui <8 x half> undef to <8 x i1> |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 50 for instruction: %r131 = fptosi <8 x half> undef to <8 x i1> |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 50 for instruction: %r132 = fptoui <8 x half> undef to <8 x i8> |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 50 for instruction: %r133 = fptosi <8 x half> undef to <8 x i8> |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r134 = fptoui <8 x half> undef to <8 x i16> |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r135 = fptosi <8 x half> undef to <8 x i16> |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 45 for instruction: %r136 = fptoui <8 x half> undef to <8 x i32> |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 45 for instruction: %r137 = fptosi <8 x half> undef to <8 x i32> |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 35 for instruction: %r138 = fptoui <8 x half> undef to <8 x i64> |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 35 for instruction: %r139 = fptosi <8 x half> undef to <8 x i64> |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 101 for instruction: %r150 = fptoui <16 x half> undef to <16 x i1> |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 101 for instruction: %r151 = fptosi <16 x half> undef to <16 x i1> |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 101 for instruction: %r152 = fptoui <16 x half> undef to <16 x i8> |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 101 for instruction: %r153 = fptosi <16 x half> undef to <16 x i8> |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r154 = fptoui <16 x half> undef to <16 x i16> |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r155 = fptosi <16 x half> undef to <16 x i16> |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 90 for instruction: %r156 = fptoui <16 x half> undef to <16 x i32> |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 90 for instruction: %r157 = fptosi <16 x half> undef to <16 x i32> |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 70 for instruction: %r158 = fptoui <16 x half> undef to <16 x i64> |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 70 for instruction: %r159 = fptosi <16 x half> undef to <16 x i64> |
| +; CHECK-NOFP16-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void |
| +; |
| +; CHECK-FP16-LABEL: 'fp16cast' |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r30 = fptoui half undef to i1 |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r31 = fptosi half undef to i1 |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r32 = fptoui half undef to i8 |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r33 = fptosi half undef to i8 |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r34 = fptoui half undef to i16 |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r35 = fptosi half undef to i16 |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r36 = fptoui half undef to i32 |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r37 = fptosi half undef to i32 |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r38 = fptoui half undef to i64 |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r39 = fptosi half undef to i64 |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r90 = fptoui <2 x half> undef to <2 x i1> |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r91 = fptosi <2 x half> undef to <2 x i1> |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r92 = fptoui <2 x half> undef to <2 x i8> |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r93 = fptosi <2 x half> undef to <2 x i8> |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r94 = fptoui <2 x half> undef to <2 x i16> |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r95 = fptosi <2 x half> undef to <2 x i16> |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r96 = fptoui <2 x half> undef to <2 x i32> |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r97 = fptosi <2 x half> undef to <2 x i32> |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r98 = fptoui <2 x half> undef to <2 x i64> |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r99 = fptosi <2 x half> undef to <2 x i64> |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r110 = fptoui <4 x half> undef to <4 x i1> |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r111 = fptosi <4 x half> undef to <4 x i1> |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r112 = fptoui <4 x half> undef to <4 x i8> |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r113 = fptosi <4 x half> undef to <4 x i8> |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r114 = fptoui <4 x half> undef to <4 x i16> |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r115 = fptosi <4 x half> undef to <4 x i16> |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r116 = fptoui <4 x half> undef to <4 x i32> |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r117 = fptosi <4 x half> undef to <4 x i32> |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 17 for instruction: %r118 = fptoui <4 x half> undef to <4 x i64> |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 17 for instruction: %r119 = fptosi <4 x half> undef to <4 x i64> |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 50 for instruction: %r130 = fptoui <8 x half> undef to <8 x i1> |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 50 for instruction: %r131 = fptosi <8 x half> undef to <8 x i1> |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r132 = fptoui <8 x half> undef to <8 x i8> |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r133 = fptosi <8 x half> undef to <8 x i8> |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r134 = fptoui <8 x half> undef to <8 x i16> |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %r135 = fptosi <8 x half> undef to <8 x i16> |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r136 = fptoui <8 x half> undef to <8 x i32> |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %r137 = fptosi <8 x half> undef to <8 x i32> |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 35 for instruction: %r138 = fptoui <8 x half> undef to <8 x i64> |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 35 for instruction: %r139 = fptosi <8 x half> undef to <8 x i64> |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 101 for instruction: %r150 = fptoui <16 x half> undef to <16 x i1> |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 101 for instruction: %r151 = fptosi <16 x half> undef to <16 x i1> |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r152 = fptoui <16 x half> undef to <16 x i8> |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %r153 = fptosi <16 x half> undef to <16 x i8> |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r154 = fptoui <16 x half> undef to <16 x i16> |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %r155 = fptosi <16 x half> undef to <16 x i16> |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r156 = fptoui <16 x half> undef to <16 x i32> |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %r157 = fptosi <16 x half> undef to <16 x i32> |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 70 for instruction: %r158 = fptoui <16 x half> undef to <16 x i64> |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 70 for instruction: %r159 = fptosi <16 x half> undef to <16 x i64> |
| +; CHECK-FP16-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void |
| ; |
| %r30 = fptoui half undef to i1 |
| %r31 = fptosi half undef to i1 |
| -- |
| 2.36.0.rc0.470.gd361397f0d-goog |
| |