diff options
author | Nate Begeman <natebegeman@mac.com> | 2010-08-06 01:24:11 +0000 |
---|---|---|
committer | Nate Begeman <natebegeman@mac.com> | 2010-08-06 01:24:11 +0000 |
commit | 59d70cbc297cbefead1f5926c30466d3cc03541a (patch) | |
tree | efe29943782fce3e2d25c4258f253e8c188fd33b /utils | |
parent | e6a4a36096185d1716332956d04a92ea7ee3a40f (diff) | |
download | llvm-59d70cbc297cbefead1f5926c30466d3cc03541a.tar.gz llvm-59d70cbc297cbefead1f5926c30466d3cc03541a.tar.bz2 llvm-59d70cbc297cbefead1f5926c30466d3cc03541a.tar.xz |
Add tablegen support for vdup_lane
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110419 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils')
-rw-r--r-- | utils/TableGen/NeonEmitter.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/utils/TableGen/NeonEmitter.cpp b/utils/TableGen/NeonEmitter.cpp index a754ce289a..0a12f37666 100644 --- a/utils/TableGen/NeonEmitter.cpp +++ b/utils/TableGen/NeonEmitter.cpp @@ -145,6 +145,9 @@ static char ModType(const char mod, char type, bool &quad, bool &poly, type = 'f'; usgn = false; break; + case 'g': + quad = false; + break; case 'w': type = Widen(type); quad = true; @@ -686,15 +689,15 @@ static unsigned GetNeonEnum(const std::string &proto, StringRef typestr) { bool cnst = false; bool pntr = false; - // base type to get the type string for. + // Base type to get the type string for. char type = ClassifyType(typestr, quad, poly, usgn); // Based on the modifying character, change the type and width if necessary. type = ModType(mod, type, quad, poly, usgn, scal, cnst, pntr); - + if (usgn) ret |= 0x08; - if (quad) + if (quad && proto[1] != 'g') ret |= 0x10; switch (type) { |