summaryrefslogtreecommitdiffstats
path: root/test/Transforms/EarlyCSE
diff options
context:
space:
mode:
Diffstat (limited to 'test/Transforms/EarlyCSE')
-rw-r--r--test/Transforms/EarlyCSE/commute.ll4
-rw-r--r--test/Transforms/EarlyCSE/floatingpoint.ll14
2 files changed, 16 insertions, 2 deletions
diff --git a/test/Transforms/EarlyCSE/commute.ll b/test/Transforms/EarlyCSE/commute.ll
index f84a7dd..8cf04d1 100644
--- a/test/Transforms/EarlyCSE/commute.ll
+++ b/test/Transforms/EarlyCSE/commute.ll
@@ -19,9 +19,9 @@ define void @test2(float %A, float %B, i1* %PA, i1* %PB) {
; CHECK-NEXT: store
; CHECK-NEXT: store
; CHECK-NEXT: ret
- %C = fcmp eq float %A, %B
+ %C = fcmp oeq float %A, %B
store i1 %C, i1* %PA
- %D = fcmp eq float %B, %A
+ %D = fcmp oeq float %B, %A
store i1 %D, i1* %PB
ret void
}
diff --git a/test/Transforms/EarlyCSE/floatingpoint.ll b/test/Transforms/EarlyCSE/floatingpoint.ll
new file mode 100644
index 0000000..2abecd7
--- /dev/null
+++ b/test/Transforms/EarlyCSE/floatingpoint.ll
@@ -0,0 +1,14 @@
+; RUN: opt < %s -S -early-cse | FileCheck %s
+
+; Ensure we don't simplify away additions vectors of +0.0's (same as scalars).
+define <4 x float> @fV( <4 x float> %a) {
+ ; CHECK: %b = fadd <4 x float> %a, zeroinitializer
+ %b = fadd <4 x float> %a, <float 0.0,float 0.0,float 0.0,float 0.0>
+ ret <4 x float> %b
+}
+
+define <4 x float> @fW( <4 x float> %a) {
+ ; CHECK: ret <4 x float> %a
+ %b = fadd <4 x float> %a, <float -0.0,float -0.0,float -0.0,float -0.0>
+ ret <4 x float> %b
+}
OpenPOWER on IntegriCloud