[all-commits] [llvm/llvm-project] 0aab34: [Clang] Allow "ext_vector_type" applied to Booleans

Simon Moll via All-commits all-commits at lists.llvm.org
Wed Mar 16 03:12:02 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 0aab344104034e6191114a74f0d9eb5129bf550d
      https://github.com/llvm/llvm-project/commit/0aab344104034e6191114a74f0d9eb5129bf550d
  Author: Simon Moll <simon.moll at emea.nec.com>
  Date:   2022-03-16 (Wed, 16 Mar 2022)

  Changed paths:
    M clang/docs/LanguageExtensions.rst
    M clang/include/clang/AST/Type.h
    M clang/include/clang/Sema/Sema.h
    M clang/lib/AST/ASTContext.cpp
    M clang/lib/CodeGen/CGDebugInfo.cpp
    M clang/lib/CodeGen/CGExpr.cpp
    M clang/lib/CodeGen/CGExprScalar.cpp
    M clang/lib/CodeGen/CodeGenFunction.cpp
    M clang/lib/CodeGen/CodeGenFunction.h
    M clang/lib/CodeGen/CodeGenTypes.cpp
    M clang/lib/Sema/SemaExpr.cpp
    M clang/lib/Sema/SemaExprCXX.cpp
    M clang/lib/Sema/SemaExprMember.cpp
    M clang/lib/Sema/SemaType.cpp
    A clang/test/AST/ast-print-vector-size-bool.c
    A clang/test/CodeGen/debug-info-vector-bool.c
    M clang/test/CodeGen/vector-alignment.c
    M clang/test/Sema/ext_vector_casts.c
    M clang/test/SemaCXX/constexpr-vectors.cpp
    A clang/test/SemaCXX/vector-bool.cpp
    M clang/test/SemaCXX/vector-size-conditional.cpp
    M clang/test/SemaOpenCL/ext_vectors.cl

  Log Message:
  -----------
  [Clang] Allow "ext_vector_type" applied to Booleans

This is the `ext_vector_type` alternative to D81083.

This patch extends Clang to allow 'bool' as a valid vector element type
(attribute ext_vector_type) in C/C++.

This is intended as the canonical type for SIMD masks and facilitates
clean vector intrinsic declarations.  Vectors of i1 are supported on IR
level and below down to many SIMD ISAs, such as AVX512, ARM SVE (fixed
vector length) and the VE target (NEC SX-Aurora TSUBASA).

The RFC on cfe-dev: https://lists.llvm.org/pipermail/cfe-dev/2020-May/065434.html

Reviewed By: erichkeane

Differential Revision: https://reviews.llvm.org/D88905




More information about the All-commits mailing list