@@ -4424,9 +4424,9 @@ instruct insert8D(vec dst, vec src, regD val, immI idx, rRegL tmp, legVec vtmp)
4424
4424
4425
4425
// =======================Int Reduction==========================================
4426
4426
4427
- instruct reductionI(rRegI dst, rRegI src1, vec src2, vec vtmp1, vec vtmp2) %{
4427
+ instruct reductionI(rRegI dst, rRegI src1, legVec src2, legVec vtmp1, legVec vtmp2) %{
4428
4428
predicate(vector_element_basic_type(n->in(2)) == T_INT &&
4429
- vector_length(n->in(2)) < 16); // src2
4429
+ vector_length(n->in(2)) <= 16); // src2
4430
4430
match(Set dst (AddReductionVI src1 src2));
4431
4431
match(Set dst (MulReductionVI src1 src2));
4432
4432
match(Set dst (AndReductionV src1 src2));
@@ -4444,26 +4444,6 @@ instruct reductionI(rRegI dst, rRegI src1, vec src2, vec vtmp1, vec vtmp2) %{
4444
4444
ins_pipe( pipe_slow );
4445
4445
%}
4446
4446
4447
- instruct reduction16I(rRegI dst, rRegI src1, legVec src2, legVec vtmp1, legVec vtmp2) %{
4448
- predicate(vector_element_basic_type(n->in(2)) == T_INT &&
4449
- vector_length(n->in(2)) == 16); // src2
4450
- match(Set dst (AddReductionVI src1 src2));
4451
- match(Set dst (MulReductionVI src1 src2));
4452
- match(Set dst (AndReductionV src1 src2));
4453
- match(Set dst ( OrReductionV src1 src2));
4454
- match(Set dst (XorReductionV src1 src2));
4455
- match(Set dst (MinReductionV src1 src2));
4456
- match(Set dst (MaxReductionV src1 src2));
4457
- effect(TEMP vtmp1, TEMP vtmp2);
4458
- format %{ "vector_reduction_int $dst,$src1,$src2 ; using $vtmp1, $vtmp2 as TEMP" %}
4459
- ins_encode %{
4460
- int opcode = this->ideal_Opcode();
4461
- int vlen = vector_length(this, $src2);
4462
- __ reduceI(opcode, vlen, $dst$$Register, $src1$$Register, $src2$$XMMRegister, $vtmp1$$XMMRegister, $vtmp2$$XMMRegister);
4463
- %}
4464
- ins_pipe( pipe_slow );
4465
- %}
4466
-
4467
4447
// =======================Long Reduction==========================================
4468
4448
4469
4449
#ifdef _LP64
0 commit comments