https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94680
Bug ID: 94680 Summary: Missed optimization with __builtin_shuffle and zero vector Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: jakub at gcc dot gnu.org Target Milestone: --- typedef float V __attribute__((vector_size(16))); typedef int VI __attribute__((vector_size(16))); V foo (V x) { return __builtin_shuffle (x, (V) { 0, 0, 0, 0 }, (VI) {0, 1, 4, 5}); } can be done using movq or vmovq in a single insn, rather than zeroing a register and doing movlhps.