| ; RUN: llc < %s -march=arm -mattr=+vfp2 | FileCheck %s -check-prefix=VFP2 |
| ; RUN: llc < %s -march=arm -mattr=+neon | FileCheck %s -check-prefix=NFP0 |
| ; RUN: llc < %s -march=arm -mcpu=cortex-a8 | FileCheck %s -check-prefix=CORTEXA8 |
| ; RUN: llc < %s -march=arm -mcpu=cortex-a9 | FileCheck %s -check-prefix=CORTEXA9 |
| |
| define float @test(float %a, float %b) { |
| entry: |
| %dum = fadd float %a, %b |
| %0 = tail call float @fabsf(float %dum) |
| %dum1 = fadd float %0, %b |
| ret float %dum1 |
| } |
| |
| declare float @fabsf(float) |
| |
| ; VFP2: test: |
| ; VFP2: vabs.f32 s1, s1 |
| |
| ; NFP1: test: |
| ; NFP1: vabs.f32 d1, d1 |
| ; NFP0: test: |
| ; NFP0: vabs.f32 s1, s1 |
| |
| ; CORTEXA8: test: |
| ; CORTEXA8: vadd.f32 [[D1:d[0-9]+]] |
| ; CORTEXA8: vabs.f32 {{d[0-9]+}}, [[D1]] |
| |
| ; CORTEXA9: test: |
| ; CORTEXA9: vabs.f32 s{{.}}, s{{.}} |