1 ; RUN: llc < %s -march=arm -mattr=+vfp2 | FileCheck %s -check-prefix=VFP2
2 ; RUN: llc < %s -march=arm -mattr=+neon | FileCheck %s -check-prefix=NEON
3 ; RUN: llc < %s -march=arm -mcpu=cortex-a8 | FileCheck %s -check-prefix=A8
5 define float @t1(float %acc, float %a, float %b) nounwind {
14 ; A8: vnmul.f32 s0, s{{[01]}}, s{{[01]}}
15 ; A8: vsub.f32 d0, d0, d1
16 %0 = fmul float %a, %b
17 %1 = fsub float -0.0, %0
18 %2 = fsub float %1, %acc
22 define float @t2(float %acc, float %a, float %b) nounwind {
31 ; A8: vnmul.f32 s0, s{{[01]}}, s{{[01]}}
32 ; A8: vsub.f32 d0, d0, d1
33 %0 = fmul float %a, %b
34 %1 = fmul float -1.0, %0
35 %2 = fsub float %1, %acc
39 define double @t3(double %acc, double %a, double %b) nounwind {
48 ; A8: vnmul.f64 d16, d1{{[67]}}, d1{{[67]}}
49 ; A8: vsub.f64 d16, d16, d17
50 %0 = fmul double %a, %b
51 %1 = fsub double -0.0, %0
52 %2 = fsub double %1, %acc
56 define double @t4(double %acc, double %a, double %b) nounwind {
65 ; A8: vnmul.f64 d16, d1{{[67]}}, d1{{[67]}}
66 ; A8: vsub.f64 d16, d16, d17
67 %0 = fmul double %a, %b
68 %1 = fmul double -1.0, %0
69 %2 = fsub double %1, %acc