diff -r cf560f960e85 -r 49ad0989c84f hotspot/src/share/vm/opto/loopTransform.cpp --- a/hotspot/src/share/vm/opto/loopTransform.cpp Tue Feb 24 23:31:00 2015 -0800 +++ b/hotspot/src/share/vm/opto/loopTransform.cpp Tue Feb 24 15:23:05 2015 +0100 @@ -2032,7 +2032,7 @@ // Hopefully, compiler will optimize for powers of 2. Node *ctrl = get_ctrl(main_limit); Node *stride = cl->stride(); - Node *init = cl->init_trip(); + Node *init = cl->init_trip()->uncast(); Node *span = new SubINode(main_limit,init); register_new_node(span,ctrl); Node *rndup = _igvn.intcon(stride_con + ((stride_con>0)?-1:1));