diff options
author | Sanjay Patel <spatel@rotateright.com> | 2018-02-27 20:17:18 +0000 |
---|---|---|
committer | Sanjay Patel <spatel@rotateright.com> | 2018-02-27 20:17:18 +0000 |
commit | bf28a8fc01fd09733da540176bd824ca9da6fa78 (patch) | |
tree | 69c55d7832d38bd35fc4cb40dc92e7b84cc0f894 | |
parent | 8cd7961a0af7914345ba9ab8583e7fe7b7367b47 (diff) | |
download | bcm5719-llvm-bf28a8fc01fd09733da540176bd824ca9da6fa78.tar.gz bcm5719-llvm-bf28a8fc01fd09733da540176bd824ca9da6fa78.zip |
[InstSimplify] add tests for FP with undef operand; NFC
Are any of these correct?
llvm-svn: 326241
-rw-r--r-- | llvm/test/Transforms/InstSimplify/fdiv.ll | 18 | ||||
-rw-r--r-- | llvm/test/Transforms/InstSimplify/fp-undef.ll | 89 |
2 files changed, 89 insertions, 18 deletions
diff --git a/llvm/test/Transforms/InstSimplify/fdiv.ll b/llvm/test/Transforms/InstSimplify/fdiv.ll index cc883cbbaf1..b245c2e4359 100644 --- a/llvm/test/Transforms/InstSimplify/fdiv.ll +++ b/llvm/test/Transforms/InstSimplify/fdiv.ll @@ -17,24 +17,6 @@ define float @frem_constant_fold() { ret float %f } -define double @fdiv_of_undef(double %X) { -; CHECK-LABEL: @fdiv_of_undef( -; CHECK-NEXT: ret double undef -; -; undef / X -> undef - %r = fdiv double undef, %X - ret double %r -} - -define double @fdiv_by_undef(double %X) { -; CHECK-LABEL: @fdiv_by_undef( -; CHECK-NEXT: ret double undef -; -; X / undef -> undef - %r = fdiv double %X, undef - ret double %r -} - define double @fmul_fdiv_common_operand(double %x, double %y) { ; CHECK-LABEL: @fmul_fdiv_common_operand( ; CHECK-NEXT: ret double %x diff --git a/llvm/test/Transforms/InstSimplify/fp-undef.ll b/llvm/test/Transforms/InstSimplify/fp-undef.ll new file mode 100644 index 00000000000..79331e4a268 --- /dev/null +++ b/llvm/test/Transforms/InstSimplify/fp-undef.ll @@ -0,0 +1,89 @@ +; NOTE: Assertions have been autogenerated by utils/update_test_checks.py +; RUN: opt < %s -instsimplify -S | FileCheck %s + +define float @fadd_undef_op0(float %x) { +; CHECK-LABEL: @fadd_undef_op0( +; CHECK-NEXT: [[R:%.*]] = fadd float undef, [[X:%.*]] +; CHECK-NEXT: ret float [[R]] +; + %r = fadd float undef, %x + ret float %r +} + +define float @fadd_undef_op1(float %x) { +; CHECK-LABEL: @fadd_undef_op1( +; CHECK-NEXT: [[R:%.*]] = fadd float [[X:%.*]], undef +; CHECK-NEXT: ret float [[R]] +; + %r = fadd float %x, undef + ret float %r +} + +define float @fsub_undef_op0(float %x) { +; CHECK-LABEL: @fsub_undef_op0( +; CHECK-NEXT: [[R:%.*]] = fsub float undef, [[X:%.*]] +; CHECK-NEXT: ret float [[R]] +; + %r = fsub float undef, %x + ret float %r +} + +define float @fsub_undef_op1(float %x) { +; CHECK-LABEL: @fsub_undef_op1( +; CHECK-NEXT: [[R:%.*]] = fsub float [[X:%.*]], undef +; CHECK-NEXT: ret float [[R]] +; + %r = fsub float %x, undef + ret float %r +} + +define float @fmul_undef_op0(float %x) { +; CHECK-LABEL: @fmul_undef_op0( +; CHECK-NEXT: [[R:%.*]] = fmul float undef, [[X:%.*]] +; CHECK-NEXT: ret float [[R]] +; + %r = fmul float undef, %x + ret float %r +} + +define float @fmul_undef_op1(float %x) { +; CHECK-LABEL: @fmul_undef_op1( +; CHECK-NEXT: [[R:%.*]] = fmul float [[X:%.*]], undef +; CHECK-NEXT: ret float [[R]] +; + %r = fmul float %x, undef + ret float %r +} + +define float @fdiv_undef_op0(float %x) { +; CHECK-LABEL: @fdiv_undef_op0( +; CHECK-NEXT: ret float undef +; + %r = fdiv float undef, %x + ret float %r +} + +define float @fdiv_undef_op1(float %x) { +; CHECK-LABEL: @fdiv_undef_op1( +; CHECK-NEXT: ret float undef +; + %r = fdiv float %x, undef + ret float %r +} + +define float @frem_undef_op0(float %x) { +; CHECK-LABEL: @frem_undef_op0( +; CHECK-NEXT: ret float undef +; + %r = frem float undef, %x + ret float %r +} + +define float @frem_undef_op1(float %x) { +; CHECK-LABEL: @frem_undef_op1( +; CHECK-NEXT: ret float undef +; + %r = frem float %x, undef + ret float %r +} + |