(synopsis is provisional, feel free to change as you see fit)
SonarCloud reports that the if-else-branch in Reverse*VNode::Identity has the same code:
Node* ReverseBytesVNode::Identity(PhaseGVN* phase) {
if (is_predicated_using_blend()) {
return this;
}
// ReverseBytesV (ReverseBytesV X , MASK) , MASK => X
if (in(1)->Opcode() == Op_ReverseBytesV) {
if (is_predicated_vector() && in(1)->is_predicated_vector() && in(2) == in(1)->in(2)) {
return in(1)->in(1);
} else {
// ReverseBytesV (ReverseBytesV X) => X
return in(1)->in(1);
}
}
return this;
}
Seems to me the first condition checks that MASKs are the same in both nodes. But if they are not, we are falling to "else" branch, where we do the same transformation anyway. So, there might be a bug lurking there when MASKs are different.