diff options
author | Aditya Nandakumar <aditya_nandakumar@apple.com> | 2017-05-04 21:43:12 +0000 |
---|---|---|
committer | Aditya Nandakumar <aditya_nandakumar@apple.com> | 2017-05-04 21:43:12 +0000 |
commit | 117b667bd9d36ae751909ac93bf2e590de26b69c (patch) | |
tree | b24cd090162ba0867f3aaa3360c5f2163dc7137e /llvm/lib | |
parent | 7f3190118b8b9b2b43befb382cb0dc6bf5cc2990 (diff) | |
download | bcm5719-llvm-117b667bd9d36ae751909ac93bf2e590de26b69c.tar.gz bcm5719-llvm-117b667bd9d36ae751909ac93bf2e590de26b69c.zip |
[GISel]: Add support to translate ConstantVectors
Reviewed by Quentin
https://reviews.llvm.org/D32814
llvm-svn: 302196
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp index 75be7a55bd2..f12048103f7 100644 --- a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp +++ b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp @@ -1108,6 +1108,14 @@ bool IRTranslator::translate(const Constant &C, unsigned Reg) { default: return false; } + } else if (auto CV = dyn_cast<ConstantVector>(&C)) { + if (CV->getNumOperands() == 1) + return translate(*CV->getOperand(0), Reg); + SmallVector<unsigned, 4> Ops; + for (unsigned i = 0; i < CV->getNumOperands(); ++i) { + Ops.push_back(getOrCreateVReg(*CV->getOperand(i))); + } + EntryBuilder.buildMerge(Reg, Ops); } else return false; |