[PATCH] D102623: [CodeGen][AArch64][SVE] Canonicalize intrinsic rdffr{ => _z}

Peter Waller via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon May 17 07:13:47 PDT 2021


peterwaller-arm created this revision.
peterwaller-arm added reviewers: paulwalker-arm, bsmith, joechrisellis, david-arm, sdesmalen, dmgreen, efriedma.
Herald added subscribers: psnobl, hiraditya, kristof.beyls, tschuett.
peterwaller-arm requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

Follow up to D101357 <https://reviews.llvm.org/D101357> / 3fa6510f6 <https://reviews.llvm.org/rG3fa6510f6ea0101c70592487074957bb1cde576c>.
Supersedes D102330 <https://reviews.llvm.org/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.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D102623

Files:
  llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
  llvm/test/CodeGen/AArch64/sve-intrinsics-ffr-manipulation.ll
  llvm/test/CodeGen/AArch64/sve-intrinsics-rdffr-predication.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D102623.345866.patch
Type: text/x-patch
Size: 5287 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210517/b4ad53c2/attachment.bin>


More information about the llvm-commits mailing list