summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/SCCP/apfloat-basictest.ll
diff options
context:
space:
mode:
authorCameron McInally <cameron.mcinally@nyu.edu>2019-06-03 21:53:56 +0000
committerCameron McInally <cameron.mcinally@nyu.edu>2019-06-03 21:53:56 +0000
commit89f9af5487e3287c1638e53d0b5b057154eb1b32 (patch)
tree23f93e5862c7836b491564a787d5bf19f86c7509 /llvm/test/Transforms/SCCP/apfloat-basictest.ll
parent6ff978ee05469f0f976bf003e601f879db754ed8 (diff)
downloadbcm5719-llvm-89f9af5487e3287c1638e53d0b5b057154eb1b32.tar.gz
bcm5719-llvm-89f9af5487e3287c1638e53d0b5b057154eb1b32.zip
[SCCP] Add UnaryOperator visitor to SCCP for unary FNeg
Differential Revision: https://reviews.llvm.org/D62819 llvm-svn: 362449
Diffstat (limited to 'llvm/test/Transforms/SCCP/apfloat-basictest.ll')
-rw-r--r--llvm/test/Transforms/SCCP/apfloat-basictest.ll33
1 files changed, 33 insertions, 0 deletions
diff --git a/llvm/test/Transforms/SCCP/apfloat-basictest.ll b/llvm/test/Transforms/SCCP/apfloat-basictest.ll
new file mode 100644
index 00000000000..2ef09668cd4
--- /dev/null
+++ b/llvm/test/Transforms/SCCP/apfloat-basictest.ll
@@ -0,0 +1,33 @@
+; This is a basic sanity check for constant propagation. The fneg instruction
+; should be eliminated.
+
+; RUN: opt < %s -sccp -S | FileCheck %s
+
+define double @test(i1 %B) {
+ br i1 %B, label %BB1, label %BB2
+BB1:
+ %Val = fneg double 42.0
+ br label %BB3
+BB2:
+ br label %BB3
+BB3:
+ %Ret = phi double [%Val, %BB1], [1.0, %BB2]
+ ret double %Ret
+; CHECK-LABEL: @test(
+; CHECK: [[PHI:%.*]] = phi double [ -4.200000e+01, %BB1 ], [ 1.000000e+00, %BB2 ]
+}
+
+define double @test1(i1 %B) {
+ br i1 %B, label %BB1, label %BB2
+BB1:
+ %Div = fdiv double 1.0, 1.0
+ %Val = fneg double %Div
+ br label %BB3
+BB2:
+ br label %BB3
+BB3:
+ %Ret = phi double [%Val, %BB1], [1.0, %BB2]
+ ret double %Ret
+; CHECK-LABEL: @test1(
+; CHECK: [[PHI:%.*]] = phi double [ -1.000000e+00, %BB1 ], [ 1.000000e+00, %BB2 ]
+}
OpenPOWER on IntegriCloud