Enable all Hexagon tests.
[oota-llvm.git] / test / CodeGen / X86 / fdiv.ll
index 553f14efa13efb5e28d86772f389417c919cd00d..0749682e2f681e3eb6eec817af24fccaafc866a4 100644 (file)
@@ -1,22 +1,17 @@
-; RUN: llc < %s -march=x86-64 | FileCheck %s
-; RUN: llc < %s -march=x86-64 -enable-unsafe-fp-math | FileCheck -check-prefix=UNSAFE %s
+; RUN: llc < %s -march=x86-64 -enable-unsafe-fp-math | FileCheck %s
 
 define double @exact(double %x) {
-; Exact division by a constant always converted to multiplication.
+; Exact division by a constant converted to multiplication.
 ; CHECK: @exact
 ; CHECK: mulsd
-; UNSAFE: @exact
-; UNSAFE: mulsd
   %div = fdiv double %x, 2.0
   ret double %div
 }
 
 define double @inexact(double %x) {
-; Inexact division by a constant converted to multiplication if unsafe-math.
+; Inexact division by a constant converted to multiplication.
 ; CHECK: @inexact
-; CHECK: divsd
-; UNSAFE: @inexact
-; UNSAFE: mulsd
+; CHECK: mulsd
   %div = fdiv double %x, 0x41DFFFFFFFC00000 
   ret double %div
 }
@@ -25,8 +20,22 @@ define double @funky(double %x) {
 ; No conversion to multiplication if too funky.
 ; CHECK: @funky
 ; CHECK: divsd
-; UNSAFE: @funky
-; UNSAFE: divsd
   %div = fdiv double %x, 0.0
   ret double %div
 }
+
+define double @denormal1(double %x) {
+; Don't generate multiplication by a denormal.
+; CHECK: @denormal1
+; CHECK: divsd
+  %div = fdiv double %x, 0x7FD0000000000001
+  ret double %div
+}
+
+define double @denormal2(double %x) {
+; Don't generate multiplication by a denormal.
+; CHECK: @denormal
+; CHECK: divsd
+  %div = fdiv double %x, 0x7FEFFFFFFFFFFFFF
+  ret double %div
+}