aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/ARM/ARMSubtarget.cpp
diff options
context:
space:
mode:
authorJim Grosbach <grosbach@apple.com>2010-03-25 20:48:50 +0000
committerJim Grosbach <grosbach@apple.com>2010-03-25 20:48:50 +0000
commitcd20f1b53c46d5e3d11a30ad2783aa33b83b2efe (patch)
tree5f39f003daaa64c755b1e01edf932cd5707417e6 /lib/Target/ARM/ARMSubtarget.cpp
parent16e78bb21e443d10c53c341a852d3361e3d0b997 (diff)
downloadexternal_llvm-cd20f1b53c46d5e3d11a30ad2783aa33b83b2efe.zip
external_llvm-cd20f1b53c46d5e3d11a30ad2783aa33b83b2efe.tar.gz
external_llvm-cd20f1b53c46d5e3d11a30ad2783aa33b83b2efe.tar.bz2
ARM cortex-a8 doesn't do vmla/vmls well. disable them by default for that cpu
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99549 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMSubtarget.cpp')
-rw-r--r--lib/Target/ARM/ARMSubtarget.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/Target/ARM/ARMSubtarget.cpp b/lib/Target/ARM/ARMSubtarget.cpp
index 6b4438d..8df59e4 100644
--- a/lib/Target/ARM/ARMSubtarget.cpp
+++ b/lib/Target/ARM/ARMSubtarget.cpp
@@ -127,6 +127,12 @@ ARMSubtarget::ARMSubtarget(const std::string &TT, const std::string &FS,
// operations with NEON instructions.
if (UseNEONFP.getPosition() == 0)
UseNEONForSinglePrecisionFP = true;
+ // The VFP vlma and vlms instructions don't play nicely with others;
+ // disable them.
+ // FIXME: This may be true for other variants as well. Get benchmark
+ // numbers and add them if determined that's the case.
+ if (UseVMLxInstructions.getPosition() == 0)
+ UseVMLx = false;
}
}