SuccessChanges

Summary

  1. [docs] Recommend dropLocation() over setDebugLoc(DebugLoc()) (details)
  2. [NFC][MSAN] Remove an attribute in test (details)
  3. [NFC][Msan] Add llvm.fabs test (details)
  4. Fix test failures with trunk clang (details)
  5. [lldb] Hoist -s (trace directory) argument out of LLDB_TEST_COMMON_ARGS (NFC) (details)
  6. [gardening] Replace some uses of setDebugLoc(DebugLoc()) with dropLocation(), NFC (details)
  7. Add remquo, frexp and modf overload functions to HIP header (details)
  8. [RISCV] Use the extensions in the canonical order (NFC) (details)
  9. [AIX] asm output: use character literals in byte lists for strings (details)
  10. [X86] Increase the depth threshold required to form VPERMI2W/VPERMI2B in shuffle combining (details)
  11. [GlobalISel] Fix multiply with overflow intrinsics legalization generating invalid MIR. (details)
  12. Remove further OpenBSD/sparc bits (details)
  13. [gn build] Add missing dependency to Extensions (details)
  14. [mlir] Update docs referencing OpTrait::Symbol. (details)
  15. Remove test AST/const-fpfeatures-diag.c (details)
  16. [lldb] Use config.lldb_src_root in lit_config.load_config (NFC) (details)
  17. [ARM] Change VPT state assertion (details)
  18. [RDA] Switch isSafeToMove iterators (details)
  19. [NFC][ARM] Add LowOverheadLoop test (details)
  20. [clangd] Extract options struct for ClangdLSPServer. NFC (details)
  21. [clangd] Mark code action as "preferred" if it's the sole quickfix action (details)
  22. [ARM][LowOverheadLoops] TryRemove helper. (details)
  23. [MLIR][Standard] Add `atan2` to standard dialect (details)
  24. [llvm-readobj][ARM] - Improve support of printing unwind (-u) information for non-relocatable objects. (details)
  25. [llvm-readobj][test] - Stop using few precompiled binaries in mips-got.test (details)
  26. Revert "[gardening] Replace some uses of setDebugLoc(DebugLoc()) with dropLocation(), NFC" (details)
  27. [clangd] Fix member/type name conflict caught by buildbots. (details)
  28. [clangd] Fix fuzzer build after 7ba0779fbb41b6fa8 (details)
  29. [clangd][remote] Make sure relative paths are absolute with respect to posix style (details)
  30. [AMDGPU] Do not generate mul with 1 in AMDGPU Atomic Optimizer (details)
  31. [SplitKit] Cope with no live subranges in defFromParent (details)
  32. [SystemZ]  Support bare nop instructions (details)
  33. [MLIR][SPIRV] Support different function control in (de)serialization (details)
  34. [X86] Support Intel Key Locker (details)
  35. [gn build] Port 413577a8790 (details)
  36. [InstCombine] recognizeBSwapOrBitReverseIdiom - assert for correct bit providence indices. NFCI. (details)
  37. [InstCombine] recognizeBSwapOrBitReverseIdiom - recognise zext(bswap(trunc(x))) patterns (PR39793) (details)
  38. [mlir] Added support for rank reducing subviews (details)
Commit f71849c74ed58e5d9ed3681cc6294128098012dc by Vedant Kumar
[docs] Recommend dropLocation() over setDebugLoc(DebugLoc())
The file was modifiedllvm/docs/HowToUpdateDebugInfo.rst (diff)
Commit 616c68aab75016d5d7ebc0b79bb3c38405b18ae6 by Vitaly Buka
[NFC][MSAN] Remove an attribute in test
The file was modifiedllvm/test/Instrumentation/MemorySanitizer/abs-vector.ll (diff)
Commit 795d94fdb9d2377452f86952dcf0921a6c68d2b5 by Vitaly Buka
[NFC][Msan] Add llvm.fabs test

llvm.fabs does not need a special handler as llvm.abs as its
single argument type match the return type.
The file was modifiedllvm/test/Instrumentation/MemorySanitizer/abs-vector.ll (diff)
Commit afcf9c47c5e74a0b567531547b677ff1d383ae50 by richard
Fix test failures with trunk clang

- Make the consteval constructor for the zero type be noexcept
- Don't expect three-way comparison of 0 against a comparison category
  to fail
The file was modifiedlibcxx/test/std/language.support/cmp/cmp.categories.pre/zero_type.verify.cpp (diff)
The file was modifiedlibcxx/include/compare (diff)
Commit bd14d6ea1517c93ceecaec29dad016d9a122fa1b by Jonas Devlieghere
[lldb] Hoist -s (trace directory) argument out of LLDB_TEST_COMMON_ARGS (NFC)

Give the trace directory argument its own variable
(LLDB_TEST_TRACE_DIRECTORY) so that we can configure it in
lit.site.cfg.py if we so desire.
The file was modifiedlldb/utils/lldb-dotest/lldb-dotest.in (diff)
The file was modifiedlldb/utils/lldb-dotest/CMakeLists.txt (diff)
The file was modifiedlldb/test/API/lit.cfg.py (diff)
The file was modifiedlldb/test/API/lit.site.cfg.py.in (diff)
The file was modifiedlldb/test/API/CMakeLists.txt (diff)
Commit 674f57870f4c8a7fd7b629bffc85b149cbefd3e0 by Vedant Kumar
[gardening] Replace some uses of setDebugLoc(DebugLoc()) with dropLocation(), NFC
The file was modifiedllvm/lib/Transforms/Utils/SimplifyCFG.cpp (diff)
The file was modifiedllvm/lib/Transforms/Scalar/LICM.cpp (diff)
Commit d04775e16bba456f0be0aaa7478959c5bfa22c41 by Yaxun.Liu
Add remquo, frexp and modf overload functions to HIP header
The file was modifiedclang/lib/Headers/__clang_hip_math.h (diff)
Commit c6b18cf9672bca4f61bb3ef401173742068e46ea by ebahapo
[RISCV] Use the extensions in the canonical order (NFC)

Use the ISA extensions for specific processors in the conventional canonical order.
The file was modifiedllvm/lib/Target/RISCV/RISCV.td (diff)
Commit 0a146a9d0bdd54411f0b0712e27481a4c280ae03 by hubert.reinterpretcast
[AIX] asm output: use character literals in byte lists for strings

This patch improves the assembly output produced for string literals by
using character literals in byte lists. This provides the benefits of
having printable characters appear as such in the assembly output and of
having strings kept as logical units on the same line.

Reviewed By: daltenty

Differential Revision: https://reviews.llvm.org/D80953
The file was modifiedllvm/lib/MC/MCAsmInfoXCOFF.cpp (diff)
The file was addedllvm/test/CodeGen/PowerPC/aix-bytestring.ll
The file was modifiedllvm/test/CodeGen/PowerPC/aix-xcoff-data.ll (diff)
The file was modifiedllvm/test/CodeGen/PowerPC/aix-xcoff-rodata.ll (diff)
The file was modifiedllvm/include/llvm/MC/MCAsmInfo.h (diff)
The file was modifiedllvm/lib/MC/MCAsmStreamer.cpp (diff)
The file was modifiedllvm/test/CodeGen/PowerPC/aix-xcoff-mergeable-str.ll (diff)
Commit 618a890b72f874cbc41168737d03f724f58805fc by craig.topper
[X86] Increase the depth threshold required to form VPERMI2W/VPERMI2B in shuffle combining

These instructions are implemented with two port 5 uops and one port 015 uop so they are more complicated that most shuffles.

This patch increases the depth threshold for when we form them during shuffle combining to try to limit increasing the number of uops especially on port 5.

Differential Revision: https://reviews.llvm.org/D88503
The file was modifiedllvm/test/CodeGen/X86/vector-shuffle-128-v16.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/vector-zext.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/min-legal-vector-width.ll (diff)
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp (diff)
The file was modifiedllvm/test/CodeGen/X86/vector-shuffle-128-v8.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/vector-shuffle-256-v32.ll (diff)
Commit 1d54e75cf26a4c60b66659d5d9c62f4bb9452b03 by Amara Emerson
[GlobalISel] Fix multiply with overflow intrinsics legalization generating invalid MIR.

During lowering of G_UMULO and friends, the previous code moved the builder's
insertion point to be after the legalizing instruction. When that happened, if
there happened to be a "G_CONSTANT i32 0" immediately after, the CSEMIRBuilder
would try to find that constant during the buildConstant(zero) call, and since
it dominates itself would return the iterator unchanged, even though the def
of the constant was *after* the current insertion point. This resulted in the
compare being generated *before* the constant which it was using.

There's no need to modify the insertion point before building the mul-hi or
constant. Delaying moving the insert point ensures those are built/CSEd before
the G_ICMP is built.

Fixes PR47679

Differential Revision: https://reviews.llvm.org/D88514
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-mul.mir (diff)
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp (diff)
The file was modifiedllvm/test/CodeGen/Mips/GlobalISel/legalizer/mul.mir (diff)
The file was modifiedllvm/test/CodeGen/Mips/GlobalISel/llvm-ir/mul.ll (diff)
Commit 6f01c53f26af7fb0393464079ec5e839a497d4da by brad
Remove further OpenBSD/sparc bits
The file was modifiedclang/lib/Driver/ToolChains/CommonArgs.cpp (diff)
Commit e6e73712ddfa18d4a2937a5775990dcefc8bd2f7 by aeubanks
[gn build] Add missing dependency to Extensions
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Extensions/BUILD.gn (diff)
Commit 1c5aa8aeca29c7d4b891e5b60b25fdb74f9bf0e9 by joker.eph
[mlir] Update docs referencing OpTrait::Symbol.

Since https://reviews.llvm.org/D78522, Symbol is not a Trait itself.

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D88512
The file was modifiedmlir/docs/Interfaces.md (diff)
The file was modifiedmlir/docs/SymbolsAndSymbolTables.md (diff)
The file was modifiedmlir/docs/Traits.md (diff)
Commit 4e4f926e83cf77f0d36b821a3d2aa1de78338a82 by sepavloff
Remove test AST/const-fpfeatures-diag.c

This test is going to be removed because using dynamic rounding mode
in initializers is changing. It also causes build failures in some
cases, so remove it now.
The file was removedclang/test/AST/const-fpfeatures-diag.c
Commit 154860af338f7b0c82cb04e91d6f199aa72cfdff by Jonas Devlieghere
[lldb] Use config.lldb_src_root in lit_config.load_config (NFC)

Rather than relaying on CMake to substitute the full path to the lldb
source root, use the  value set in config.lldb_src_root. This makes it
slightly easier to write a custom lit.site.cfg.py.
The file was modifiedlldb/test/API/lit.site.cfg.py.in (diff)
The file was modifiedlldb/test/Unit/lit.site.cfg.py.in (diff)
The file was modifiedlldb/test/Shell/lit.site.cfg.py.in (diff)
Commit 195c22f2733cf923b932412f0fe212f4ef397d2c by sam.parker
[ARM] Change VPT state assertion

Just because we haven't encountered an instruction setting the VPR,
it doesn't mean we can't create a VPT block - the VPR maybe a
live-in.

Differential Revision: https://reviews.llvm.org/D88224
The file was addedllvm/test/CodeGen/Thumb2/LowOverheadLoops/begin-vpt-without-inst.mir
The file was modifiedllvm/lib/Target/ARM/ARMLowOverheadLoops.cpp (diff)
Commit 700f93e92b6d4cdbab66133f75c143c9677f2d41 by sam.parker
[RDA] Switch isSafeToMove iterators

So forwards is forwards and backwards is reverse. Also add a check
so that we know the instructions are in the expected order.

Differential Revision: https://reviews.llvm.org/D88419
The file was modifiedllvm/lib/CodeGen/ReachingDefAnalysis.cpp (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/mov-operand.ll (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-mov.mir (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/lstp-insertion-position.mir (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/move-start-after-def.mir (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/move-def-before-start.mir (diff)
Commit 834b6470d9f111c355053ecff8bed71bf44a6624 by sam.parker
[NFC][ARM] Add LowOverheadLoop test
The file was addedllvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-chain-store.mir
Commit 7ba0779fbb41b6fa8213aa31622ff45484037eb4 by sam.mccall
[clangd] Extract options struct for ClangdLSPServer. NFC

In preparation for making moving TweakFilter from ClangdServer::Options to
a ClangdLSPServer option, and letting it vary per-request.
(In order to implement CodeActionParams.only)

Also a general overdue cleanup.

Differential Revision: https://reviews.llvm.org/D88470
The file was modifiedclang-tools-extra/clangd/ClangdLSPServer.cpp (diff)
The file was modifiedclang-tools-extra/clangd/unittests/ClangdLSPServerTests.cpp (diff)
The file was modifiedclang-tools-extra/clangd/ClangdLSPServer.h (diff)
The file was modifiedclang-tools-extra/clangd/tool/ClangdMain.cpp (diff)
Commit 8392685c2b9f3c2025100dd25b6c6e5eae312d92 by sam.mccall
[clangd] Mark code action as "preferred" if it's the sole quickfix action

Differential Revision: https://reviews.llvm.org/D88489
The file was modifiedclang-tools-extra/clangd/test/fixits-embed-in-diagnostic.test (diff)
The file was modifiedclang-tools-extra/clangd/ClangdLSPServer.cpp (diff)
The file was modifiedclang-tools-extra/clangd/Protocol.cpp (diff)
The file was modifiedclang-tools-extra/clangd/Protocol.h (diff)
The file was modifiedclang-tools-extra/clangd/Diagnostics.cpp (diff)
Commit 779a8a028f53f16234b41e5252b805304788b989 by sam.parker
[ARM][LowOverheadLoops] TryRemove helper.

Make a helper function that wraps around RDA::isSafeToRemove and
utilises the existing DCE IT block checks.
The file was modifiedllvm/lib/Target/ARM/ARMLowOverheadLoops.cpp (diff)
The file was modifiedllvm/lib/CodeGen/ReachingDefAnalysis.cpp (diff)
Commit cdda7822d6ce9cd6fe305e6fffedf3480d4bb769 by frgossen
[MLIR][Standard] Add `atan2` to standard dialect

Differential Revision: https://reviews.llvm.org/D88168
The file was modifiedmlir/test/Dialect/Standard/ops.mlir (diff)
The file was modifiedmlir/include/mlir/Dialect/StandardOps/IR/Ops.td (diff)
Commit fdceec7aeac6ae0fba4db9703bf4e4e69a126d0d by grimar
[llvm-readobj][ARM] - Improve support of printing unwind (-u) information for non-relocatable objects.

This is the one more patch for https://bugs.llvm.org/show_bug.cgi?id=47581

It fixes how we print an information for the Generic model. With this patch
we are able to read values from `.ARM.extab` and dump proper personality routines names/addresses.

Differential revision: https://reviews.llvm.org/D88478
The file was modifiedllvm/test/tools/llvm-readobj/ELF/ARM/unwind-non-relocatable.test (diff)
The file was modifiedllvm/tools/llvm-readobj/ARMEHABIPrinter.h (diff)
Commit 0767a0b53e37009a70788c2a44834ed14a951cba by grimar
[llvm-readobj][test] - Stop using few precompiled binaries in mips-got.test

This removes 4 input files (one source file and 3 precompiled binaries) from
`mips-got.test` (now YAMLs are used instead) and also makes the testing of
the GNU output a bit stricter (`--strict-whitespace --match-full-lines`).

Differential revision: https://reviews.llvm.org/D88488
The file was removedllvm/test/tools/llvm-readobj/ELF/Inputs/dynamic-table-so.mips
The file was removedllvm/test/tools/llvm-readobj/ELF/Inputs/dynamic-table.c
The file was removedllvm/test/tools/llvm-readobj/ELF/Inputs/got-tls.so.elf-mips64el
The file was modifiedllvm/test/tools/llvm-readobj/ELF/mips-got.test (diff)
The file was removedllvm/test/tools/llvm-readobj/ELF/Inputs/dynamic-table-exe.mips
Commit 05659606a2af76710fb19a65fbd1a6c88ba12dad by jeremy.morse
Revert "[gardening] Replace some uses of setDebugLoc(DebugLoc()) with dropLocation(), NFC"

Some of the buildbots have croaked with this patch, for examples failures
that begin in this build:

  http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux/builds/29933

This reverts commit 674f57870f4c8a7fd7b629bffc85b149cbefd3e0.
The file was modifiedllvm/lib/Transforms/Scalar/LICM.cpp (diff)
The file was modifiedllvm/lib/Transforms/Utils/SimplifyCFG.cpp (diff)
Commit 6342b38c5fee74df94d7b0c34e5a93b9b22763df by sam.mccall
[clangd] Fix member/type name conflict caught by buildbots.
The file was modifiedclang-tools-extra/clangd/ClangdLSPServer.cpp (diff)
The file was modifiedclang-tools-extra/clangd/ClangdLSPServer.h (diff)
The file was modifiedclang-tools-extra/clangd/tool/ClangdMain.cpp (diff)
Commit d99f46c6eb8debaa1a14c122956177dc2a40ef9b by sam.mccall
[clangd] Fix fuzzer build after 7ba0779fbb41b6fa8
The file was modifiedclang-tools-extra/clangd/fuzzer/clangd-fuzzer.cpp (diff)
Commit 64e8fd540ecc38ee3daf942499091589785e2733 by kadircet
[clangd][remote] Make sure relative paths are absolute with respect to posix style

Relative paths received from the server are always in posix style. So
we need to ensure they are relative using that style, and not the native one.

Differential Revision: https://reviews.llvm.org/D88507
The file was modifiedclang-tools-extra/clangd/index/remote/marshalling/Marshalling.cpp (diff)
Commit 0249df33fec16b728e2d33cae02f5da4c9f74e38 by Mirko.Brkusanin
[AMDGPU] Do not generate mul with 1 in AMDGPU Atomic Optimizer

Check if operand of mul is constant value of one for certain atomic
instructions in order to avoid making unnecessary instructions when
-amdgpu-atomic-optimizer is present.

Differential Revision: https://reviews.llvm.org/D88315
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp (diff)
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/atomic_optimizations_mul_one.ll
Commit cdac4492b4a523a888a013d42ea0a968f684ed59 by jay.foad
[SplitKit] Cope with no live subranges in defFromParent

Following on from D87757 "[SplitKit] Only copy live lanes", it is
possible to split a live range at a point when none of its subranges
are live. This patch handles that case by inserting an implicit def
of the superreg.

Patch by Quentin Colombet!

Differential Revision: https://reviews.llvm.org/D88397
The file was addedllvm/test/CodeGen/AMDGPU/splitkit-nolivesubranges.mir
The file was modifiedllvm/lib/CodeGen/SplitKit.cpp (diff)
Commit 9f5da55f5d9299a76a4dfb67ef0324dbc1900826 by paulsson
[SystemZ]  Support bare nop instructions

Add support of "nop" and "nopr" (without operands) to assembler.

Review: Ulrich Weigand
The file was modifiedllvm/lib/Target/SystemZ/SystemZInstrInfo.td (diff)
The file was modifiedllvm/test/MC/SystemZ/insn-good.s (diff)
Commit 8c05c7c8d87c7ab02fca2a789dfcca4976c6601b by georgemitenk0v
[MLIR][SPIRV] Support different function control in (de)serialization

Added support for different function control
in serialization and deserialization.

Reviewed By: mravishankar

Differential Revision: https://reviews.llvm.org/D88280
The file was modifiedmlir/lib/Dialect/SPIRV/Serialization/Deserializer.cpp (diff)
The file was modifiedmlir/test/Dialect/SPIRV/Serialization/module.mlir (diff)
The file was modifiedmlir/lib/Dialect/SPIRV/Serialization/Serializer.cpp (diff)
Commit 413577a8790407d75ba834fa5668c2632fe1851e by xiang1.zhang
[X86] Support Intel Key Locker

Key Locker provides a mechanism to encrypt and decrypt data with an AES key without having access
to the raw key value by converting AES keys into “handles”. These handles can be used to perform the
same encryption and decryption operations as the original AES keys, but they only work on the current
system and only until they are revoked. If software revokes Key Locker handles (e.g., on a reboot),
then any previous handles can no longer be used.

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D88398
The file was modifiedclang/test/CodeGen/attr-target-x86.c (diff)
The file was modifiedllvm/lib/Target/X86/X86InstrInfo.td (diff)
The file was modifiedclang/lib/Headers/CMakeLists.txt (diff)
The file was addedllvm/lib/Target/X86/X86InstrInfo.td.rej
The file was modifiedllvm/lib/Support/X86TargetParser.cpp (diff)
The file was addedllvm/test/MC/X86/KEYLOCKER/x86-64-keylocker-att.s
The file was addedllvm/lib/Target/X86/X86InstrKL.td
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp (diff)
The file was modifiedllvm/include/llvm/IR/IntrinsicsX86.td (diff)
The file was modifiedllvm/lib/IR/Function.cpp (diff)
The file was addedllvm/test/MC/X86/KEYLOCKER/keylocker-intel.s
The file was modifiedclang/lib/Headers/immintrin.h (diff)
The file was addedclang/lib/Headers/keylockerintrin.h
The file was modifiedllvm/utils/TableGen/IntrinsicEmitter.cpp (diff)
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp (diff)
The file was modifiedclang/test/Driver/x86-target-features.c (diff)
The file was addedllvm/test/MC/Disassembler/X86/KEYLOCKER/Keylocker-x86-64-intel.txt
The file was modifiedclang/include/clang/Basic/BuiltinsX86.def (diff)
The file was addedclang/lib/Headers/keylocker_wide_intrin.h
The file was modifiedllvm/include/llvm/Support/X86TargetParser.def (diff)
The file was addedllvm/test/MC/X86/KEYLOCKER/keylocker-att.s
The file was addedllvm/test/MC/Disassembler/X86/KEYLOCKER/Keylocker-x86-32-intel.txt
The file was addedllvm/test/MC/Disassembler/X86/KEYLOCKER/Keylocker-x86-64-att.txt
The file was addedllvm/test/CodeGen/X86/keylocker-intrinsics.ll
The file was modifiedllvm/lib/Target/X86/X86.td (diff)
The file was addedllvm/test/MC/Disassembler/X86/KEYLOCKER/Keylocker-x86-32-att.txt
The file was modifiedclang/include/clang/Driver/Options.td (diff)
The file was addedclang/test/CodeGen/X86/keylocker.c
The file was modifiedllvm/lib/Target/X86/X86Subtarget.h (diff)
The file was modifiedclang/lib/Basic/Targets/X86.h (diff)
The file was addedllvm/test/MC/X86/KEYLOCKER/x86-64-keylocker-intel.s
The file was modifiedclang/lib/Basic/Targets/X86.cpp (diff)
The file was modifiedclang/test/Preprocessor/x86_target_features.c (diff)
The file was modifiedllvm/lib/Support/Host.cpp (diff)
Commit e39d7884a1f5c5c7136ba2e493e9ac313ccc78ed by llvmgnsyncbot
[gn build] Port 413577a8790
The file was modifiedllvm/utils/gn/secondary/clang/lib/Headers/BUILD.gn (diff)
Commit ec3f24d4538d1c262377331c7b35ea66e023cf98 by llvm-dev
[InstCombine] recognizeBSwapOrBitReverseIdiom - assert for correct bit providence indices. NFCI.

As suggested by @spatel on D88316
The file was modifiedllvm/lib/Transforms/Utils/Local.cpp (diff)
Commit af47d40b9c68744eb66aa2ef779065e946aaa099 by llvm-dev
[InstCombine] recognizeBSwapOrBitReverseIdiom - recognise zext(bswap(trunc(x))) patterns (PR39793)

PR39793 demonstrated an issue where we fail to recognize 'partial' bswap patterns of the lower bytes of an integer source.

In fact, most of this is already in place collectBitParts suitably tags zero bits, so we just need to correctly handle this case by finding the zero'd upper bits and reducing the bswap pattern just to the active demanded bits.

Differential Revision: https://reviews.llvm.org/D88316
The file was modifiedllvm/test/Transforms/InstCombine/bswap.ll (diff)
The file was modifiedllvm/lib/Transforms/Utils/Local.cpp (diff)
Commit 14088a6f5d1ae597960833a366beb9acee8d65cb by limo
[mlir] Added support for rank reducing subviews

This commit adds support for subviews which enable to reduce resulting rank
by dropping static dimensions of size 1.

Differential Revision: https://reviews.llvm.org/D88534
The file was modifiedmlir/lib/Dialect/StandardOps/IR/Ops.cpp (diff)
The file was modifiedmlir/test/IR/invalid-ops.mlir (diff)
The file was modifiedmlir/include/mlir/Dialect/StandardOps/IR/Ops.td (diff)
The file was modifiedmlir/lib/Dialect/Vector/VectorTransforms.cpp (diff)
The file was modifiedmlir/test/IR/core-ops.mlir (diff)