Well on the face of it, the compiler is generating the right code for storing and passing unsigned long long values.
So perhaps your library implementation of printf isn't up to scratch.