1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=arm-apple-ios -mattr=+vfp2 | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Workerdefine float @f1(float %a, float %b) { 4*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: f1: 5*9880d681SAndroid Build Coastguard Worker;CHECK: vadd.f32 6*9880d681SAndroid Build Coastguard Workerentry: 7*9880d681SAndroid Build Coastguard Worker %tmp = fadd float %a, %b ; <float> [#uses=1] 8*9880d681SAndroid Build Coastguard Worker ret float %tmp 9*9880d681SAndroid Build Coastguard Worker} 10*9880d681SAndroid Build Coastguard Worker 11*9880d681SAndroid Build Coastguard Workerdefine double @f2(double %a, double %b) { 12*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: f2: 13*9880d681SAndroid Build Coastguard Worker;CHECK: vadd.f64 14*9880d681SAndroid Build Coastguard Workerentry: 15*9880d681SAndroid Build Coastguard Worker %tmp = fadd double %a, %b ; <double> [#uses=1] 16*9880d681SAndroid Build Coastguard Worker ret double %tmp 17*9880d681SAndroid Build Coastguard Worker} 18*9880d681SAndroid Build Coastguard Worker 19*9880d681SAndroid Build Coastguard Workerdefine float @f3(float %a, float %b) { 20*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: f3: 21*9880d681SAndroid Build Coastguard Worker;CHECK: vmul.f32 22*9880d681SAndroid Build Coastguard Workerentry: 23*9880d681SAndroid Build Coastguard Worker %tmp = fmul float %a, %b ; <float> [#uses=1] 24*9880d681SAndroid Build Coastguard Worker ret float %tmp 25*9880d681SAndroid Build Coastguard Worker} 26*9880d681SAndroid Build Coastguard Worker 27*9880d681SAndroid Build Coastguard Workerdefine double @f4(double %a, double %b) { 28*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: f4: 29*9880d681SAndroid Build Coastguard Worker;CHECK: vmul.f64 30*9880d681SAndroid Build Coastguard Workerentry: 31*9880d681SAndroid Build Coastguard Worker %tmp = fmul double %a, %b ; <double> [#uses=1] 32*9880d681SAndroid Build Coastguard Worker ret double %tmp 33*9880d681SAndroid Build Coastguard Worker} 34*9880d681SAndroid Build Coastguard Worker 35*9880d681SAndroid Build Coastguard Workerdefine float @f5(float %a, float %b) { 36*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: f5: 37*9880d681SAndroid Build Coastguard Worker;CHECK: vsub.f32 38*9880d681SAndroid Build Coastguard Workerentry: 39*9880d681SAndroid Build Coastguard Worker %tmp = fsub float %a, %b ; <float> [#uses=1] 40*9880d681SAndroid Build Coastguard Worker ret float %tmp 41*9880d681SAndroid Build Coastguard Worker} 42*9880d681SAndroid Build Coastguard Worker 43*9880d681SAndroid Build Coastguard Workerdefine double @f6(double %a, double %b) { 44*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: f6: 45*9880d681SAndroid Build Coastguard Worker;CHECK: vsub.f64 46*9880d681SAndroid Build Coastguard Workerentry: 47*9880d681SAndroid Build Coastguard Worker %tmp = fsub double %a, %b ; <double> [#uses=1] 48*9880d681SAndroid Build Coastguard Worker ret double %tmp 49*9880d681SAndroid Build Coastguard Worker} 50*9880d681SAndroid Build Coastguard Worker 51*9880d681SAndroid Build Coastguard Workerdefine float @f7(float %a) { 52*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: f7: 53*9880d681SAndroid Build Coastguard Worker;CHECK: eor 54*9880d681SAndroid Build Coastguard Workerentry: 55*9880d681SAndroid Build Coastguard Worker %tmp1 = fsub float -0.000000e+00, %a ; <float> [#uses=1] 56*9880d681SAndroid Build Coastguard Worker ret float %tmp1 57*9880d681SAndroid Build Coastguard Worker} 58*9880d681SAndroid Build Coastguard Worker 59*9880d681SAndroid Build Coastguard Workerdefine arm_aapcs_vfpcc double @f8(double %a) { 60*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: f8: 61*9880d681SAndroid Build Coastguard Worker;CHECK: vneg.f64 62*9880d681SAndroid Build Coastguard Workerentry: 63*9880d681SAndroid Build Coastguard Worker %tmp1 = fsub double -0.000000e+00, %a ; <double> [#uses=1] 64*9880d681SAndroid Build Coastguard Worker ret double %tmp1 65*9880d681SAndroid Build Coastguard Worker} 66*9880d681SAndroid Build Coastguard Worker 67*9880d681SAndroid Build Coastguard Workerdefine float @f9(float %a, float %b) { 68*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: f9: 69*9880d681SAndroid Build Coastguard Worker;CHECK: vdiv.f32 70*9880d681SAndroid Build Coastguard Workerentry: 71*9880d681SAndroid Build Coastguard Worker %tmp1 = fdiv float %a, %b ; <float> [#uses=1] 72*9880d681SAndroid Build Coastguard Worker ret float %tmp1 73*9880d681SAndroid Build Coastguard Worker} 74*9880d681SAndroid Build Coastguard Worker 75*9880d681SAndroid Build Coastguard Workerdefine double @f10(double %a, double %b) { 76*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: f10: 77*9880d681SAndroid Build Coastguard Worker;CHECK: vdiv.f64 78*9880d681SAndroid Build Coastguard Workerentry: 79*9880d681SAndroid Build Coastguard Worker %tmp1 = fdiv double %a, %b ; <double> [#uses=1] 80*9880d681SAndroid Build Coastguard Worker ret double %tmp1 81*9880d681SAndroid Build Coastguard Worker} 82*9880d681SAndroid Build Coastguard Worker 83*9880d681SAndroid Build Coastguard Workerdefine float @f11(float %a) { 84*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: f11: 85*9880d681SAndroid Build Coastguard Worker;CHECK: bic 86*9880d681SAndroid Build Coastguard Workerentry: 87*9880d681SAndroid Build Coastguard Worker %tmp1 = call float @fabsf( float %a ) readnone ; <float> [#uses=1] 88*9880d681SAndroid Build Coastguard Worker ret float %tmp1 89*9880d681SAndroid Build Coastguard Worker} 90*9880d681SAndroid Build Coastguard Worker 91*9880d681SAndroid Build Coastguard Workerdeclare float @fabsf(float) 92*9880d681SAndroid Build Coastguard Worker 93*9880d681SAndroid Build Coastguard Workerdefine arm_aapcs_vfpcc double @f12(double %a) { 94*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: f12: 95*9880d681SAndroid Build Coastguard Worker;CHECK: vabs.f64 96*9880d681SAndroid Build Coastguard Workerentry: 97*9880d681SAndroid Build Coastguard Worker %tmp1 = call double @fabs( double %a ) readnone ; <double> [#uses=1] 98*9880d681SAndroid Build Coastguard Worker ret double %tmp1 99*9880d681SAndroid Build Coastguard Worker} 100*9880d681SAndroid Build Coastguard Worker 101*9880d681SAndroid Build Coastguard Workerdeclare double @fabs(double) 102