1; RUN: llc -verify-machineinstrs < %s -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr8 -enable-unsafe-fp-math | FileCheck %s 2; RUN: llc -verify-machineinstrs < %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 9define float @emit_xsresp() { 10entry: 11 %0 = load float, float* @a, align 4 12 %1 = load float, float* @b, align 4 13 %div = fdiv arcp ninf float %0, %1 14 ret float %div 15; CHECK-LABEL: @emit_xsresp 16; CHECK: xsresp {{[0-9]+}} 17} 18 19; Function Attrs: nounwind 20define float @emit_xsrsqrtesp(float %f) { 21entry: 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 arcp float %0, %2 28 ret float %div 29; CHECK-LABEL: @emit_xsrsqrtesp 30; CHECK: xsrsqrtesp {{[0-9]+}} 31} 32 33; Function Attrs: nounwind readnone 34declare float @llvm.sqrt.f32(float) 35 36; Function Attrs: nounwind 37define double @emit_xsredp() { 38entry: 39 %0 = load double, double* @c, align 8 40 %1 = load double, double* @d, align 8 41 %div = fdiv arcp ninf double %0, %1 42 ret double %div 43; CHECK-LABEL: @emit_xsredp 44; CHECK: xsredp {{[0-9]+}} 45} 46 47; Function Attrs: nounwind 48define double @emit_xsrsqrtedp(double %f) { 49entry: 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 arcp double %0, %2 56 ret double %div 57; CHECK-LABEL: @emit_xsrsqrtedp 58; CHECK: xsrsqrtedp {{[0-9]+}} 59} 60 61; Function Attrs: nounwind readnone 62declare double @llvm.sqrt.f64(double) #1 63