https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100867
Bug ID: 100867 Summary: z13: Inefficient code for vec_revb(vector unsigned short) Product: gcc Version: 10.2.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: jens.seifert at de dot ibm.com Target Milestone: --- Input: vector unsigned short revb(vector unsigned short a) { return vec_revb(a); } Creates: _Z4revbDv4_j: .LFB1: .cfi_startproc larl %r5,.L4 vl %v0,.L5-.L4(%r5),3 vperm %v24,%v24,%v24,%v0 br %r14 Optimal code sequence: vector unsigned short revb_z13(vector unsigned short a) { return vec_rli(a, 8); } Creates: _Z8revb_z13Dv8_t: .LFB5: .cfi_startproc verllh %v24,%v24,8 br %r14 .cfi_endproc