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

            Bug ID: 107987
           Summary: [12/13 Regression] MVE vcmpq vector-scalar can trigger
                    ICE
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: avieira at gcc dot gnu.org
  Target Milestone: ---

Using the following testcase
$ cat t.c
#include <arm_mve.h>

uint32x4_t foo (uint32x4_t a, uint32x4_t b)
{
  mve_pred16_t p = vcmpneq_n_u32 (vandq_u32 (a, b), 0);
  return vaddq_x_u32 (a, b, p);
}

and compiling with arm-none-eabi-gcc -mcpu=cortex-m55 -mfloat-abi=hard -O2 will
trigger an ICE in combine.

This was caused by g:d083fbf72d4533d2009c725524983e1184981e74 as when removing
the unspec's around the vcmp's it now exposed the compiler to a comparison
operator with a vector and a scalar operand.

Reply via email to