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

            Bug ID: 95713
           Summary: [10/11 Regression] ICE in emit_move_insn when
                    converting int2 vector to short2 vector for
                    -march=skylake-avx512 -m32
           Product: gcc
           Version: 10.1.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: kretz at kde dot org
  Target Milestone: ---
            Target: i?86-*-*

Compile the following testcase with `-O1 -march=skylake-avx512 -m32` (cf.
https://godbolt.org/z/FASxSm):

using int2 [[gnu::vector_size(8)]] = int;
using short2 [[gnu::vector_size(4)]] = short;

void f(short2);
void g(int2 a)
{
  short2 b{short(a[0]), short(a[1])};
  f(4 > b);
}


Resulting Output:

during RTL pass: expand
<source>: In function 'void g(int2)':
<source>:7:38: internal compiler error: in emit_move_insn, at expr.c:3815
    7 |     short2 b{short(a[0]), short(a[1])};
      |                                      ^

Reply via email to