https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101139
--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Created attachment 57993 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=57993&action=edit Patch but it does not work for the code in this testcase I have to look into why it is not working for the testcase in comment #0 (factor_out_conditional_operation is not even called) but it does work for: ``` short f(int a, short b, short c) { if (a) return __builtin_bswap16(b); return __builtin_bswap16(c); } ```