summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorNate Begeman <natebegeman@mac.com>2010-08-06 01:24:11 +0000
committerNate Begeman <natebegeman@mac.com>2010-08-06 01:24:11 +0000
commit59d70cbc297cbefead1f5926c30466d3cc03541a (patch)
treeefe29943782fce3e2d25c4258f253e8c188fd33b /utils
parente6a4a36096185d1716332956d04a92ea7ee3a40f (diff)
downloadllvm-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.cpp9
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) {