git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121276
91177308-0d34-0410-b5e6-
96231b3b80d8
+ case OpAba:
+ s += "__a + " + MangleName("vabd", typestr, ClassS) + "(__b, __c);";
+ break;
default:
throw "unknown OpKind!";
break;
default:
throw "unknown OpKind!";
break;
std::vector<Record*> RV = Records.getAllDerivedDefinitions("Inst");
std::vector<Record*> RV = Records.getAllDerivedDefinitions("Inst");
- // Emit vmovl intrinsics first so they can be used by other intrinsics.
+ // Emit vmovl and vabd intrinsics first so they can be used by other
+ // intrinsics.
emitIntrinsic(OS, Records.getDef("VMOVL"));
emitIntrinsic(OS, Records.getDef("VMOVL"));
+ emitIntrinsic(OS, Records.getDef("VABD"));
// Unique the return+pattern types, and assign them.
for (unsigned i = 0, e = RV.size(); i != e; ++i) {
Record *R = RV[i];
// Unique the return+pattern types, and assign them.
for (unsigned i = 0, e = RV.size(); i != e; ++i) {
Record *R = RV[i];
- if (R->getName() != "VMOVL")
+ if (R->getName() != "VMOVL" && R->getName() != "VABD")
OpRev16,
OpRev32,
OpRev64,
OpRev16,
OpRev32,
OpRev64,
OpMap["OP_REV32"] = OpRev32;
OpMap["OP_REV64"] = OpRev64;
OpMap["OP_REINT"] = OpReinterpret;
OpMap["OP_REV32"] = OpRev32;
OpMap["OP_REV64"] = OpRev64;
OpMap["OP_REINT"] = OpReinterpret;
+ OpMap["OP_ABA"] = OpAba;
Record *SI = R.getClass("SInst");
Record *II = R.getClass("IInst");
Record *SI = R.getClass("SInst");
Record *II = R.getClass("IInst");