[all-commits] [llvm/llvm-project] 13e605: [NFC][SROA] Add some more tests for vector promotion

Roman Lebedev via All-commits all-commits at lists.llvm.org
Tue Nov 22 15:38:46 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 13e605051f7d6a08bb1973e70dc3ef6ba1e104ee
      https://github.com/llvm/llvm-project/commit/13e605051f7d6a08bb1973e70dc3ef6ba1e104ee
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2022-11-23 (Wed, 23 Nov 2022)

  Changed paths:
    M llvm/test/Transforms/SROA/vector-promotion.ll

  Log Message:
  -----------
  [NFC][SROA] Add some more tests for vector promotion


  Commit: 6a77477d53542b2cd9d852df4cf1ab16ffa2f4d9
      https://github.com/llvm/llvm-project/commit/6a77477d53542b2cd9d852df4cf1ab16ffa2f4d9
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2022-11-23 (Wed, 23 Nov 2022)

  Changed paths:
    M llvm/test/Transforms/PhaseOrdering/instcombine-sroa-inttoptr.ll
    M llvm/test/Transforms/SROA/alignment.ll
    M llvm/test/Transforms/SROA/basictest.ll
    M llvm/test/Transforms/SROA/pointer-offset-size.ll
    M llvm/test/Transforms/SROA/scalable-vectors.ll
    M llvm/test/Transforms/SROA/tbaa-struct2.ll

  Log Message:
  -----------
  [NFC][SROA] Autogenerate check lines in some tests being affected by upcoming change


  Commit: 11c2c163de4b7f65ce29cae4f2f36c73392115ae
      https://github.com/llvm/llvm-project/commit/11c2c163de4b7f65ce29cae4f2f36c73392115ae
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2022-11-23 (Wed, 23 Nov 2022)

  Changed paths:
    M llvm/test/CodeGen/AMDGPU/flat-scratch.ll
    M llvm/test/CodeGen/AMDGPU/memcpy-fixed-align.ll

  Log Message:
  -----------
  [NFC][AMDGPU] Rewrite two test files to avoid completely simplifying away after next patch


  Commit: cf624b23bc5d5a6161706d1663def49380ff816a
      https://github.com/llvm/llvm-project/commit/cf624b23bc5d5a6161706d1663def49380ff816a
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2022-11-23 (Wed, 23 Nov 2022)

  Changed paths:
    M clang/test/CodeGenOpenCL/amdgpu-nullptr.cl
    M llvm/lib/Transforms/Scalar/SROA.cpp
    M llvm/test/CodeGen/AMDGPU/v1024.ll
    M llvm/test/DebugInfo/X86/sroasplit-1.ll
    M llvm/test/DebugInfo/X86/sroasplit-4.ll
    M llvm/test/Transforms/PhaseOrdering/instcombine-sroa-inttoptr.ll
    M llvm/test/Transforms/SROA/address-spaces.ll
    M llvm/test/Transforms/SROA/alignment.ll
    M llvm/test/Transforms/SROA/alloca-address-space.ll
    M llvm/test/Transforms/SROA/basictest.ll
    M llvm/test/Transforms/SROA/pointer-offset-size.ll
    M llvm/test/Transforms/SROA/scalable-vectors.ll
    M llvm/test/Transforms/SROA/slice-width.ll
    M llvm/test/Transforms/SROA/sroa-common-type-fail-promotion.ll
    M llvm/test/Transforms/SROA/tbaa-struct.ll
    M llvm/test/Transforms/SROA/tbaa-struct2.ll
    M llvm/test/Transforms/SROA/vector-promotion.ll

  Log Message:
  -----------
  [SROA] `isVectorPromotionViable()`: memory intrinsics operate on vectors of bytes

Now, there's a big caveat here - these bytes
are abstract bytes, not the i8 we have in LLVM,
so strictly speaking this is not exactly legal,
see e.g. https://github.com/AliveToolkit/alive2/issues/860
^ the "bytes" "could" have been a pointer,
and loading it as an integer inserts an implicit ptrtoint.

But at the same time,
InstCombine's `InstCombinerImpl::SimplifyAnyMemTransfer()`
would expand a memtransfer of 1/2/4/8 bytes
into integer-typed load+store,
so this isn't exactly a new problem.

Note that in memory, poison is byte-wise,
so we really can't widen elements,
but SROA seems to be inconsistent here.

Fixes #59116.


Compare: https://github.com/llvm/llvm-project/compare/c4c0e7984ffd...cf624b23bc5d


More information about the All-commits mailing list