This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/61749] arm_neon.h "_lane" and "_n" intrinsics can cause ICEs
- From: "ktkachov at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 06 Aug 2014 13:11:26 +0000
- Subject: [Bug target/61749] arm_neon.h "_lane" and "_n" intrinsics can cause ICEs
- Auto-submitted: auto-generated
- References: <bug-61749-4 at http dot gcc dot gnu dot org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61749
--- Comment #3 from ktkachov at gcc dot gnu.org ---
vqdmlal_lane_s16 expects an immediate/literal lane number as the fourth
argument and the builtin expansion code in aarch64-builtins.c is actually
equipped to error out when given a variable (in the SIMD_ARG_CONSTANT case of
aarch64_simd_expand_args).
However the type qualifiers for vqdmlal_lane_s16 are the QUADOP qualifiers
which don't enforce qualifier_immediate on the builtin, thus falling into the
SIMD_ARG_COPY_TO_REG and later on failing the CONST_INT_P assert when
processing the lane numbers.
If I give qualifier_immediate to the 4th argument I get a more helpful:
error: incompatible type for argument 4, expected 'const int'
message but the compiler still tries to proceed and ends up ICEing anyway.