[all-commits] [llvm/llvm-project] e57e1e: [clang][AArch64][SVE] Avoid going through memory f...

Bradley Smith via All-commits all-commits at lists.llvm.org
Wed Aug 4 09:11:01 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: e57e1e4e00264b77b2b35ad2bf419a48aecdd6bc
      https://github.com/llvm/llvm-project/commit/e57e1e4e00264b77b2b35ad2bf419a48aecdd6bc
  Author: Bradley Smith <bradley.smith at arm.com>
  Date:   2021-08-04 (Wed, 04 Aug 2021)

  Changed paths:
    M clang/lib/CodeGen/CGCall.cpp
    M clang/lib/CodeGen/CGExprScalar.cpp
    M clang/test/CodeGen/attr-arm-sve-vector-bits-bitcast.c
    M clang/test/CodeGen/attr-arm-sve-vector-bits-call.c
    M clang/test/CodeGen/attr-arm-sve-vector-bits-cast.c
    M clang/test/CodeGen/attr-arm-sve-vector-bits-codegen.c
    M clang/test/CodeGen/attr-arm-sve-vector-bits-globals.c

  Log Message:
  -----------
  [clang][AArch64][SVE] Avoid going through memory for fixed/scalable predicate casts

For fixed SVE types, predicates are represented using vectors of i8,
where as for scalable types they are represented using vectors of i1. We
can avoid going through memory for casts between these by bitcasting the
i1 scalable vectors to/from a scalable i8 vector of matching size, which
can then use the existing vector insert/extract logic.

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




More information about the All-commits mailing list