https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98066
--- Comment #3 from Martin Liška <marxin at gcc dot gnu.org> --- Created attachment 49650 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=49650&action=edit Patch candidate With the patch I see that the target can't expand it to RTL: $ ./xgcc -B. pr98066.c -mvsx -O1 -c -fdump-tree-optimized=/dev/stdout ... <bb 4> [local count: 1073741824]: t7.0_1 = t7; _2 = __builtin_altivec_vcmpequw_p (a0_4(D), i1_7(D), t7.0_1); if (_2 != 0) ... during RTL pass: expand pr98066.c: In function ‘qs’: pr98066.c:7:12: internal compiler error: in rs6000_expand_vector_set, at config/rs6000/rs6000.c:7024 7 | t7[a0] = a0; | ~~~~~~~^~~~ 0x72e396 rs6000_expand_vector_set(rtx_def*, rtx_def*, rtx_def*) /home/marxin/Programming/gcc2/gcc/config/rs6000/rs6000.c:7024 0x15a1660 ??? /home/marxin/Programming/gcc2/gcc/config/rs6000/vector.md:1251 0xc4e448 maybe_expand_insn(insn_code, unsigned int, expand_operand*) /home/marxin/Programming/gcc2/gcc/optabs.c:7435 0xaf484a expand_vec_set_optab_fn /home/marxin/Programming/gcc2/gcc/internal-fn.c:2879 0xaf484a expand_VEC_SET /home/marxin/Programming/gcc2/gcc/internal-fn.def:148 0x8deb17 expand_call_stmt /home/marxin/Programming/gcc2/gcc/cfgexpand.c:2740 0x8deb17 expand_gimple_stmt_1 /home/marxin/Programming/gcc2/gcc/cfgexpand.c:3835 0x8deb17 expand_gimple_stmt /home/marxin/Programming/gcc2/gcc/cfgexpand.c:3999 0x8e41ca expand_gimple_basic_block /home/marxin/Programming/gcc2/gcc/cfgexpand.c:6040 0x8e5bf6 execute /home/marxin/Programming/gcc2/gcc/cfgexpand.c:6724 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions. That's something for Xionghu Luo.