https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101701
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- int foo(int val) { if (val == 1) return val; else if(val == 2) return val; else if(val == 3) return val; else if(val == 4) return val; else return -1; } int bar(int val) { return val == 1 ? val : (val == 2 ? val : (val == 3 ? val : (val == 4 ? val : -1))); } int baz(int val) { switch(val) { case 1: case 2: case 3: case 4: return val; default: return -1; } }