https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100369

Alex Coplan <acoplan at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to fail|                            |12.0
                 CC|                            |acoplan at gcc dot gnu.org
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |NEW
           Keywords|                            |error-recovery
   Last reconfirmed|                            |2021-05-18

--- Comment #3 from Alex Coplan <acoplan at gcc dot gnu.org> ---
Confirmed. Here is a reduced testcase:

$ cat neon.c
#include <arm_neon.h>
int64x2_t v;
void f() { vgetq_lane_s64(v, 2); }
$ ./arm-eabi-gcc -c neon.c -march=armv8-a+simd
In file included from neon.c:1:
In function 'vgetq_lane_s64',
    inlined from 'f' at neon.c:3:12:
/home/alecop01/toolchain/build-arm-eabi-armv8.1-m.main+mve.fp+fp.dp/install/lib/gcc/arm-eabi/12.0.0/include/arm_neon.h:6313:10:
error: lane 2 out of range 0 - 1
 6313 |   return (int64_t)__builtin_neon_vget_lanev2di (__a, __b);
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
during RTL pass: expand
/home/alecop01/toolchain/build-arm-eabi-armv8.1-m.main+mve.fp+fp.dp/install/lib/gcc/arm-eabi/12.0.0/include/arm_neon.h:
In function 'f':
/home/alecop01/toolchain/build-arm-eabi-armv8.1-m.main+mve.fp+fp.dp/install/lib/gcc/arm-eabi/12.0.0/include/arm_neon.h:6313:10:
internal compiler error: in gen_neon_vget_lanev2di, at config/arm/neon.md:3288
0x15f54df gen_neon_vget_lanev2di(rtx_def*, rtx_def*, rtx_def*)
        /home/alecop01/toolchain/src/gcc/gcc/config/arm/neon.md:3288
0x120c3e0 rtx_insn* insn_gen_fn::operator()<rtx_def*, rtx_def*,
rtx_def*>(rtx_def*, rtx_def*, rtx_def*) const
        /home/alecop01/toolchain/src/gcc/gcc/recog.h:407
0x120c3e0 arm_expand_builtin_args
        /home/alecop01/toolchain/src/gcc/gcc/config/arm/arm-builtins.c:3160
0x120c3e0 arm_expand_builtin_1
        /home/alecop01/toolchain/src/gcc/gcc/config/arm/arm-builtins.c:3309
0x120d082 arm_expand_neon_builtin
        /home/alecop01/toolchain/src/gcc/gcc/config/arm/arm-builtins.c:3389
0x120d082 arm_expand_builtin(tree_node*, rtx_def*, rtx_def*, machine_mode, int)
        /home/alecop01/toolchain/src/gcc/gcc/config/arm/arm-builtins.c:3469
0x7ca04f expand_builtin(tree_node*, rtx_def*, rtx_def*, machine_mode, int)
        /home/alecop01/toolchain/src/gcc/gcc/builtins.c:9753
0x94984d expand_expr_real_1(tree_node*, rtx_def*, machine_mode,
expand_modifier, rtx_def**, bool)
        /home/alecop01/toolchain/src/gcc/gcc/expr.c:11405
0x94ad22 expand_expr_real(tree_node*, rtx_def*, machine_mode, expand_modifier,
rtx_def**, bool)
        /home/alecop01/toolchain/src/gcc/gcc/expr.c:8621
0x9538c7 store_expr(tree_node*, rtx_def*, int, bool, bool)
        /home/alecop01/toolchain/src/gcc/gcc/expr.c:5986
0x95554a expand_assignment(tree_node*, tree_node*, bool)
        /home/alecop01/toolchain/src/gcc/gcc/expr.c:5721
0x80123b expand_call_stmt
        /home/alecop01/toolchain/src/gcc/gcc/cfgexpand.c:2841
0x80123b expand_gimple_stmt_1
        /home/alecop01/toolchain/src/gcc/gcc/cfgexpand.c:3847
0x80123b expand_gimple_stmt
        /home/alecop01/toolchain/src/gcc/gcc/cfgexpand.c:4011
0x80a339 expand_gimple_basic_block
        /home/alecop01/toolchain/src/gcc/gcc/cfgexpand.c:6053
0x80b546 execute
        /home/alecop01/toolchain/src/gcc/gcc/cfgexpand.c:6737
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

Here is a preprocessed testcase for testing with a cc1 (but not for the
testsuite):

typedef __simd128_int64_t int64x2_t;
int64x2_t v;
void f() { __builtin_neon_vget_lanev2di(v, 2); }

Reply via email to