@@ -3601,11 +3601,10 @@ instruct gather_loadS(vReg dst, indirect mem, vReg idx) %{
36013601 effect(TEMP_DEF dst);
36023602 format %{ "gather_loadS $dst, $mem, $idx" %}
36033603 ins_encode %{
3604- __ vmv1r_v(as_VectorRegister($dst$$reg), as_VectorRegister($idx$$reg));
36053604 BasicType bt = Matcher::vector_element_basic_type(this);
36063605 Assembler::SEW sew = Assembler::elemtype_to_sew(bt);
36073606 __ vsetvli_helper(bt, Matcher::vector_length(this));
3608- __ vsll_vi(as_VectorRegister($dst$$reg), as_VectorRegister($dst $$reg), (int)sew);
3607+ __ vsll_vi(as_VectorRegister($dst$$reg), as_VectorRegister($idx $$reg), (int)sew);
36093608 __ vluxei32_v(as_VectorRegister($dst$$reg), as_Register($mem$$base),
36103609 as_VectorRegister($dst$$reg));
36113610 %}
@@ -3635,11 +3634,10 @@ instruct gather_loadS_masked(vReg dst, indirect mem, vReg idx, vRegMask_V0 v0, v
36353634 effect(TEMP_DEF dst, TEMP tmp);
36363635 format %{ "gather_loadS_masked $dst, $mem, $idx, $v0\t# KILL $tmp" %}
36373636 ins_encode %{
3638- __ vmv1r_v(as_VectorRegister($tmp$$reg), as_VectorRegister($idx$$reg));
36393637 BasicType bt = Matcher::vector_element_basic_type(this);
36403638 Assembler::SEW sew = Assembler::elemtype_to_sew(bt);
36413639 __ vsetvli_helper(bt, Matcher::vector_length(this));
3642- __ vsll_vi(as_VectorRegister($tmp$$reg), as_VectorRegister($tmp $$reg), (int)sew);
3640+ __ vsll_vi(as_VectorRegister($tmp$$reg), as_VectorRegister($idx $$reg), (int)sew);
36433641 __ vxor_vv(as_VectorRegister($dst$$reg), as_VectorRegister($dst$$reg),
36443642 as_VectorRegister($dst$$reg));
36453643 __ vluxei32_v(as_VectorRegister($dst$$reg), as_Register($mem$$base),
@@ -3675,11 +3673,10 @@ instruct scatter_storeS(indirect mem, vReg src, vReg idx, vReg tmp) %{
36753673 effect(TEMP tmp);
36763674 format %{ "scatter_storeS $mem, $idx, $src\t# KILL $tmp" %}
36773675 ins_encode %{
3678- __ vmv1r_v(as_VectorRegister($tmp$$reg), as_VectorRegister($idx$$reg));
36793676 BasicType bt = Matcher::vector_element_basic_type(this, $src);
36803677 Assembler::SEW sew = Assembler::elemtype_to_sew(bt);
36813678 __ vsetvli_helper(bt, Matcher::vector_length(this, $src));
3682- __ vsll_vi(as_VectorRegister($tmp$$reg), as_VectorRegister($tmp $$reg), (int)sew);
3679+ __ vsll_vi(as_VectorRegister($tmp$$reg), as_VectorRegister($idx $$reg), (int)sew);
36833680 __ vsuxei32_v(as_VectorRegister($src$$reg), as_Register($mem$$base),
36843681 as_VectorRegister($tmp$$reg));
36853682 %}
@@ -3709,11 +3706,10 @@ instruct scatter_storeS_masked(indirect mem, vReg src, vReg idx, vRegMask_V0 v0,
37093706 effect(TEMP tmp);
37103707 format %{ "scatter_storeS_masked $mem, $idx, $src, $v0\t# KILL $tmp" %}
37113708 ins_encode %{
3712- __ vmv1r_v(as_VectorRegister($tmp$$reg), as_VectorRegister($idx$$reg));
37133709 BasicType bt = Matcher::vector_element_basic_type(this, $src);
37143710 Assembler::SEW sew = Assembler::elemtype_to_sew(bt);
37153711 __ vsetvli_helper(bt, Matcher::vector_length(this, $src));
3716- __ vsll_vi(as_VectorRegister($tmp$$reg), as_VectorRegister($tmp $$reg), (int)sew);
3712+ __ vsll_vi(as_VectorRegister($tmp$$reg), as_VectorRegister($idx $$reg), (int)sew);
37173713 __ vsuxei32_v(as_VectorRegister($src$$reg), as_Register($mem$$base),
37183714 as_VectorRegister($tmp$$reg), Assembler::v0_t);
37193715 %}
0 commit comments