RFR: 8320347: Emulate vblendvp[sd] on ECore [v2]

Volodymyr Paprotski duke at openjdk.org
Thu Nov 23 00:19:14 UTC 2023


On Tue, 21 Nov 2023 18:12:15 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:

>> Volodymyr Paprotski has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains three additional commits since the last revision:
>> 
>>  - Merge remote-tracking branch 'jdk/master' into vp-ecore2
>>  - review comments
>>  - emulate vblend on ecores
>
> src/hotspot/cpu/x86/x86_64.ad line 4519:
> 
>> 4517:       __ vcmpps($btmp$$XMMRegister, $atmp$$XMMRegister, $atmp$$XMMRegister, Assembler::_false, vector_len);
>> 4518:       __ vblendvps($dst$$XMMRegister, $tmp$$XMMRegister, $atmp$$XMMRegister, $btmp$$XMMRegister, vector_len, true, $btmp$$XMMRegister);
>> 4519:     }
> 
> Please move into a new macro assembly routine.

moved to existing routine

> src/hotspot/cpu/x86/x86_64.ad line 4568:
> 
>> 4566:       __ vcmppd($btmp$$XMMRegister, $atmp$$XMMRegister, $atmp$$XMMRegister, Assembler::_false, vector_len);
>> 4567:       __ vblendvpd($dst$$XMMRegister, $tmp$$XMMRegister, $atmp$$XMMRegister, $btmp$$XMMRegister, vector_len, true, $btmp$$XMMRegister);
>> 4568:     }
> 
> Please move to a new macro assembly routine.

moved to existing routine

> src/hotspot/cpu/x86/x86_64.ad line 4645:
> 
>> 4643:      "vcmppd.unordered $btmp,$atmp,$atmp        \n\t"
>> 4644:      "vblendvpd        $dst,$tmp,$atmp,$btmp    \n\t"
>> 4645:   %}
> 
> Format block may not be valid for e-cores, you can replace it with following to be consistent on both the cores. 
>          `                minD $dst, $a, $b \t! using %tmp, %atmp and %btmp as TEMP `

Done

> src/hotspot/cpu/x86/x86_64.ad line 4665:
> 
>> 4663:       __ vcmppd($btmp$$XMMRegister, $atmp$$XMMRegister, $atmp$$XMMRegister, Assembler::_false, vector_len);
>> 4664:       __ vblendvpd($dst$$XMMRegister, $tmp$$XMMRegister, $atmp$$XMMRegister, $btmp$$XMMRegister, vector_len, true, $btmp$$XMMRegister);
>> 4665:     }
> 
> Please move this logic into a new macro assembly routine.

of-course, should had used the other c2_MarcoAssembler_x86 routine to begin with! thanks, fixed:

__ vminmax_fp(Op_MaxV, T_FLOAT, $dst$$XMMRegister, $a$$XMMRegister, $b$$XMMRegister, $tmp$$XMMRegister, $atmp$$XMMRegister, $btmp$$XMMRegister, Assembler::AVX_128bit);

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

PR Review Comment: https://git.openjdk.org/jdk/pull/16716#discussion_r1402816984
PR Review Comment: https://git.openjdk.org/jdk/pull/16716#discussion_r1402816912
PR Review Comment: https://git.openjdk.org/jdk/pull/16716#discussion_r1402816036
PR Review Comment: https://git.openjdk.org/jdk/pull/16716#discussion_r1402816017


More information about the hotspot-dev mailing list