https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113131
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- ``` int f(int A, int B, int C) { return ((A&B)^C)|B; // C|B } int f1(int A, int B, int C) { return ((A|B)^C)|B; // (C^A)|B } int f2(int A, int B, int C) { return ((A^B)^C)|B; // (C^A)|B } int f3(int A, int B, int C) { return ((A&B)^C)&B; // (C^A)&B } ```