summaryrefslogtreecommitdiffstats
path: root/llvm/utils/TableGen/NeonEmitter.cpp
diff options
context:
space:
mode:
authorBob Wilson <bob.wilson@apple.com>2010-12-02 00:24:59 +0000
committerBob Wilson <bob.wilson@apple.com>2010-12-02 00:24:59 +0000
commit743eeae937b6113a7b4c3abf78fba7b7e0a7976c (patch)
treec9eabcd82cf083ac5f9e53ff809e1075e548d74c /llvm/utils/TableGen/NeonEmitter.cpp
parentbe764f0cd102c097ca34e33a12c90c9d2a1e60d5 (diff)
downloadbcm5719-llvm-743eeae937b6113a7b4c3abf78fba7b7e0a7976c.tar.gz
bcm5719-llvm-743eeae937b6113a7b4c3abf78fba7b7e0a7976c.zip
Avoid "char" for Neon vector elements; make it explicitly signed (or unsigned).
llvm-svn: 120632
Diffstat (limited to 'llvm/utils/TableGen/NeonEmitter.cpp')
-rw-r--r--llvm/utils/TableGen/NeonEmitter.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/llvm/utils/TableGen/NeonEmitter.cpp b/llvm/utils/TableGen/NeonEmitter.cpp
index 9feec48e6f0..c57580da573 100644
--- a/llvm/utils/TableGen/NeonEmitter.cpp
+++ b/llvm/utils/TableGen/NeonEmitter.cpp
@@ -325,6 +325,8 @@ static std::string BuiltinTypeString(const char mod, StringRef typestr,
if (usgn)
s.push_back('U');
+ else if (type == 'c')
+ s.push_back('S'); // make chars explicitly signed
if (type == 'l') // 64-bit long
s += "LLi";
@@ -354,16 +356,16 @@ static std::string BuiltinTypeString(const char mod, StringRef typestr,
if (ck != ClassB && type == 'l')
return quad ? "V2LLi" : "V1LLi";
- return quad ? "V16c" : "V8c";
+ return quad ? "V16Sc" : "V8Sc";
}
// Non-return array types are passed as individual vectors.
if (mod == '2')
- return quad ? "V16cV16c" : "V8cV8c";
+ return quad ? "V16ScV16Sc" : "V8ScV8Sc";
if (mod == '3')
- return quad ? "V16cV16cV16c" : "V8cV8cV8c";
+ return quad ? "V16ScV16ScV16Sc" : "V8ScV8ScV8Sc";
if (mod == '4')
- return quad ? "V16cV16cV16cV16c" : "V8cV8cV8cV8c";
+ return quad ? "V16ScV16ScV16ScV16Sc" : "V8ScV8ScV8ScV8Sc";
if (mod == 'f' || (ck != ClassB && type == 'f'))
return quad ? "V4f" : "V2f";
@@ -374,7 +376,7 @@ static std::string BuiltinTypeString(const char mod, StringRef typestr,
if (ck != ClassB && type == 'l')
return quad ? "V2LLi" : "V1LLi";
- return quad ? "V16c" : "V8c";
+ return quad ? "V16Sc" : "V8Sc";
}
/// MangleName - Append a type or width suffix to a base neon function name,
OpenPOWER on IntegriCloud