[jdk18] RFR: 8278267: ARM32: several vector test failures for ASHR [v3]

Hao Sun haosun at openjdk.java.net
Tue Jan 4 04:05:16 UTC 2022


On Mon, 3 Jan 2022 22:39:04 GMT, Dean Long <dlong at openjdk.org> wrote:

>> Hao Sun has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Make minimal updates to exisiting rules
>>   
>>   1. logical left shift rules
>>   a). add is_var_shift check for vslAA_immI rules.
>>   b). for vslAA_reg rules, remove the matching for URShiftV cases as we
>>   have the separate logical right shift rules now.
>>   
>>   2. logical right shift rules
>>   a). add vsrlAA_reg and vsrlAA_reg_var rules.
>>   b). add is_var_shift check for vsrlAA_immI rules.
>>   
>>   3. arithmetic right shift rules
>>   a). add is_var_shift check for vsraAA_reg rules.
>>   b). add vsraAA_reg_var rules
>>   c). for vsraAA_immI rules, add is_var_shift check and update the match
>>   primitive.
>>   
>>   Code style issues(FIXME and the surrounding space in ins_pipe):
>>   1. for modified rules, keep it as it was
>>   2. for newly added rules, update the style
>
> src/hotspot/cpu/arm/arm.ad line 10795:
> 
>> 10793: 
>> 10794: instruct vsl8B_immI(vecD dst, vecD src, immI shift) %{
>> 10795:   predicate(n->as_Vector()->length() == 8 && !n->as_ShiftV()->is_var_shift());
> 
> Is checking for is_var_shift() really necessary for these immI rules?  It seems like it should never happen, so it could be an assert.

An assertion should be better, but I didn't find a proper way to add one assertion for `instruct` according to `src/hotspot/share/adlc/Doc/Syntax.doc`.

Hence I'd like to put this check to `predicate`, and "bad AD file` assertion would be issued for unexpected cases.

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

PR: https://git.openjdk.java.net/jdk18/pull/41


More information about the hotspot-compiler-dev mailing list