| ; RUN: llc < %s -mtriple=arm-apple-ios -mattr=+vfp2 | FileCheck %s -check-prefix=VFP2 |
| ; RUN: llc < %s -mtriple=arm-apple-ios -mattr=+neon | FileCheck %s -check-prefix=NFP0 |
| ; RUN: llc < %s -mtriple=arm-apple-ios -mcpu=cortex-a8 | FileCheck %s -check-prefix=CORTEXA8 |
| ; RUN: llc < %s -mtriple=arm-apple-ios -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) readnone |
| %dum1 = fadd float %0, %b |
| ret float %dum1 |
| } |
| |
| declare float @fabsf(float) |
| |
| ; VFP2-LABEL: test: |
| ; VFP2: vabs.f32 s |
| |
| ; NFP1-LABEL: test: |
| ; NFP1: vabs.f32 d |
| ; NFP0-LABEL: test: |
| ; NFP0: vabs.f32 s |
| |
| ; CORTEXA8-LABEL: test: |
| ; CORTEXA8: vadd.f32 [[D1:d[0-9]+]] |
| ; CORTEXA8: vabs.f32 {{d[0-9]+}}, [[D1]] |
| |
| ; CORTEXA9-LABEL: test: |
| ; CORTEXA9: vabs.f32 s{{.}}, s{{.}} |