Change the 'x' type modifier for Neon intrinsics to force a signed integer.
This makes it symmetric with the 'u' modifier that forces an unsigned type.
This is needed for unsigned vector shifts, where the shift amount still needs
to be signed. PR8482 (Radar 8603521).
llvm-svn: 119742
diff --git a/llvm/utils/TableGen/NeonEmitter.cpp b/llvm/utils/TableGen/NeonEmitter.cpp
index f4f7949..5fa60ae 100644
--- a/llvm/utils/TableGen/NeonEmitter.cpp
+++ b/llvm/utils/TableGen/NeonEmitter.cpp
@@ -134,7 +134,12 @@
break;
case 'u':
usgn = true;
+ poly = false;
+ if (type == 'f')
+ type = 'i';
+ break;
case 'x':
+ usgn = false;
poly = false;
if (type == 'f')
type = 'i';