https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105349
--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> --- With a x86_64-linux -> powerpc64-linux cross, I can see with -mcpu=power10 -m32 --- bswap-brw.s1 2022-04-25 18:32:35.108799457 +0200 +++ bswap-brw.s2 2022-04-25 18:32:38.664750135 +0200 @@ -28,10 +28,11 @@ bswap_int_dbl: # 0 # 0 "" 2 #NO_APP - xxbrw 0,0 + mfvsrwz 9,0 + brw 9,9 + stw 9,8(1) addi 9,1,8 - xxextractuw 1,0,4 - stfiwx 0,0,9 + lfiwzx 1,0,9 addi 1,1,16 .cfi_def_cfa_offset 0 fcfid 1,1 @@ -39,6 +40,6 @@ bswap_int_dbl: .cfi_endproc .LFE1: .size bswap_int_dbl,.-bswap_int_dbl - .ident "GCC: (GNU) 12.0.1 20220310 (experimental)" + .ident "GCC: (GNU) 12.0.1 20220425 (experimental)" .gnu_attribute 4, 1 .section .note.GNU-stack,"",@progbits difference, with -m64 xxbrw is still there even with latest trunk.