From 181b76d5039194b9ffa8569e3703c9a028671095 Mon Sep 17 00:00:00 2001 From: Bob Wilson Date: Thu, 18 Nov 2010 21:43:22 +0000 Subject: [PATCH] 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). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119742 91177308-0d34-0410-b5e6-96231b3b80d8 --- utils/TableGen/NeonEmitter.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/utils/TableGen/NeonEmitter.cpp b/utils/TableGen/NeonEmitter.cpp index f4f79493e40..5fa60ae1c7d 100644 --- a/utils/TableGen/NeonEmitter.cpp +++ b/utils/TableGen/NeonEmitter.cpp @@ -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';