SuccessChanges

Changes from Git (git http://labmaster3.local/git/llvm-project.git)

Summary

  1. [DWARFYAML] Make the debug_addr section optional. (details)
  2. [ARM][CostModel] CodeSize costs for i1 arith ops (details)
  3. [GlobalISel] Extend not_cmp_fold to work on conditional expressions (details)
  4. [SimplifyCFG] Consider cost of combining predicates. (details)
  5. [clang-format] Allow configuring list of macros that map to attributes (details)
  6. [clang-format] Handle typename macros inside cast expressions (details)
  7. [clang-format] Check that */& after typename macros are pointers/references (details)
  8. [clang-format] Fix formatting of _Atomic() qualifier (details)
  9. [clang-format] Parse __underlying_type(T) as a type (details)
  10. [clang-format] Correctly parse function declarations with TypenameMacros (details)
  11. [OpenMP][AMDGPU] Use DS_Max_Warp_Number instead of WARPSIZE (details)
  12. [mlir][Vector] Revisit VectorToSCF. (details)
  13. Extract infrastructure to ignore intermediate expressions into `clang/AST/IgnoreExpr.h` (details)
  14. [Ignore Expressions][NFC] Refactor to better use `IgnoreExpr.h` and nits (details)
  15. [X86] Use Register instead of unsigned. NFCI. (details)
  16. [X86] Use Register instead of unsigned. NFCI. (details)
  17. [NFC][PowerPC] Add tests for `mul` with big constants. (details)
  18. [X86] Use Register instead of unsigned. NFCI. (details)
  19. [X86][AVX] Add extra vperm2f128+vpermilvar combine coverage (details)
  20. [X86] getFauxShuffleMask - handle insert_subvector(zero, sub, C) (details)
  21. [X86] Unbreak the build after 22fa6b20d92e (details)
  22. [gn build] Port 81aa66f65f5 (details)
  23. [clang] Prevent that Decl::dump on a CXXRecordDecl deserialises further declarations. (details)
  24. [gn build] Port 0478720157f (details)
  25. [SCEV] Refactor isHighCostExpansionHelper (details)
  26. [MLIR][Standard] Add `dynamic_tensor_from_elements` operation (details)
  27. [obj2yaml] Add support for dumping the .debug_str section. (details)
  28. [X86][AVX] Use lowerShuffleWithPERMV in shuffle combining to support non-VLX targets (details)
  29. X86AvoidStoreForwardingBlocks.cpp - use unsigned for Opcode values. NFCI. (details)
  30. [llvm-readobj/elf] - Introduce Relocation<ELFT> helper. (details)
  31. LegalizeTypes.h - remove orphan SplitVSETCC declaration. NFCI. (details)
  32. [MLIR][Shape] Merge `shape` to `std`/`scf` lowerings. (details)
  33. [MLIR] Fix Win test due to partial order of CHECK directives (details)
  34. [InstCombine] give a name to an intermediate value for easier tracking; NFC (details)
  35. [InstCombine] add test with more unreachable insts; NFC (details)
  36. [SelectionDAG] memcpy expansion of const volatile struct ignores const zero (details)
  37. [X86] Replace EmitX86AddSubSatExpr with EmitX86BinaryIntrinsic generic helper. NFCI. (details)
  38. MachineStableHash.h - remove MachineInstr.h include. NFC. (details)
  39. [llvm-readobj/elf] - Generalize the code for printing dynamic relocations. NFCI. (details)
  40. Revert "[MLIR][Shape] Merge `shape` to `std`/`scf` lowerings." (details)
  41. Revert "[clang] Prevent that Decl::dump on a CXXRecordDecl deserialises further declarations." (details)
  42. [gn build] Port 23f700c785a (details)
  43. [X86] Update SSE/AVX ABS intrinsics to emit llvm.abs.* (PR46851) (details)
  44. [X86][SSE] Move llvm.x86.ssse3.pabs.*.128 intrinsics to ssse3-intrinsics-x86-upgrade.ll (details)
  45. [KillTheDoctor/CMake] Add missing keyword PRIVATE in target_link_libraries (details)
  46. [llvm-readobj] - Remove code duplication when printing dynamic relocations. NFCI. (details)
  47. [NFC][PowerPC] Add tests in constants-i64.ll. (details)
  48. [mlir] Take ValueRange instead of ArrayRef<Value> in StructuredIndexed (details)
  49. [X86][SSE] Use llvm.abs.* vector intrinsics instead of old (deprecated) SSE/AVX intrinsics for combine tests (details)
  50. [X86] Auto upgrade SSE/AVX PABS intrinsics to generic Intrinsic::abs (details)
  51. Follow up of rG5f1cad4d296a, slightly reduced test case. NFC. (details)
  52. [MLIR][Shape] Merge `shape` to `std`/`scf` lowerings. (details)
  53. [InstCombine] erase instructions leading up to unreachable (details)
  54. [X86] Replace UpgradeX86AddSubSatIntrinsics with UpgradeX86BinaryIntrinsics generic helper. NFCI. (details)
  55. [X86][SSE] Add test cases for PR47448 (details)
  56. [X86][SSE] Don't use LowerVSETCCWithSUBUS for unsigned compare with +ve operands (PR47448) (details)
  57. [Sparc] Add reduced funnel shift test case for PR47303 (details)
  58. AntiDepBreaker.h - remove unnecessary ScheduleDAG.h include. NFCI. (details)
  59. [flang] Fix link to old repo location in doxygen mainpage. NFC. (details)
  60. [analyzer][StdLibraryFunctionsChecker] Add POSIX pthread handling functions (details)
  61. [flang] Spelling and format edits to README.txt. NFC. (details)
  62. [analyzer][StdLibraryFunctionsChecker] Have proper weak dependencies (details)
  63. Reduce the number of memory allocations when displaying (details)
  64. [AMDGPU] SILowerControlFlow::optimizeEndCF should remove empty basic block (details)
  65. [InstCombine] move/add tests for icmp with mul operands; NFC (details)
  66. [InstCombine] improve folds for icmp with multiply operands (PR47432) (details)
  67. LeonPasses.h - remove orphan function declarations. NFCI. (details)
  68. LeonPasses.h - remove unnecessary includes. NFCI. (details)
  69. BTFDebug.h - reduce MachineInstr.h include to forward declaration. NFCI. (details)
  70. MipsISelLowering.h - remove CCState/CCValAssign forward declarations. NFCI. (details)
  71. VPlan.h - remove unnecessary forward declarations. NFCI. (details)
  72. [ms] [llvm-ml] Add support for bitwise named operators (AND, NOT, OR) in MASM (details)
  73. [ms] [llvm-ml] Fix STRUCT field alignment (details)
  74. [ms] [llvm-ml] Allow use of locally-defined variables in expressions (details)
  75. [DAGCombiner] allow more store merging for non-i8 truncated ops (details)
  76. [X86] Pre-commit new test case for D87214. NFC (details)
  77. [X86] Use the same sequence for i128 ISD::ABS on 64-bit targets as we use for i64 on 32-bit targets. (details)
Commit 40f4131fce787fe7a8596f06cef5fb6a06bf5ded by Xing
[DWARFYAML] Make the debug_addr section optional.

This patch makes the debug_addr section optional. When an empty
debug_addr section is specified, yaml2obj only emits a section header
for it.

Reviewed By: jhenderson

Differential Revision: https://reviews.llvm.org/D87205
The file was modifiedllvm/lib/ObjectYAML/DWARFEmitter.cpp
The file was modifiedllvm/lib/ObjectYAML/DWARFYAML.cpp
The file was modifiedllvm/test/tools/yaml2obj/ELF/DWARF/debug-addr.yaml
The file was modifiedllvm/include/llvm/ObjectYAML/DWARFYAML.h
Commit 0af4147804aa0aa906a2ac913fe5639639afb9bb by sam.parker
[ARM][CostModel] CodeSize costs for i1 arith ops

When optimising for size, make the cost of i1 logical operations
relatively expensive so that optimisations don't try to combine
predicates.

Differential Revision: https://reviews.llvm.org/D86525
The file was modifiedllvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
The file was modifiedllvm/test/Analysis/CostModel/ARM/arith.ll
Commit 713c2ad60c137a88c0a64cc98f2db4be702a25e9 by jay.foad
[GlobalISel] Extend not_cmp_fold to work on conditional expressions

Differential Revision: https://reviews.llvm.org/D86709
The file was modifiedllvm/include/llvm/Target/GlobalISel/Combine.td
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
The file was modifiedllvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/prelegalizercombiner-invert-cmp.mir
Commit 65f78e73ad574bb73bb625c787850acd261ba53a by sam.parker
[SimplifyCFG] Consider cost of combining predicates.

Modify FoldBranchToCommonDest to consider the cost of inserting
instructions when attempting to combine predicates to fold blocks.
The threshold can be controlled via a new option:
-simplifycfg-branch-fold-threshold which defaults to '2' to allow
the insertion of a not and another logical operator.

Differential Revision: https://reviews.llvm.org/D86526
The file was modifiedllvm/lib/Transforms/Utils/SimplifyCFG.cpp
The file was modifiedllvm/include/llvm/Transforms/Utils/Local.h
The file was modifiedllvm/test/Transforms/SimplifyCFG/ARM/branch-fold-threshold.ll
Commit e7bd058c7e2cb2c675a4b78ec770ea725bff8c64 by Alexander.Richardson
[clang-format] Allow configuring list of macros that map to attributes

This adds a `AttributeMacros` configuration option that causes certain
identifiers to be parsed like a __attribute__((foo)) annotation.
This is motivated by our CHERI C/C++ fork which adds a __capability
qualifier for pointer/reference. Without this change clang-format parses
many type declarations as multiplications/bitwise-and instead.
I initially considered adding "__capability" as a new clang-format keyword,
but having a list of macros that should be treated as attributes is more
flexible since it can be used e.g. for static analyzer annotations or other language
extensions.

Example: std::vector<foo * __capability> -> std::vector<foo *__capability>

Depends on D86775 (to apply cleanly)

Reviewed By: MyDeveloperDay, jrtc27

Differential Revision: https://reviews.llvm.org/D86782
The file was modifiedclang/lib/Format/FormatTokenLexer.cpp
The file was modifiedclang/include/clang/Format/Format.h
The file was modifiedclang/lib/Format/TokenAnnotator.cpp
The file was modifiedclang/lib/Format/FormatToken.h
The file was modifiedclang/docs/ClangFormatStyleOptions.rst
The file was modifiedclang/lib/Format/Format.cpp
The file was modifiedclang/unittests/Format/FormatTest.cpp
Commit 8aa3b8da5db2ae73bf536b630915eb9f0ddc15cb by Alexander.Richardson
[clang-format] Handle typename macros inside cast expressions

Before: x = (STACK_OF(uint64_t)) & a;
After:  x = (STACK_OF(uint64_t))&a;

Reviewed By: MyDeveloperDay

Differential Revision: https://reviews.llvm.org/D86930
The file was modifiedclang/lib/Format/FormatToken.h
The file was modifiedclang/lib/Format/TokenAnnotator.cpp
The file was modifiedclang/unittests/Format/FormatTest.cpp
Commit cd01eec14bc045a8616604cadf94dba025090ba5 by Alexander.Richardson
[clang-format] Check that */& after typename macros are pointers/references

Reviewed By: MyDeveloperDay

Differential Revision: https://reviews.llvm.org/D86950
The file was modifiedclang/unittests/Format/FormatTest.cpp
Commit 56fa7d1dc6a8d23111ff84171036f333cf9cddf2 by Alexander.Richardson
[clang-format] Fix formatting of _Atomic() qualifier

Before: _Atomic(uint64_t) * a;
After: _Atomic(uint64_t) *a;

This treats _Atomic the same as the the TypenameMacros and decltype. It
also allows some cleanup by removing checks whether the token before a
paren is kw_decltype and instead checking for TT_TypeDeclarationParen.
While touching this code also extend the decltype test cases to also check
for typeof() and _Atomic(T).

Reviewed By: MyDeveloperDay

Differential Revision: https://reviews.llvm.org/D86959
The file was modifiedclang/lib/Format/FormatToken.h
The file was modifiedclang/unittests/Format/FormatTest.cpp
The file was modifiedclang/lib/Format/TokenAnnotator.cpp
The file was modifiedclang/lib/Format/FormatToken.cpp
Commit 9a22eba15091ea849fa78c09ac4c9f7260071790 by Alexander.Richardson
[clang-format] Parse __underlying_type(T) as a type

Before: MACRO(__underlying_type(A) * a);
After:  MACRO(__underlying_type(A) *a);

Reviewed By: MyDeveloperDay

Differential Revision: https://reviews.llvm.org/D86960
The file was modifiedclang/lib/Format/FormatToken.h
The file was modifiedclang/lib/Format/TokenAnnotator.cpp
The file was modifiedclang/unittests/Format/FormatTest.cpp
Commit 05147d33091720e2df929d6fea3b0fd2a657ac61 by Alexander.Richardson
[clang-format] Correctly parse function declarations with TypenameMacros

When using the always break after return type setting:
Before:
SomeType funcdecl(LIST(uint64_t));
After:
SomeType
funcdecl(LIST(uint64_t));"

Reviewed By: MyDeveloperDay

Differential Revision: https://reviews.llvm.org/D87007
The file was modifiedclang/lib/Format/TokenAnnotator.cpp
The file was modifiedclang/unittests/Format/FormatTest.cpp
Commit 7634c64b6121ba61a6c72c6b45e3561ad8cf345e by Pushpinder.Singh
[OpenMP][AMDGPU] Use DS_Max_Warp_Number instead of WARPSIZE

The size of worker_rootS should have been DS_Max_Warp_Number.
This reduces memory usage by deviceRTL on AMDGPU from around 2.3GB
to around 770MB.

Reviewed By: JonChesterfield, jdoerfert

Differential Revision: https://reviews.llvm.org/D87084
The file was modifiedopenmp/libomptarget/deviceRTLs/common/src/data_sharing.cu
The file was modifiedopenmp/libomptarget/deviceRTLs/common/omptarget.h
Commit 8d64df9f139038b48344dd9f1f20a38b22aba8c9 by ntv
[mlir][Vector] Revisit VectorToSCF.

Vector to SCF conversion still had issues due to the interaction with the natural alignment derived by the LLVM data layout. One traditional workaround is to allocate aligned. However, this does not always work for vector sizes that are non-powers of 2.

This revision implements a more portable mechanism where the intermediate allocation is always a memref of elemental vector type. AllocOp is extended to use the natural LLVM DataLayout alignment for non-scalar types, when the alignment is not specified in the first place.

An integration test is added that exercises the transfer to scf.for + scalar lowering with a 5x5 transposition.

Differential Revision: https://reviews.llvm.org/D87150
The file was modifiedmlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp
The file was modifiedmlir/test/Conversion/StandardToLLVM/convert-static-memref-ops.mlir
The file was modifiedmlir/test/Conversion/VectorToSCF/vector-to-loops.mlir
The file was modifiedmlir/include/mlir/Dialect/Vector/VectorOps.td
The file was modifiedmlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp
The file was modifiedmlir/lib/Dialect/Vector/VectorOps.cpp
The file was modifiedmlir/include/mlir/Dialect/Vector/EDSC/Intrinsics.h
The file was addedmlir/integration_test/Dialect/Vector/CPU/test-transfer-to-loops.mlir
The file was modifiedmlir/test/EDSC/builder-api-test.cpp
Commit 81aa66f65f504af18982baa078a5f3f7d2aa88fa by ecaldas
Extract infrastructure to ignore intermediate expressions into `clang/AST/IgnoreExpr.h`

Rationale:
This allows users to use `IgnoreExprNodes` and `Ignore*SingleStep` outside of
`clang/AST/Expr.cpp`.

Minor:
Rename `IgnoreImp...SingleStep`  into `IgnoreImplicit...SingleStep`.

Differential Revision: https://reviews.llvm.org/D86778
The file was addedclang/lib/AST/IgnoreExpr.cpp
The file was addedclang/include/clang/AST/IgnoreExpr.h
The file was modifiedclang/lib/AST/CMakeLists.txt
The file was modifiedclang/lib/AST/Expr.cpp
Commit 1a7a2cd7474e6d321120ffe7ca9c52163eb228f0 by ecaldas
[Ignore Expressions][NFC] Refactor to better use `IgnoreExpr.h` and nits

This change groups
* Rename: `ignoreParenBaseCasts` -> `IgnoreParenBaseCasts` for uniformity
* Rename: `IgnoreConversionOperator` -> `IgnoreConversionOperatorSingleStep` for uniformity
* Inline `IgnoreNoopCastsSingleStep` into a lambda inside `IgnoreNoopCasts`
* Refactor `IgnoreUnlessSpelledInSource` to make adequate use of `IgnoreExprNodes`

Differential Revision: https://reviews.llvm.org/D86880
The file was modifiedclang/lib/CodeGen/CGExprCXX.cpp
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was modifiedclang/lib/AST/Expr.cpp
The file was modifiedclang/lib/StaticAnalyzer/Core/CallEvent.cpp
The file was modifiedclang/include/clang/AST/Expr.h
The file was modifiedclang-tools-extra/clang-tidy/modernize/UseAutoCheck.cpp
The file was modifiedclang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp
Commit 0dbe2504af81fc8ac7438d490b98370740442805 by llvm-dev
[X86] Use Register instead of unsigned. NFCI.

Fixes llvm-prefer-register-over-unsigned clang-tidy warning.
The file was modifiedllvm/lib/Target/X86/X86AsmPrinter.cpp
Commit 22fa6b20d92efe796ad881aafe6e689960fe6e7d by llvm-dev
[X86] Use Register instead of unsigned. NFCI.

Fixes llvm-prefer-register-over-unsigned clang-tidy warnings.
The file was modifiedllvm/lib/Target/X86/X86FrameLowering.cpp
Commit ee68b66d94b50d8c9ff14d3217a77c66b0e2c32f by esme.yi
[NFC][PowerPC] Add tests for `mul` with big constants.
The file was addedllvm/test/CodeGen/PowerPC/mulli.ll
Commit 9ad261540da6e66a666e48fed95455bc27fa995b by llvm-dev
[X86] Use Register instead of unsigned. NFCI.

Fixes llvm-prefer-register-over-unsigned clang-tidy warnings.
The file was modifiedllvm/lib/Target/X86/X86InstrInfo.cpp
Commit aa3fcb967110f2d448d241358cadc048954e6134 by llvm-dev
[X86][AVX] Add extra vperm2f128+vpermilvar combine coverage

The existing test /should/ reduce to a vmovaps (concat xmm with zero upper).
The file was modifiedllvm/test/CodeGen/X86/vector-shuffle-combining-avx.ll
Commit 71dfdbe2c73afcc319bfd96c9e73407ea9245e3a by llvm-dev
[X86] getFauxShuffleMask - handle insert_subvector(zero, sub, C)

Directly use SM_SentinelZero elements if we're (widening)inserting into a zero vector.
The file was modifiedllvm/test/CodeGen/X86/vector-shuffle-combining-avx.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit 7ba0f81934ca5f4baa1d81ac0032f2e4ff6614ec by benny.kra
[X86] Unbreak the build after 22fa6b20d92e
The file was modifiedllvm/lib/Target/X86/X86FrameLowering.cpp
Commit 56d1f3138b532f4e195a5aaba9ea65a8bcb8adb4 by llvmgnsyncbot
[gn build] Port 81aa66f65f5
The file was modifiedllvm/utils/gn/secondary/clang/lib/AST/BUILD.gn
Commit 0478720157f6413fad7595b8eff9c70d2d99b637 by Raphael Isemann
[clang] Prevent that Decl::dump on a CXXRecordDecl deserialises further declarations.

Decl::dump is primarily used for debugging to visualise the current state of a
declaration. Usually Decl::dump just displays the current state of the Decl and
doesn't actually change any of its state, however since commit
457226e02a6e8533eaaa864a3fd7c8eeccd2bf58 the method actually started loading
additional declarations from the ExternalASTSource. This causes that calling
Decl::dump during a debugging session now actually does permanent changes to the
AST and will cause the debugged program run to deviate from the original run.

The change that caused this behaviour is the addition of
`hasConstexprDestructor` (which is called from the TextNodeDumper) which
performs a lookup into the current CXXRecordDecl to find the destructor. All
other similar methods just return their respective bit in the DefinitionData
(which obviously doesn't have such side effects).

This just changes the node printer to emit "unknown_constexpr" in case a
CXXRecordDecl is dumped that could potentially call into the ExternalASTSource
instead of the usually empty string/"constexpr". For CXXRecordDecls that can
safely be dumped the old behaviour is preserved

Reviewed By: bruno

Differential Revision: https://reviews.llvm.org/D80878
The file was addedclang/unittests/AST/ASTDumpTest.cpp
The file was modifiedclang/lib/AST/TextNodeDumper.cpp
The file was modifiedclang/test/AST/ast-dump-lambda.cpp
The file was modifiedclang/test/AST/ast-dump-records.cpp
The file was modifiedclang/unittests/AST/CMakeLists.txt
Commit 9764eb9212c598f165e9d7dfeb273b74f7777a41 by llvmgnsyncbot
[gn build] Port 0478720157f
The file was modifiedllvm/utils/gn/secondary/clang/unittests/AST/BUILD.gn
Commit 928c4b4b4988b4d633a96afa4c7f4584bc0009e5 by sam.parker
[SCEV] Refactor isHighCostExpansionHelper

To enable the cost of constants, the helper function has been
reorganised:
- A struct has been introduced to hold SCEV operand information so
  that we know the user of the operand, as well as the operand index.
  The Worklist now uses instead instead of a bare SCEV.
- The costing of each SCEV, and collection of its operands, is now
  performed in a helper function.

Differential Revision: https://reviews.llvm.org/D86050
The file was modifiedllvm/include/llvm/Transforms/Utils/ScalarEvolutionExpander.h
The file was modifiedllvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
Commit 136eb79a8846c4e8ff6ba5ccfc0c470ab351fb13 by frgossen
[MLIR][Standard] Add `dynamic_tensor_from_elements` operation

With `dynamic_tensor_from_elements` tensor values of dynamic size can be
created. The body of the operation essentially maps the index space to tensor
elements.

Declare SCF operations in the `scf` namespace to avoid name clash with the new
`std.yield` operation. Resolve ambiguities between `linalg/shape/std/scf.yield`
operations.

Differential Revision: https://reviews.llvm.org/D86276
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Loops.cpp
The file was modifiedmlir/include/mlir/Dialect/StandardOps/IR/Ops.td
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
The file was modifiedmlir/lib/Dialect/SCF/SCF.cpp
The file was modifiedmlir/test/Dialect/Standard/ops.mlir
The file was modifiedmlir/lib/Conversion/LinalgToLLVM/LinalgToLLVM.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
The file was modifiedmlir/include/mlir/Dialect/SCF/SCFOps.td
The file was modifiedmlir/test/Dialect/Standard/invalid.mlir
The file was modifiedmlir/lib/Dialect/Shape/Transforms/ShapeToShapeLowering.cpp
The file was modifiedmlir/lib/Dialect/Shape/IR/Shape.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Fusion.cpp
The file was modifiedmlir/lib/Conversion/SCFToStandard/SCFToStandard.cpp
The file was modifiedmlir/lib/Dialect/StandardOps/IR/Ops.cpp
Commit 3097427f93dde9a49f729e995b8d52d91cc30d4c by Xing
[obj2yaml] Add support for dumping the .debug_str section.

This patch adds support for dumping the .debug_str section to obj2yaml.

Reviewed By: jhenderson

Differential Revision: https://reviews.llvm.org/D86867
The file was modifiedllvm/tools/obj2yaml/elf2yaml.cpp
The file was addedllvm/test/tools/obj2yaml/ELF/DWARF/debug-str.yaml
Commit 9b645ebfff168fcf3cf29b21f49762a04d8ceb37 by llvm-dev
[X86][AVX] Use lowerShuffleWithPERMV in shuffle combining to support non-VLX targets

lowerShuffleWithPERMV allows us to use the ZMM variants for 128/256-bit variable shuffles on non-VLX AVX512 targets.

This is another step towards shuffle combining through between vector widths - we still end up with an annoying regression (combine_vpermilvar_vperm2f128_zero_8f32) but we're going in the right direction....
The file was modifiedllvm/test/CodeGen/X86/vector-shuffle-combining-avx2.ll
The file was modifiedllvm/test/CodeGen/X86/shuffle-strided-with-offset-512.ll
The file was modifiedllvm/test/CodeGen/X86/vector-shuffle-combining-avx.ll
The file was modifiedllvm/test/CodeGen/X86/shuffle-strided-with-offset-256.ll
The file was modifiedllvm/test/CodeGen/X86/vector-shuffle-avx512.ll
The file was modifiedllvm/test/CodeGen/X86/insertelement-ones.ll
The file was modifiedllvm/test/CodeGen/X86/vector-zext.ll
The file was modifiedllvm/test/CodeGen/X86/vector-shuffle-512-v16.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit 5bb27e735d3ba561b93a12e07d79cd88a5bff338 by llvm-dev
X86AvoidStoreForwardingBlocks.cpp - use unsigned for Opcode values. NFCI.

Fixes clang-tidy cppcoreguidelines-narrowing-conversions warnings.
The file was modifiedllvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp
Commit 3a86eb03d54ef80cf498d9473a1c735c93cdfa66 by grimar
[llvm-readobj/elf] - Introduce Relocation<ELFT> helper.

It removes templating for Elf_Rel[a] handling that we
introduced earlier and introduces a helper class instead.

It was briefly discussed in D87087, which showed,
why having templates is probably not ideal for the generalization
of dumpers code.

Differential revision: https://reviews.llvm.org/D87141
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp
Commit e57cbcbdc18adcadc6c97ff4f3f81b0f4b81c698 by llvm-dev
LegalizeTypes.h - remove orphan SplitVSETCC declaration. NFCI.

The implementation no longer exists
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
Commit 15acdd75439b402e993ebe0dbf8eb02e9b88bbdc by frgossen
[MLIR][Shape] Merge `shape` to `std`/`scf` lowerings.

Merge the two lowering passes because they are not useful by themselves. The new
pass lowers to `std` and `scf` is considered an auxiliary dialect.

See also
https://llvm.discourse.group/t/conversions-with-multiple-target-dialects/1541/12

Differential Revision: https://reviews.llvm.org/D86779
The file was modifiedmlir/lib/Conversion/ShapeToStandard/ShapeToStandard.cpp
The file was removedmlir/lib/Conversion/ShapeToSCF/ShapeToSCF.cpp
The file was removedmlir/include/mlir/Conversion/ShapeToSCF/ShapeToSCF.h
The file was modifiedmlir/test/Conversion/ShapeToStandard/shape-to-standard.mlir
The file was modifiedmlir/include/mlir/Conversion/Passes.h
The file was modifiedmlir/include/mlir/Conversion/Passes.td
The file was removedmlir/lib/Conversion/ShapeToSCF/CMakeLists.txt
The file was removedmlir/test/Conversion/ShapeToSCF/shape-to-scf.mlir
Commit 1c849ec40a53ca017a668b957fef333e560b0886 by ntv
[MLIR] Fix Win test due to partial order of CHECK directives

Differential Revision: https://reviews.llvm.org/D87230
The file was modifiedmlir/test/Conversion/VectorToSCF/vector-to-loops.mlir
Commit 3ca8b9a560a249a18b9f6092b96aa7e8e52db5cf by spatel
[InstCombine] give a name to an intermediate value for easier tracking; NFC

As noted in PR47430, we probably want to conditionally include 'nsw'
here anyway, so we are going to need to fill out the optional args.
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
The file was modifiedllvm/test/Transforms/InstCombine/sub.ll
Commit 28aa60aae25b7e46804deae909b29b66c1b41d95 by spatel
[InstCombine] add test with more unreachable insts; NFC

Goes with D87149
The file was modifiedllvm/test/Transforms/InstCombine/assume.ll
Commit 79ea83e104e368ef0f520f1bfa74c15d91baef93 by simon.wallis2
[SelectionDAG] memcpy expansion of const volatile struct ignores const zero

In getMemcpyLoadsAndStores(), a memcpy where the source is a zero constant is expanded to a MemOp::Set instead of a MemOp::Copy, even when the memcpy is volatile.
This is incorrect.

The fix is to add a check for volatile, and expand to MemOp::Copy in the volatile case.

Reviewed By: chill

Differential Revision: https://reviews.llvm.org/D87134
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
The file was addedllvm/test/CodeGen/ARM/memcpy-const-vol-struct.ll
Commit a8a91533dd65041ced68ed5b9348b5d023837488 by llvm-dev
[X86] Replace EmitX86AddSubSatExpr with EmitX86BinaryIntrinsic generic helper. NFCI.

Feed the Intrinsic::ID value directly instead of via the IsSigned/IsAddition bool flags.
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
Commit 6670f5d1e66563ad482576d9db4b8393539ab53b by llvm-dev
MachineStableHash.h - remove MachineInstr.h include. NFC.

Use forward declarations and move the include to MachineStableHash.cpp
The file was modifiedllvm/include/llvm/CodeGen/MachineStableHash.h
The file was modifiedllvm/lib/CodeGen/MachineStableHash.cpp
Commit dbb81881955d641bc873442e75874a5cb160f4ee by grimar
[llvm-readobj/elf] - Generalize the code for printing dynamic relocations. NFCI.

Currently we have 2 large `printDynamicRelocations` methods that
have a very similar code for GNU/LLVM styles.

This patch removes the duplication and renames them to `printDynamicReloc`
for consistency.

Differential revision: https://reviews.llvm.org/D87087
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp
Commit 973800dc7cbe28a98030293e77afa8ea0343c37d by david.truby
Revert "[MLIR][Shape] Merge `shape` to `std`/`scf` lowerings."

This reverts commit 15acdd75439b402e993ebe0dbf8eb02e9b88bbdc.
The file was modifiedmlir/lib/Conversion/ShapeToStandard/ShapeToStandard.cpp
The file was addedmlir/lib/Conversion/ShapeToSCF/CMakeLists.txt
The file was addedmlir/lib/Conversion/ShapeToSCF/ShapeToSCF.cpp
The file was modifiedmlir/test/Conversion/ShapeToStandard/shape-to-standard.mlir
The file was addedmlir/include/mlir/Conversion/ShapeToSCF/ShapeToSCF.h
The file was modifiedmlir/include/mlir/Conversion/Passes.td
The file was modifiedmlir/include/mlir/Conversion/Passes.h
The file was addedmlir/test/Conversion/ShapeToSCF/shape-to-scf.mlir
Commit 23f700c785a141355fa6d022552aafc73135bf5d by Raphael Isemann
Revert "[clang] Prevent that Decl::dump on a CXXRecordDecl deserialises further declarations."

This reverts commit 0478720157f6413fad7595b8eff9c70d2d99b637. This probably
doesn't work when forcing deserialising while dumping (which the ASTDumper
optionally supports).
The file was removedclang/unittests/AST/ASTDumpTest.cpp
The file was modifiedclang/lib/AST/TextNodeDumper.cpp
The file was modifiedclang/test/AST/ast-dump-records.cpp
The file was modifiedclang/test/AST/ast-dump-lambda.cpp
The file was modifiedclang/unittests/AST/CMakeLists.txt
Commit bb73fcfd0708d8f145060afa461d96f98f0e5f27 by llvmgnsyncbot
[gn build] Port 23f700c785a
The file was modifiedllvm/utils/gn/secondary/clang/unittests/AST/BUILD.gn
Commit 2853ae3c1b8174e3660424ffac45922601f700ee by llvm-dev
[X86] Update SSE/AVX ABS intrinsics to emit llvm.abs.* (PR46851)

We're now getting close to having the necessary analysis/combines etc. for the new generic llvm.abs.* intrinsics.

This patch updates the SSE/AVX ABS vector intrinsics to emit the generic equivalents instead of the icmp+sub+select code pattern.

Differential Revision: https://reviews.llvm.org/D87101
The file was modifiedclang/test/CodeGen/avx2-builtins.c
The file was modifiedclang/test/CodeGen/ssse3-builtins.c
The file was modifiedclang/test/CodeGen/avx512bw-builtins.c
The file was modifiedclang/test/CodeGen/avx512vlbw-builtins.c
The file was modifiedllvm/test/CodeGen/X86/avx2-intrinsics-fast-isel.ll
The file was modifiedllvm/test/CodeGen/X86/ssse3-intrinsics-fast-isel.ll
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
The file was modifiedclang/test/CodeGen/avx512vl-builtins.c
The file was modifiedclang/test/CodeGen/avx512f-builtins.c
Commit f6db681a78994dd7eb7da62da73754d1321085b3 by llvm-dev
[X86][SSE] Move llvm.x86.ssse3.pabs.*.128 intrinsics to ssse3-intrinsics-x86-upgrade.ll

These have been auto upgraded for some time so this is just a tidyup.
The file was modifiedllvm/test/CodeGen/X86/ssse3-intrinsics-x86.ll
The file was addedllvm/test/CodeGen/X86/ssse3-intrinsics-x86-upgrade.ll
Commit 6b954f1b79605e4139157ce064fe695c86a0f06a by raul.tambre
[KillTheDoctor/CMake] Add missing keyword PRIVATE in target_link_libraries

Add PRIVATE keyword in target_link_libraries to prevent CMake Error on Windows.

While trying to compile llvm/clang on Windows, the following CMake error occurred. The reason is a missing PUBLIC/PRIVATE/INTERFACE keyword in target_link_libraries.

`
CMake Error at utils/KillTheDoctor/CMakeLists.txt:5 (target_link_libraries):
  The keyword signature for target_link_libraries has already been used with
  the target "KillTheDoctor".  All uses of target_link_libraries with a
  target must be either all-keyword or all-plain.

  The uses of the keyword signature are here:

   * cmake/modules/AddLLVM.cmake:771 (target_link_libraries)
`

Reviewed By: tambre

Differential Revision: https://reviews.llvm.org/D87203
The file was modifiedllvm/utils/KillTheDoctor/CMakeLists.txt
Commit 4368739941eb1336197dde0e92eb23ce79739ac7 by grimar
[llvm-readobj] - Remove code duplication when printing dynamic relocations. NFCI.

LLVM style code can be simplified to avoid the duplication of logic
related to printing dynamic relocations.

Differential revision: https://reviews.llvm.org/D87089
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp
Commit a5046f7acece0085cb6f457da7ebca34d267155a by esme.yi
[NFC][PowerPC] Add tests in constants-i64.ll.
The file was modifiedllvm/test/CodeGen/PowerPC/constants-i64.ll
Commit 1e1a4a481987f77fe3e6debc015c1d07af249258 by zinenko
[mlir] Take ValueRange instead of ArrayRef<Value> in StructuredIndexed

This was likely overlooked when ValueRange was first introduced. There is no
reason why StructuredIndexed needs specifically an ArrayRef so use ValueRange
for better type compatibility with the rest of the APIs.

Reviewed By: nicolasvasilache, mehdi_amini

Differential Revision: https://reviews.llvm.org/D87127
The file was modifiedmlir/include/mlir/EDSC/Builders.h
Commit 4b530f75199d9b5e7ee1f4e86e1513a83b4b86cb by llvm-dev
[X86][SSE] Use llvm.abs.* vector intrinsics instead of old (deprecated) SSE/AVX intrinsics for combine tests

This also allows us to extend testing to SSE2+ targets
The file was modifiedllvm/test/CodeGen/X86/combine-abs.ll
Commit 96e0f34be797ab8bb80526367009495a7eb2118f by llvm-dev
[X86] Auto upgrade SSE/AVX PABS intrinsics to generic Intrinsic::abs

Minor followup to D87101, we were expanding this to a neg+icmp+select pattern like we were in CGBuiltin
The file was modifiedllvm/lib/IR/AutoUpgrade.cpp
Commit 288c582fc93956a7464a988a77c9f6d0f79ed65d by sjoerd.meijer
Follow up of rG5f1cad4d296a, slightly reduced test case. NFC.
The file was modifiedllvm/test/CodeGen/ARM/pr45824.ll
Commit a70f2eb3e39a42a71ba077247f9deafbdf1e8092 by frgossen
[MLIR][Shape] Merge `shape` to `std`/`scf` lowerings.

Merge the two lowering passes because they are not useful by themselves. The new
pass lowers to `std` and `scf` is considered an auxiliary dialect.

See also
https://llvm.discourse.group/t/conversions-with-multiple-target-dialects/1541/12

Differential Revision: https://reviews.llvm.org/D86779
The file was modifiedmlir/lib/Conversion/CMakeLists.txt
The file was removedmlir/include/mlir/Conversion/ShapeToSCF/ShapeToSCF.h
The file was modifiedmlir/include/mlir/Conversion/Passes.td
The file was removedmlir/test/Conversion/ShapeToSCF/shape-to-scf.mlir
The file was modifiedmlir/test/Conversion/ShapeToStandard/shape-to-standard.mlir
The file was removedmlir/lib/Conversion/ShapeToSCF/ShapeToSCF.cpp
The file was modifiedmlir/lib/Conversion/ShapeToStandard/ShapeToStandard.cpp
The file was modifiedmlir/include/mlir/Conversion/Passes.h
The file was removedmlir/lib/Conversion/ShapeToSCF/CMakeLists.txt
Commit b22910daab95be1ebc6ab8a74190e38130b0e6ef by spatel
[InstCombine] erase instructions leading up to unreachable

Normal dead code elimination ignores assume intrinsics, so we fail to
delete assumes that are not meaningful (and potentially worse if they
cause conflicts with other assumptions).

The motivating example in https://llvm.org/PR47416 suggests that we
might have problems upstream from here (difference between C and C++),
but this should be a cheap way to make sure we remove more dead code.

Differential Revision: https://reviews.llvm.org/D87149
The file was modifiedllvm/lib/Transforms/InstCombine/InstructionCombining.cpp
The file was modifiedllvm/test/Transforms/InstCombine/pr33689_same_bitwidth.ll
The file was modifiedllvm/test/Transforms/InstCombine/assume.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineInternal.h
Commit 60162626a5c963125a2e7012b621c7ba0b57855e by llvm-dev
[X86] Replace UpgradeX86AddSubSatIntrinsics with UpgradeX86BinaryIntrinsics generic helper. NFCI.

Feed the Intrinsic::ID value directly instead of via the IsSigned/IsAddition bool flags.
The file was modifiedllvm/lib/IR/AutoUpgrade.cpp
Commit 7993431dad064d03244f32c9585325b891f3e807 by llvm-dev
[X86][SSE] Add test cases for PR47448
The file was modifiedllvm/test/CodeGen/X86/vector-unsigned-cmp.ll
Commit 9de0a3da6a76030f96a2d6793ca4f094fa538db5 by llvm-dev
[X86][SSE] Don't use LowerVSETCCWithSUBUS for unsigned compare with +ve operands (PR47448)

We already simplify the unsigned comparisons if we've found the operands are non-negative, but we were still calling LowerVSETCCWithSUBUS which resulted in the PR47448 regressions.
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/vector-unsigned-cmp.ll
Commit c4056f842827db97e9861ae92360202aa0863199 by llvm-dev
[Sparc] Add reduced funnel shift test case for PR47303
The file was addedllvm/test/CodeGen/SPARC/fshl.ll
Commit 783d7116dc8b739263125c607ec034f9d580291e by llvm-dev
AntiDepBreaker.h - remove unnecessary ScheduleDAG.h include. NFCI.
The file was modifiedllvm/include/llvm/CodeGen/AntiDepBreaker.h
Commit 2e1827271cb1c090cced7369282f9edcf9e59183 by richard.barton
[flang] Fix link to old repo location in doxygen mainpage. NFC.
The file was modifiedflang/docs/doxygen-mainpage.dox
Commit d01280587d97eb02d37da37666afd3e4d57c9336 by gabor.marton
[analyzer][StdLibraryFunctionsChecker] Add POSIX pthread handling functions

Differential Revision: https://reviews.llvm.org/D84415
The file was modifiedclang/test/Analysis/std-c-library-functions-POSIX.c
The file was modifiedclang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp
Commit 7e5dab5fca4b154f12d3a313a6bdbd507f2314be by richard.barton
[flang] Spelling and format edits to README.txt. NFC.
The file was modifiedflang/README.md
Commit 8248c2af94975912b14e7e0cb414fcbb82c77123 by gabor.marton
[analyzer][StdLibraryFunctionsChecker] Have proper weak dependencies

We want the generice StdLibraryFunctionsChecker to report only if there
are no specific checkers that would handle the argument constraint for a
function.

Note, the assumptions are still evaluated, even if the arguement
constraint checker is set to not report. This means that the assumptions
made in the generic StdLibraryFunctionsChecker should be an
over-approximation of the assumptions made in the specific checkers. But
most importantly, the assumptions should not contradict.

Differential Revision: https://reviews.llvm.org/D87240
The file was addedclang/test/Analysis/std-c-library-functions-arg-weakdeps.c
The file was modifiedclang/test/Analysis/analyzer-enabled-checkers.c
The file was modifiedclang/include/clang/StaticAnalyzer/Checkers/Checkers.td
The file was addedclang/test/Analysis/std-c-library-functions-arg-enabled-checkers.c
Commit eb482afaf5bbf3abf9d02c3810e418945c68a936 by momchil.velikov
Reduce the number of memory allocations when displaying
a warning about clobbering reserved registers (NFC).

Also address some minor inefficiencies and style issues.

Differential Revision: https://reviews.llvm.org/D86088
The file was modifiedllvm/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp
Commit 2480a31e5d69a5c2e8e900be3a7f706d77f5a5cc by Alexander Timofeev
[AMDGPU] SILowerControlFlow::optimizeEndCF should remove empty basic block

optimizeEndCF removes EXEC restoring instruction case this instruction is the only one except the branch to the single successor and that successor contains EXEC mask restoring instruction that was lowered from END_CF belonging to IF_ELSE.
As a result of such optimization we get the basic block with the only one instruction that is a branch to the single successor.
In case the control flow can reach such an empty block from S_CBRANCH_EXEZ/EXECNZ it might happen that spill/reload instructions that were inserted later by register allocator are placed under exec == 0 condition and never execute.
Removing empty block solves the problem.

This change require further work to re-implement LIS updates. Recently, LIS is always nullptr in this pass. To enable it we need another patch to fix many places across the codegen.

Reviewed By: rampitec

Differential Revision: https://reviews.llvm.org/D86634
The file was modifiedllvm/test/CodeGen/AMDGPU/collapse-endcf.mir
The file was modifiedllvm/lib/Target/AMDGPU/SILowerControlFlow.cpp
Commit 11d8eedfa5b796a9ba0276a5e4bad8b9e549f0b6 by spatel
[InstCombine] move/add tests for icmp with mul operands; NFC
The file was modifiedllvm/test/Transforms/InstCombine/icmp.ll
The file was modifiedllvm/test/Transforms/InstCombine/icmp-mul.ll
Commit 7a6d6f0f7046f6ebcbf06eaf8f996d991a90e440 by spatel
[InstCombine] improve folds for icmp with multiply operands (PR47432)

Check for no overflow along with an odd constant before
we lose information by converting to bitwise logic.

https://rise4fun.com/Alive/2Xl

  Pre: C1 != 0
  %mx = mul nsw i8 %x, C1
  %my = mul nsw i8 %y, C1
  %r = icmp eq i8 %mx, %my
  =>
  %r = icmp eq i8 %x, %y

  Name: nuw ne
  Pre: C1 != 0
  %mx = mul nuw i8 %x, C1
  %my = mul nuw i8 %y, C1
  %r = icmp ne i8 %mx, %my
  =>
  %r = icmp ne i8 %x, %y

  Name: odd ne
  Pre: C1 % 2 != 0
  %mx = mul i8 %x, C1
  %my = mul i8 %y, C1
  %r = icmp ne i8 %mx, %my
  =>
  %r = icmp ne i8 %x, %y
The file was modifiedllvm/test/Transforms/InstCombine/icmp-mul.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
Commit 1c34ac03a2de0e10f95f16526296dcae5166d129 by llvm-dev
LeonPasses.h - remove orphan function declarations. NFCI.

The implementations no longer exist.
The file was modifiedllvm/lib/Target/Sparc/LeonPasses.h
Commit dfc333050b544173741b66f27872cebb2b7ab983 by llvm-dev
LeonPasses.h - remove unnecessary includes. NFCI.

Reduce to forward declarations and move includes to LeonPasses.cpp where necessary.
The file was modifiedllvm/lib/Target/Sparc/LeonPasses.cpp
The file was modifiedllvm/lib/Target/Sparc/LeonPasses.h
Commit 95ca3aacf0f82955e9d259484b886c260337285c by llvm-dev
BTFDebug.h - reduce MachineInstr.h include to forward declaration. NFCI.
The file was modifiedllvm/lib/Target/BPF/BTFDebug.h
Commit 4e89a0ab02148c71d5be076e0d7262e93010006b by llvm-dev
MipsISelLowering.h - remove CCState/CCValAssign forward declarations. NFCI.

These are already defined in the CallingConvLower.h include.
The file was modifiedllvm/lib/Target/Mips/MipsISelLowering.h
Commit 5ea9e655efdd1188d9864a6c97a7a9b772559ff5 by llvm-dev
VPlan.h - remove unnecessary forward declarations. NFCI.

Already defined in includes.
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.h
Commit e52e7ad54defa3a95040b680beff2824c9c6fbb7 by epastor
[ms] [llvm-ml] Add support for bitwise named operators (AND, NOT, OR) in MASM

Add support for expressions of the form '1 or 2', etc.

Reviewed By: thakis

Differential Revision: https://reviews.llvm.org/D86944
The file was addedllvm/test/tools/llvm-ml/named_bitwise_operators.test
The file was modifiedllvm/lib/MC/MCParser/MasmParser.cpp
Commit 2feb6e9b8418b29c002bc830a3e2fdcbe9e39449 by epastor
[ms] [llvm-ml] Fix STRUCT field alignment

MASM aligns fields to the _minimum_ of the STRUCT alignment value and the size of the next field.

Reviewed By: thakis

Differential Revision: https://reviews.llvm.org/D86945
The file was modifiedllvm/lib/MC/MCParser/MasmParser.cpp
The file was modifiedllvm/test/tools/llvm-ml/struct.test
Commit a3ec4a3158f3a60c16ac1e3550667866fe1d4171 by epastor
[ms] [llvm-ml] Allow use of locally-defined variables in expressions

MASM allows variables defined by equate statements to be used in expressions.

Reviewed By: thakis

Differential Revision: https://reviews.llvm.org/D86946
The file was addedllvm/test/tools/llvm-ml/variable.test
The file was modifiedllvm/lib/MC/MCParser/MasmParser.cpp
Commit 7a06b166b1afb457a7df6ad73a6710b4dde4db68 by spatel
[DAGCombiner] allow more store merging for non-i8 truncated ops

This is a follow-up suggested in D86420 - if we have a pair of stores
in inverted order for the target endian, we can rotate the source
bits into place.
The "be_i64_to_i16_order" test shows a limitation of the current
function (which might be avoided if we integrate this function with
the other cases in mergeConsecutiveStores). In the earlier
"be_i64_to_i16" test, we skip the first 2 stores because we do not
match the full set as consecutive or rotate-able, but then we reach
the last 2 stores and see that they are an inverted pair of 16-bit
stores. The "be_i64_to_i16_order" test alters the program order of
the stores, so we miss matching the sub-pattern.

Differential Revision: https://reviews.llvm.org/D87112
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modifiedllvm/test/CodeGen/AArch64/merge-trunc-store.ll
The file was modifiedllvm/test/CodeGen/X86/stores-merging.ll
Commit f3a6f6ccfddfbd991269a917feb4ae9beb5a1610 by craig.topper
[X86] Pre-commit new test case for D87214. NFC
The file was modifiedllvm/test/CodeGen/X86/iabs.ll
Commit 01b3e167575412792901c705032e304ef184a75d by craig.topper
[X86] Use the same sequence for i128 ISD::ABS on 64-bit targets as we use for i64 on 32-bit targets.

Differential Revision: https://reviews.llvm.org/D87214
The file was modifiedllvm/test/CodeGen/X86/abs.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/iabs.ll