diff options
author | Renato Golin <renato.golin@linaro.org> | 2013-03-21 18:47:47 +0000 |
---|---|---|
committer | Renato Golin <renato.golin@linaro.org> | 2013-03-21 18:47:47 +0000 |
commit | 3382a840747c42c4a98eac802ee7b347a8ded1e4 (patch) | |
tree | de4c0a5050772a0b2c7d3b0f1e771814d0f24fe9 /test/CodeGen/ARM/fmuls.ll | |
parent | b55b00b4d4b79daec2be43a2a6cd0f5891370296 (diff) | |
download | external_llvm-3382a840747c42c4a98eac802ee7b347a8ded1e4.zip external_llvm-3382a840747c42c4a98eac802ee7b347a8ded1e4.tar.gz external_llvm-3382a840747c42c4a98eac802ee7b347a8ded1e4.tar.bz2 |
Avoid NEON SP-FP unless unsafe-math or Darwin
NEON is not IEEE 754 compliant, so we should avoid lowering single-precision
floating point operations with NEON unless unsafe-math is turned on. The
equivalent VFP instructions are IEEE 754 compliant, but in some cores they're
much slower, so some archs/OSs might still request it to be on by default,
such as Swift and Darwin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177651 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/ARM/fmuls.ll')
-rw-r--r-- | test/CodeGen/ARM/fmuls.ll | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/test/CodeGen/ARM/fmuls.ll b/test/CodeGen/ARM/fmuls.ll index 1566a92..9569880 100644 --- a/test/CodeGen/ARM/fmuls.ll +++ b/test/CodeGen/ARM/fmuls.ll @@ -1,6 +1,7 @@ ; 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-a8 --enable-unsafe-fp-math | FileCheck %s -check-prefix=CORTEXA8U ; RUN: llc < %s -march=arm -mcpu=cortex-a9 | FileCheck %s -check-prefix=CORTEXA9 define float @test(float %a, float %b) { @@ -18,9 +19,11 @@ entry: ; NFP0: vmul.f32 s ; CORTEXA8: test: -; CORTEXA8: vmul.f32 d +; CORTEXA8: vmul.f32 s +; CORTEXA8U: test: +; CORTEXA8U: vmul.f32 d ; CORTEXA9: test: -; CORTEXA9: vmul.f32 s{{.}}, s{{.}}, s{{.}} +; CORTEXA9: vmul.f32 s ; VFP2: test2 define float @test2(float %a) nounwind { |