--- old/src/share/vm/opto/loopnode.cpp 2015-06-29 19:05:31.781647100 -0700 +++ new/src/share/vm/opto/loopnode.cpp 2015-06-29 19:05:31.584430400 -0700 @@ -2317,7 +2317,11 @@ // Reassociate invariants and prep for split_thru_phi for (LoopTreeIterator iter(_ltree_root); !iter.done(); iter.next()) { IdealLoopTree* lpt = iter.current(); - if (!lpt->is_counted() || !lpt->is_inner()) continue; + bool is_counted = lpt->is_counted(); + if (!is_counted || !lpt->is_inner()) continue; + + // check for vectorized loops, any reassociation of invariants was already done + if (is_counted && lpt->_head->as_CountedLoop()->do_unroll_only()) continue; lpt->reassociate_invariants(this);