X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=blobdiff_plain;f=test%2FCodeGen%2FX86%2Frecip-fastmath.ll;h=fcd077092dab36d80a58d9dadca0020965b59578;hp=dd5563c965fb86eef98e33c5b3c89e87ab50fb81;hb=58bf2827d3eeabcfabb27c6d31d5d9593bcb8a90;hpb=e7c966f0673009b82e87d3e9c50e1216efe721bb diff --git a/test/CodeGen/X86/recip-fastmath.ll b/test/CodeGen/X86/recip-fastmath.ll index dd5563c965f..fcd077092da 100644 --- a/test/CodeGen/X86/recip-fastmath.ll +++ b/test/CodeGen/X86/recip-fastmath.ll @@ -1,5 +1,6 @@ -; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mcpu=core2 | FileCheck %s -; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mcpu=btver2 | FileCheck %s --check-prefix=BTVER2 +; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=sse2 | FileCheck %s +; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=avx,use-recip-est | FileCheck %s --check-prefix=RECIP +; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=avx,use-recip-est -x86-recip-refinement-steps=2 | FileCheck %s --check-prefix=REFINE ; If the target's divss/divps instructions are substantially ; slower than rcpss/rcpps with a Newton-Raphson refinement, @@ -19,13 +20,25 @@ define float @reciprocal_estimate(float %x) #0 { ; CHECK-NEXT: movaps ; CHECK-NEXT: retq -; BTVER2-LABEL: reciprocal_estimate: -; BTVER2: vrcpss -; BTVER2-NEXT: vmulss -; BTVER2-NEXT: vsubss -; BTVER2-NEXT: vmulss -; BTVER2-NEXT: vaddss -; BTVER2-NEXT: retq +; RECIP-LABEL: reciprocal_estimate: +; RECIP: vrcpss +; RECIP: vmulss +; RECIP: vsubss +; RECIP: vmulss +; RECIP: vaddss +; RECIP-NEXT: retq + +; REFINE-LABEL: reciprocal_estimate: +; REFINE: vrcpss +; REFINE: vmulss +; REFINE: vsubss +; REFINE: vmulss +; REFINE: vaddss +; REFINE: vmulss +; REFINE: vsubss +; REFINE: vmulss +; REFINE: vaddss +; REFINE-NEXT: retq } define <4 x float> @reciprocal_estimate_v4f32(<4 x float> %x) #0 { @@ -38,13 +51,25 @@ define <4 x float> @reciprocal_estimate_v4f32(<4 x float> %x) #0 { ; CHECK-NEXT: movaps ; CHECK-NEXT: retq -; BTVER2-LABEL: reciprocal_estimate_v4f32: -; BTVER2: vrcpps -; BTVER2-NEXT: vmulps -; BTVER2-NEXT: vsubps -; BTVER2-NEXT: vmulps -; BTVER2-NEXT: vaddps -; BTVER2-NEXT: retq +; RECIP-LABEL: reciprocal_estimate_v4f32: +; RECIP: vrcpps +; RECIP: vmulps +; RECIP: vsubps +; RECIP: vmulps +; RECIP: vaddps +; RECIP-NEXT: retq + +; REFINE-LABEL: reciprocal_estimate_v4f32: +; REFINE: vrcpps +; REFINE: vmulps +; REFINE: vsubps +; REFINE: vmulps +; REFINE: vaddps +; REFINE: vmulps +; REFINE: vsubps +; REFINE: vmulps +; REFINE: vaddps +; REFINE-NEXT: retq } define <8 x float> @reciprocal_estimate_v8f32(<8 x float> %x) #0 { @@ -60,13 +85,25 @@ define <8 x float> @reciprocal_estimate_v8f32(<8 x float> %x) #0 { ; CHECK-NEXT: movaps ; CHECK-NEXT: retq -; BTVER2-LABEL: reciprocal_estimate_v8f32: -; BTVER2: vrcpps -; BTVER2-NEXT: vmulps -; BTVER2-NEXT: vsubps -; BTVER2-NEXT: vmulps -; BTVER2-NEXT: vaddps -; BTVER2-NEXT: retq +; RECIP-LABEL: reciprocal_estimate_v8f32: +; RECIP: vrcpps +; RECIP: vmulps +; RECIP: vsubps +; RECIP: vmulps +; RECIP: vaddps +; RECIP-NEXT: retq + +; REFINE-LABEL: reciprocal_estimate_v8f32: +; REFINE: vrcpps +; REFINE: vmulps +; REFINE: vsubps +; REFINE: vmulps +; REFINE: vaddps +; REFINE: vmulps +; REFINE: vsubps +; REFINE: vmulps +; REFINE: vaddps +; REFINE-NEXT: retq } attributes #0 = { "unsafe-fp-math"="true" }