The X86 backend has a number of optimizations for SETCC nodes which use
authorNadav Rotem <nrotem@apple.com>
Sat, 18 Aug 2012 02:43:28 +0000 (02:43 +0000)
committerNadav Rotem <nrotem@apple.com>
Sat, 18 Aug 2012 02:43:28 +0000 (02:43 +0000)
commitb5838689c6e204af3677df0ae10167f6070aba00
treea29c2cc54eadc0f0527df47a04fa9b5d489e35ac
parentfd45fa1503de725801be3db33c7e860298fc82a3
The X86 backend has a number of optimizations for SETCC nodes which use
arithmetic instructions. However, when small data types are used, a truncate
node appears between the SETCC node and the arithmetic operation. This patch
adds support for this pattern.

Before:
  xorl  %esi, %edi
  testb %dil, %dil
  setne %al
  ret

After:
  xorb  %dil, %sil
  setne %al
  ret

rdar://12081007

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162160 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/2012-08-16-setcc.ll [new file with mode: 0644]
test/CodeGen/X86/fold-load.ll