[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