[SystemZ] Fix handling of 64-bit memcmp results
authorRichard Sandiford <rsandifo@linux.vnet.ibm.com>
Fri, 16 Aug 2013 10:55:47 +0000 (10:55 +0000)
committerRichard Sandiford <rsandifo@linux.vnet.ibm.com>
Fri, 16 Aug 2013 10:55:47 +0000 (10:55 +0000)
commit6a079fef4fad3e6c2e07c9e1d0776e20a0b05b1e
treea9a17235ca1c2d7da4a78b31edb3aca2965731b5
parent6c51f89498dd813c8dd16e46069decf2897b31b2
[SystemZ] Fix handling of 64-bit memcmp results

Generalize r188163 to cope with return types other than MVT::i32, just
as the existing visitMemCmpCall code did.  I've split this out into a
subroutine so that it can be used for other upcoming patches.

I also noticed that I'd used the wrong API to record the out chain.
It's a load that uses DAG.getRoot() rather than getRoot(), so the out
chain should go on PendingLoads.  I don't have a testcase for that because
we don't do any interesting scheduling on z yet.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188540 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
lib/Target/SystemZ/SystemZInstrInfo.cpp
test/CodeGen/SystemZ/memcmp-01.ll
test/CodeGen/SystemZ/memcmp-02.ll [new file with mode: 0644]