[PATCH] aarch64: Don't generate invalid zero/sign-extend syntax

Alex Coplan Alex.Coplan@arm.com
Tue Sep 8 15:41:00 GMT 2020


Hi Christophe,

> -----Original Message-----
> From: Christophe Lyon <christophe.lyon@linaro.org>
> Sent: 08 September 2020 09:15
> To: Alex Coplan <Alex.Coplan@arm.com>
> Cc: gcc Patches <gcc-patches@gcc.gnu.org>; Richard Earnshaw
> <Richard.Earnshaw@arm.com>; Marcus Shawcroft <Marcus.Shawcroft@arm.com>
> Subject: Re: [PATCH] aarch64: Don't generate invalid zero/sign-extend
> syntax
> 
> > gcc/ChangeLog:
> >
> >         * config/aarch64/aarch64.md
> >         (*adds_<optab><ALLX:mode>_<GPI:mode>): Ensure extended operand
> >         agrees with width of extension specifier.
> >         (*subs_<optab><ALLX:mode>_<GPI:mode>): Likewise.
> >         (*adds_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
> >         (*subs_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
> >         (*add_<optab><ALLX:mode>_<GPI:mode>): Likewise.
> >         (*add_<optab><ALLX:mode>_shft_<GPI:mode>): Likewise.
> >         (*add_uxt<mode>_shift2): Likewise.
> >         (*sub_<optab><ALLX:mode>_<GPI:mode>): Likewise.
> >         (*sub_<optab><ALLX:mode>_shft_<GPI:mode>): Likewise.
> >         (*sub_uxt<mode>_shift2): Likewise.
> >         (*cmp_swp_<optab><ALLX:mode>_reg<GPI:mode>): Likewise.
> >         (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Likewise.
> >
> >
> > gcc/testsuite/ChangeLog:
> >
> >         * gcc.target/aarch64/adds3.c: Fix test w.r.t. new syntax.
> >         * gcc.target/aarch64/cmp.c: Likewise.
> >         * gcc.target/aarch64/subs3.c: Likewise.
> >         * gcc.target/aarch64/subsp.c: Likewise.
> >         * gcc.target/aarch64/extend-syntax.c: New test.
> >
> 
> Hi,
> 
> I've noticed some of the new tests fail with -mabi=ilp32:
>     gcc.target/aarch64/extend-syntax.c check-function-bodies add1
>     gcc.target/aarch64/extend-syntax.c check-function-bodies add3
>     gcc.target/aarch64/extend-syntax.c check-function-bodies sub2
>     gcc.target/aarch64/extend-syntax.c check-function-bodies sub3
>     gcc.target/aarch64/extend-syntax.c scan-assembler-times
> subs\tx[0-9]+, x[0-9]+, w[0-9]+, sxtw 3 1
>     gcc.target/aarch64/subsp.c scan-assembler sub\tsp, sp, w[0-9]*, sxtw
> 4\n

Thanks for catching these.

The failures in extend-syntax.c just need the assertions tweaking, I have a
patch to fix those.

The failure in subsp.c is more interesting: looks like a missed optimisation on
ILP32, I'm taking a look.

> 
> Christophe

Thanks,
Alex


More information about the Gcc-patches mailing list