diff options
author | Chad Rosier <mcrosier@codeaurora.org> | 2013-11-11 18:04:22 +0000 |
---|---|---|
committer | Chad Rosier <mcrosier@codeaurora.org> | 2013-11-11 18:04:22 +0000 |
commit | 9473c1945f9f1dfa143e172622f16e4264e2628b (patch) | |
tree | 193b97abd57f91398bd60fe51736e5b88dcbda64 /utils | |
parent | 8daa7fe574fcc6b4f64c35516a8cce53c3d044b4 (diff) | |
download | clang-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.cpp | 8 |
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 = " + |