1*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=armv7-apple-ios < %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Workerdefine swiftcc float @t1(float %a, float %b) { 4*9880d681SAndroid Build Coastguard Workerentry: 5*9880d681SAndroid Build Coastguard Worker; CHECK: t1 6*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: vmov 7*9880d681SAndroid Build Coastguard Worker; CHECK: vadd.f32 8*9880d681SAndroid Build Coastguard Worker %add = fadd float %a, %b 9*9880d681SAndroid Build Coastguard Worker ret float %add 10*9880d681SAndroid Build Coastguard Worker} 11*9880d681SAndroid Build Coastguard Worker 12*9880d681SAndroid Build Coastguard Workerdefine swiftcc double @t2(double %a, double %b) { 13*9880d681SAndroid Build Coastguard Workerentry: 14*9880d681SAndroid Build Coastguard Worker; CHECK: t2 15*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: vmov 16*9880d681SAndroid Build Coastguard Worker; CHECK: vadd.f64 17*9880d681SAndroid Build Coastguard Worker %add = fadd double %a, %b 18*9880d681SAndroid Build Coastguard Worker ret double %add 19*9880d681SAndroid Build Coastguard Worker} 20*9880d681SAndroid Build Coastguard Worker 21*9880d681SAndroid Build Coastguard Workerdefine swiftcc double @t9(double %d0, double %d1, double %d2, double %d3, 22*9880d681SAndroid Build Coastguard Worker double %d4, double %d5, double %d6, double %d7, float %a, float %b) { 23*9880d681SAndroid Build Coastguard Workerentry: 24*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: t9: 25*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: vmov 26*9880d681SAndroid Build Coastguard Worker; CHECK: vldr 27*9880d681SAndroid Build Coastguard Worker %add = fadd float %a, %b 28*9880d681SAndroid Build Coastguard Worker %conv = fpext float %add to double 29*9880d681SAndroid Build Coastguard Worker ret double %conv 30*9880d681SAndroid Build Coastguard Worker} 31*9880d681SAndroid Build Coastguard Worker 32*9880d681SAndroid Build Coastguard Workerdefine swiftcc double @t10(double %d0, double %d1, double %d2, double %d3, 33*9880d681SAndroid Build Coastguard Worker double %d4, double %d5, double %a, float %b, double %c) { 34*9880d681SAndroid Build Coastguard Workerentry: 35*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: t10: 36*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: vmov 37*9880d681SAndroid Build Coastguard Worker; CHECK: vldr 38*9880d681SAndroid Build Coastguard Worker %add = fadd double %a, %c 39*9880d681SAndroid Build Coastguard Worker ret double %add 40*9880d681SAndroid Build Coastguard Worker} 41*9880d681SAndroid Build Coastguard Worker 42*9880d681SAndroid Build Coastguard Workerdefine swiftcc float @t11(double %d0, double %d1, double %d2, double %d3, 43*9880d681SAndroid Build Coastguard Worker double %d4, double %d5, double %d6, float %a, double %b, float %c) { 44*9880d681SAndroid Build Coastguard Workerentry: 45*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: t11: 46*9880d681SAndroid Build Coastguard Worker; CHECK: vldr 47*9880d681SAndroid Build Coastguard Worker %add = fadd float %a, %c 48*9880d681SAndroid Build Coastguard Worker ret float %add 49*9880d681SAndroid Build Coastguard Worker} 50*9880d681SAndroid Build Coastguard Worker 51*9880d681SAndroid Build Coastguard Workerdefine swiftcc double @t12(double %a, double %b) { 52*9880d681SAndroid Build Coastguard Workerentry: 53*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: t12: 54*9880d681SAndroid Build Coastguard Worker; CHECK: vstr 55*9880d681SAndroid Build Coastguard Worker %add = fadd double %a, %b 56*9880d681SAndroid Build Coastguard Worker %sub = fsub double %a, %b 57*9880d681SAndroid Build Coastguard Worker %call = tail call swiftcc double @x(double 0.000000e+00, double 0.000000e+00, 58*9880d681SAndroid Build Coastguard Worker double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, 59*9880d681SAndroid Build Coastguard Worker double 0.000000e+00, double %add, float 0.000000e+00, 60*9880d681SAndroid Build Coastguard Worker double %sub) 61*9880d681SAndroid Build Coastguard Worker ret double %call 62*9880d681SAndroid Build Coastguard Worker} 63*9880d681SAndroid Build Coastguard Worker 64*9880d681SAndroid Build Coastguard Workerdeclare swiftcc double @x(double, double, double, double, double, double, 65*9880d681SAndroid Build Coastguard Worker double, float, double) 66*9880d681SAndroid Build Coastguard Worker 67*9880d681SAndroid Build Coastguard Workerattributes #0 = { readnone } 68*9880d681SAndroid Build Coastguard Workerattributes #1 = { readonly } 69