This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH i386 AVX512] [17-2/n] Split VI12_AVX512VL mode iterator. Refactor load/store insns.


On Wed, Aug 20, 2014 at 9:45 AM, Kirill Yukhin <kirill.yukhin@gmail.com> wrote:
> Hello UroÅ
> On 18 Aug 21:05, Uros Bizjak wrote:
>> BTW: Taking these new findings into account, is it possible to split
>> V_AVX512VL mode iterator in the same way to avoid compound conditions
>> in the mode iterator?
> I've refactored this iterator and fixed trunk. I've also updated all
> future changes which deal with this iterator.
>
> Patch in the bottom bootstrapped and avx-512-regtested on simulator.
>
> Is it ok for main trunk?
>
> gcc/
>         * gcc/config/i386/sse.md (define_mode_iterator V_AVX512VL): Delete.
>         (define_mode_iterator V48_AVX512VL): New.
>         (define_mode_iterator V12_AVX512VL): Ditto.
>         (define_insn <avx512>_load<mode>_mask): Split into two similar
>         patterns which use different mode iterators: V48_AVX512VL V12_AVX512VL.
>         Refactor output template.
>         (define_insn "<avx512>_store<mode>_mask"): Ditto.

OK, with a couple of small changes below.

Thanks,
Uros.

> +  snprintf (buf, 64, "%s%s%s\t{%%1, %%0%%{%%3%%}%%N2|%%0%%{%%3%%}%%N2, %%1}",

sizeof (buf) instead of hardcoded 64.


> +  if (misaligned_operand (operands[1], <MODE>mode))
> +    align = "u";
> +  else
> +    align = "a";
> +
> +  snprintf (buf, 64, "%s%s%s\t{%%1, %%0%%{%%2%%}|%%0%%{%%2%%}, %%1}",

Also here.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]