RFR: 8332130: RISC-V: remove wrong instructions of Vector Crypto Extension

Ludovic Henry luhenry at openjdk.org
Tue May 14 08:46:04 UTC 2024


On Tue, 14 May 2024 07:37:39 GMT, Fei Yang <fyang at openjdk.org> wrote:

>>> I think you mean the `funct3` (`OPIVV` vs `OPIVX`) encoding is wrong?
>> 
>> Yes
>
>> > I think you mean the `funct3` (`OPIVV` vs `OPIVX`) encoding is wrong?
>> 
>> Yes
> 
> From the RVV spec [1], the `funct3` encoding for `OPIVX` is 0b100, which is also reflected on the instruction encoding.
> So why would you think it's wrong? Anything I missed? 
> 
> [1] https://github.com/riscv/riscv-v-spec/blob/master/v-spec.adoc#vector-arithmetic-instruction-formats

@RealFYang the `.vx` variant expect a **scalar** register while our `vandn_vx` takes a **vector** register. If we had a use for `vandn_vx` (or any of the other removed instructions), we would need to add another section with

#define INSN(NAME, op, funct3, funct6)                                                             \
  void NAME(VectorRegister Vd, VectorRegister Vs2, Register Rs1, VectorMask vm = unmasked) { \
    patch_VArith(op, Vd, funct3, Rs1->raw_encoding(), Vs2, vm, funct6);                            \
  }


But given we have no use for these instructions, I'm ok with removing them.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/19211#issuecomment-2109617260


More information about the hotspot-compiler-dev mailing list