public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/61749] New: arm_neon.h "_lane" and "_n" intrinsics can cause ICEs
@ 2014-07-08 14:46 jgreenhalgh at gcc dot gnu.org
2014-07-08 14:47 ` [Bug target/61749] " jgreenhalgh at gcc dot gnu.org
` (5 more replies)
0 siblings, 6 replies; 7+ messages in thread
From: jgreenhalgh at gcc dot gnu.org @ 2014-07-08 14:46 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61749
Bug ID: 61749
Summary: arm_neon.h "_lane" and "_n" intrinsics can cause ICEs
Product: gcc
Version: 4.8.4
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: jgreenhalgh at gcc dot gnu.org
Given the following, all release branch and trunk AArch64 compilers will ICE
trying to expand the intrinsic.
#include "arm_neon.h"
int32x4_t foo (int32x4_t a, int16x4_t b, int16x4_t c, int d)
{
return vqdmlal_lane_s16 (a, b, c, 0);
}
As so:
/work/gcc-dev/build-aarch64-none-elf/install/lib/gcc/aarch64-none-elf/4.10.0/include/arm_neon.h:
In function 'foo':
/work/gcc-dev/build-aarch64-none-elf/install/lib/gcc/aarch64-none-elf/4.10.0/include/arm_neon.h:19294:10:
internal compiler error: in aarch64_simd_lane_bounds, at
config/aarch64/aarch64.c:7715
return __builtin_aarch64_sqdmlal_lanev4hi (__a, __b, __c, __d);
^
0xc608d0 aarch64_simd_lane_bounds(rtx_def*, long, long)
/work/gcc-dev/src/gcc/gcc/config/aarch64/aarch64.c:7715
0xcb0221 gen_aarch64_sqdmlal_lanev4hi(rtx_def*, rtx_def*, rtx_def*, rtx_def*,
rtx_def*)
/work/gcc-dev/src/gcc/gcc/config/aarch64/aarch64-simd.md:3015
0xc65b7f insn_gen_fn::operator()(rtx_def*, rtx_def*, rtx_def*, rtx_def*,
rtx_def*) const
/work/gcc-dev/src/gcc/gcc/recog.h:311
0xc65b7f aarch64_simd_expand_args
/work/gcc-dev/src/gcc/gcc/config/aarch64/aarch64-builtins.c:888
0xc66318 aarch64_simd_expand_builtin(int, tree_node*, rtx_def*)
/work/gcc-dev/src/gcc/gcc/config/aarch64/aarch64-builtins.c:990
0xc66968 aarch64_expand_builtin(tree_node*, rtx_def*, rtx_def*, machine_mode,
int)
/work/gcc-dev/src/gcc/gcc/config/aarch64/aarch64-builtins.c:1071
0x6062a2 expand_builtin(tree_node*, rtx_def*, rtx_def*, machine_mode, int)
/work/gcc-dev/src/gcc/gcc/builtins.c:5756
0x6f897b expand_expr_real_1(tree_node*, rtx_def*, machine_mode,
expand_modifier, rtx_def**, bool)
/work/gcc-dev/src/gcc/gcc/expr.c:10344
0x6f9e7c expand_expr_real(tree_node*, rtx_def*, machine_mode, expand_modifier,
rtx_def**, bool)
/work/gcc-dev/src/gcc/gcc/expr.c:7922
0x70078f store_expr(tree_node*, rtx_def*, int, bool)
/work/gcc-dev/src/gcc/gcc/expr.c:5312
0x7092b8 expand_assignment(tree_node*, tree_node*, bool)
/work/gcc-dev/src/gcc/gcc/expr.c:5098
0x626493 expand_call_stmt
/work/gcc-dev/src/gcc/gcc/cfgexpand.c:2305
0x626493 expand_gimple_stmt_1
/work/gcc-dev/src/gcc/gcc/cfgexpand.c:3202
0x626493 expand_gimple_stmt
/work/gcc-dev/src/gcc/gcc/cfgexpand.c:3354
0x628d75 expand_gimple_basic_block
/work/gcc-dev/src/gcc/gcc/cfgexpand.c:5192
0x62ad53 execute
/work/gcc-dev/src/gcc/gcc/cfgexpand.c:5799
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.
The bug is in the treatment in aarch64-simd-builtins.def of these lane
intrinsics as "QUADOP"s. This allows their final parameter to *maybe* be an
immediate. But subsequent code on the expand path assumes it to *always* be an
immediate.
The fix would to special case the handling of these intrinsics and enforce that
the final parameter is *always* an immediate.
For 4.10 and 4.9 that means adding a new set of types to "qualifiers". For 4.8,
it means adding a new aarch64_simd_itype and handling it appropriately.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug target/61749] arm_neon.h "_lane" and "_n" intrinsics can cause ICEs
2014-07-08 14:46 [Bug target/61749] New: arm_neon.h "_lane" and "_n" intrinsics can cause ICEs jgreenhalgh at gcc dot gnu.org
@ 2014-07-08 14:47 ` jgreenhalgh at gcc dot gnu.org
2014-07-08 14:52 ` ktkachov at gcc dot gnu.org
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: jgreenhalgh at gcc dot gnu.org @ 2014-07-08 14:47 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61749
jgreenhalgh at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
Target| |aarch64*
Status|UNCONFIRMED |NEW
Last reconfirmed| |2014-07-08
Assignee|unassigned at gcc dot gnu.org |jgreenhalgh at gcc dot gnu.org
Ever confirmed|0 |1
--- Comment #1 from jgreenhalgh at gcc dot gnu.org ---
This is an AArch64 bug.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug target/61749] arm_neon.h "_lane" and "_n" intrinsics can cause ICEs
2014-07-08 14:46 [Bug target/61749] New: arm_neon.h "_lane" and "_n" intrinsics can cause ICEs jgreenhalgh at gcc dot gnu.org
2014-07-08 14:47 ` [Bug target/61749] " jgreenhalgh at gcc dot gnu.org
@ 2014-07-08 14:52 ` ktkachov at gcc dot gnu.org
2014-08-06 16:01 ` ktkachov at gcc dot gnu.org
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: ktkachov at gcc dot gnu.org @ 2014-07-08 14:52 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61749
ktkachov at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |ktkachov at gcc dot gnu.org
--- Comment #2 from ktkachov at gcc dot gnu.org ---
Confirmed, also the testcase would be:
#include "arm_neon.h"
int32x4_t foo (int32x4_t a, int16x4_t b, int16x4_t c, int d)
{
return vqdmlal_lane_s16 (a, b, c, d);
}
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug target/61749] arm_neon.h "_lane" and "_n" intrinsics can cause ICEs
2014-07-08 14:46 [Bug target/61749] New: arm_neon.h "_lane" and "_n" intrinsics can cause ICEs jgreenhalgh at gcc dot gnu.org
2014-07-08 14:47 ` [Bug target/61749] " jgreenhalgh at gcc dot gnu.org
2014-07-08 14:52 ` ktkachov at gcc dot gnu.org
@ 2014-08-06 16:01 ` ktkachov at gcc dot gnu.org
2014-09-09 10:16 ` ktkachov at gcc dot gnu.org
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: ktkachov at gcc dot gnu.org @ 2014-08-06 16:01 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61749
ktkachov at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
Assignee|jgreenhalgh at gcc dot gnu.org |ktkachov at gcc dot gnu.org
Target Milestone|--- |4.10.0
--- Comment #4 from ktkachov at gcc dot gnu.org ---
I think I have a trunk patch to address this
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug target/61749] arm_neon.h "_lane" and "_n" intrinsics can cause ICEs
2014-07-08 14:46 [Bug target/61749] New: arm_neon.h "_lane" and "_n" intrinsics can cause ICEs jgreenhalgh at gcc dot gnu.org
` (2 preceding siblings ...)
2014-08-06 16:01 ` ktkachov at gcc dot gnu.org
@ 2014-09-09 10:16 ` ktkachov at gcc dot gnu.org
2014-10-28 10:53 ` ramana at gcc dot gnu.org
2014-12-04 13:25 ` yroux at gcc dot gnu.org
5 siblings, 0 replies; 7+ messages in thread
From: ktkachov at gcc dot gnu.org @ 2014-09-09 10:16 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61749
--- Comment #5 from ktkachov at gcc dot gnu.org ---
Author: ktkachov
Date: Tue Sep 9 10:15:46 2014
New Revision: 215046
URL: https://gcc.gnu.org/viewcvs?rev=215046&root=gcc&view=rev
Log:
[AArch64] PR 61749: Do not ICE in lane intrinsics when passed non-constant lane
number
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.
Added:
trunk/gcc/testsuite/gcc.target/aarch64/vqdml_lane_intrinsics-bad_1.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/aarch64/aarch64-builtins.c
trunk/gcc/config/aarch64/aarch64-simd-builtins.def
trunk/gcc/testsuite/ChangeLog
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug target/61749] arm_neon.h "_lane" and "_n" intrinsics can cause ICEs
2014-07-08 14:46 [Bug target/61749] New: arm_neon.h "_lane" and "_n" intrinsics can cause ICEs jgreenhalgh at gcc dot gnu.org
` (3 preceding siblings ...)
2014-09-09 10:16 ` ktkachov at gcc dot gnu.org
@ 2014-10-28 10:53 ` ramana at gcc dot gnu.org
2014-12-04 13:25 ` yroux at gcc dot gnu.org
5 siblings, 0 replies; 7+ messages in thread
From: ramana at gcc dot gnu.org @ 2014-10-28 10:53 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61749
Ramana Radhakrishnan <ramana at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
CC| |ramana at gcc dot gnu.org
Resolution|--- |FIXED
Known to fail|4.10.0 |5.0
--- Comment #6 from Ramana Radhakrishnan <ramana at gcc dot gnu.org> ---
Fixed on trunk.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug target/61749] arm_neon.h "_lane" and "_n" intrinsics can cause ICEs
2014-07-08 14:46 [Bug target/61749] New: arm_neon.h "_lane" and "_n" intrinsics can cause ICEs jgreenhalgh at gcc dot gnu.org
` (4 preceding siblings ...)
2014-10-28 10:53 ` ramana at gcc dot gnu.org
@ 2014-12-04 13:25 ` yroux at gcc dot gnu.org
5 siblings, 0 replies; 7+ messages in thread
From: yroux at gcc dot gnu.org @ 2014-12-04 13:25 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61749
--- Comment #7 from Yvan Roux <yroux at gcc dot gnu.org> ---
Author: yroux
Date: Thu Dec 4 13:25:10 2014
New Revision: 218358
URL: https://gcc.gnu.org/viewcvs?rev=218358&root=gcc&view=rev
Log:
gcc/
2014-12-04 Yvan Roux <yvan.roux@linaro.org>
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/testsuite/
2014-12-04 Yvan Roux <yvan.roux@linaro.org>
Backport from trunk r215046.
2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
PR target/61749
* gcc.target/aarch64/vqdml_lane_intrinsics-bad_1.c: New test.
Added:
branches/linaro/gcc-4_9-branch/gcc/testsuite/gcc.target/aarch64/vqdml_lane_intrinsics-bad_1.c
Modified:
branches/linaro/gcc-4_9-branch/gcc/ChangeLog.linaro
branches/linaro/gcc-4_9-branch/gcc/config/aarch64/aarch64-builtins.c
branches/linaro/gcc-4_9-branch/gcc/config/aarch64/aarch64-simd-builtins.def
branches/linaro/gcc-4_9-branch/gcc/testsuite/ChangeLog.linaro
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2014-12-04 13:25 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-07-08 14:46 [Bug target/61749] New: arm_neon.h "_lane" and "_n" intrinsics can cause ICEs jgreenhalgh at gcc dot gnu.org
2014-07-08 14:47 ` [Bug target/61749] " jgreenhalgh at gcc dot gnu.org
2014-07-08 14:52 ` ktkachov at gcc dot gnu.org
2014-08-06 16:01 ` ktkachov at gcc dot gnu.org
2014-09-09 10:16 ` ktkachov at gcc dot gnu.org
2014-10-28 10:53 ` ramana at gcc dot gnu.org
2014-12-04 13:25 ` yroux at gcc dot gnu.org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).