summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSanjay Patel <spatel@rotateright.com>2018-02-27 20:17:18 +0000
committerSanjay Patel <spatel@rotateright.com>2018-02-27 20:17:18 +0000
commitbf28a8fc01fd09733da540176bd824ca9da6fa78 (patch)
tree69c55d7832d38bd35fc4cb40dc92e7b84cc0f894
parent8cd7961a0af7914345ba9ab8583e7fe7b7367b47 (diff)
downloadbcm5719-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.ll18
-rw-r--r--llvm/test/Transforms/InstSimplify/fp-undef.ll89
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
+}
+
OpenPOWER on IntegriCloud