Add an operator for vdup_lane so it can be implemented without a clang builtin.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121190 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Bob Wilson 2010-12-07 22:39:24 +00:00
parent 3467cd0d03
commit 2196caab82
2 changed files with 5 additions and 0 deletions

View File

@ -680,6 +680,9 @@ static std::string GenOpString(OpKind op, const std::string &proto,
case OpDup:
s += Duplicate(nElts, typestr, "__a") + ";";
break;
case OpDupLane:
s += SplatLane(nElts, "__a", "__b") + ";";
break;
case OpSelect:
// ((0 & 1) | (~0 & 2))
s += "(" + ts + ")";

View File

@ -52,6 +52,7 @@ enum OpKind {
OpCast,
OpConcat,
OpDup,
OpDupLane,
OpHi,
OpLo,
OpSelect,
@ -110,6 +111,7 @@ namespace llvm {
OpMap["OP_HI"] = OpHi;
OpMap["OP_LO"] = OpLo;
OpMap["OP_DUP"] = OpDup;
OpMap["OP_DUP_LN"] = OpDupLane;
OpMap["OP_SEL"] = OpSelect;
OpMap["OP_REV16"] = OpRev16;
OpMap["OP_REV32"] = OpRev32;