http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54201
--- Comment #3 from Cesar Eduardo Barros <cesarb at cesarb dot net> 2012-08-08 23:28:52 UTC --- Created attachment 27964 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=27964 Another testcase Another testcase. This one also shows it using two registers instead of one. movdqa .LC0(%rip), %xmm3 pand %xmm3, %xmm0 movdqa .LC1(%rip), %xmm2 pcmpeqb %xmm2, %xmm0 pand %xmm1, %xmm0 pand %xmm3, %xmm0 pcmpeqb %xmm2, %xmm0 %xmm2 and %xmm3 have the same value, so it is increasing the register pressure unnecessarily.