[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