diff --git a/src/hotspot/cpu/riscv/c2_MacroAssembler_riscv.cpp b/src/hotspot/cpu/riscv/c2_MacroAssembler_riscv.cpp index 2468bf70fe5..dd9a9974f1b 100644 --- a/src/hotspot/cpu/riscv/c2_MacroAssembler_riscv.cpp +++ b/src/hotspot/cpu/riscv/c2_MacroAssembler_riscv.cpp @@ -2762,6 +2762,10 @@ void C2_MacroAssembler::compare_integral_v(VectorRegister vd, VectorRegister src case BoolTest::ge: vmsge_vv(vd, src1, src2, vm); break; case BoolTest::lt: vmslt_vv(vd, src1, src2, vm); break; case BoolTest::gt: vmsgt_vv(vd, src1, src2, vm); break; + case BoolTest::ule: vmsleu_vv(vd, src1, src2, vm); break; + case BoolTest::uge: vmsgeu_vv(vd, src1, src2, vm); break; + case BoolTest::ult: vmsltu_vv(vd, src1, src2, vm); break; + case BoolTest::ugt: vmsgtu_vv(vd, src1, src2, vm); break; default: assert(false, "unsupported compare condition"); ShouldNotReachHere(); diff --git a/src/hotspot/cpu/riscv/matcher_riscv.hpp b/src/hotspot/cpu/riscv/matcher_riscv.hpp index 2fa6e8c80ca..d1e10c34939 100644 --- a/src/hotspot/cpu/riscv/matcher_riscv.hpp +++ b/src/hotspot/cpu/riscv/matcher_riscv.hpp @@ -148,8 +148,8 @@ } // Does the CPU supports vector unsigned comparison instructions? - static constexpr bool supports_vector_comparison_unsigned(int vlen, BasicType bt) { - return false; + static bool supports_vector_comparison_unsigned(int vlen, BasicType bt) { + return UseRVV; } // Some microarchitectures have mask registers used on vectors