[all-commits] [llvm/llvm-project] eb678d: [AArch64] Combine store (trunc X to <3 x i8>) to s...

Florian Hahn via All-commits all-commits at lists.llvm.org
Thu Jan 25 10:28:57 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: eb678d89933684627ee2c5da47e53751f3fdbaa2
      https://github.com/llvm/llvm-project/commit/eb678d89933684627ee2c5da47e53751f3fdbaa2
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-01-25 (Thu, 25 Jan 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/test/CodeGen/AArch64/vec3-loads-ext-trunc-stores.ll

  Log Message:
  -----------
  [AArch64] Combine store (trunc X to <3 x i8>) to sequence of ST1.b. (#78637)

Improve codegen for (trunc X to <3 x i8>) by converting it to a sequence
of 3 ST1.b, but first converting the truncate operand to either v8i8 or
v16i8, extracting the lanes for the truncate results and storing them.

At the moment, there are almost no cases in which such vector operations
will be generated automatically. The motivating case is non-power-of-2
SLP vectorization: https://github.com/llvm/llvm-project/pull/77790

PR: https://github.com/llvm/llvm-project/pull/78637




More information about the All-commits mailing list