[PATCH] D153355: [CodeGen] Add support for Splats in ComplexDeinterleaving pass

Igor Kirillov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 20 07:39:03 PDT 2023


igor.kirillov created this revision.
Herald added subscribers: mgabka, hiraditya.
Herald added a project: All.
igor.kirillov requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

This commit allows generating of complex number intrinsics for expressions
with constants or loops invariants, which are represented as splats.
For instance, after vectorizing loops in the following code snippets,
the ComplexDeinterleaving pass will be able to generate complex number
intrinsics:

  complex<> x = ...;
  for (int i = 0; i < N; ++i)
      c[i] = a[i] * b[i] * x;

or

  for (int i = 0; i < N; ++i)
      c[i] = a[i] * b[i] * (11.0 + 3.0i);


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D153355

Files:
  llvm/include/llvm/CodeGen/ComplexDeinterleavingPass.h
  llvm/lib/CodeGen/ComplexDeinterleavingPass.cpp
  llvm/test/CodeGen/AArch64/complex-deinterleaving-splat-scalable.ll
  llvm/test/CodeGen/AArch64/complex-deinterleaving-splat.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D153355.532930.patch
Type: text/x-patch
Size: 31965 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230620/feeccd93/attachment.bin>


More information about the llvm-commits mailing list