https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88278
--- Comment #4 from Marc Glisse <glisse at gcc dot gnu.org> --- (In reply to Jakub Jelinek from comment #2) > All these use something like: > (insn 7 6 13 2 (set (reg:V8SI 87) > (unspec:V8SI [ > (mem:V4SI (reg:DI 90) [0 *x_3(D)+0 S16 A128]) > ] UNSPEC_CAST)) "include/avxintrin.h":1484:20 4813 {avx_si256_si} > (expr_list:REG_DEAD (reg:DI 90) > (nil))) > Not really sure why UNSPEC_CAST rather than representing it with something > natural like VEC_CONCAT of nonimmediate_operand and const0_operand. I tried to get rid of the UNSPEC_CAST in PR 50829... VEC_CONCAT with 0 may be fine when loading from memory, but we don't want it when the argument is in a register.