Home | History | Annotate | Download | only in PowerPC
      1 ; RUN: llc < %s -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr8 -enable-unsafe-fp-math | FileCheck %s
      2 ; RUN: llc < %s -mtriple=powerpc64le-unknown-linux-gnu -mcpu=pwr8 -enable-unsafe-fp-math | FileCheck %s
      3 @a = global float 3.000000e+00, align 4
      4 @b = global float 4.000000e+00, align 4
      5 @c = global double 3.000000e+00, align 8
      6 @d = global double 4.000000e+00, align 8
      7 
      8 ; Function Attrs: nounwind
      9 define float @emit_xsresp() {
     10 entry:
     11   %0 = load float, float* @a, align 4
     12   %1 = load float, float* @b, align 4
     13   %div = fdiv fast float %0, %1
     14   ret float %div
     15 ; CHECK-LABEL: @emit_xsresp
     16 ; CHECK: xsresp {{[0-9]+}}
     17 }
     18 
     19 ; Function Attrs: nounwind
     20 define float @emit_xsrsqrtesp(float %f) {
     21 entry:
     22   %f.addr = alloca float, align 4
     23   store float %f, float* %f.addr, align 4
     24   %0 = load float, float* %f.addr, align 4
     25   %1 = load float, float* @b, align 4
     26   %2 = call float @llvm.sqrt.f32(float %1)
     27   %div = fdiv fast float %0, %2
     28   ret float %div
     29 ; CHECK-LABEL: @emit_xsrsqrtesp
     30 ; CHECK: xsrsqrtesp {{[0-9]+}}
     31 }
     32 
     33 ; Function Attrs: nounwind readnone
     34 declare float @llvm.sqrt.f32(float)
     35 
     36 ; Function Attrs: nounwind
     37 define double @emit_xsredp() {
     38 entry:
     39   %0 = load double, double* @c, align 8
     40   %1 = load double, double* @d, align 8
     41   %div = fdiv fast double %0, %1
     42   ret double %div
     43 ; CHECK-LABEL: @emit_xsredp
     44 ; CHECK: xsredp {{[0-9]+}}
     45 }
     46 
     47 ; Function Attrs: nounwind
     48 define double @emit_xsrsqrtedp(double %f) {
     49 entry:
     50   %f.addr = alloca double, align 8
     51   store double %f, double* %f.addr, align 8
     52   %0 = load double, double* %f.addr, align 8
     53   %1 = load double, double* @d, align 8
     54   %2 = call double @llvm.sqrt.f64(double %1)
     55   %div = fdiv fast double %0, %2
     56   ret double %div
     57 ; CHECK-LABEL: @emit_xsrsqrtedp
     58 ; CHECK: xsrsqrtedp {{[0-9]+}}
     59 }
     60 
     61 ; Function Attrs: nounwind readnone
     62 declare double @llvm.sqrt.f64(double) #1
     63