[SystemZ] Add some generic (floating point support) load instructions.
authorJonas Paulsson <jonas.paulsson@ericsson.com>
Thu, 1 Oct 2015 18:12:28 +0000 (18:12 +0000)
committerJonas Paulsson <jonas.paulsson@ericsson.com>
Thu, 1 Oct 2015 18:12:28 +0000 (18:12 +0000)
commit89b44df99911baf2e408e457278032bddc43d49e
tree6255aa866eb4594555a36d38fab7d67948e6e5a1
parent3fffb697c28507f251d38ff1ba91966eba618dd2
[SystemZ] Add some generic (floating point support) load instructions.

Add generic instructions for load complement, load negative and load positive
for fp32 and fp64, and let isel prefer them. They do not clobber CC, and so
give scheduler more freedom. SystemZElimCompare pass will convert them when it
can to the CC-setting variants.

Regression tests updated to expect the new opcodes in places where the old ones
where used. New test case SystemZ/fp-cmp-05.ll checks that
SystemZCompareElim.cpp can handle the new opcodes.

README.txt updated (bullet removed).

Note that fp128 is not yet handled, because it is relatively rare, and is a
bit trickier, because of the fact that l.dfr would operate on the sign bit of
one of the subregisters of a fp128, but we would not want to copy the other
sub-reg in case src and dst regs are not the same.

Reviewed by Ulrich Weigand.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@249046 91177308-0d34-0410-b5e6-96231b3b80d8
12 files changed:
lib/Target/SystemZ/README.txt
lib/Target/SystemZ/SystemZInstrFP.td
lib/Target/SystemZ/SystemZInstrInfo.cpp
lib/Target/SystemZ/SystemZShortenInst.cpp
test/CodeGen/SystemZ/args-01.ll
test/CodeGen/SystemZ/args-02.ll
test/CodeGen/SystemZ/args-03.ll
test/CodeGen/SystemZ/fp-abs-01.ll
test/CodeGen/SystemZ/fp-abs-02.ll
test/CodeGen/SystemZ/fp-cmp-05.ll [new file with mode: 0644]
test/CodeGen/SystemZ/fp-const-02.ll
test/CodeGen/SystemZ/fp-neg-01.ll