[SDAG] Fix a result chain in ExpandUnalignedLoad
authorHal Finkel <hfinkel@anl.gov>
Tue, 4 Aug 2015 06:29:12 +0000 (06:29 +0000)
committerHal Finkel <hfinkel@anl.gov>
Tue, 4 Aug 2015 06:29:12 +0000 (06:29 +0000)
On the code path in ExpandUnalignedLoad which expands an unaligned vector/fp
value in terms of a legal integer load of the same size, the ChainResult needs
to be the chain result of the integer load.

No in-tree test case is currently available.

Patch by Jan Hranac!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@243956 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SelectionDAG/LegalizeDAG.cpp

index a253faa976028912ef345a95f1cb6ca430a3968e..79efa2433ea3ba56466f8987c3cd1ab6e3cdda3d 100644 (file)
@@ -439,7 +439,7 @@ ExpandUnalignedLoad(LoadSDNode *LD, SelectionDAG &DAG,
                              ISD::ANY_EXTEND, dl, VT, Result);
 
       ValResult = Result;
-      ChainResult = Chain;
+      ChainResult = newLoad.getValue(1);
       return;
     }