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

            Bug ID: 100369
           Summary: crash after error in
                    gcc.target/aarch64/simd/vgetq_lane_s64_indices_1.c
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: dcb314 at hotmail dot com
  Target Milestone: ---

For the source code file gcc.target/aarch64/simd/vgetq_lane_s64_indices_1.c,
gcc trunk says:

/home/pi/gcc/results.20210429/lib/gcc/arm-linux-gnueabihf/12.0.0/include/arm_neon.h:6313:10:
error: lane -1 out of range 0 - 1
 6313 |   return (int64_t)__builtin_neon_vget_lanev2di (__a, __b);
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
during RTL pass: expand
/home/pi/gcc/results.20210429/lib/gcc/arm-linux-gnueabihf/12.0.0/include/arm_neon.h:
In function 'test_vgetq_lane_s64_before':
/home/pi/gcc/results.20210429/lib/gcc/arm-linux-gnueabihf/12.0.0/include/arm_neon.h:6313:10:
internal compiler error: in gen_neon_vget_lanev2di, at config/arm/neon.md:3372
0x1309813 gen_neon_vget_lanev2di(rtx_def*, rtx_def*, rtx_def*)
        ../../trunk/gcc/config/arm/neon.md:3372

The first error is good, but the internal compiler error isn't.
There might be a better way to handle a lane number out of range than crashing.

Reply via email to