[PATCH] Revert to uniform vector CTOR canonicalization

Christophe Lyon christophe.lyon@linaro.org
Thu Dec 5 13:04:00 GMT 2019


On Thu, 5 Dec 2019 at 12:59, Richard Biener <rguenther@suse.de> wrote:
>
> On Thu, 5 Dec 2019, Christophe Lyon wrote:
>
> > Hi,
> >
> >
> > On Tue, 3 Dec 2019 at 15:46, Richard Biener <rguenther@suse.de> wrote:
> > >
> > >
> > > The PR shows I added the bail-out prematurely.
> > >
> > > Bootstrapped and tested on x86_64-unknown-linux-gnu, applied.
> > >
> > > Richard.
> > >
> > > 2019-12-03  Richard Biener  <rguenther@suse.de>
> > >
> > >         PR tree-optimization/92758
> > >         * tree-ssa-forwprop.c (simplify_vector_constructor): Restore
> > >         operation on uniform vectors.
> > >
> >
> > This patch (r278938) causes a regression on aarch64:
> > FAIL: gcc.target/aarch64/fmla_intrinsic_1.c scan-assembler-times
> > fmla\\tv[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s\\[[0-9]+\\] 2
> > FAIL: gcc.target/aarch64/fmls_intrinsic_1.c scan-assembler-times
> > fmls\\tv[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s\\[[0-9]+\\] 2
> > FAIL: gcc.target/aarch64/fmul_intrinsic_1.c scan-assembler-times
> > fmul\\td[0-9]+, d[0-9]+, d[0-9]+ 1
> > FAIL: gcc.target/aarch64/fmul_intrinsic_1.c scan-assembler-times
> > fmul\\tv[0-9]+.2d, v[0-9]+.2d, v[0-9]+.d\\[[0-9]+\\] 3
> > FAIL: gcc.target/aarch64/fmul_intrinsic_1.c scan-assembler-times
> > fmul\\tv[0-9]+.2s, v[0-9]+.2s, v[0-9]+.s\\[[0-9]+\\] 2
> > FAIL: gcc.target/aarch64/simd/vmulx_laneq_f32_1.c scan-assembler-times
> > fmulx[ \t]+[vV][0-9]+.2[sS], ?[vV][0-9]+.2[sS],
> > ?[vV][0-9]+.[sS]\\[0\\]\n 1
> > FAIL: gcc.target/aarch64/simd/vmulx_laneq_f32_1.c scan-assembler-times
> > fmulx[ \t]+[vV][0-9]+.2[sS], ?[vV][0-9]+.2[sS],
> > ?[vV][0-9]+.[sS]\\[1\\]\n 1
> > FAIL: gcc.target/aarch64/simd/vmulx_laneq_f32_1.c scan-assembler-times
> > fmulx[ \t]+[vV][0-9]+.2[sS], ?[vV][0-9]+.2[sS],
> > ?[vV][0-9]+.[sS]\\[2\\]\n 1
> > FAIL: gcc.target/aarch64/simd/vmulx_laneq_f32_1.c scan-assembler-times
> > fmulx[ \t]+[vV][0-9]+.2[sS], ?[vV][0-9]+.2[sS],
> > ?[vV][0-9]+.[sS]\\[3\\]\n 1
> > FAIL: gcc.target/aarch64/simd/vmulx_laneq_f64_1.c scan-assembler-times
> > fmulx[ \t]+[dD][0-9]+, ?[dD][0-9]+, ?[vV][0-9]+.[dD]\\[0\\]\n 1
> > FAIL: gcc.target/aarch64/simd/vmulx_laneq_f64_1.c scan-assembler-times
> > fmulx[ \t]+[dD][0-9]+, ?[dD][0-9]+, ?[vV][0-9]+.[dD]\\[1\\]\n 1
> > FAIL: gcc.target/aarch64/singleton_intrinsics_1.c scan-assembler-times
> > aarch64_get_lanev2di 2
> >
> > Do you want me to file a PR?
>
> Yes please.
>
OK, this is PR92822

> Richard.
>
> > Thanks,
> >
> > Christophe
> >
> >
> > > Index: gcc/tree-ssa-forwprop.c
> > > ===================================================================
> > > --- gcc/tree-ssa-forwprop.c     (revision 278930)
> > > +++ gcc/tree-ssa-forwprop.c     (working copy)
> > > @@ -2043,8 +2043,7 @@ simplify_vector_constructor (gimple_stmt
> > >    gcc_checking_assert (TREE_CODE (op) == CONSTRUCTOR
> > >                        && TREE_CODE (type) == VECTOR_TYPE);
> > >
> > > -  if (!TYPE_VECTOR_SUBPARTS (type).is_constant (&nelts)
> > > -      || uniform_vector_p (op))
> > > +  if (!TYPE_VECTOR_SUBPARTS (type).is_constant (&nelts))
> > >      return false;
> > >    elem_type = TREE_TYPE (type);
> > >    elem_size = TREE_INT_CST_LOW (TYPE_SIZE (elem_type));
> >
>
> --
> Richard Biener <rguenther@suse.de>
> SUSE Software Solutions Germany GmbH, Maxfeldstrasse 5, 90409 Nuernberg,
> Germany; GF: Felix Imendörffer; HRB 36809 (AG Nuernberg)



More information about the Gcc-patches mailing list