On Wed, Aug 20, 2014 at 9:45 AM, Kirill Yukhin <kirill.yuk...@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.