https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117477
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Here is a testcase which shows that GCC spilling but spilling is better than using a callee saved register by removing extra moves: ``` int test (int x), test2 (int x); int test3(int,int,int); int foo (int x, int y) { test (x); int lhs = test2 (y); int lhs1 = test2 (y); return test3(lhs,lhs1,x); } ``` So it is a wash I think.