diff options
author | Sanjay Patel <spatel@rotateright.com> | 2018-03-20 16:08:47 +0000 |
---|---|---|
committer | Sanjay Patel <spatel@rotateright.com> | 2018-03-20 16:08:47 +0000 |
commit | 5a9210e651803b27c3865b80f353ba1a2c3aa2a6 (patch) | |
tree | e57646fc139930a27c481ba159d03347111d4ddc | |
parent | 648ed2dedbf9ff5e245fd9763558f2492592e173 (diff) | |
download | llvm-5a9210e651803b27c3865b80f353ba1a2c3aa2a6.zip llvm-5a9210e651803b27c3865b80f353ba1a2c3aa2a6.tar.gz llvm-5a9210e651803b27c3865b80f353ba1a2c3aa2a6.tar.bz2 |
[AArch64] add fabs tests for PR36600; NFC
llvm-svn: 327995
-rw-r--r-- | llvm/test/CodeGen/AArch64/fabs.ll | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/AArch64/fabs.ll b/llvm/test/CodeGen/AArch64/fabs.ll new file mode 100644 index 0000000..0508fdd --- /dev/null +++ b/llvm/test/CodeGen/AArch64/fabs.ll @@ -0,0 +1,33 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py +; RUN: llc < %s -mtriple=aarch64-unknown-unknown | FileCheck %s + +; FIXME: +; PR36600: https://bugs.llvm.org/show_bug.cgi?id=36600 +; This is not fabs. If X = -0.0, it should return -0.0 not 0.0. + +define double @not_fabs(double %x) #0 { +; CHECK-LABEL: not_fabs: +; CHECK: // %bb.0: +; CHECK-NEXT: fabs d0, d0 +; CHECK-NEXT: ret + %cmp = fcmp nnan ole double %x, 0.0 + %sub = fsub nnan double -0.0, %x + %cond = select i1 %cmp, double %sub, double %x + ret double %cond +} + +; Try again with different type, predicate, and compare constant. + +define float @still_not_fabs(float %x) #0 { +; CHECK-LABEL: still_not_fabs: +; CHECK: // %bb.0: +; CHECK-NEXT: fabs s0, s0 +; CHECK-NEXT: ret + %cmp = fcmp nnan oge float %x, -0.0 + %sub = fsub nnan float -0.0, %x + %cond = select i1 %cmp, float %x, float %sub + ret float %cond +} + +attributes #0 = { "no-nans-fp-math"="true" } + |