Re: [PATCH] i386: Enable AVX512 memory broadcast for FMA

2018-10-18 Thread Uros Bizjak
On Thu, Oct 18, 2018 at 1:54 PM H.J. Lu wrote: > > On 10/18/18, Uros Bizjak wrote: > > On Thu, Oct 18, 2018 at 1:19 PM H.J. Lu wrote: > > > >> >> +(define_insn > >> >> "*fma_fmadd__bcst_1" > >> >> + [(set (match_operand:VF_AVX512 0 "register_operand" "=v,v") > >> >> + (fma:VF_AVX512 > >>

Re: [PATCH] i386: Enable AVX512 memory broadcast for FMA

2018-10-18 Thread H.J. Lu
gt; This is expected, there is no memory operand there. Can you check what > prevents combiner from propagating memory into the insn? Failed to match this instruction: (set (reg:V16SF 91) (fma:V16SF (reg/v:V16SF 85 [ x ]) (reg:V16SF 21 xmm1 [ y ]) (const_vector:V16SF [

Re: [PATCH] i386: Enable AVX512 memory broadcast for FMA

2018-10-18 Thread Uros Bizjak
On Thu, Oct 18, 2018 at 1:19 PM H.J. Lu wrote: > >> +(define_insn "*fma_fmadd__bcst_1" > >> + [(set (match_operand:VF_AVX512 0 "register_operand" "=v,v") > >> + (fma:VF_AVX512 > >> + (match_operand:VF_AVX512 1 "nonimmediate_operand" "0,v") > >> + (match_operand:VF_AVX512 2

Re: [PATCH] i386: Enable AVX512 memory broadcast for FMA

2018-10-18 Thread H.J. Lu
se. > > If this predicate is changed to "memory_operand", then only scalars > that live in memory will be considered. Using "memory_operand" causes: FAIL: gcc.target/i386/avx512f-fmadd-sf-zmm-7.c scan-assembler-times vfmadd...ps[ \\t]+[^\n\r]+\\{1to[1-8]+\\}, %zmm[0-9]

Re: [PATCH] i386: Enable AVX512 memory broadcast for FMA

2018-10-18 Thread Uros Bizjak
On Thu, Oct 18, 2018 at 11:11 AM H.J. Lu wrote: > > Many AVX512 vector operations can broadcast from a scalar memory source. > This patch enables memory broadcast for FMA operations. > > gcc/ > > PR target/72782 > * config/i386/sse.md (VF_AVX512): New. > (avx512bcst): Likew

[PATCH] i386: Enable AVX512 memory broadcast for FMA

2018-10-18 Thread H.J. Lu
Many AVX512 vector operations can broadcast from a scalar memory source. This patch enables memory broadcast for FMA operations. gcc/ PR target/72782 * config/i386/sse.md (VF_AVX512): New. (avx512bcst): Likewise. (*fma_fmadd__bcst_1): Likewise. (*fm