DAGCombine: fold "(zext x) == C" into "x == (trunc C)" if the trunc is lossless.
authorBenjamin Kramer <benny.kra@googlemail.com>
Fri, 22 Apr 2011 18:47:44 +0000 (18:47 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Fri, 22 Apr 2011 18:47:44 +0000 (18:47 +0000)
commite7cf062537e898f830565db5dbf99ae9c928399e
tree3c87d0506e38a3039f8e6df7fc0ed061d232dd8c
parenteac0c9dc7759b013bbe831ace1afa37bc46915c6
DAGCombine: fold "(zext x) == C" into "x == (trunc C)" if the trunc is lossless.

On x86 this allows to fold a load into the cmp, greatly reducing register pressure.
  movzbl (%rdi), %eax
  cmpl $47, %eax
->
  cmpb $47, (%rdi)

This shaves 8k off gcc.o on i386. I'll leave applying the patch in README.txt to Chris :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130005 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SelectionDAG/TargetLowering.cpp
lib/Target/README.txt
test/CodeGen/X86/shrink-compare.ll [new file with mode: 0644]