[vectorIntrinsics+mask] RFR: 8266287: Basic mask IR implementation for the Vector API masking feature support

Jatin Bhateja jbhateja at openjdk.java.net
Fri May 14 07:54:04 UTC 2021


On Thu, 13 May 2021 02:00:44 GMT, Xiaohong Gong <xgong at openjdk.org> wrote:

>> src/hotspot/share/opto/matcher.cpp line 2332:
>> 
>>> 2330:     return;
>>> 2331:   }
>>> 2332: 
>> 
>> If we add a new flag for masked nodes, it may simplify the checking logic for masking operations.  e.g. 
>> node.hpp:
>> class Node {
>>   // Flags are sorted by usage frequency.
>>   enum NodeFlags {
>>     Flag_is_Copy                     = 1 << 0, // should be first bit to avoid shift
>>     Flag_rematerialize               = 1 << 1,
>>     Flag_needs_anti_dependence_check = 1 << 2,
>>     Flag_is_macro                    = 1 << 3,
>>     Flag_is_Con                      = 1 << 4,
>>     Flag_is_cisc_alternate           = 1 << 5,
>>     Flag_is_dead_loop_safe           = 1 << 6,
>>     Flag_may_be_short_branch         = 1 << 7,
>>     Flag_avoid_back_to_back_before   = 1 << 8,
>>     Flag_avoid_back_to_back_after    = 1 << 9,
>>     Flag_has_call                    = 1 << 10,
>>     Flag_is_reduction                = 1 << 11,
>>     Flag_is_scheduled                = 1 << 12,
>>     **Flag_has_vector_mask_set**         = 1 << 13,
>
> Good suggestion! Thanks! So do you mean using the new flag instead of `"n->in(3)->is_VectorMask()" ` ? I'm not very clarified about what the checking logic for masking operations you mean. Could you please elaborate more about this? Thanks so much!

Yes, setting a new flag over IR node could simplify the checks , and could be used in matcher patterns also.

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

PR: https://git.openjdk.java.net/panama-vector/pull/78


More information about the panama-dev mailing list