UnstableChanges

Summary

  1. Suppress GCC Wdangling-else warning on gtest macros (details)
  2. [Sema] Fix deleted function problem in implicitly movable test (details)
  3. [mlir] Fix MathJax rendering in Affine doc (details)
  4. [SLP,LV] Use poison constant vector for shufflevector/initial insertelement (details)
  5. [X86] Update X86InstCombineIntrinsic to use CreateShuffleVector with one vector (details)
  6. [Constant] Add containsPoisonElement (details)
  7. [mlir] Print the correct tool name in mlirTranslateMain (details)
  8. [NFC] Removed unused prefixes in test/CodeGen/AMDGPU (details)
Commit f4bcbdf9cea16bf91ba342268f681de45e15733c by rnk
Suppress GCC Wdangling-else warning on gtest macros

See https://github.com/google/googletest/issues/1119
The file was modifiedllvm/unittests/Support/CrashRecoveryTest.cpp
Commit 74f93bc373d089e757bb65cf8b30b63a4eae8b69 by nullptr.cpp
[Sema] Fix deleted function problem in implicitly movable test

In implicitly movable test, a two-stage overload resolution is performed.
If the first overload resolution selects a deleted function, Clang directly
performs the second overload resolution, without checking whether the
deleted function matches the additional criteria.

This patch fixes the above problem.

Reviewed By: Quuxplusone

Differential Revision: https://reviews.llvm.org/D92936
The file was modifiedclang/test/SemaCXX/warn-return-std-move.cpp
The file was modifiedclang/lib/Sema/SemaStmt.cpp
The file was modifiedclang/lib/Sema/SemaInit.cpp
The file was addedclang/test/CXX/class/class.init/class.copy.elision/p3.cpp
Commit 4ae7952e2b3566d373c55c8e9740051ca37ed738 by joker.eph
[mlir] Fix MathJax rendering in Affine doc

MathJax is not properly imported in Affine doc. It causes the invalid rendering
of math formulas in the Affine doc page.

https://mlir.llvm.org/docs/Dialects/Affine/#affine-expressions

Importing MathJax code from CDN resolved the rendering issue as follows.

{F14942131}

Reviewed By: ftynse

Differential Revision: https://reviews.llvm.org/D94004
The file was modifiedmlir/docs/Dialects/Affine.md
Commit 4a8e6ed2f795b78061b02899aed4642bdb9cdc7e by aqjune
[SLP,LV] Use poison constant vector for shufflevector/initial insertelement

This patch makes SLP and LV emit operations with initial vectors set to poison constant instead of undef.
This is a part of efforts for using poison vector instead of undef to represent "doesn't care" vector.
The goal is to make nice shufflevector optimizations valid that is currently incorrect due to the tricky interaction between undef and poison (see https://bugs.llvm.org/show_bug.cgi?id=44185 ).

Reviewed By: fhahn

Differential Revision: https://reviews.llvm.org/D94061
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/multi_user.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/crash_mandeltext.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/SystemZ/predicated-first-order-recurrence.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/load-deref-pred.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/masked_load_store.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/x86-interleaved-accesses-masked-group.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/lookahead.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/mve-gather-scatter-tailpred.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/extract_in_tree_user.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/crash_cmpop.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/reduction2.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/horizontal-minmax.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/jumbled-load-multiuse.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/pr44488-predication.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/diamond.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/small-size.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/value-bug-inseltpoison.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/partail.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/if-pred-non-void.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/hoist.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/saxpy.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/insert-element-build-vector-inseltpoison.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/cmp_sel.ll
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/extract.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/PR40310.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/strided_load_cost.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/reorder_repeated_ops.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/pr39417-optsize-scevchecks.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/phi3.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/AArch64/commute.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/PR39774.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/crash_smallpt.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/phi.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/horizontal-list.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/phi_overalignedtype.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/tiny-tree.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/alternate-int-inseltpoison.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/slp-max-phi-size.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/PR35865.ll
The file was modifiedllvm/test/Transforms/PhaseOrdering/X86/vector-reductions.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/resched.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/compare-reduce.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/barriercall.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/insert-element-build-vector.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/AArch64/gather-root.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/SystemZ/pr34619.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/minimum-sizes.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/fabs-cost-softfp.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/vect.omp.force.small-tc.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/AArch64/getelementptr.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/first-order-recurrence.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/loopinvariant.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/pr46983.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/reduction-inloop-pred.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/tail_loop_folding.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/induction.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/supernode.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/AMDGPU/packed-math.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/gather_scatter.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/pr47629-inseltpoison.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/pr35497.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/used-reduced-op.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/commutativity.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/metadata-enable.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/cse.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/mve-reductions.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/uniform_mem_op.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/jumbled-load.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/AArch64/aarch64-predication.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/value-bug.ll
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/jumbled_store_crash.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/PR35865-inseltpoison.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/AArch64/vectorizable-selects-uniform-cmps.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/mve-reduction-predselect.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/mve-reduction-types.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/reduction-inloop-uf4.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/AArch64/gather-cost.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/SystemZ/addressing.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/optsize.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/bad-reduction.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/PR35628_2.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/consecutive-ptr-uniforms.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/PR35777.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/in-tree-user.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/operandorder.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/extractelement.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/vectorize-reorder-reuse.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/invariant-store-vectorization.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/x86-predication.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/broadcast.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/first-order-recurrence-complex.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/alternate-int.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/crash_lencod.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/extractcost.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/long_chains.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/pr47629.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/AArch64/matmul.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/insert-after-bundle.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/AArch64/extractvalue-no-scalarization-required.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/consecutive-ptr-uniforms.ll
Commit 8444a2494d3d58baae373e66f8a7070e03c62cc2 by aqjune
[X86] Update X86InstCombineIntrinsic to use CreateShuffleVector with one vector

This patch updates X86InstCombineIntrinsic.cpp to use the newly updated CreateShuffleVector.

The tests are updated because the updated CreateShuffleVector uses poison value for the second vector.
If I didn't miss something, the masks in the tests are choosing elements from the first vector only; therefore the tests are having equivalent behavior.

Reviewed By: RKSimon

Differential Revision: https://reviews.llvm.org/D94059
The file was modifiedllvm/lib/Target/X86/X86InstCombineIntrinsic.cpp
The file was modifiedllvm/test/Transforms/InstCombine/X86/x86-avx512.ll
The file was modifiedllvm/test/Transforms/InstCombine/X86/x86-vpermil-inseltpoison.ll
The file was modifiedllvm/test/Transforms/InstCombine/X86/x86-avx2-inseltpoison.ll
The file was modifiedllvm/test/Transforms/InstCombine/X86/x86-vpermil.ll
The file was modifiedllvm/test/Transforms/InstCombine/X86/x86-vector-shifts-inseltpoison.ll
The file was modifiedllvm/test/Transforms/InstCombine/X86/x86-vector-shifts.ll
The file was modifiedllvm/test/Transforms/InstCombine/X86/x86-avx512-inseltpoison.ll
The file was modifiedllvm/test/Transforms/InstCombine/X86/x86-avx2.ll
Commit 29f8628d1fc8d96670e13562c4d92fc916bd0ce1 by aqjune
[Constant] Add containsPoisonElement

This patch

- Adds containsPoisonElement that checks existence of poison in constant vector elements,
- Renames containsUndefElement to containsUndefOrPoisonElement to clarify its behavior & updates its uses properly

With this patch, isGuaranteedNotToBeUndefOrPoison's tests w.r.t constant vectors are added because its analysis is improved.

Thanks!

Reviewed By: nikic

Differential Revision: https://reviews.llvm.org/D94053
The file was modifiedllvm/lib/IR/ConstantFold.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineNegator.cpp
The file was modifiedllvm/lib/Analysis/ValueTracking.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
The file was modifiedllvm/unittests/Analysis/ValueTrackingTest.cpp
The file was modifiedllvm/unittests/IR/ConstantsTest.cpp
The file was modifiedllvm/lib/IR/Constants.cpp
The file was modifiedllvm/include/llvm/IR/Constant.h
Commit 91f17ba24e86bfdd6e794e564f1e562b1d25e156 by youngar17
[mlir] Print the correct tool name in mlirTranslateMain

    The passed in tool name is not used, causing the wrong tool name to be printed by the help text.

Reviewed By: mehdi_amini

Differential Revision: https://reviews.llvm.org/D94120
The file was modifiedmlir/lib/Translation/Translation.cpp
The file was addedmlir/test/mlir-translate/commandline.mlir
Commit cdfd4c5c1a9740b881eccb622b3bea474a26f1f9 by mtrofin
[NFC] Removed unused prefixes in test/CodeGen/AMDGPU

More patches to follow. This covers the pertinent tests starting with e,
f, and g.

Differential Revision: https://reviews.llvm.org/D94124
The file was modifiedllvm/test/CodeGen/AMDGPU/fminnum.f64.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/fneg-combines.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/gv-const-addrspace.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/fast-unaligned-load-store.global.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/fmuladd.v2f16.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/flat-scratch.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/global-saddr-atomics.gfx1030.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/fpext.f16.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/fmin_fmax_legacy.amdgcn.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/elf-notes.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/fast-unaligned-load-store.private.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/fract.f64.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/fmin_legacy.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/gfx-callable-preserved-registers.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/fneg-combines.si.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/force-alwaysinline-lds-global-address.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/fsub.f16.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/fmad-formation-fmul-distribute-denormal-mode.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/global-saddr-atomics.gfx908.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/fneg-fabs.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/gfx-callable-argument-types.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/fpext-free.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/flat-address-space.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/fcopysign.f16.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/fmuladd.f16.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/fshr.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/fract.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/fshl.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/fneg-fabs.f16.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/frem.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/fmax_legacy.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/function-args.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/fp_to_sint.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/extload-align.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/fast-regalloc-bundles.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/extract_vector_elt-i16.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/fmuladd.f32.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/extload.ll