@@ -4895,11 +4895,10 @@ instruct gather_loadS(vReg dst, indirect mem, vReg idx) %{
4895
4895
effect(TEMP_DEF dst);
4896
4896
format %{ "gather_loadS $dst, $mem, $idx" %}
4897
4897
ins_encode %{
4898
- __ vmv1r_v(as_VectorRegister($dst$$reg), as_VectorRegister($idx$$reg));
4899
4898
BasicType bt = Matcher::vector_element_basic_type(this);
4900
4899
Assembler::SEW sew = Assembler::elemtype_to_sew(bt);
4901
4900
__ vsetvli_helper(bt, Matcher::vector_length(this));
4902
- __ vsll_vi(as_VectorRegister($dst$$reg), as_VectorRegister($dst $$reg), (int)sew);
4901
+ __ vsll_vi(as_VectorRegister($dst$$reg), as_VectorRegister($idx $$reg), (int)sew);
4903
4902
__ vluxei32_v(as_VectorRegister($dst$$reg), as_Register($mem$$base),
4904
4903
as_VectorRegister($dst$$reg));
4905
4904
%}
@@ -4929,11 +4928,10 @@ instruct gather_loadS_masked(vReg dst, indirect mem, vReg idx, vRegMask_V0 v0, v
4929
4928
effect(TEMP_DEF dst, TEMP tmp);
4930
4929
format %{ "gather_loadS_masked $dst, $mem, $idx, $v0\t# KILL $tmp" %}
4931
4930
ins_encode %{
4932
- __ vmv1r_v(as_VectorRegister($tmp$$reg), as_VectorRegister($idx$$reg));
4933
4931
BasicType bt = Matcher::vector_element_basic_type(this);
4934
4932
Assembler::SEW sew = Assembler::elemtype_to_sew(bt);
4935
4933
__ vsetvli_helper(bt, Matcher::vector_length(this));
4936
- __ vsll_vi(as_VectorRegister($tmp$$reg), as_VectorRegister($tmp $$reg), (int)sew);
4934
+ __ vsll_vi(as_VectorRegister($tmp$$reg), as_VectorRegister($idx $$reg), (int)sew);
4937
4935
__ vxor_vv(as_VectorRegister($dst$$reg), as_VectorRegister($dst$$reg),
4938
4936
as_VectorRegister($dst$$reg));
4939
4937
__ vluxei32_v(as_VectorRegister($dst$$reg), as_Register($mem$$base),
@@ -4969,11 +4967,10 @@ instruct scatter_storeS(indirect mem, vReg src, vReg idx, vReg tmp) %{
4969
4967
effect(TEMP tmp);
4970
4968
format %{ "scatter_storeS $mem, $idx, $src\t# KILL $tmp" %}
4971
4969
ins_encode %{
4972
- __ vmv1r_v(as_VectorRegister($tmp$$reg), as_VectorRegister($idx$$reg));
4973
4970
BasicType bt = Matcher::vector_element_basic_type(this, $src);
4974
4971
Assembler::SEW sew = Assembler::elemtype_to_sew(bt);
4975
4972
__ vsetvli_helper(bt, Matcher::vector_length(this, $src));
4976
- __ vsll_vi(as_VectorRegister($tmp$$reg), as_VectorRegister($tmp $$reg), (int)sew);
4973
+ __ vsll_vi(as_VectorRegister($tmp$$reg), as_VectorRegister($idx $$reg), (int)sew);
4977
4974
__ vsuxei32_v(as_VectorRegister($src$$reg), as_Register($mem$$base),
4978
4975
as_VectorRegister($tmp$$reg));
4979
4976
%}
@@ -5003,11 +5000,10 @@ instruct scatter_storeS_masked(indirect mem, vReg src, vReg idx, vRegMask_V0 v0,
5003
5000
effect(TEMP tmp);
5004
5001
format %{ "scatter_storeS_masked $mem, $idx, $src, $v0\t# KILL $tmp" %}
5005
5002
ins_encode %{
5006
- __ vmv1r_v(as_VectorRegister($tmp$$reg), as_VectorRegister($idx$$reg));
5007
5003
BasicType bt = Matcher::vector_element_basic_type(this, $src);
5008
5004
Assembler::SEW sew = Assembler::elemtype_to_sew(bt);
5009
5005
__ vsetvli_helper(bt, Matcher::vector_length(this, $src));
5010
- __ vsll_vi(as_VectorRegister($tmp$$reg), as_VectorRegister($tmp $$reg), (int)sew);
5006
+ __ vsll_vi(as_VectorRegister($tmp$$reg), as_VectorRegister($idx $$reg), (int)sew);
5011
5007
__ vsuxei32_v(as_VectorRegister($src$$reg), as_Register($mem$$base),
5012
5008
as_VectorRegister($tmp$$reg), Assembler::v0_t);
5013
5009
%}
0 commit comments