8257561: Some code is not vectorized after 8251925 and 8250607

Reviewed-by: chagedorn, vlivanov, thartmann
This commit is contained in:
Vladimir Kozlov 2020-12-03 17:02:04 +00:00
parent 70517c83c2
commit 6c9482eef5
2 changed files with 9 additions and 13 deletions

View File

@ -1105,11 +1105,9 @@ const Type* PhiNode::Value(PhaseGVN* phase) const {
if (bt != BoolTest::ne) {
if (stride_t->hi_as_long() < 0) { // Down-counter loop
swap(lo, hi);
return TypeInteger::make(MIN2(lo->lo_as_long(), hi->lo_as_long()), hi->hi_as_long(), 3,
l->bt())->filter_speculative(_type);
return TypeInteger::make(MIN2(lo->lo_as_long(), hi->lo_as_long()), hi->hi_as_long(), 3, l->bt());
} else if (stride_t->lo_as_long() >= 0) {
return TypeInteger::make(lo->lo_as_long(), MAX2(lo->hi_as_long(), hi->hi_as_long()), 3,
l->bt())->filter_speculative(_type);
return TypeInteger::make(lo->lo_as_long(), MAX2(lo->hi_as_long(), hi->hi_as_long()), 3, l->bt());
}
}
}

View File

@ -3995,16 +3995,14 @@ bool SWPointer::offset_plus_k(Node* n, bool negate) {
assert(!is_main_loop_member(n), "sanity");
n = n->in(1);
}
// Check if 'n' can really be used as invariant (not in main loop and dominating the pre loop).
if (invariant(n)) {
_negate_invar = negate;
_invar = n;
NOT_PRODUCT(_tracer.offset_plus_k_10(n, _invar, _negate_invar, _offset);)
return true;
}
}
return false;
// Check if 'n' can really be used as invariant (not in main loop and dominating the pre loop).
if (invariant(n)) {
_negate_invar = negate;
_invar = n;
NOT_PRODUCT(_tracer.offset_plus_k_10(n, _invar, _negate_invar, _offset);)
return true;
}
}
NOT_PRODUCT(_tracer.offset_plus_k_11(n);)