[ARM] Generate 8.1-m CSINC, CSNEG and CSINV instructions.
[llvm-core.git] / test / CodeGen / Thumb2 / cortex-fp.ll
blobab2dd59bbb423f7377a748564248110f88e6fdfb
1 ; RUN: llc < %s -mtriple=thumbv7-apple-darwin10 -mcpu=cortex-m3 | FileCheck %s -check-prefix=CHECK -check-prefix=CORTEXM3
2 ; RUN: llc < %s -mtriple=thumbv7-apple-darwin10 -mcpu=cortex-m4 | FileCheck %s -check-prefix=CHECK -check-prefix=CORTEXM4
3 ; RUN: llc < %s -mtriple=thumbv7-apple-darwin10 -mcpu=cortex-m7 | FileCheck %s -check-prefix=CHECK -check-prefix=CORTEXM7
4 ; RUN: llc < %s -mtriple=thumbv7-apple-darwin10 -mcpu=cortex-a8 | FileCheck %s -check-prefix=CHECK -check-prefix=CORTEXA8
7 define float @foo(float %a, float %b) {
8 entry:
9 ; CHECK-LABEL: foo:
10 ; CORTEXM3: bl ___mulsf3
11 ; CORTEXM4: vmul.f32  s
12 ; CORTEXM7: vmul.f32  s
13 ; CORTEXA8: vmul.f32  d
14   %0 = fmul float %a, %b
15   ret float %0
18 define double @bar(double %a, double %b) {
19 entry:
20 ; CHECK-LABEL: bar:
21   %0 = fmul double %a, %b
22 ; CORTEXM3: bl ___muldf3
23 ; CORTEXM4: {{bl|b.w}} ___muldf3
24 ; CORTEXM7: vmul.f64  d
25 ; CORTEXA8: vmul.f64  d
26   ret double %0