[SystemZ] Use zeroing form of RISBG for some AND sequences
authorRichard Sandiford <rsandifo@linux.vnet.ibm.com>
Thu, 11 Jul 2013 08:59:12 +0000 (08:59 +0000)
committerRichard Sandiford <rsandifo@linux.vnet.ibm.com>
Thu, 11 Jul 2013 08:59:12 +0000 (08:59 +0000)
commitb3cabb44c32b5a3aba9b4d23aae9723d498ea7a9
tree67565add4984989a53566cb7836cfadc52f2e39e
parent3ee0673e4f5f0324ecd0a65507009b0748ed072c
[SystemZ] Use zeroing form of RISBG for some AND sequences

RISBG can handle some ANDs for which no AND IMMEDIATE exists.
It also acts as a three-operand AND for some cases where an
AND IMMEDIATE could be used instead.

It might be worth adding a pass to replace RISBG with AND IMMEDIATE
in cases where the register operands end up being the same and where
AND IMMEDIATE is smaller.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186072 91177308-0d34-0410-b5e6-96231b3b80d8
27 files changed:
lib/Target/SystemZ/SystemZISelDAGToDAG.cpp
test/CodeGen/SystemZ/addr-01.ll
test/CodeGen/SystemZ/addr-02.ll
test/CodeGen/SystemZ/alloca-01.ll
test/CodeGen/SystemZ/and-02.ll
test/CodeGen/SystemZ/and-04.ll
test/CodeGen/SystemZ/atomicrmw-add-01.ll
test/CodeGen/SystemZ/atomicrmw-add-02.ll
test/CodeGen/SystemZ/atomicrmw-and-01.ll
test/CodeGen/SystemZ/atomicrmw-and-02.ll
test/CodeGen/SystemZ/atomicrmw-minmax-01.ll
test/CodeGen/SystemZ/atomicrmw-minmax-02.ll
test/CodeGen/SystemZ/atomicrmw-nand-01.ll
test/CodeGen/SystemZ/atomicrmw-nand-02.ll
test/CodeGen/SystemZ/atomicrmw-or-01.ll
test/CodeGen/SystemZ/atomicrmw-or-02.ll
test/CodeGen/SystemZ/atomicrmw-sub-01.ll
test/CodeGen/SystemZ/atomicrmw-sub-02.ll
test/CodeGen/SystemZ/atomicrmw-xchg-01.ll
test/CodeGen/SystemZ/atomicrmw-xchg-02.ll
test/CodeGen/SystemZ/atomicrmw-xor-01.ll
test/CodeGen/SystemZ/atomicrmw-xor-02.ll
test/CodeGen/SystemZ/cmpxchg-01.ll
test/CodeGen/SystemZ/cmpxchg-02.ll
test/CodeGen/SystemZ/fp-move-02.ll
test/CodeGen/SystemZ/insert-01.ll
test/CodeGen/SystemZ/insert-02.ll