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