Only have codegen turn fdiv by a constant into fmul by the reciprocal
[oota-llvm.git] / test / CodeGen / X86 / fdiv.ll
1 ; RUN: llc < %s -march=x86-64 -enable-unsafe-fp-math | FileCheck %s
2
3 define double @exact(double %x) {
4 ; Exact division by a constant converted to multiplication.
5 ; CHECK: @exact
6 ; CHECK: mulsd
7   %div = fdiv double %x, 2.0
8   ret double %div
9 }
10
11 define double @inexact(double %x) {
12 ; Inexact division by a constant converted to multiplication.
13 ; CHECK: @inexact
14 ; CHECK: mulsd
15   %div = fdiv double %x, 0x41DFFFFFFFC00000 
16   ret double %div
17 }
18
19 define double @funky(double %x) {
20 ; No conversion to multiplication if too funky.
21 ; CHECK: @funky
22 ; CHECK: divsd
23   %div = fdiv double %x, 0.0
24   ret double %div
25 }