https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117006
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |missed-optimization --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- For the reduced testcase: ``` int f(long a, int b) { if (b > 7) return a+4; return a+2; } ``` GCC 14 is smaller by 1 byte than GCC 15. But for a slightly different testcase: ``` int h(long); int f(long a, int b) { if (b > 7) a+=4; else a+=2; return h(a); } ``` The trunk (cmov) is smaller by 1 byte. So this looks like it is just by accident. -Os sometimes is just heurstics and one or 2 bytes different here in both directions might be a wash overall. So it is hard to tell if this will cause a real issue for -Os.