diff options
author | Ulrich Weigand <ulrich.weigand@de.ibm.com> | 2015-09-15 14:27:46 +0000 |
---|---|---|
committer | Ulrich Weigand <ulrich.weigand@de.ibm.com> | 2015-09-15 14:27:46 +0000 |
commit | e861e6442c7d7f5e665ae7a4877d0cdd4047682c (patch) | |
tree | 14caf479e783728a191c9784134d349dad7e1415 /llvm/lib/Target | |
parent | 02c6abc5dce6f6a69143c42393cab7d57e7df806 (diff) | |
download | bcm5719-llvm-e861e6442c7d7f5e665ae7a4877d0cdd4047682c.tar.gz bcm5719-llvm-e861e6442c7d7f5e665ae7a4877d0cdd4047682c.zip |
[SystemZ] Fix assertion failure in tryBuildVectorShuffle
Under certain circumstances, tryBuildVectorShuffle would attempt to
create a BUILD_VECTOR node with an invalid combination of types.
This happened when one of the components of the original BUILD_VECTOR
was itself a TRUNCATE node. That TRUNCATE was stripped off during
intermediate processing to simplify code, but when adding the node
back to the result vector, we still need it to get the type right.
llvm-svn: 247694
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r-- | llvm/lib/Target/SystemZ/SystemZISelLowering.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp b/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp index 4aac09132ec..0e2bb5ebd2a 100644 --- a/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp +++ b/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp @@ -3895,7 +3895,7 @@ static SDValue tryBuildVectorShuffle(SelectionDAG &DAG, GS.addUndef(); } else { GS.add(SDValue(), ResidueOps.size()); - ResidueOps.push_back(Op); + ResidueOps.push_back(BVN->getOperand(I)); } } |