RFR: 8318650: Optimized subword gather for x86 targets. [v13]

Jatin Bhateja jbhateja at openjdk.org
Sun Feb 25 06:27:10 UTC 2024


On Tue, 20 Feb 2024 08:04:27 GMT, Emanuel Peter <epeter at openjdk.org> wrote:

>> src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp line 1584:
>> 
>>> 1582:     Label *larr[] = {&case0, &case1, &case2, &case3};
>>> 1583:     for (int i = 0; i < 4; i++) {
>>> 1584:       // dst[i] = mask ? src[index[i]] : 0
>> 
>> I like these comments a lot!
>> They would be even better if they had a more clear relation to the register names.
>> 
>> `dst[i] = mask[i+midx] ? src[idx_base[i]] : 0`
>> It would then be helpful to know the types of these arrays.
>> It seems that `idx_base` is an array with type int, right?
>
> Ah, and can we use `base_index`? Otherwise we have an inconsistency with `index` vs `idx`.

We are accessing two arrays here, source arrays and index arrays, registers holding their addresses are 'base' and 'idx_base', naming looks appropriate in this context. Comments adjusted to reflect actual register names.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/16354#discussion_r1501753568


More information about the core-libs-dev mailing list