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 48