diff options
Diffstat (limited to 'test/CodeGen/X86/fabs.ll')
-rw-r--r-- | test/CodeGen/X86/fabs.ll | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/test/CodeGen/X86/fabs.ll b/test/CodeGen/X86/fabs.ll new file mode 100644 index 0000000..dd94613 --- /dev/null +++ b/test/CodeGen/X86/fabs.ll @@ -0,0 +1,24 @@ +; Make sure this testcase codegens to the fabs instruction, not a call to fabsf +; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 -mattr=-sse2,-sse3 | \ +; RUN: grep fabs\$ | wc -l | grep 1 +; RUN: llvm-upgrade < %s | llvm-as | \ +; RUN: llc -march=x86 -mattr=-sse2,-sse3 -enable-unsafe-fp-math | \ +; RUN: grep fabs\$ | wc -l | grep 2 + +target endian = little +target pointersize = 32 + +declare float %fabsf(float) + +float %test1(float %X) { + %Y = call float %fabsf(float %X) + ret float %Y +} + +double %test2(double %X) { + %Y = setge double %X, -0.0 + %Z = sub double -0.0, %X + %Q = select bool %Y, double %X, double %Z + ret double %Q +} + |