ARM: fix folding stack adjustment (again again again...)
[oota-llvm.git] / test / CodeGen / ARM / fmuls.ll
1 ; RUN: llc -mtriple=arm-eabi -mattr=+vfp2 %s -o - \
2 ; RUN:  | FileCheck %s -check-prefix=VFP2
3
4 ; RUN: llc -mtriple=arm-eabi -mattr=+neon %s -o - \
5 ; RUN:  | FileCheck %s -check-prefix=NFP0
6
7 ; RUN: llc -mtriple=arm-eabi -mcpu=cortex-a8 %s -o - \
8 ; RUN:  | FileCheck %s -check-prefix=CORTEXA8
9
10 ; RUN: llc -mtriple=arm-eabi -mcpu=cortex-a8 --enable-unsafe-fp-math %s -o - \
11 ; RUN:  | FileCheck %s -check-prefix=CORTEXA8U
12
13 ; RUN: llc -mtriple=arm-darwin -mcpu=cortex-a8 %s -o - \
14 ; RUN:  | FileCheck %s -check-prefix=CORTEXA8U
15
16 ; RUN: llc -mtriple=arm-eabi -mcpu=cortex-a9 %s -o - \
17 ; RUN:  | FileCheck %s -check-prefix=CORTEXA9
18
19 define float @test(float %a, float %b) {
20 entry:
21         %0 = fmul float %a, %b
22         ret float %0
23 }
24
25 ; VFP2-LABEL: test:
26 ; VFP2:         vmul.f32        s
27
28 ; NFP1-LABEL: test:
29 ; NFP1:         vmul.f32        d
30 ; NFP0-LABEL: test:
31 ; NFP0:         vmul.f32        s
32
33 ; CORTEXA8-LABEL: test:
34 ; CORTEXA8:     vmul.f32        s
35 ; CORTEXA8U-LABEL: test:
36 ; CORTEXA8U:    vmul.f32        d
37 ; CORTEXA9-LABEL: test:
38 ; CORTEXA9:     vmul.f32        s
39
40 ; VFP2: test2
41 define float @test2(float %a) nounwind {
42 ; CHECK-NOT: mul
43 ; CHECK: mov pc, lr
44   %ret = fmul float %a, 1.0
45   ret float %ret
46 }
47