aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineModuleInfo.cpp
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2011-04-01 20:09:10 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2011-04-01 20:09:10 +0000
commitd121765e6452c11ce17714feb2caa2d154d5e22b (patch)
tree53decde5ec547162a6d5989642448dc513cb5cc9 /llvm/lib/CodeGen/MachineModuleInfo.cpp
parent398b8c5faff9ea9aa7adc586d2b52e0e1ce16fde (diff)
downloadllvm-d121765e6452c11ce17714feb2caa2d154d5e22b.zip
llvm-d121765e6452c11ce17714feb2caa2d154d5e22b.tar.gz
llvm-d121765e6452c11ce17714feb2caa2d154d5e22b.tar.bz2
InstCombine: Turn icmp + sext into bitwise/integer ops when the input has only one unknown bit.
int test1(unsigned x) { return (x&8) ? 0 : -1; } int test3(unsigned x) { return (x&8) ? -1 : 0; } before (x86_64): _test1: andl $8, %edi cmpl $1, %edi sbbl %eax, %eax ret _test3: andl $8, %edi cmpl $1, %edi sbbl %eax, %eax notl %eax ret after: _test1: shrl $3, %edi andl $1, %edi leal -1(%rdi), %eax ret _test3: shll $28, %edi movl %edi, %eax sarl $31, %eax ret llvm-svn: 128732
Diffstat (limited to 'llvm/lib/CodeGen/MachineModuleInfo.cpp')
0 files changed, 0 insertions, 0 deletions