aboutsummaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorChad Rosier <mcrosier@codeaurora.org>2013-11-11 18:04:22 +0000
committerChad Rosier <mcrosier@codeaurora.org>2013-11-11 18:04:22 +0000
commit9473c1945f9f1dfa143e172622f16e4264e2628b (patch)
tree193b97abd57f91398bd60fe51736e5b88dcbda64 /utils
parent8daa7fe574fcc6b4f64c35516a8cce53c3d044b4 (diff)
downloadclang-9473c1945f9f1dfa143e172622f16e4264e2628b.tar.gz
[AArch64] Add support for NEON scalar floating-point convert to fixed-point instructions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194395 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils')
-rw-r--r--utils/TableGen/NeonEmitter.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/utils/TableGen/NeonEmitter.cpp b/utils/TableGen/NeonEmitter.cpp
index 95daa39cce..4fd94a982c 100644
--- a/utils/TableGen/NeonEmitter.cpp
+++ b/utils/TableGen/NeonEmitter.cpp
@@ -468,6 +468,8 @@ static char ModType(const char mod, char type, bool &quad, bool &poly,
if (type == 'd')
type = 'l';
break;
+ case '$':
+ scal = true;
case 'x':
usgn = false;
poly = false;
@@ -2547,8 +2549,10 @@ NeonEmitter::genIntrinsicRangeCheckCode(raw_ostream &OS,
"Fixed point convert name should contains \"32\" or \"64\"");
} else if (R->getValueAsBit("isScalarShift")) {
- // Right shifts have an 'r' in the name, left shifts do not.
- if (name.find('r') != std::string::npos)
+ // Right shifts have an 'r' in the name, left shifts do not. Convert
+ // instructions have the same bounds and right shifts.
+ if (name.find('r') != std::string::npos ||
+ name.find("cvt") != std::string::npos)
rangestr = "l = 1; ";
rangestr += "u = " +