]> granicus.if.org Git - llvm/commit
[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)
commit90353577effdb9d4a9d3f3232d18db26e24927f3
treebb3f93f22c4d9c4bc5cda2bb81ed3ddbde747c7b
parentaa9211b5c655fb568eb16a82c317815c058fd45d
[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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@286585 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/SystemZ/SystemZISelDAGToDAG.cpp
lib/Target/SystemZ/SystemZInstrInfo.td
lib/Target/SystemZ/SystemZScheduleZ13.td
lib/Target/SystemZ/SystemZScheduleZ196.td
lib/Target/SystemZ/SystemZScheduleZEC12.td
test/CodeGen/SystemZ/int-conv-12.ll [new file with mode: 0644]
test/MC/Disassembler/SystemZ/insns.txt
test/MC/SystemZ/insn-bad.s
test/MC/SystemZ/insn-good.s