From 34eb2406b41854fc8df688fca7c0129f77d768f7 Mon Sep 17 00:00:00 2001 From: Arnold Schwaighofer Date: Tue, 25 Jun 2013 19:14:09 +0000 Subject: X86 cost model: Vectorizing integer division is a bad idea radar://14057959 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184872 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/Analysis/CostModel/X86/div.ll | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 test/Analysis/CostModel/X86/div.ll (limited to 'test/Analysis') diff --git a/test/Analysis/CostModel/X86/div.ll b/test/Analysis/CostModel/X86/div.ll new file mode 100644 index 0000000..c7d6517 --- /dev/null +++ b/test/Analysis/CostModel/X86/div.ll @@ -0,0 +1,32 @@ +; 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=core-avx2 -cost-model -analyze < %s | FileCheck --check-prefix=AVX2 %s + + +define void @div_sse() { + ; SSE2: div_sse + ; SSE2: cost of 320 {{.*}} sdiv + %a0 = sdiv <16 x i8> undef, undef + ; SSE2: cost of 160 {{.*}} sdiv + %a1 = sdiv <8 x i16> undef, undef + ; SSE2: cost of 80 {{.*}} sdiv + %a2 = sdiv <4 x i32> undef, undef + ; SSE2: cost of 40 {{.*}} sdiv + %a3 = sdiv <2 x i32> undef, undef + ret void +} +; SSE2: div_avx + +define void @div_avx() { + ; AVX2: div_avx + ; AVX2: cost of 640 {{.*}} sdiv + %a0 = sdiv <32 x i8> undef, undef + ; AVX2: cost of 320 {{.*}} sdiv + %a1 = sdiv <16 x i16> undef, undef + ; AVX2: cost of 160 {{.*}} sdiv + %a2 = sdiv <8 x i32> undef, undef + ; AVX2: cost of 80 {{.*}} sdiv + %a3 = sdiv <4 x i32> undef, undef + ret void +} + + -- cgit v1.1