This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: backport the fixes of PR target/64011 and /61749 to 4.9 gcc
- From: Marcus Shawcroft <marcus dot shawcroft at gmail dot com>
- To: weixiangyu <weixiangyu at huawei dot com>
- Cc: James Greenhalgh <james dot greenhalgh at arm dot com>, "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>, Marcus Shawcroft <Marcus dot Shawcroft at arm dot com>, Richard Earnshaw <Richard dot Earnshaw at arm dot com>
- Date: Thu, 11 Jun 2015 10:25:18 +0100
- Subject: Re: backport the fixes of PR target/64011 and /61749 to 4.9 gcc
- Authentication-results: sourceware.org; auth=none
- References: <894B9D8AA7173E40BFFBBF195B8281BCB75B4B at SZXEMI503-MBX dot china dot huawei dot com> <20150528135737 dot GA3964 at arm dot com> <894B9D8AA7173E40BFFBBF195B8281BCB76A18 at SZXEMI503-MBX dot china dot huawei dot com>
On 10 June 2015 at 03:46, weixiangyu <weixiangyu@huawei.com> wrote:
> Updated patches were attached. Rebased on the latest 4.9 branch.
> Tested on aarch64-linux (big-endian and little-endian) with qemu.
> OK for 4.9?
Hi,
> And the second one:
The original r215046 mainline commit contains a test case that is
omitted from the proposed back port, can you elaborate why you have
chosen to drop the test case?
The usual convention on this list is to post one patch per email such
that each email thread discusses just one patch.
Thanks
/Marcus
> Index: gcc/ChangeLog
> ===================================================================
> --- gcc/ChangeLog (revision 223867)
> +++ gcc/ChangeLog (working copy)
> @@ -1,3 +1,28 @@
> +2015-06-09 Xiangyu Wei <weixiangyu@huawei.com>
> +
> + Backport from mainline r215046:
> + 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
> + PR target/61749
> + * config/aarch64/aarch64-builtins.c (aarch64_types_quadop_qualifiers):
> + Use qualifier_immediate for last operand. Rename to...
> + (aarch64_types_ternop_lane_qualifiers): ... This.
> + (TYPES_QUADOP): Rename to...
> + (TYPES_TERNOP_LANE): ... This.
> + (aarch64_simd_expand_args): Return const0_rtx when encountering user
> + error. Change return of 0 to return of NULL_RTX.
> + (aarch64_crc32_expand_builtin): Likewise.
> + (aarch64_expand_builtin): Return NULL_RTX instead of 0.
> + ICE when expanding unknown builtin.
> + * config/aarch64/aarch64-simd-builtins.def (sqdmlal_lane): Use
> + TERNOP_LANE qualifiers.
> + (sqdmlsl_lane): Likewise.
> + (sqdmlal_laneq): Likewise.
> + (sqdmlsl_laneq): Likewise.
> + (sqdmlal2_lane): Likewise.
> + (sqdmlsl2_lane): Likewise.
> + (sqdmlal2_laneq): Likewise.
> + (sqdmlsl2_laneq): Likewise.
> + * gcc.target/aarch64/vqdml_lane_intrinsics-bad_1.c: New test.
> Index: gcc/config/aarch64/aarch64-builtins.c
> ===================================================================
> --- gcc/config/aarch64/aarch64-builtins.c (revision 223867)
> +++ gcc/config/aarch64/aarch64-builtins.c (working copy)
> @@ -172,10 +172,10 @@ aarch64_types_ternopu_qualifiers[SIMD_MAX_BUILTIN_
> #define TYPES_TERNOPU (aarch64_types_ternopu_qualifiers)
>
> static enum aarch64_type_qualifiers
> -aarch64_types_quadop_qualifiers[SIMD_MAX_BUILTIN_ARGS]
> +aarch64_types_ternop_lane_qualifiers[SIMD_MAX_BUILTIN_ARGS]
> = { qualifier_none, qualifier_none, qualifier_none,
> - qualifier_none, qualifier_none };
> -#define TYPES_QUADOP (aarch64_types_quadop_qualifiers)
> + qualifier_none, qualifier_immediate };
> +#define TYPES_TERNOP_LANE (aarch64_types_ternop_lane_qualifiers)
>
> static enum aarch64_type_qualifiers
> aarch64_types_getlane_qualifiers[SIMD_MAX_BUILTIN_ARGS]
> @@ -818,8 +818,11 @@ aarch64_simd_expand_args (rtx target, int icode, i
> case SIMD_ARG_CONSTANT:
> if (!(*insn_data[icode].operand[argc + have_retval].predicate)
> (op[argc], mode[argc]))
> - error_at (EXPR_LOCATION (exp), "incompatible type for argument %d, "
> + {
> + error_at (EXPR_LOCATION (exp), "incompatible type for argument %d, "
> "expected %<const int%>", argc + 1);
> + return const0_rtx;
> + }
> break;
>
> case SIMD_ARG_STOP:
> @@ -886,7 +889,7 @@ aarch64_simd_expand_args (rtx target, int icode, i
> }
>
> if (!pat)
> - return 0;
> + return NULL_RTX;
>
>> -----Original Message-----
>> From: James Greenhalgh [mailto:james.greenhalgh@arm.com]
>> Sent: Thursday, May 28, 2015 9:58 PM
>> To: weixiangyu
>> Cc: gcc-patches@gcc.gnu.org; Marcus Shawcroft; Richard Earnshaw; Yangfei
>> (Felix)
>> Subject: Re: backport the fixes of PR target/64011 and /61749 to 4.9 gcc
>>
>> On Wed, May 27, 2015 at 03:49:24AM +0100, weixiangyu wrote:
>> > Hi,
>>
>> Hi,
>>
>> > The first patch backports the fix of PR
>> > target/64011(https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64011) to
>> > the 4.9 branch from trunk r219717,
>>
>> I can't approve this patch to be backported, so please do not commit it without
>> approval from the appropriate maintainer.
>>
>> > and the second patch backports the fix of PR
>> > target/61749(https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61749) to
>> > the 4.9 branch from trunk r215046.
>>
>> This second patch is OK to backport to 4.9. It is a harmelss enough patch which
>> fixes an ICE.
>>
>> Thanks,
>> James
>>
>> > And the second one:
>> >
>> ================================================================
>> ===
>> > --- gcc/ChangeLog-HCC (revision 130589)
>> > +++ gcc/ChangeLog-HCC (revision 130590)
>> > @@ -1,3 +1,29 @@
>> > +2015-05-26 y00166676 <felix.yang@huawei.com>
>> > +
>> > + Backport from trunk r215046.
>> > + 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
>> > +
>> > + PR target/61749
>> > + * config/aarch64/aarch64-builtins.c
>> (aarch64_types_quadop_qualifiers):
>> > + Use qualifier_immediate for last operand. Rename to...
>> > + (aarch64_types_ternop_lane_qualifiers): ... This.
>> > + (TYPES_QUADOP): Rename to...
>> > + (TYPES_TERNOP_LANE): ... This.
>> > + (aarch64_simd_expand_args): Return const0_rtx when
>> encountering user
>> > + error. Change return of 0 to return of NULL_RTX.
>> > + (aarch64_crc32_expand_builtin): Likewise.
>> > + (aarch64_expand_builtin): Return NULL_RTX instead of 0.
>> > + ICE when expanding unknown builtin.
>> > + * config/aarch64/aarch64-simd-builtins.def (sqdmlal_lane): Use
>> > + TERNOP_LANE qualifiers.
>> > + (sqdmlsl_lane): Likewise.
>> > + (sqdmlal_laneq): Likewise.
>> > + (sqdmlsl_laneq): Likewise.
>> > + (sqdmlal2_lane): Likewise.
>> > + (sqdmlsl2_lane): Likewise.
>> > + (sqdmlal2_laneq): Likewise.
>> > + (sqdmlsl2_laneq): Likewise.
>> > +
>> > * gcc.target/aarch64/vqdml_lane_intrinsics-bad_1.c: New test.
>> >
>>
>