Skip to content

Commit 01060ad

Browse files
author
Jatin Bhateja
committed
8325083: jdk/incubator/vector/Double512VectorTests.java crashes in Assembler::vex_prefix_and_encode
Reviewed-by: kvn, sviswanathan
1 parent 673f767 commit 01060ad

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

src/hotspot/cpu/x86/x86.ad

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7235,18 +7235,28 @@ instruct vxor_mem(vec dst, vec src, memory mem) %{
72357235
// --------------------------------- VectorCast --------------------------------------
72367236

72377237
instruct vcastBtoX(vec dst, vec src) %{
7238+
predicate(VM_Version::supports_avx512vl() || Matcher::vector_element_basic_type(n) != T_DOUBLE);
72387239
match(Set dst (VectorCastB2X src));
72397240
format %{ "vector_cast_b2x $dst,$src\t!" %}
72407241
ins_encode %{
7241-
assert(UseAVX > 0, "required");
7242-
72437242
BasicType to_elem_bt = Matcher::vector_element_basic_type(this);
72447243
int vlen_enc = vector_length_encoding(this);
72457244
__ vconvert_b2x(to_elem_bt, $dst$$XMMRegister, $src$$XMMRegister, vlen_enc);
72467245
%}
72477246
ins_pipe( pipe_slow );
72487247
%}
72497248

7249+
instruct vcastBtoD(legVec dst, legVec src) %{
7250+
predicate(!VM_Version::supports_avx512vl() && Matcher::vector_element_basic_type(n) == T_DOUBLE);
7251+
match(Set dst (VectorCastB2X src));
7252+
format %{ "vector_cast_b2x $dst,$src\t!" %}
7253+
ins_encode %{
7254+
int vlen_enc = vector_length_encoding(this);
7255+
__ vconvert_b2x(T_DOUBLE, $dst$$XMMRegister, $src$$XMMRegister, vlen_enc);
7256+
%}
7257+
ins_pipe( pipe_slow );
7258+
%}
7259+
72507260
instruct castStoX(vec dst, vec src) %{
72517261
predicate((UseAVX <= 2 || !VM_Version::supports_avx512vlbw()) &&
72527262
Matcher::vector_length(n->in(1)) <= 8 && // src

0 commit comments

Comments
 (0)