Index: lib/CodeGen/MachinePipeliner.cpp =================================================================== --- lib/CodeGen/MachinePipeliner.cpp +++ lib/CodeGen/MachinePipeliner.cpp @@ -3131,8 +3131,8 @@ SI->hasOrderedMemoryRef() || DI->hasOrderedMemoryRef()) return true; - // Only chain dependences between a load and store can be loop carried. - if (!DI->mayStore() || !SI->mayLoad()) + if (!(DI->mayStore() && SI->mayLoad()) && + !(DI->mayStore() && SI->mayStore())) return false; unsigned DeltaS, DeltaD;