RFR: 8302908: RISC-V: Support masked vector arithmetic instructions for Vector API [v13]
Dingli Zhang
dzhang at openjdk.org
Fri Apr 7 12:16:46 UTC 2023
On Fri, 7 Apr 2023 02:43:52 GMT, Gui Cao <gcao at openjdk.org> wrote:
>> src/hotspot/cpu/riscv/riscv_v.ad line 2457:
>>
>>> 2455: %}
>>> 2456:
>>> 2457: instruct vmask_gen_sub(vRegMask dst, iRegL src1, iRegL src2) %{
>>
>> (One more comment) This rule looks redundant for RISC-V. We have this on AArch64 because we can match the nodes to SVE `whileXX` to save a `sub` instruction. But it looks no instruction is saved according to your RISC-V implementation. Actually, `SubL` and `VectorMaskGen` can be matched separately without this.
>
> Hi, thanks for the review. this node is really not needed here,`SubL` and `VectorMaskGen` can be matched separately without this.
> After removing this node, `SubL` and `VectorMaskGen` can be matched separately, The compilation log is as follows:
>
> 148 B11: # out( B21 B12 ) <- in( B9 ) Freq: 0.00838607
> 148 addw R7, R29, zr #@convI2L_reg_reg
> 14c addw R28, R28, zr #@convI2L_reg_reg
> 150 sub R7, R7, R28 #@subL_reg_reg
> 154 vmask_gen_L V0, R7
> 15c vstoremask V5, V0
> 168 ld R30, [R23, #264] # ptr, #@loadP
> 16c ld R7, [R23, #280] # ptr, #@loadP
> 170 addi R28, R30, #48 # ptr, #@addP_reg_imm
> 174 bgeu R28, R7, B21 #@cmpP_branch P=0.000100 C=-1.000000
Thanks and fixed.
The 75 tests under `test/jdk/jdk/incubator/vector` passed as usual.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/12682#discussion_r1160660600
More information about the hotspot-compiler-dev
mailing list