add a missing regression test for a DAGCombiner FDIV optimization
authorSanjay Patel <spatel@rotateright.com>
Fri, 7 Aug 2015 23:19:41 +0000 (23:19 +0000)
committerSanjay Patel <spatel@rotateright.com>
Fri, 7 Aug 2015 23:19:41 +0000 (23:19 +0000)
There's no test for this transform in any backend. Discovered
while debugging fast-math-flag propagation in the DAG (r244053).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@244373 91177308-0d34-0410-b5e6-96231b3b80d8

test/CodeGen/X86/fdiv.ll

index 1451bc4d7ffc93d219994a8a6b38765dee316df2..b995d774c8b100dc57df9be106d4cacdc95f3c29 100644 (file)
@@ -51,3 +51,18 @@ define double @denormal2(double %x) {
   ret double %div
 }
 
+; Deleting the negates does not require unsafe-fp-math.
+
+define float @double_negative(float %x, float %y) #0 {
+; CHECK-LABEL: double_negative:
+; CHECK:       # BB#0:
+; CHECK-NEXT:    divss %xmm1, %xmm0
+; CHECK-NEXT:    retq
+  %neg1 = fsub float -0.0, %x
+  %neg2 = fsub float -0.0, %y
+  %div = fdiv float %neg1, %neg2
+  ret float %div
+}
+
+attributes #0 = { "unsafe-fp-math"="false" }
+