I've also seen this happen on POWER. When generating 32-bit binaries, but with compiler tuning parameters telling it what minimum CPU it is on, I'be seen it generate 64-bit instructions for certain operations.
Another fun tidbit -- the debugger is blissfully unaware that the CPU and compiler are conspiring to do this. If you debug such a program, it will work fine. If you set a breakpoint on the instruction in question and simply continue, the entire program freaks out because the debugger just chopped off the high 32 bits of whatever it touched. I found that amusing when hitting it while debugging an issue. (Sad face)
In general most tools freak out if they encounter this because they were built under the assumption this was impossible.
Another fun tidbit -- the debugger is blissfully unaware that the CPU and compiler are conspiring to do this. If you debug such a program, it will work fine. If you set a breakpoint on the instruction in question and simply continue, the entire program freaks out because the debugger just chopped off the high 32 bits of whatever it touched. I found that amusing when hitting it while debugging an issue. (Sad face)
In general most tools freak out if they encounter this because they were built under the assumption this was impossible.