[all-commits] [llvm/llvm-project] 8aff88: [LegalizeDAG] Propagate alignment in ExpandExtract...

Benjamin Kramer via All-commits all-commits at lists.llvm.org
Tue Jul 19 04:17:26 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 8aff88fd3a5f6f974f4ce62923981764fafbb820
      https://github.com/llvm/llvm-project/commit/8aff88fd3a5f6f974f4ce62923981764fafbb820
  Author: Benjamin Kramer <benny.kra at googlemail.com>
  Date:   2022-07-19 (Tue, 19 Jul 2022)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp

  Log Message:
  -----------
  [LegalizeDAG] Propagate alignment in ExpandExtractFromVectorThroughStack

Unlike the name suggests this can reuse any store as a base for a
memory-based vector extract. If that store is underaligned the loads
created to extract will have an invalid alignment. Since most CPUs are
forgiving wrt alignment this is almost never an issue, on x86 this is
only reproducible by extracting a 128 bit vector out of a wider vector.

I tried making a test case in the context of
https://reviews.llvm.org/D127982 but it's really really fragile, as the
output pretty much looks like a missed optimization.




More information about the All-commits mailing list