Skip to content
Closed
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions src/hotspot/share/opto/vectorIntrinsics.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2960,10 +2960,11 @@ bool LibraryCallKit::inline_vector_select_from_two_vectors() {
}

int cast_vopc = VectorCastNode::opcode(-1, elem_bt, true);
if (is_floating_point_type(elem_bt)) {
if (!arch_supports_vector(Op_AndV, num_elem, index_elem_bt, VecMaskNotUsed) ||
!arch_supports_vector(cast_vopc, num_elem, index_elem_bt, VecMaskNotUsed) ||
!arch_supports_vector(Op_Replicate, num_elem, index_elem_bt, VecMaskNotUsed)) {
if (!lowerSelectFromOp) {
if (!arch_supports_vector(Op_AndV, num_elem, index_elem_bt, VecMaskNotUsed) ||
!arch_supports_vector(Op_Replicate, num_elem, index_elem_bt, VecMaskNotUsed) ||
(is_floating_point_type(elem_bt) &&
!arch_supports_vector(cast_vopc, num_elem, index_elem_bt, VecMaskNotUsed))) {
log_if_needed(" ** index wrapping not supported: vlen=%d etype=%s" ,
num_elem, type2name(elem_bt));
return false; // not supported
Expand Down