diff options
-rw-r--r-- | test/CodeGen/Generic/fneg-fabs.ll | 26 | ||||
-rw-r--r-- | test/CodeGen/X86/fabs.ll | 10 |
2 files changed, 36 insertions, 0 deletions
diff --git a/test/CodeGen/Generic/fneg-fabs.ll b/test/CodeGen/Generic/fneg-fabs.ll new file mode 100644 index 0000000000..a533fe5599 --- /dev/null +++ b/test/CodeGen/Generic/fneg-fabs.ll @@ -0,0 +1,26 @@ +; RUN: llvm-as < %s | llc + +double %fneg(double %X) { + %Y = sub double -0.0, %X + ret double %Y +} + +float %fnegf(float %X) { + %Y = sub float -0.0, %X + ret float %Y +} + +declare double %fabs(double) +declare float %fabsf(float) + + +double %fabstest(double %X) { + %Y = call double %fabs(double %X) + ret double %Y +} + +float %fabsftest(float %X) { + %Y = call float %fabsf(float %X) + ret float %Y +} + diff --git a/test/CodeGen/X86/fabs.ll b/test/CodeGen/X86/fabs.ll new file mode 100644 index 0000000000..4eca716214 --- /dev/null +++ b/test/CodeGen/X86/fabs.ll @@ -0,0 +1,10 @@ +; Make sure this testcase codegens to the fabs instruction, not a call to fabsf +; RUN: llvm-as < %s | llc -disable-pattern-isel=0 | grep 'fabs$' + +declare float %fabsf(float) + +float %fabsftest(float %X) { + %Y = call float %fabsf(float %X) + ret float %Y +} + |