@@ -1556,12 +1556,14 @@ Node *BoolNode::Ideal(PhaseGVN *phase, bool can_reshape) {
1556
1556
// and "cmp (add X min_jint) c" into "cmpu X (c + min_jint)"
1557
1557
if (cop == Op_CmpI &&
1558
1558
cmp1_op == Op_AddI &&
1559
+ !is_cloop_increment (cmp1) &&
1559
1560
phase->type (cmp1->in (2 )) == TypeInt::MIN) {
1560
1561
if (cmp2_op == Op_ConI) {
1561
1562
Node* ncmp2 = phase->intcon (java_add (cmp2->get_int (), min_jint));
1562
1563
Node* ncmp = phase->transform (new CmpUNode (cmp1->in (1 ), ncmp2));
1563
1564
return new BoolNode (ncmp, _test._test );
1564
1565
} else if (cmp2_op == Op_AddI &&
1566
+ !is_cloop_increment (cmp2) &&
1565
1567
phase->type (cmp2->in (2 )) == TypeInt::MIN) {
1566
1568
Node* ncmp = phase->transform (new CmpUNode (cmp1->in (1 ), cmp2->in (1 )));
1567
1569
return new BoolNode (ncmp, _test._test );
@@ -1572,12 +1574,14 @@ Node *BoolNode::Ideal(PhaseGVN *phase, bool can_reshape) {
1572
1574
// and "cmp (add X min_jlong) c" into "cmpu X (c + min_jlong)"
1573
1575
if (cop == Op_CmpL &&
1574
1576
cmp1_op == Op_AddL &&
1577
+ !is_cloop_increment (cmp1) &&
1575
1578
phase->type (cmp1->in (2 )) == TypeLong::MIN) {
1576
1579
if (cmp2_op == Op_ConL) {
1577
1580
Node* ncmp2 = phase->longcon (java_add (cmp2->get_long (), min_jlong));
1578
1581
Node* ncmp = phase->transform (new CmpULNode (cmp1->in (1 ), ncmp2));
1579
1582
return new BoolNode (ncmp, _test._test );
1580
1583
} else if (cmp2_op == Op_AddL &&
1584
+ !is_cloop_increment (cmp2) &&
1581
1585
phase->type (cmp2->in (2 )) == TypeLong::MIN) {
1582
1586
Node* ncmp = phase->transform (new CmpULNode (cmp1->in (1 ), cmp2->in (1 )));
1583
1587
return new BoolNode (ncmp, _test._test );
0 commit comments