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])};
| ^