[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