[all-commits] [llvm/llvm-project] 53ed68: SLP cannot vectorize frem calls in AArch64.

Paschalis Mpeis via All-commits all-commits at lists.llvm.org
Fri Feb 23 06:44:12 PST 2024


  Branch: refs/heads/users/paschalis-mpeis/frem-slp-vectorization
  Home:   https://github.com/llvm/llvm-project
  Commit: 53ed688d0ac0933161c625b7470b912cb0770ae3
      https://github.com/llvm/llvm-project/commit/53ed688d0ac0933161c625b7470b912cb0770ae3
  Author: Paschalis Mpeis <Paschalis.Mpeis at arm.com>
  Date:   2024-02-23 (Fri, 23 Feb 2024)

  Changed paths:
    A llvm/test/Transforms/SLPVectorizer/AArch64/slp-frem.ll

  Log Message:
  -----------
  SLP cannot vectorize frem calls in AArch64.

It needs updated costs when there are available vector library functions
given the VF and type.


  Commit: d11c1c4ffb8d47f31c1c26796f116c386c7dcf1f
      https://github.com/llvm/llvm-project/commit/d11c1c4ffb8d47f31c1c26796f116c386c7dcf1f
  Author: Paschalis Mpeis <Paschalis.Mpeis at arm.com>
  Date:   2024-02-23 (Fri, 23 Feb 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/AArch64/slp-frem.ll

  Log Message:
  -----------
  [AArch64] SLP can vectorize frem

When vector library calls are available for frem, given its type and
vector length, the SLP vectorizer uses updated costs that amount to a
call, matching LoopVectorizer's functionality.

This allows 'superword-level' vectorization, which can be converted to
a vector lib call by later passes.

Add tests that vectorize code that contains 2x double and 4x float frem
instructions.


  Commit: ce534dcfed0fcbd2bdb8474b739e0d82b28058f9
      https://github.com/llvm/llvm-project/commit/ce534dcfed0fcbd2bdb8474b739e0d82b28058f9
  Author: Paschalis Mpeis <Paschalis.Mpeis at arm.com>
  Date:   2024-02-23 (Fri, 23 Feb 2024)

  Changed paths:
    M llvm/include/llvm/Analysis/VectorUtils.h
    M llvm/lib/Analysis/VectorUtils.cpp
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  Log Message:
  -----------
  Addressing reviewers


  Commit: 71d6952bc4bdfc8ad679af0e876693557120ac5e
      https://github.com/llvm/llvm-project/commit/71d6952bc4bdfc8ad679af0e876693557120ac5e
  Author: Paschalis Mpeis <Paschalis.Mpeis at arm.com>
  Date:   2024-02-23 (Fri, 23 Feb 2024)

  Changed paths:
    M llvm/include/llvm/Analysis/TargetTransformInfo.h
    M llvm/include/llvm/Analysis/VectorUtils.h
    M llvm/lib/Analysis/TargetTransformInfo.cpp
    M llvm/lib/Analysis/VectorUtils.cpp
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  Log Message:
  -----------
  [LV][SLP] Vectorizers now use getFRemInstrCost for frem costs

SLP vectorization for frem now happens when vector library calls are
available, given its type and vector length. This is due to using the
updated cost that amounts to a call.

Add tests that do SLP vectorization for code that contains 2x double and
4x float frem instructions.

LoopVectorizer now also uses getFRemInstrCost.


Compare: https://github.com/llvm/llvm-project/compare/0a77f3a0bfd0...71d6952bc4bd

To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list