Richard Biener wrote: > It is IMHO a valid GIMPLE optimization / canonicalization. > > movabsq $-9223372036854775808, %rax > > so this should then have been generated as 1<<63? > > At some point variable shifts were quite expensive as well..
Yes I don't see a major difference between movabsq and movl $1, %eax salq $63, %rax on my Sandy Bridge, but if the above is faster then that is what the x64 backend should emit - it's 1 byte smaller as well, so probably better in all cases. Wilco