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
> >>
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 [
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
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]
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
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