ARM cortex-a8 doesn't do vmla/vmls well. disable them by default for that cpu
authorJim Grosbach <grosbach@apple.com>
Thu, 25 Mar 2010 20:48:50 +0000 (20:48 +0000)
committerJim Grosbach <grosbach@apple.com>
Thu, 25 Mar 2010 20:48:50 +0000 (20:48 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99549 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/ARMSubtarget.cpp

index 6b4438d4c86eba965048aab57f6b64f101ea5230..8df59e4789e34e9f6c177beab8868b32f446ac34 100644 (file)
@@ -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;
   }
 }