Skip to content

Commit 3d23bd8

Browse files
committed
8254814: [Vector API] Fix an AVX512 crash after JDK-8223347
Reviewed-by: vlivanov, thartmann, psandoz
1 parent 7c0d417 commit 3d23bd8

File tree

1 file changed

+2
-22
lines changed

1 file changed

+2
-22
lines changed

src/hotspot/cpu/x86/x86.ad

Lines changed: 2 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4640,29 +4640,9 @@ instruct reduction64B(rRegI dst, rRegI src1, legVec src2, legVec vtmp1, legVec v
46404640

46414641
// =======================Short Reduction==========================================
46424642

4643-
instruct reductionS(rRegI dst, rRegI src1, vec src2, vec vtmp1, vec vtmp2) %{
4643+
instruct reductionS(rRegI dst, rRegI src1, legVec src2, legVec vtmp1, legVec vtmp2) %{
46444644
predicate(vector_element_basic_type(n->in(2)) == T_SHORT &&
4645-
vector_length(n->in(2)) <= 16); // src2
4646-
match(Set dst (AddReductionVI src1 src2));
4647-
match(Set dst (MulReductionVI src1 src2));
4648-
match(Set dst (AndReductionV src1 src2));
4649-
match(Set dst ( OrReductionV src1 src2));
4650-
match(Set dst (XorReductionV src1 src2));
4651-
match(Set dst (MinReductionV src1 src2));
4652-
match(Set dst (MaxReductionV src1 src2));
4653-
effect(TEMP vtmp1, TEMP vtmp2);
4654-
format %{ "vector_reduction_short $dst,$src1,$src2 ; using $vtmp1, $vtmp2 as TEMP" %}
4655-
ins_encode %{
4656-
int opcode = this->ideal_Opcode();
4657-
int vlen = vector_length(this, $src2);
4658-
__ reduceS(opcode, vlen, $dst$$Register, $src1$$Register, $src2$$XMMRegister, $vtmp1$$XMMRegister, $vtmp2$$XMMRegister);
4659-
%}
4660-
ins_pipe( pipe_slow );
4661-
%}
4662-
4663-
instruct reduction32S(rRegI dst, rRegI src1, legVec src2, legVec vtmp1, legVec vtmp2) %{
4664-
predicate(vector_element_basic_type(n->in(2)) == T_SHORT &&
4665-
vector_length(n->in(2)) == 32); // src2
4645+
vector_length(n->in(2)) <= 32); // src2
46664646
match(Set dst (AddReductionVI src1 src2));
46674647
match(Set dst (MulReductionVI src1 src2));
46684648
match(Set dst (AndReductionV src1 src2));

0 commit comments

Comments
 (0)