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=NFP0 3 ; RUN: llc < %s -mtriple=arm-eabi -mcpu=cortex-a8 | FileCheck %s -check-prefix=CORTEXA8 4 ; RUN: llc < %s -mtriple=arm-eabi -mcpu=cortex-a8 --enable-unsafe-fp-math | FileCheck %s -check-prefix=CORTEXA8U 5 ; RUN: llc < %s -mtriple=arm-darwin -mcpu=cortex-a8 | FileCheck %s -check-prefix=CORTEXA8U 6 ; RUN: llc < %s -march=arm -mcpu=cortex-a9 | FileCheck %s -check-prefix=CORTEXA9 7 8 define float @test(float %a, float %b) { 9 entry: 10 %0 = fmul float %a, %b 11 ret float %0 12 } 13 14 ; VFP2-LABEL: test: 15 ; VFP2: vmul.f32 s 16 17 ; NFP1-LABEL: test: 18 ; NFP1: vmul.f32 d 19 ; NFP0-LABEL: test: 20 ; NFP0: vmul.f32 s 21 22 ; CORTEXA8-LABEL: test: 23 ; CORTEXA8: vmul.f32 s 24 ; CORTEXA8U-LABEL: test: 25 ; CORTEXA8U: vmul.f32 d 26 ; CORTEXA9-LABEL: test: 27 ; CORTEXA9: vmul.f32 s 28 29 ; VFP2: test2 30 define float @test2(float %a) nounwind { 31 ; CHECK-NOT: mul 32 ; CHECK: mov pc, lr 33 %ret = fmul float %a, 1.0 34 ret float %ret 35 } 36 37