summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
diff options
context:
space:
mode:
authorVolkan Keles <vkeles@apple.com>2017-03-21 08:44:13 +0000
committerVolkan Keles <vkeles@apple.com>2017-03-21 08:44:13 +0000
commit75bdc7690e619aea7748d99e1057ffc0ab904936 (patch)
tree9bcf5830876085805e2ca6deb773d286834027f4 /llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
parent9353e2dbfb2b310a6f7874dfd03aa51a32a9be03 (diff)
downloadbcm5719-llvm-75bdc7690e619aea7748d99e1057ffc0ab904936.tar.gz
bcm5719-llvm-75bdc7690e619aea7748d99e1057ffc0ab904936.zip
[GlobalISel] Translate shufflevector
Reviewers: qcolombet, aditya_nandakumar, t.p.northover, javed.absar, ab, dsanders Reviewed By: javed.absar Subscribers: dberris, rovka, llvm-commits, kristof.beyls Differential Revision: https://reviews.llvm.org/D30962 llvm-svn: 298347
Diffstat (limited to 'llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp')
-rw-r--r--llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
index 0f97469d453..b6e6fbd03d0 100644
--- a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
+++ b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
@@ -1005,6 +1005,16 @@ bool IRTranslator::translateExtractElement(const User &U,
return true;
}
+bool IRTranslator::translateShuffleVector(const User &U,
+ MachineIRBuilder &MIRBuilder) {
+ MIRBuilder.buildInstr(TargetOpcode::G_SHUFFLE_VECTOR)
+ .addDef(getOrCreateVReg(U))
+ .addUse(getOrCreateVReg(*U.getOperand(0)))
+ .addUse(getOrCreateVReg(*U.getOperand(1)))
+ .addUse(getOrCreateVReg(*U.getOperand(2)));
+ return true;
+}
+
bool IRTranslator::translatePHI(const User &U, MachineIRBuilder &MIRBuilder) {
const PHINode &PI = cast<PHINode>(U);
auto MIB = MIRBuilder.buildInstr(TargetOpcode::PHI);
OpenPOWER on IntegriCloud