; RUN: llvm-as < fcopysign.ll | llc -march=arm && ; RUN: llvm-as < fcopysign.ll | llc -march=arm | grep bic | wc -l | grep 2 && ; RUN: llvm-as < fcopysign.ll | llc -march=arm -mattr=+v6,+vfp2 && ; RUN: llvm-as < fcopysign.ll | llc -march=arm -mattr=+v6,+vfp2 | grep fneg | wc -l | grep 2 define float %test1(float %x, double %y) { %tmp = fpext float %x to double %tmp2 = tail call double %copysign( double %tmp, double %y ) %tmp2 = fptrunc double %tmp2 to float ret float %tmp2 } define double %test2(double %x, float %y) { %tmp = fpext float %y to double %tmp2 = tail call double %copysign( double %x, double %tmp ) ret double %tmp2 } declare double %copysign(double, double)