Allow vectorization of division by uniform power of 2.
[oota-llvm.git] / lib / Target / ARM / ARMTargetMachine.cpp
index d85194b75ecb9507453a6d6ee7d35b673f996419..3e5840d51b6bd8d58d657265a62e7f4e9cfd7bbd 100644 (file)
@@ -158,7 +158,10 @@ TargetPassConfig *ARMBaseTargetMachine::createPassConfig(PassManagerBase &PM) {
 }
 
 void ARMPassConfig::addIRPasses() {
-  addPass(createAtomicExpandLoadLinkedPass(TM));
+  if (TM->Options.ThreadModel == ThreadModel::Single)
+    addPass(createLowerAtomicPass());
+  else
+    addPass(createAtomicExpandPass(TM));
 
   // Cmpxchg instructions are often used with a subsequent comparison to
   // determine whether it succeeded. We can exploit existing control-flow in