diff -r b2cb497dec28 -r 33e2b8f1d466 src/share/vm/opto/subnode.cpp --- a/src/share/vm/opto/subnode.cpp Fri May 27 12:47:48 2011 -0700 +++ b/src/share/vm/opto/subnode.cpp Tue May 31 10:05:36 2011 -0700 @@ -1101,6 +1101,7 @@ if( cmp2_type == TypeInt::ZERO && cmp1_op == Op_XorI && j_xor->in(1) != j_xor && // An xor of itself is dead + phase->type( j_xor->in(1) ) == TypeInt::BOOL && phase->type( j_xor->in(2) ) == TypeInt::ONE && (_test._test == BoolTest::eq || _test._test == BoolTest::ne) ) {