From a3ea594334c37f8b6edd7188ee1979f3781d556e Mon Sep 17 00:00:00 2001 From: Simon Pilgrim Date: Sat, 7 May 2016 16:34:16 +0000 Subject: [PATCH] [CostModel][X86] Split BSWAP/BITREVERSE cost tests from CTPOP/CTLZ/CTTZ 'bit count' cost tests git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268859 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/Analysis/CostModel/X86/bitreverse.ll | 106 +++++++++++++ test/Analysis/CostModel/X86/bswap.ll | 82 ++++++++++ test/Analysis/CostModel/X86/ctbits-cost.ll | 176 --------------------- 3 files changed, 188 insertions(+), 176 deletions(-) create mode 100644 test/Analysis/CostModel/X86/bitreverse.ll create mode 100644 test/Analysis/CostModel/X86/bswap.ll diff --git a/test/Analysis/CostModel/X86/bitreverse.ll b/test/Analysis/CostModel/X86/bitreverse.ll new file mode 100644 index 00000000000..cd5c22b9096 --- /dev/null +++ b/test/Analysis/CostModel/X86/bitreverse.ll @@ -0,0 +1,106 @@ +; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mcpu=pentium4 -cost-model -analyze | FileCheck %s -check-prefix=CHECK -check-prefix=SSE2 +; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mcpu=corei7 -cost-model -analyze | FileCheck %s -check-prefix=CHECK -check-prefix=SSE42 +; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mcpu=corei7-avx -cost-model -analyze | FileCheck %s -check-prefix=CHECK -check-prefix=AVX +; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mcpu=core-avx2 -cost-model -analyze | FileCheck %s -check-prefix=CHECK -check-prefix=AVX2 +; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mcpu=bdver2 -cost-model -analyze | FileCheck %s -check-prefix=CHECK -check-prefix=XOP -check-prefix=XOPAVX +; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mcpu=bdver4 -cost-model -analyze | FileCheck %s -check-prefix=CHECK -check-prefix=XOP -check-prefix=XOPAVX2 + +; Verify the cost of vector bitreverse instructions. + +declare <2 x i64> @llvm.bitreverse.v2i64(<2 x i64>) +declare <4 x i32> @llvm.bitreverse.v4i32(<4 x i32>) +declare <8 x i16> @llvm.bitreverse.v8i16(<8 x i16>) +declare <16 x i8> @llvm.bitreverse.v16i8(<16 x i8>) + +declare <4 x i64> @llvm.bitreverse.v4i64(<4 x i64>) +declare <8 x i32> @llvm.bitreverse.v8i32(<8 x i32>) +declare <16 x i16> @llvm.bitreverse.v16i16(<16 x i16>) +declare <32 x i8> @llvm.bitreverse.v32i8(<32 x i8>) + +define <2 x i64> @var_bitreverse_v2i64(<2 x i64> %a) { +; CHECK: 'Cost Model Analysis' for function 'var_bitreverse_v2i64': +; SSE2: Found an estimated cost of 6 for instruction: %bitreverse +; SSE42: Found an estimated cost of 6 for instruction: %bitreverse +; AVX: Found an estimated cost of 6 for instruction: %bitreverse +; AVX2: Found an estimated cost of 6 for instruction: %bitreverse +; XOP: Found an estimated cost of 6 for instruction: %bitreverse + %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a) + ret <2 x i64> %bitreverse +} + +define <4 x i64> @var_bitreverse_v4i64(<4 x i64> %a) { +; CHECK: 'Cost Model Analysis' for function 'var_bitreverse_v4i64': +; SSE2: Found an estimated cost of 12 for instruction: %bitreverse +; SSE42: Found an estimated cost of 12 for instruction: %bitreverse +; AVX: Found an estimated cost of 12 for instruction: %bitreverse +; AVX2: Found an estimated cost of 12 for instruction: %bitreverse +; XOP: Found an estimated cost of 12 for instruction: %bitreverse + %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a) + ret <4 x i64> %bitreverse +} + +define <4 x i32> @var_bitreverse_v4i32(<4 x i32> %a) { +; CHECK: 'Cost Model Analysis' for function 'var_bitreverse_v4i32': +; SSE2: Found an estimated cost of 12 for instruction: %bitreverse +; SSE42: Found an estimated cost of 12 for instruction: %bitreverse +; AVX: Found an estimated cost of 12 for instruction: %bitreverse +; AVX2: Found an estimated cost of 12 for instruction: %bitreverse +; XOP: Found an estimated cost of 12 for instruction: %bitreverse + %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a) + ret <4 x i32> %bitreverse +} + +define <8 x i32> @var_bitreverse_v8i32(<8 x i32> %a) { +; CHECK: 'Cost Model Analysis' for function 'var_bitreverse_v8i32': +; SSE2: Found an estimated cost of 24 for instruction: %bitreverse +; SSE42: Found an estimated cost of 24 for instruction: %bitreverse +; AVX: Found an estimated cost of 24 for instruction: %bitreverse +; AVX2: Found an estimated cost of 24 for instruction: %bitreverse +; XOP: Found an estimated cost of 24 for instruction: %bitreverse + %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a) + ret <8 x i32> %bitreverse +} + +define <8 x i16> @var_bitreverse_v8i16(<8 x i16> %a) { +; CHECK: 'Cost Model Analysis' for function 'var_bitreverse_v8i16': +; SSE2: Found an estimated cost of 24 for instruction: %bitreverse +; SSE42: Found an estimated cost of 24 for instruction: %bitreverse +; AVX: Found an estimated cost of 24 for instruction: %bitreverse +; AVX2: Found an estimated cost of 24 for instruction: %bitreverse +; XOP: Found an estimated cost of 24 for instruction: %bitreverse + %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a) + ret <8 x i16> %bitreverse +} + +define <16 x i16> @var_bitreverse_v16i16(<16 x i16> %a) { +; CHECK: 'Cost Model Analysis' for function 'var_bitreverse_v16i16': +; SSE2: Found an estimated cost of 48 for instruction: %bitreverse +; SSE42: Found an estimated cost of 48 for instruction: %bitreverse +; AVX: Found an estimated cost of 48 for instruction: %bitreverse +; AVX2: Found an estimated cost of 48 for instruction: %bitreverse +; XOP: Found an estimated cost of 48 for instruction: %bitreverse + %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a) + ret <16 x i16> %bitreverse +} + +define <16 x i8> @var_bitreverse_v16i8(<16 x i8> %a) { +; CHECK: 'Cost Model Analysis' for function 'var_bitreverse_v16i8': +; SSE2: Found an estimated cost of 48 for instruction: %bitreverse +; SSE42: Found an estimated cost of 48 for instruction: %bitreverse +; AVX: Found an estimated cost of 48 for instruction: %bitreverse +; AVX2: Found an estimated cost of 48 for instruction: %bitreverse +; XOP: Found an estimated cost of 48 for instruction: %bitreverse + %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a) + ret <16 x i8> %bitreverse +} + +define <32 x i8> @var_bitreverse_v32i8(<32 x i8> %a) { +; CHECK: 'Cost Model Analysis' for function 'var_bitreverse_v32i8': +; SSE2: Found an estimated cost of 96 for instruction: %bitreverse +; SSE42: Found an estimated cost of 96 for instruction: %bitreverse +; AVX: Found an estimated cost of 96 for instruction: %bitreverse +; AVX2: Found an estimated cost of 96 for instruction: %bitreverse +; XOP: Found an estimated cost of 96 for instruction: %bitreverse + %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a) + ret <32 x i8> %bitreverse +} diff --git a/test/Analysis/CostModel/X86/bswap.ll b/test/Analysis/CostModel/X86/bswap.ll new file mode 100644 index 00000000000..8f4a52f90e4 --- /dev/null +++ b/test/Analysis/CostModel/X86/bswap.ll @@ -0,0 +1,82 @@ +; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mcpu=pentium4 -cost-model -analyze | FileCheck %s -check-prefix=CHECK -check-prefix=SSE2 +; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mcpu=corei7 -cost-model -analyze | FileCheck %s -check-prefix=CHECK -check-prefix=SSE42 +; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mcpu=corei7-avx -cost-model -analyze | FileCheck %s -check-prefix=CHECK -check-prefix=AVX +; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mcpu=core-avx2 -cost-model -analyze | FileCheck %s -check-prefix=CHECK -check-prefix=AVX2 +; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mcpu=bdver2 -cost-model -analyze | FileCheck %s -check-prefix=CHECK -check-prefix=XOP -check-prefix=XOPAVX +; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mcpu=bdver4 -cost-model -analyze | FileCheck %s -check-prefix=CHECK -check-prefix=XOP -check-prefix=XOPAVX2 + +; Verify the cost of vector bswap instructions. + +declare <2 x i64> @llvm.bswap.v2i64(<2 x i64>) +declare <4 x i32> @llvm.bswap.v4i32(<4 x i32>) +declare <8 x i16> @llvm.bswap.v8i16(<8 x i16>) + +declare <4 x i64> @llvm.bswap.v4i64(<4 x i64>) +declare <8 x i32> @llvm.bswap.v8i32(<8 x i32>) +declare <16 x i16> @llvm.bswap.v16i16(<16 x i16>) + +define <2 x i64> @var_bswap_v2i64(<2 x i64> %a) { +; CHECK: 'Cost Model Analysis' for function 'var_bswap_v2i64': +; SSE2: Found an estimated cost of 6 for instruction: %bswap +; SSE42: Found an estimated cost of 6 for instruction: %bswap +; AVX: Found an estimated cost of 6 for instruction: %bswap +; AVX2: Found an estimated cost of 6 for instruction: %bswap +; XOP: Found an estimated cost of 6 for instruction: %bswap + %bswap = call <2 x i64> @llvm.bswap.v2i64(<2 x i64> %a) + ret <2 x i64> %bswap +} + +define <4 x i64> @var_bswap_v4i64(<4 x i64> %a) { +; CHECK: 'Cost Model Analysis' for function 'var_bswap_v4i64': +; SSE2: Found an estimated cost of 12 for instruction: %bswap +; SSE42: Found an estimated cost of 12 for instruction: %bswap +; AVX: Found an estimated cost of 12 for instruction: %bswap +; AVX2: Found an estimated cost of 12 for instruction: %bswap +; XOP: Found an estimated cost of 12 for instruction: %bswap + %bswap = call <4 x i64> @llvm.bswap.v4i64(<4 x i64> %a) + ret <4 x i64> %bswap +} + +define <4 x i32> @var_bswap_v4i32(<4 x i32> %a) { +; CHECK: 'Cost Model Analysis' for function 'var_bswap_v4i32': +; SSE2: Found an estimated cost of 12 for instruction: %bswap +; SSE42: Found an estimated cost of 12 for instruction: %bswap +; AVX: Found an estimated cost of 12 for instruction: %bswap +; AVX2: Found an estimated cost of 12 for instruction: %bswap +; XOP: Found an estimated cost of 12 for instruction: %bswap + %bswap = call <4 x i32> @llvm.bswap.v4i32(<4 x i32> %a) + ret <4 x i32> %bswap +} + +define <8 x i32> @var_bswap_v8i32(<8 x i32> %a) { +; CHECK: 'Cost Model Analysis' for function 'var_bswap_v8i32': +; SSE2: Found an estimated cost of 24 for instruction: %bswap +; SSE42: Found an estimated cost of 24 for instruction: %bswap +; AVX: Found an estimated cost of 24 for instruction: %bswap +; AVX2: Found an estimated cost of 24 for instruction: %bswap +; XOP: Found an estimated cost of 24 for instruction: %bswap + %bswap = call <8 x i32> @llvm.bswap.v8i32(<8 x i32> %a) + ret <8 x i32> %bswap +} + +define <8 x i16> @var_bswap_v8i16(<8 x i16> %a) { +; CHECK: 'Cost Model Analysis' for function 'var_bswap_v8i16': +; SSE2: Found an estimated cost of 24 for instruction: %bswap +; SSE42: Found an estimated cost of 24 for instruction: %bswap +; AVX: Found an estimated cost of 24 for instruction: %bswap +; AVX2: Found an estimated cost of 24 for instruction: %bswap +; XOP: Found an estimated cost of 24 for instruction: %bswap + %bswap = call <8 x i16> @llvm.bswap.v8i16(<8 x i16> %a) + ret <8 x i16> %bswap +} + +define <16 x i16> @var_bswap_v16i16(<16 x i16> %a) { +; CHECK: 'Cost Model Analysis' for function 'var_bswap_v16i16': +; SSE2: Found an estimated cost of 48 for instruction: %bswap +; SSE42: Found an estimated cost of 48 for instruction: %bswap +; AVX: Found an estimated cost of 48 for instruction: %bswap +; AVX2: Found an estimated cost of 48 for instruction: %bswap +; XOP: Found an estimated cost of 48 for instruction: %bswap + %bswap = call <16 x i16> @llvm.bswap.v16i16(<16 x i16> %a) + ret <16 x i16> %bswap +} \ No newline at end of file diff --git a/test/Analysis/CostModel/X86/ctbits-cost.ll b/test/Analysis/CostModel/X86/ctbits-cost.ll index 67ff82e7eee..0877c1f32bf 100644 --- a/test/Analysis/CostModel/X86/ctbits-cost.ll +++ b/test/Analysis/CostModel/X86/ctbits-cost.ll @@ -480,179 +480,3 @@ define <32 x i8> @var_cttz_v32i8u(<32 x i8> %a) { %cttz = call <32 x i8> @llvm.cttz.v32i8(<32 x i8> %a, i1 1) ret <32 x i8> %cttz } - -; Verify the cost of vector bitreverse instructions. - -declare <2 x i64> @llvm.bitreverse.v2i64(<2 x i64>) -declare <4 x i32> @llvm.bitreverse.v4i32(<4 x i32>) -declare <8 x i16> @llvm.bitreverse.v8i16(<8 x i16>) -declare <16 x i8> @llvm.bitreverse.v16i8(<16 x i8>) - -declare <4 x i64> @llvm.bitreverse.v4i64(<4 x i64>) -declare <8 x i32> @llvm.bitreverse.v8i32(<8 x i32>) -declare <16 x i16> @llvm.bitreverse.v16i16(<16 x i16>) -declare <32 x i8> @llvm.bitreverse.v32i8(<32 x i8>) - -define <2 x i64> @var_bitreverse_v2i64(<2 x i64> %a) { -; CHECK: 'Cost Model Analysis' for function 'var_bitreverse_v2i64': -; SSE2: Found an estimated cost of 6 for instruction: %bitreverse -; SSE42: Found an estimated cost of 6 for instruction: %bitreverse -; AVX: Found an estimated cost of 6 for instruction: %bitreverse -; AVX2: Found an estimated cost of 6 for instruction: %bitreverse -; XOP: Found an estimated cost of 6 for instruction: %bitreverse - %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a) - ret <2 x i64> %bitreverse -} - -define <4 x i64> @var_bitreverse_v4i64(<4 x i64> %a) { -; CHECK: 'Cost Model Analysis' for function 'var_bitreverse_v4i64': -; SSE2: Found an estimated cost of 12 for instruction: %bitreverse -; SSE42: Found an estimated cost of 12 for instruction: %bitreverse -; AVX: Found an estimated cost of 12 for instruction: %bitreverse -; AVX2: Found an estimated cost of 12 for instruction: %bitreverse -; XOP: Found an estimated cost of 12 for instruction: %bitreverse - %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a) - ret <4 x i64> %bitreverse -} - -define <4 x i32> @var_bitreverse_v4i32(<4 x i32> %a) { -; CHECK: 'Cost Model Analysis' for function 'var_bitreverse_v4i32': -; SSE2: Found an estimated cost of 12 for instruction: %bitreverse -; SSE42: Found an estimated cost of 12 for instruction: %bitreverse -; AVX: Found an estimated cost of 12 for instruction: %bitreverse -; AVX2: Found an estimated cost of 12 for instruction: %bitreverse -; XOP: Found an estimated cost of 12 for instruction: %bitreverse - %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a) - ret <4 x i32> %bitreverse -} - -define <8 x i32> @var_bitreverse_v8i32(<8 x i32> %a) { -; CHECK: 'Cost Model Analysis' for function 'var_bitreverse_v8i32': -; SSE2: Found an estimated cost of 24 for instruction: %bitreverse -; SSE42: Found an estimated cost of 24 for instruction: %bitreverse -; AVX: Found an estimated cost of 24 for instruction: %bitreverse -; AVX2: Found an estimated cost of 24 for instruction: %bitreverse -; XOP: Found an estimated cost of 24 for instruction: %bitreverse - %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a) - ret <8 x i32> %bitreverse -} - -define <8 x i16> @var_bitreverse_v8i16(<8 x i16> %a) { -; CHECK: 'Cost Model Analysis' for function 'var_bitreverse_v8i16': -; SSE2: Found an estimated cost of 24 for instruction: %bitreverse -; SSE42: Found an estimated cost of 24 for instruction: %bitreverse -; AVX: Found an estimated cost of 24 for instruction: %bitreverse -; AVX2: Found an estimated cost of 24 for instruction: %bitreverse -; XOP: Found an estimated cost of 24 for instruction: %bitreverse - %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a) - ret <8 x i16> %bitreverse -} - -define <16 x i16> @var_bitreverse_v16i16(<16 x i16> %a) { -; CHECK: 'Cost Model Analysis' for function 'var_bitreverse_v16i16': -; SSE2: Found an estimated cost of 48 for instruction: %bitreverse -; SSE42: Found an estimated cost of 48 for instruction: %bitreverse -; AVX: Found an estimated cost of 48 for instruction: %bitreverse -; AVX2: Found an estimated cost of 48 for instruction: %bitreverse -; XOP: Found an estimated cost of 48 for instruction: %bitreverse - %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a) - ret <16 x i16> %bitreverse -} - -define <16 x i8> @var_bitreverse_v16i8(<16 x i8> %a) { -; CHECK: 'Cost Model Analysis' for function 'var_bitreverse_v16i8': -; SSE2: Found an estimated cost of 48 for instruction: %bitreverse -; SSE42: Found an estimated cost of 48 for instruction: %bitreverse -; AVX: Found an estimated cost of 48 for instruction: %bitreverse -; AVX2: Found an estimated cost of 48 for instruction: %bitreverse -; XOP: Found an estimated cost of 48 for instruction: %bitreverse - %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a) - ret <16 x i8> %bitreverse -} - -define <32 x i8> @var_bitreverse_v32i8(<32 x i8> %a) { -; CHECK: 'Cost Model Analysis' for function 'var_bitreverse_v32i8': -; SSE2: Found an estimated cost of 96 for instruction: %bitreverse -; SSE42: Found an estimated cost of 96 for instruction: %bitreverse -; AVX: Found an estimated cost of 96 for instruction: %bitreverse -; AVX2: Found an estimated cost of 96 for instruction: %bitreverse -; XOP: Found an estimated cost of 96 for instruction: %bitreverse - %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a) - ret <32 x i8> %bitreverse -} - -; Verify the cost of vector bswap instructions. - -declare <2 x i64> @llvm.bswap.v2i64(<2 x i64>) -declare <4 x i32> @llvm.bswap.v4i32(<4 x i32>) -declare <8 x i16> @llvm.bswap.v8i16(<8 x i16>) - -declare <4 x i64> @llvm.bswap.v4i64(<4 x i64>) -declare <8 x i32> @llvm.bswap.v8i32(<8 x i32>) -declare <16 x i16> @llvm.bswap.v16i16(<16 x i16>) - -define <2 x i64> @var_bswap_v2i64(<2 x i64> %a) { -; CHECK: 'Cost Model Analysis' for function 'var_bswap_v2i64': -; SSE2: Found an estimated cost of 6 for instruction: %bswap -; SSE42: Found an estimated cost of 6 for instruction: %bswap -; AVX: Found an estimated cost of 6 for instruction: %bswap -; AVX2: Found an estimated cost of 6 for instruction: %bswap -; XOP: Found an estimated cost of 6 for instruction: %bswap - %bswap = call <2 x i64> @llvm.bswap.v2i64(<2 x i64> %a) - ret <2 x i64> %bswap -} - -define <4 x i64> @var_bswap_v4i64(<4 x i64> %a) { -; CHECK: 'Cost Model Analysis' for function 'var_bswap_v4i64': -; SSE2: Found an estimated cost of 12 for instruction: %bswap -; SSE42: Found an estimated cost of 12 for instruction: %bswap -; AVX: Found an estimated cost of 12 for instruction: %bswap -; AVX2: Found an estimated cost of 12 for instruction: %bswap -; XOP: Found an estimated cost of 12 for instruction: %bswap - %bswap = call <4 x i64> @llvm.bswap.v4i64(<4 x i64> %a) - ret <4 x i64> %bswap -} - -define <4 x i32> @var_bswap_v4i32(<4 x i32> %a) { -; CHECK: 'Cost Model Analysis' for function 'var_bswap_v4i32': -; SSE2: Found an estimated cost of 12 for instruction: %bswap -; SSE42: Found an estimated cost of 12 for instruction: %bswap -; AVX: Found an estimated cost of 12 for instruction: %bswap -; AVX2: Found an estimated cost of 12 for instruction: %bswap -; XOP: Found an estimated cost of 12 for instruction: %bswap - %bswap = call <4 x i32> @llvm.bswap.v4i32(<4 x i32> %a) - ret <4 x i32> %bswap -} - -define <8 x i32> @var_bswap_v8i32(<8 x i32> %a) { -; CHECK: 'Cost Model Analysis' for function 'var_bswap_v8i32': -; SSE2: Found an estimated cost of 24 for instruction: %bswap -; SSE42: Found an estimated cost of 24 for instruction: %bswap -; AVX: Found an estimated cost of 24 for instruction: %bswap -; AVX2: Found an estimated cost of 24 for instruction: %bswap -; XOP: Found an estimated cost of 24 for instruction: %bswap - %bswap = call <8 x i32> @llvm.bswap.v8i32(<8 x i32> %a) - ret <8 x i32> %bswap -} - -define <8 x i16> @var_bswap_v8i16(<8 x i16> %a) { -; CHECK: 'Cost Model Analysis' for function 'var_bswap_v8i16': -; SSE2: Found an estimated cost of 24 for instruction: %bswap -; SSE42: Found an estimated cost of 24 for instruction: %bswap -; AVX: Found an estimated cost of 24 for instruction: %bswap -; AVX2: Found an estimated cost of 24 for instruction: %bswap -; XOP: Found an estimated cost of 24 for instruction: %bswap - %bswap = call <8 x i16> @llvm.bswap.v8i16(<8 x i16> %a) - ret <8 x i16> %bswap -} - -define <16 x i16> @var_bswap_v16i16(<16 x i16> %a) { -; CHECK: 'Cost Model Analysis' for function 'var_bswap_v16i16': -; SSE2: Found an estimated cost of 48 for instruction: %bswap -; SSE42: Found an estimated cost of 48 for instruction: %bswap -; AVX: Found an estimated cost of 48 for instruction: %bswap -; AVX2: Found an estimated cost of 48 for instruction: %bswap -; XOP: Found an estimated cost of 48 for instruction: %bswap - %bswap = call <16 x i16> @llvm.bswap.v16i16(<16 x i16> %a) - ret <16 x i16> %bswap -} -- 2.50.1