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

Kevin Qin kevinqindev at gmail.com
Wed May 13 19:36:35 PDT 2015


Ping...

2015-05-11 16:55 GMT+08:00 Kevin Qin <kevinqindev at gmail.com>:

> 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/
>



-- 
Best Regards,

Kevin Qin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20150514/16dd266c/attachment.html>


More information about the cfe-commits mailing list