blob: fb83ef626af69e9e32045e20321e281daa38a7de [file] [log] [blame]
Edward O'Callaghan11cc4fa2009-11-22 14:23:33 +00001; RUN: llc < %s -march=arm -mattr=+vfp2 | FileCheck %s -check-prefix=VFP2
Evan Cheng529916c2010-11-12 20:32:20 +00002; 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
David Goodwin42a83f22009-08-04 17:53:06 +00004
Evan Cheng529916c2010-11-12 20:32:20 +00005define float @t1(float %acc, float %a, float %b) {
David Goodwin42a83f22009-08-04 17:53:06 +00006entry:
Evan Cheng529916c2010-11-12 20:32:20 +00007; VFP2: t1:
8; VFP2: vmla.f32
9
10; NEON: t1:
11; NEON: vmla.f32
12
13; A8: t1:
14; A8: vmul.f32
15; A8: vadd.f32
David Goodwin42a83f22009-08-04 17:53:06 +000016 %0 = fmul float %a, %b
17 %1 = fadd float %acc, %0
18 ret float %1
19}
20
Evan Cheng529916c2010-11-12 20:32:20 +000021define double @t2(double %acc, double %a, double %b) {
22entry:
23; VFP2: t2:
24; VFP2: vmla.f64
Edward O'Callaghan11cc4fa2009-11-22 14:23:33 +000025
Evan Cheng529916c2010-11-12 20:32:20 +000026; NEON: t2:
27; NEON: vmla.f64
Edward O'Callaghan11cc4fa2009-11-22 14:23:33 +000028
Evan Cheng529916c2010-11-12 20:32:20 +000029; A8: t2:
30; A8: vmul.f64
31; A8: vadd.f64
32 %0 = fmul double %a, %b
33 %1 = fadd double %acc, %0
34 ret double %1
35}
36
37define float @t3(float %acc, float %a, float %b) {
38entry:
39; VFP2: t3:
40; VFP2: vmla.f32
41
42; NEON: t3:
43; NEON: vmla.f32
44
45; A8: t3:
46; A8: vmul.f32
47; A8: vadd.f32
48 %0 = fmul float %a, %b
49 %1 = fadd float %0, %acc
50 ret float %1
51}