We do need the barrier noop pass to break out of the CallGraph SCC pass manager before the loop vectorizer. + MPM.add(createBarrierNoopPass()); + MPM.add(createLoopVectorizePass(DisableUnrollLoops, LoopVectorize)); Otherwise, LGTM. http://llvm-reviews.chandlerc.com/D2328