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