[PATCH] [AArch64 NEON]Allow to define poly64_t as 'unsigned long long' on LLP64 system.

Kevin Qin kevinqindev at gmail.com
Mon May 11 01:55:20 PDT 2015


Hi,

This patch allows to define poly64_t as 'unsigned long long' on LLP64 system, like netbsd. This patch fixes PR23414 as well. Please review.

Thanks,
Kevin

http://reviews.llvm.org/D9655

Files:
  lib/AST/ItaniumMangle.cpp
  lib/Sema/SemaChecking.cpp
  test/CodeGenCXX/aarch64-neon.cpp

Index: lib/AST/ItaniumMangle.cpp
===================================================================
--- lib/AST/ItaniumMangle.cpp
+++ lib/AST/ItaniumMangle.cpp
@@ -2311,6 +2311,7 @@
       EltName = "Poly16";
       break;
     case BuiltinType::ULong:
+    case BuiltinType::ULongLong:
       EltName = "Poly64";
       break;
     default:
Index: lib/Sema/SemaChecking.cpp
===================================================================
--- lib/Sema/SemaChecking.cpp
+++ lib/Sema/SemaChecking.cpp
@@ -623,7 +623,10 @@
   case NeonTypeFlags::Poly16:
     return IsPolyUnsigned ? Context.UnsignedShortTy : Context.ShortTy;
   case NeonTypeFlags::Poly64:
-    return Context.UnsignedLongTy;
+    if (IsInt64Long)
+      return Context.UnsignedLongTy;
+    else
+      return Context.UnsignedLongLongTy;
   case NeonTypeFlags::Poly128:
     break;
   case NeonTypeFlags::Float16:
Index: test/CodeGenCXX/aarch64-neon.cpp
===================================================================
--- test/CodeGenCXX/aarch64-neon.cpp
+++ test/CodeGenCXX/aarch64-neon.cpp
@@ -1,6 +1,8 @@
 // REQUIRES: aarch64-registered-target
 // RUN: %clang_cc1 -triple arm64-none-linux-gnu -target-feature +neon \
 // RUN:   -ffp-contract=fast -S -O3 -o - %s | FileCheck %s
+// RUN: %clang_cc1 -triple arm64-none-netbsd-gnu -target-feature +neon \
+// RUN:   -ffp-contract=fast -S -O3 -o - %s | FileCheck %s
 
 // Test whether arm_neon.h works as expected in C++.

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D9655.25448.patch
Type: text/x-patch
Size: 1446 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20150511/153b84bf/attachment.bin>


More information about the cfe-commits mailing list