[all-commits] [llvm/llvm-project] 2d574a: [CodeGen][AArch64][SVE] Canonicalize intrinsic rdf...

Peter Waller via All-commits all-commits at lists.llvm.org
Thu May 20 09:23:43 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 2d574a110440597eefe1b2a8b6144e4e89c21d05
      https://github.com/llvm/llvm-project/commit/2d574a110440597eefe1b2a8b6144e4e89c21d05
  Author: Peter Waller <peter.waller at arm.com>
  Date:   2021-05-20 (Thu, 20 May 2021)

  Changed paths:
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_rdffr.c
    M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
    M llvm/test/CodeGen/AArch64/sve-intrinsics-ffr-manipulation.ll
    A llvm/test/Transforms/InstCombine/AArch64/sve-intrinsics-rdffr-predication.ll

  Log Message:
  -----------
  [CodeGen][AArch64][SVE] Canonicalize intrinsic rdffr{ => _z}

Follow up to D101357 / 3fa6510f6.
Supersedes D102330.

Goal: Use flags setting rdffrs instead of rdffr + ptest.

Problem: RDFFR_P doesn't have have a flags setting equivalent.

Solution: in instcombine, canonicalize to RDFFR_PP at the IR level, and
rely on RDFFR_PP+PTEST => RDFFRS_PP optimization in
AArch64InstrInfo::optimizePTestInstr.

While here:

* Test that rdffr.z+ptest generates a rdffrs.
* Use update_{test,llc}_checks.py on the tests.
* Use sve attribute on functions.

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




More information about the All-commits mailing list