Change the 'x' type modifier for Neon intrinsics to force a signed integer.
authorBob Wilson <bob.wilson@apple.com>
Thu, 18 Nov 2010 21:43:22 +0000 (21:43 +0000)
committerBob Wilson <bob.wilson@apple.com>
Thu, 18 Nov 2010 21:43:22 +0000 (21:43 +0000)
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).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119742 91177308-0d34-0410-b5e6-96231b3b80d8

utils/TableGen/NeonEmitter.cpp

index f4f79493e405976f95978bb8f1a109da520ee826..5fa60ae1c7d14f15be9bcd90e11b809aabcfc3ea 100644 (file)
@@ -134,7 +134,12 @@ static char ModType(const char mod, char type, bool &quad, bool &poly,
       break;
     case 'u':
       usgn = true;
+      poly = false;
+      if (type == 'f')
+        type = 'i';
+      break;
     case 'x':
+      usgn = false;
       poly = false;
       if (type == 'f')
         type = 'i';