diff options
| author | Elena Demikhovsky <elena.demikhovsky@intel.com> | 2014-11-13 11:46:16 +0000 |
|---|---|---|
| committer | Elena Demikhovsky <elena.demikhovsky@intel.com> | 2014-11-13 11:46:16 +0000 |
| commit | d5e95b57e033ee5bc91e2da3116879ef3a1a0581 (patch) | |
| tree | b1a0d9c032afe734a5226f956d3e8853c82e0163 /llvm/test/Analysis/CostModel | |
| parent | 3217c6a52cfa95b545b0d77597c083e9fe7d6145 (diff) | |
| download | bcm5719-llvm-d5e95b57e033ee5bc91e2da3116879ef3a1a0581.tar.gz bcm5719-llvm-d5e95b57e033ee5bc91e2da3116879ef3a1a0581.zip | |
AVX-512: SINT_TO_FP cost model and some bugfixes
Checked some corner cases, for example translation
of <8 x i1> to <8 x double>
llvm-svn: 221883
Diffstat (limited to 'llvm/test/Analysis/CostModel')
| -rw-r--r-- | llvm/test/Analysis/CostModel/X86/sitofp.ll | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/llvm/test/Analysis/CostModel/X86/sitofp.ll b/llvm/test/Analysis/CostModel/X86/sitofp.ll index 338d9741652..edc937ecf94 100644 --- a/llvm/test/Analysis/CostModel/X86/sitofp.ll +++ b/llvm/test/Analysis/CostModel/X86/sitofp.ll @@ -1,4 +1,5 @@ ; RUN: opt -mtriple=x86_64-apple-darwin -mcpu=core2 -cost-model -analyze < %s | FileCheck --check-prefix=SSE2 %s +; RUN: opt -mtriple=x86_64-apple-darwin -mcpu=knl -cost-model -analyze < %s | FileCheck --check-prefix=AVX512F %s define <2 x double> @sitofpv2i8v2double(<2 x i8> %a) { ; SSE2: sitofpv2i8v2double @@ -279,3 +280,47 @@ define <32 x float> @sitofpv32i64v32float(<32 x i64> %a) { %1 = sitofp <32 x i64> %a to <32 x float> ret <32 x float> %1 } + +; AVX512F-LABEL: sitofp_16i8_float +; AVX512F: cost of 2 {{.*}} sitofp +define <16 x float> @sitofp_16i8_float(<16 x i8> %a) { + %1 = sitofp <16 x i8> %a to <16 x float> + ret <16 x float> %1 +} + +define <16 x float> @sitofp_16i16_float(<16 x i16> %a) { + ; AVX512F-LABEL: sitofp_16i16_float + ; AVX512F: cost of 2 {{.*}} sitofp + %1 = sitofp <16 x i16> %a to <16 x float> + ret <16 x float> %1 +} + +; AVX512F-LABEL: sitofp_8i8_double +; AVX512F: cost of 2 {{.*}} sitofp +define <8 x double> @sitofp_8i8_double(<8 x i8> %a) { + %1 = sitofp <8 x i8> %a to <8 x double> + ret <8 x double> %1 +} + +; AVX512F-LABEL: sitofp_8i16_double +; AVX512F: cost of 2 {{.*}} sitofp +define <8 x double> @sitofp_8i16_double(<8 x i16> %a) { + %1 = sitofp <8 x i16> %a to <8 x double> + ret <8 x double> %1 +} + +; AVX512F-LABEL: sitofp_8i1_double +; AVX512F: cost of 4 {{.*}} sitofp +define <8 x double> @sitofp_8i1_double(<8 x double> %a) { + %cmpres = fcmp ogt <8 x double> %a, zeroinitializer + %1 = sitofp <8 x i1> %cmpres to <8 x double> + ret <8 x double> %1 +} + +; AVX512F-LABEL: sitofp_16i1_float +; AVX512F: cost of 3 {{.*}} sitofp +define <16 x float> @sitofp_16i1_float(<16 x float> %a) { + %cmpres = fcmp ogt <16 x float> %a, zeroinitializer + %1 = sitofp <16 x i1> %cmpres to <16 x float> + ret <16 x float> %1 +} |

