1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=armv7-apple-ios -mattr=+vfp2 | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Workerdefine fastcc double @t1(double %d0, double %d1, double %d2, double %d3, double %d4, double %d5, double %d6, double %d7, float %a, float %b) { 4*9880d681SAndroid Build Coastguard Workerentry: 5*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: t1: 6*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: vmov 7*9880d681SAndroid Build Coastguard Worker; CHECK: vldr 8*9880d681SAndroid Build Coastguard Worker %add = fadd float %a, %b 9*9880d681SAndroid Build Coastguard Worker %conv = fpext float %add to double 10*9880d681SAndroid Build Coastguard Worker ret double %conv 11*9880d681SAndroid Build Coastguard Worker} 12*9880d681SAndroid Build Coastguard Worker 13*9880d681SAndroid Build Coastguard Workerdefine fastcc double @t2(double %d0, double %d1, double %d2, double %d3, double %d4, double %d5, double %a, float %b, double %c) { 14*9880d681SAndroid Build Coastguard Workerentry: 15*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: t2: 16*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: vmov 17*9880d681SAndroid Build Coastguard Worker; CHECK: vldr 18*9880d681SAndroid Build Coastguard Worker %add = fadd double %a, %c 19*9880d681SAndroid Build Coastguard Worker ret double %add 20*9880d681SAndroid Build Coastguard Worker} 21*9880d681SAndroid Build Coastguard Worker 22*9880d681SAndroid Build Coastguard Workerdefine fastcc float @t3(double %d0, double %d1, double %d2, double %d3, double %d4, double %d5, double %d6, float %a, double %b, float %c) { 23*9880d681SAndroid Build Coastguard Workerentry: 24*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: t3: 25*9880d681SAndroid Build Coastguard Worker; CHECK: vldr 26*9880d681SAndroid Build Coastguard Worker %add = fadd float %a, %c 27*9880d681SAndroid Build Coastguard Worker ret float %add 28*9880d681SAndroid Build Coastguard Worker} 29*9880d681SAndroid Build Coastguard Worker 30*9880d681SAndroid Build Coastguard Workerdefine fastcc double @t4(double %a, double %b) #0 { 31*9880d681SAndroid Build Coastguard Workerentry: 32*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: t4: 33*9880d681SAndroid Build Coastguard Worker; CHECK: vstr 34*9880d681SAndroid Build Coastguard Worker %add = fadd double %a, %b 35*9880d681SAndroid Build Coastguard Worker %sub = fsub double %a, %b 36*9880d681SAndroid Build Coastguard Worker %call = tail call fastcc double @x(double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double %add, float 0.000000e+00, double %sub) #2 37*9880d681SAndroid Build Coastguard Worker ret double %call 38*9880d681SAndroid Build Coastguard Worker} 39*9880d681SAndroid Build Coastguard Worker 40*9880d681SAndroid Build Coastguard Workerdeclare fastcc double @x(double, double, double, double, double, double, double, float, double) 41