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