http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58244
--- Comment #3 from Marc Glisse <glisse at gcc dot gnu.org> --- With auxval local, the compiler knows that computing suma, etc is useless and removes all that code, including the calls to sin. So you would like the compiler to do the same for a global auxval? That requires the compiler to know that no other TU may access auxval (maybe something along the lines of -fwhole-program or -flto). Let's add "static" to the declaration of auxval. Then it does indeed miss the optimization. But still I doubt that your goal was for the compiler to remove all your code.