[SystemZ] Use LLGT(R) instructions
authorUlrich Weigand <ulrich.weigand@de.ibm.com>
Fri, 11 Nov 2016 12:43:51 +0000 (12:43 +0000)
committerUlrich Weigand <ulrich.weigand@de.ibm.com>
Fri, 11 Nov 2016 12:43:51 +0000 (12:43 +0000)
commit5dc7b67c6263fe7f2ced7cb4957e967ab770fab8
tree04240a86883379ec9f211d43a8de1ab28877dd72
parent31939e39db2ca3f26868f1f961be0e6c9026a45c
[SystemZ] Use LLGT(R) instructions

This adds support for the 31-to-64-bit zero extension instructions
LLGT and LLGTR and uses them for code generation where appropriate.

Since this operation can also be performed via RISBG, we have to
update SystemZDAGToDAGISel::tryRISBGZero so that we prefer LLGT
over RISBG in case both are possible.  The patch includes some
simplification to the tryRISBGZero code; this is not intended
to cause any (further) functional change in codegen.

llvm-svn: 286585
llvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp
llvm/lib/Target/SystemZ/SystemZInstrInfo.td
llvm/lib/Target/SystemZ/SystemZScheduleZ13.td
llvm/lib/Target/SystemZ/SystemZScheduleZ196.td
llvm/lib/Target/SystemZ/SystemZScheduleZEC12.td
llvm/test/CodeGen/SystemZ/int-conv-12.ll [new file with mode: 0644]
llvm/test/MC/Disassembler/SystemZ/insns.txt
llvm/test/MC/SystemZ/insn-bad.s
llvm/test/MC/SystemZ/insn-good.s