https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117318
--- Comment #1 from Zdenek Sojka <zsojka at seznam dot cz> --- Similar happens with __builtin_ia32_pmovsqw128mem_mask(): $ cat testcase-min0.i int foo0_u32_0; __attribute__((__vector_size__(2 * sizeof(long)))) long long foo0_v128s64_0; char foo0_ret; void foo0() { __builtin_ia32_pmovsqw128mem_mask(&foo0_u32_0, foo0_v128s64_0, 15); foo0_ret = foo0_u32_0; } $ x86_64-pc-linux-gnu-gcc -O -mavx512vl testcase-min0.i during RTL pass: dse1 testcase-min0.i: In function 'foo0': testcase-min0.i:7:1: internal compiler error: in expand_simple_unop, at optabs.cc:2585 7 | } | ^ 0x2da44be internal_error(char const*, ...) /repo/gcc-trunk/gcc/diagnostic-global-context.cc:518 0xe81f93 fancy_abort(char const*, int, char const*) /repo/gcc-trunk/gcc/diagnostic.cc:1580 0x80d02f expand_simple_unop(machine_mode, rtx_code, rtx_def*, rtx_def*, int) /repo/gcc-trunk/gcc/optabs.cc:2585 0x80d02f expand_simple_unop(machine_mode, rtx_code, rtx_def*, rtx_def*, int) /repo/gcc-trunk/gcc/optabs.cc:2581 ...