[PATCH] D91696: [AArch64][SVE] Allow lax conversion between VLATs and GNU vectors

Joe Ellis via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Nov 18 03:51:22 PST 2020


joechrisellis created this revision.
joechrisellis added reviewers: fpetrogalli, peterwaller-arm.
Herald added subscribers: cfe-commits, psnobl, kristof.beyls, tschuett.
Herald added a reviewer: efriedma.
Herald added a project: clang.
joechrisellis requested review of this revision.

Previously, lax conversions were only allowed between SVE vector-length
agnostic types and vector-length specific types. This meant that code
such as the following:

  #include <arm_sve.h>
  #define N __ARM_FEATURE_SVE_BITS
  #define FIXED_ATTR __attribute__ ((vector_size (N/8)))
  typedef float fixed_float32_t FIXED_ATTR;
  
  void foo() {
      fixed_float32_t fs32;
      svfloat64_t s64;
      fs32 = s64;
  }

was not allowed.

This patch makes a minor change to areLaxCompatibleSveTypes to allow for
lax conversions to be performed between SVE vector-length agnostic types
and GNU vectors.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D91696

Files:
  clang/lib/AST/ASTContext.cpp
  clang/test/Sema/aarch64-sve-lax-vector-conversions.c
  clang/test/SemaCXX/aarch64-sve-lax-vector-conversions.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D91696.306040.patch
Type: text/x-patch
Size: 8114 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20201118/e22e9756/attachment.bin>


More information about the cfe-commits mailing list