summaryrefslogtreecommitdiffstats
path: root/llvm/utils/TableGen/NeonEmitter.cpp
diff options
context:
space:
mode:
authorBob Wilson <bob.wilson@apple.com>2010-12-08 20:09:10 +0000
committerBob Wilson <bob.wilson@apple.com>2010-12-08 20:09:10 +0000
commit194ad82666e8d110d2589e0b8dabe9e6046be374 (patch)
treec555a5ecaf5a2f6f23d4ec98f526d3e13d11ee3b /llvm/utils/TableGen/NeonEmitter.cpp
parent3135def61d18ee45c1dbcb3eb7c5f6e06a1ee452 (diff)
downloadbcm5719-llvm-194ad82666e8d110d2589e0b8dabe9e6046be374.tar.gz
bcm5719-llvm-194ad82666e8d110d2589e0b8dabe9e6046be374.zip
Add an operator for vaba so it can be implemented using vabd.
llvm-svn: 121276
Diffstat (limited to 'llvm/utils/TableGen/NeonEmitter.cpp')
-rw-r--r--llvm/utils/TableGen/NeonEmitter.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/llvm/utils/TableGen/NeonEmitter.cpp b/llvm/utils/TableGen/NeonEmitter.cpp
index 7a623583f3a..cb8cdb80915 100644
--- a/llvm/utils/TableGen/NeonEmitter.cpp
+++ b/llvm/utils/TableGen/NeonEmitter.cpp
@@ -752,6 +752,9 @@ static std::string GenOpString(OpKind op, const std::string &proto,
s += ");";
break;
}
+ case OpAba:
+ s += "__a + " + MangleName("vabd", typestr, ClassS) + "(__b, __c);";
+ break;
default:
throw "unknown OpKind!";
break;
@@ -1077,13 +1080,15 @@ void NeonEmitter::run(raw_ostream &OS) {
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("VABD"));
// 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")
emitIntrinsic(OS, R);
}
OpenPOWER on IntegriCloud