[all-commits] [llvm/llvm-project] 204aaf: [AArch64][SVE] Always use overloaded methods inste...

sdesmalen-arm via All-commits all-commits at lists.llvm.org
Tue Apr 13 13:13:36 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 204aaf879548616df407f662bc03d28b8d08d1fb
      https://github.com/llvm/llvm-project/commit/204aaf879548616df407f662bc03d28b8d08d1fb
  Author: Sander de Smalen <sander.desmalen at arm.com>
  Date:   2021-04-13 (Tue, 13 Apr 2021)

  Changed paths:
    M clang/test/CodeGen/aarch64-sve-intrinsics/negative/acle_sve_prfb.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/negative/acle_sve_prfd.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/negative/acle_sve_prfh.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/negative/acle_sve_prfw.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/negative/acle_sve_qdecb.c
    M clang/utils/TableGen/SveEmitter.cpp

  Log Message:
  -----------
  [AArch64][SVE] Always use overloaded methods instead of preprocessor macro.

This fixes a subtle issue where:

  svprf(pg, ptr, SV_ALL /*is sv_pattern instead of sv_prfop*/)

would be quietly accepted. With this change, the function declaration
guards that the third parameter is a `enum sv_prfop`. Previously `svprf`
would map directly to `__builtin_sve_svprfb`, which accepts the enum
operand as a signed integer and only checks that the incoming range is
valid, meaning that SV_ALL would be discarded as being outside the valid
immediate range, but would have allowed SV_VL1 without issuing a warning
(C) or error (C++).

Reviewed By: c-rhodes

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




More information about the All-commits mailing list