[PATCH i386 AVX512] [8/n] Extend substs for new patterns.

Uros Bizjak ubizjak@gmail.com
Wed Aug 13 17:40:00 GMT 2014


On Wed, Aug 13, 2014 at 4:23 PM, Kirill Yukhin <kirill.yukhin@gmail.com> wrote:

>> >> In a couple of places, <MODE_SIZE> checks are changed to GET_MODE_SIZE
>> >> (GET_MODE (operands[0])) and in a similar way, <MODE>mode checks were
>> >> changed to GET_MODE (operands[0]). The previous checks are more
>> >> efficient and are preferred. Is there a reason you need to check
>> >> operands[0] dynamically?
>> >
>> > I agree, runtime tests are worse. But this subst attributes are used
>> > in patterns which actually do not contain mode iterators at all.
>>
>> IMO, two different subst patterns should be used in this case, one for
>> patterns with and one for patterns w/o mode iterators.
>
> That was my second thought after I hit `send'.
>
> Updated patch in the bottom
>
> Bootstrapped.
>
> (Regtest w/ new tests is in progress).
>
> Is it ok if pass?
>
> gcc/
>         * config/i386/sse.md: Allow V64QI, V32QI, V32HI, V4HI modes.
>         * config/i386/subst.md
>         (define_mode_iterator SUBST_V): Update.
>         (define_mode_iterator SUBST_A): Ditto.
>         (define_subst_attr "mask_operand7"): New.
>         (define_subst_attr "mask_operand10"): New.
>         (define_subst_attr "mask_operand_arg34") : New.
>         (define_subst_attr "mask_expand_op3"): New.
>         (define_subst_attr "mask_mode512bit_condition"): Handle TARGET_AVX512VL.
>         (define_subst_attr "sd_mask_mode512bit_condition"): Ditto.
>         (define_subst_attr "mask_avx512vl_condition"): New.
>         (define_subst_attr "round_mask_operand4"): Ditto.
>         (define_subst_attr "round_mask_scalar_op3"): Delete.
>         (define_subst_attr "round_mask_op4"): New.
>         (define_subst_attr "round_mode512bit_condition"): Allow V8DImode,
>         V16SImode.
>         (define_subst_attr "round_modev8sf_condition"): New.
>         (define_subst_attr "round_modev4sf_condition"): GET_MODE instead of
>         <MODE>mode.
>         (define_subst_attr "round_saeonly_mask_operand4"): New.
>         (define_subst_attr "round_saeonly_mask_op4"): New.
>         (define_subst_attr "round_saeonly_mode512bit_condition"): Allow
>         V8DImode, V16SImode.
>         (define_subst_attr "round_saeonly_modev8sf_condition"): New.
>         (define_subst_attr "mask_expand4_name" "mask_expand4"): New.
>         (define_subst_attr "mask_expand4_args"): New.
>         (define_subst "mask_expand4"): New.

This is OK.

Thanks,
Uros.



More information about the Gcc-patches mailing list