8382532: C2: VectorAPI: disable VectorMaskCmp-not optimization for predicated compares

Reviewed-by: epeter, vlivanov
This commit is contained in:
Eric Fang 2026-06-02 06:37:35 +00:00 committed by Emanuel Peter
parent 29e37422a5
commit 9c244ec182
2 changed files with 648 additions and 196 deletions

View File

@ -2727,9 +2727,7 @@ Node* XorVNode::Ideal_XorV_VectorMaskCmp(PhaseGVN* phase, bool can_reshape) {
Node* in1 = in(1);
Node* in2 = in(2);
// Transformations for predicated vectors are not supported for now.
if (is_predicated_vector() ||
in1->is_predicated_vector() ||
in2->is_predicated_vector()) {
if (is_predicated_vector()) {
return nullptr;
}
@ -2753,6 +2751,7 @@ Node* XorVNode::Ideal_XorV_VectorMaskCmp(PhaseGVN* phase, bool can_reshape) {
}
if (in1->Opcode() != Op_VectorMaskCmp ||
in1->outcnt() != 1 ||
in1->is_predicated_vector() ||
!in1->as_VectorMaskCmp()->predicate_can_be_negated() ||
!VectorNode::is_all_ones_vector(in2)) {
return nullptr;