diff options
author | Bill Wendling <isanbard@gmail.com> | 2009-03-26 01:47:50 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2009-03-26 01:47:50 +0000 |
commit | 8b4b874cc67ae4cefc0e723c8f93cf8d6101fcb2 (patch) | |
tree | f759c64cf383b782854d09ee4cc6eae2b668d642 /lib/CodeGen/LiveIntervalAnalysis.cpp | |
parent | bddc442a00c2216834499f10c12d023f1751104c (diff) |
Match this pattern so that we can generate simpler code:
%a = ...
%b = and i32 %a, 2
%c = srl i32 %b, 1
%d = br i32 %c,
into
%a = ...
%b = and %a, 2
%c = X86ISD::CMP %b, 0
%d = X86ISD::BRCOND %c ...
This applies only when the AND constant value has one bit set and the SRL
constant is equal to the log2 of the AND constant. The back-end is smart enough
to convert the result into a TEST/JMP sequence.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67728 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/LiveIntervalAnalysis.cpp')
0 files changed, 0 insertions, 0 deletions