[SystemZ] Extend RISBG optimization
authorRichard Sandiford <rsandifo@linux.vnet.ibm.com>
Fri, 20 Dec 2013 11:49:48 +0000 (11:49 +0000)
committerRichard Sandiford <rsandifo@linux.vnet.ibm.com>
Fri, 20 Dec 2013 11:49:48 +0000 (11:49 +0000)
commit1fd4e558289771a2d5b70f0da8155e0ba2721a49
tree89d130f91a37796395c0291c1c754e7fd4adb4f9
parent78a613731e39778fd6e4518b7d4738bd0c0de291
[SystemZ] Extend RISBG optimization

The handling of ANY_EXTEND and ZERO_EXTEND was too strict.  In this context
we can treat ZERO_EXTEND in much the same way as an AND and then also handle
outermost ZERO_EXTENDs.

I couldn't find a test that benefited from the ANY_EXTEND change, but it's
more obvious to write it this way once SIGN_EXTEND and ZERO_EXTEND are
handled differently.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197802 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/SystemZ/SystemZISelDAGToDAG.cpp
test/CodeGen/SystemZ/risbg-01.ll