https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116649
Bug ID: 116649 Summary: PPC: Suboptimal code for __builtin_bcdadd_ovf on Power10 Product: gcc Version: 14.1.0 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: --- unsigned long long bcdadd(vector __int128 a, vector __int128 b, vector __int128 *c) { return __builtin_bcdadd_ov(a, b, 0); } creates: bcdadd(__int128 __vector(1), __int128 __vector(1), __int128 __vector(1)*): .quad .L.bcdadd(__int128 __vector(1), __int128 __vector(1), __int128 __vector(1)*),.TOC.@tocbase,0 .L.bcdadd(__int128 __vector(1), __int128 __vector(1), __int128 __vector(1)*): bcdadd. 2,2,3,0 mfcr 3,2 rlwinm 3,3,28,1 blr .long 0 .byte 0,9,0,0,0,0,0,0 while use of setbc expected. bcdadd. 2,2,3,0 setbc 3,27 blr