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.