Skip to content

Commit 765cef4

Browse files
zifeihanRealFYang
authored andcommitted
8355878: RISC-V: jdk/incubator/vector/DoubleMaxVectorTests.java fails when using RVV
Reviewed-by: fyang, dzhang
1 parent d802fd0 commit 765cef4

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

src/hotspot/cpu/riscv/riscv.ad

+4-2
Original file line numberDiff line numberDiff line change
@@ -1596,7 +1596,8 @@ uint MachSpillCopyNode::implementation(C2_MacroAssembler *masm, PhaseRegAlloc *r
15961596
__ unspill(as_VectorRegister(Matcher::_regEncode[dst_lo]), ra_->reg2offset(src_lo));
15971597
} else if (src_lo_rc == rc_vector && dst_lo_rc == rc_vector) {
15981598
// vpr to vpr
1599-
__ vmv1r_v(as_VectorRegister(Matcher::_regEncode[dst_lo]), as_VectorRegister(Matcher::_regEncode[src_lo]));
1599+
__ vsetvli_helper(T_BYTE, MaxVectorSize);
1600+
__ vmv_v_v(as_VectorRegister(Matcher::_regEncode[dst_lo]), as_VectorRegister(Matcher::_regEncode[src_lo]));
16001601
} else {
16011602
ShouldNotReachHere();
16021603
}
@@ -1614,7 +1615,8 @@ uint MachSpillCopyNode::implementation(C2_MacroAssembler *masm, PhaseRegAlloc *r
16141615
__ unspill_vmask(as_VectorRegister(Matcher::_regEncode[dst_lo]), ra_->reg2offset(src_lo));
16151616
} else if (src_lo_rc == rc_vector && dst_lo_rc == rc_vector) {
16161617
// vmask to vmask
1617-
__ vmv1r_v(as_VectorRegister(Matcher::_regEncode[dst_lo]), as_VectorRegister(Matcher::_regEncode[src_lo]));
1618+
__ vsetvli_helper(T_BYTE, MaxVectorSize >> 3);
1619+
__ vmv_v_v(as_VectorRegister(Matcher::_regEncode[dst_lo]), as_VectorRegister(Matcher::_regEncode[src_lo]));
16181620
} else {
16191621
ShouldNotReachHere();
16201622
}

0 commit comments

Comments
 (0)