RFR: 8286972: Support the new loop induction variable related PopulateIndex IR node on x86 [v3]

Jatin Bhateja jbhateja at openjdk.java.net
Fri May 20 06:07:46 UTC 2022


On Fri, 20 May 2022 05:10:59 GMT, Sandhya Viswanathan <sviswanathan at openjdk.org> wrote:

>> src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp line 2311:
>> 
>>> 2309:       case T_SHORT: evpbroadcastw(dst, src, vlen_enc); return;
>>> 2310:       case T_FLOAT: case T_INT: evpbroadcastd(dst, src, vlen_enc); return;
>>> 2311:       case T_DOUBLE: case T_LONG: evpbroadcastq(dst, src, vlen_enc); return;
>> 
>> Can't we use single and double precision broadcasts for floating point types, like you have done in else part
>> It may save domain switch over penalty (Section 3.5.2.2 Bypass between Execution Domains, Intel® 64 and IA-32 Architectures Optimization Reference Manual)
>
> The floating point broadcast doesn't take the gpr as second source.

A prior move as in else part may be emitted for consistency or you want to keep floating point broadcasts only for else part.

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

PR: https://git.openjdk.java.net/jdk/pull/8778


More information about the hotspot-compiler-dev mailing list