Avoid NEON SP-FP unless unsafe-math or Darwin
authorRenato Golin <renato.golin@linaro.org>
Thu, 21 Mar 2013 18:47:47 +0000 (18:47 +0000)
committerRenato Golin <renato.golin@linaro.org>
Thu, 21 Mar 2013 18:47:47 +0000 (18:47 +0000)
commitb4dd6c5945db4f5e7b107a3c7f8c481b460dec25
treed7cab68370675963e27e2c3bb512f40673bf6ce6
parent5b981721152796d2aa6a547b2e159be9cf7192a8
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.

llvm-svn: 177651
12 files changed:
llvm/lib/Target/ARM/ARM.td
llvm/lib/Target/ARM/ARMSubtarget.cpp
llvm/lib/Target/ARM/ARMSubtarget.h
llvm/lib/Target/ARM/ARMTargetMachine.cpp
llvm/test/CodeGen/ARM/fadds.ll
llvm/test/CodeGen/ARM/fmuls.ll
llvm/test/CodeGen/ARM/fnegs.ll
llvm/test/CodeGen/ARM/fnmscs.ll
llvm/test/CodeGen/ARM/fp_convert.ll
llvm/test/CodeGen/ARM/fsubs.ll
llvm/test/CodeGen/ARM/neon-spfp.ll [new file with mode: 0644]
llvm/test/CodeGen/ARM/neon_minmax.ll