[all-commits] [llvm/llvm-project] 8b56da: [IR] Change shufflevector undef mask to poison

ManuelJBrito via All-commits all-commits at lists.llvm.org
Thu Apr 27 06:41:29 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 8b56da5e9f3ba737a5ff4bf5dee654416849042f
      https://github.com/llvm/llvm-project/commit/8b56da5e9f3ba737a5ff4bf5dee654416849042f
  Author: ManuelJBrito <manuel.brito at tecnico.ulisboa.pt>
  Date:   2023-04-27 (Thu, 27 Apr 2023)

  Changed paths:
    M clang/test/CodeGen/PowerPC/builtins-ppc-p10vector.c
    M clang/test/CodeGen/PowerPC/builtins-ppc-p9vector.c
    M clang/test/CodeGen/builtins-nondeterministic-value.c
    M clang/test/CodeGen/builtinshufflevector2.c
    M clang/test/CodeGen/ext-vector.c
    M clang/test/CodeGenOpenCL/as_type.cl
    M clang/test/CodeGenOpenCL/partial_initializer.cl
    M clang/test/CodeGenOpenCL/preserve_vec3.cl
    M clang/test/CodeGenOpenCL/vector_literals.cl
    M clang/test/CodeGenOpenCL/vector_shufflevector.cl
    M llvm/lib/IR/AsmWriter.cpp
    M llvm/test/Analysis/CostModel/RISCV/shuffle-extract_subvector.ll
    M llvm/test/Analysis/CostModel/RISCV/shuffle-insert_subvector.ll
    M llvm/test/Analysis/CostModel/X86/reduction.ll
    M llvm/test/Analysis/CostModel/X86/shuffle-extract_subvector-codesize.ll
    M llvm/test/Analysis/CostModel/X86/shuffle-extract_subvector-latency.ll
    M llvm/test/Analysis/CostModel/X86/shuffle-extract_subvector-sizelatency.ll
    M llvm/test/Analysis/CostModel/X86/shuffle-extract_subvector.ll
    M llvm/test/Analysis/CostModel/X86/shuffle-insert_subvector-codesize.ll
    M llvm/test/Analysis/CostModel/X86/shuffle-insert_subvector-latency.ll
    M llvm/test/Analysis/CostModel/X86/shuffle-insert_subvector-sizelatency.ll
    M llvm/test/Analysis/CostModel/X86/shuffle-insert_subvector.ll
    M llvm/test/Analysis/CostModel/X86/shuffle-single-src-codesize.ll
    M llvm/test/Analysis/CostModel/X86/shuffle-single-src-latency.ll
    M llvm/test/Analysis/CostModel/X86/shuffle-single-src-sizelatency.ll
    M llvm/test/Analysis/CostModel/X86/shuffle-single-src.ll
    M llvm/test/CodeGen/AMDGPU/amdgpu-codegenprepare-break-large-phis-heuristics.ll
    M llvm/test/CodeGen/AMDGPU/rewrite-out-arguments.ll
    M llvm/test/CodeGen/Generic/expand-experimental-reductions.ll
    M llvm/test/CodeGen/PowerPC/arg_promotion.ll
    M llvm/test/Instrumentation/MemorySanitizer/avx-intrinsics-x86.ll
    M llvm/test/Transforms/Attributor/nofpclass.ll
    M llvm/test/Transforms/CodeGenPrepare/X86/x86-shuffle-sink-inseltpoison.ll
    M llvm/test/Transforms/CodeGenPrepare/X86/x86-shuffle-sink.ll
    M llvm/test/Transforms/DeadStoreElimination/masked-dead-store-inseltpoison.ll
    M llvm/test/Transforms/DeadStoreElimination/masked-dead-store.ll
    M llvm/test/Transforms/InstCombine/AArch64/demandelts.ll
    M llvm/test/Transforms/InstCombine/AMDGPU/amdgcn-demanded-vector-elts-inseltpoison.ll
    M llvm/test/Transforms/InstCombine/AMDGPU/amdgcn-demanded-vector-elts.ll
    M llvm/test/Transforms/InstCombine/X86/x86-addsub-inseltpoison.ll
    M llvm/test/Transforms/InstCombine/X86/x86-addsub.ll
    M llvm/test/Transforms/InstCombine/X86/x86-avx2-inseltpoison.ll
    M llvm/test/Transforms/InstCombine/X86/x86-avx2.ll
    M llvm/test/Transforms/InstCombine/X86/x86-avx512-inseltpoison.ll
    M llvm/test/Transforms/InstCombine/X86/x86-avx512.ll
    M llvm/test/Transforms/InstCombine/X86/x86-muldq-inseltpoison.ll
    M llvm/test/Transforms/InstCombine/X86/x86-muldq.ll
    M llvm/test/Transforms/InstCombine/X86/x86-pack-inseltpoison.ll
    M llvm/test/Transforms/InstCombine/X86/x86-pack.ll
    M llvm/test/Transforms/InstCombine/X86/x86-pshufb-inseltpoison.ll
    M llvm/test/Transforms/InstCombine/X86/x86-pshufb.ll
    M llvm/test/Transforms/InstCombine/X86/x86-sse4a-inseltpoison.ll
    M llvm/test/Transforms/InstCombine/X86/x86-sse4a.ll
    M llvm/test/Transforms/InstCombine/X86/x86-vpermil-inseltpoison.ll
    M llvm/test/Transforms/InstCombine/X86/x86-vpermil.ll
    M llvm/test/Transforms/InstCombine/bitreverse.ll
    M llvm/test/Transforms/InstCombine/broadcast-inseltpoison.ll
    M llvm/test/Transforms/InstCombine/broadcast.ll
    M llvm/test/Transforms/InstCombine/bswap-inseltpoison.ll
    M llvm/test/Transforms/InstCombine/bswap.ll
    M llvm/test/Transforms/InstCombine/canonicalize-vector-insert.ll
    M llvm/test/Transforms/InstCombine/extractelement-inseltpoison.ll
    M llvm/test/Transforms/InstCombine/extractelement.ll
    M llvm/test/Transforms/InstCombine/insert-const-shuf-inseltpoison.ll
    M llvm/test/Transforms/InstCombine/insert-const-shuf.ll
    M llvm/test/Transforms/InstCombine/insert-extract-shuffle-inseltpoison.ll
    M llvm/test/Transforms/InstCombine/insert-extract-shuffle.ll
    M llvm/test/Transforms/InstCombine/masked_intrinsics-inseltpoison.ll
    M llvm/test/Transforms/InstCombine/masked_intrinsics.ll
    M llvm/test/Transforms/InstCombine/minmax-intrinsics.ll
    M llvm/test/Transforms/InstCombine/nsw-inseltpoison.ll
    M llvm/test/Transforms/InstCombine/nsw.ll
    M llvm/test/Transforms/InstCombine/reduction-shufflevector.ll
    M llvm/test/Transforms/InstCombine/select-extractelement-inseltpoison.ll
    M llvm/test/Transforms/InstCombine/select-extractelement.ll
    M llvm/test/Transforms/InstCombine/select-select.ll
    M llvm/test/Transforms/InstCombine/shuffle-binop.ll
    M llvm/test/Transforms/InstCombine/shuffle-select-narrow-inseltpoison.ll
    M llvm/test/Transforms/InstCombine/shuffle-select-narrow.ll
    M llvm/test/Transforms/InstCombine/shuffle_select-inseltpoison.ll
    M llvm/test/Transforms/InstCombine/shuffle_select.ll
    M llvm/test/Transforms/InstCombine/shufflevec-bitcast-inseltpoison.ll
    M llvm/test/Transforms/InstCombine/shufflevec-bitcast.ll
    M llvm/test/Transforms/InstCombine/shufflevector-div-rem-inseltpoison.ll
    M llvm/test/Transforms/InstCombine/shufflevector-div-rem.ll
    M llvm/test/Transforms/InstCombine/sub-of-negatible-inseltpoison.ll
    M llvm/test/Transforms/InstCombine/sub-of-negatible.ll
    M llvm/test/Transforms/InstCombine/trunc-inseltpoison.ll
    M llvm/test/Transforms/InstCombine/trunc.ll
    M llvm/test/Transforms/InstCombine/type_pun-inseltpoison.ll
    M llvm/test/Transforms/InstCombine/type_pun.ll
    M llvm/test/Transforms/InstCombine/vec-binop-select-inseltpoison.ll
    M llvm/test/Transforms/InstCombine/vec-binop-select.ll
    M llvm/test/Transforms/InstCombine/vec_demanded_elts-inseltpoison.ll
    M llvm/test/Transforms/InstCombine/vec_demanded_elts.ll
    M llvm/test/Transforms/InstCombine/vec_shuffle-inseltpoison.ll
    M llvm/test/Transforms/InstCombine/vec_shuffle.ll
    M llvm/test/Transforms/InstCombine/vector-casts.ll
    M llvm/test/Transforms/InstCombine/vector-concat-binop-inseltpoison.ll
    M llvm/test/Transforms/InstCombine/vector-concat-binop.ll
    M llvm/test/Transforms/InstSimplify/shufflevector-inseltpoison.ll
    M llvm/test/Transforms/InstSimplify/shufflevector.ll
    M llvm/test/Transforms/InterleavedAccess/AArch64/interleaved-accesses-inseltpoison.ll
    M llvm/test/Transforms/InterleavedAccess/AArch64/interleaved-accesses.ll
    M llvm/test/Transforms/InterleavedAccess/AArch64/sve-interleaved-accesses.ll
    M llvm/test/Transforms/InterleavedAccess/ARM/interleaved-accesses-inseltpoison.ll
    M llvm/test/Transforms/InterleavedAccess/ARM/interleaved-accesses.ll
    M llvm/test/Transforms/InterleavedAccess/RISCV/interleaved-accesses.ll
    M llvm/test/Transforms/InterleavedAccess/X86/interleaved-accesses-64bits-avx-inseltpoison.ll
    M llvm/test/Transforms/InterleavedAccess/X86/interleaved-accesses-64bits-avx.ll
    M llvm/test/Transforms/InterleavedAccess/X86/interleavedStore-inseltpoison.ll
    M llvm/test/Transforms/InterleavedAccess/X86/interleavedStore.ll
    M llvm/test/Transforms/LoopUnroll/X86/pr46430-inseltpoison.ll
    M llvm/test/Transforms/LoopUnroll/X86/pr46430.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/interleaved-store-of-first-order-recurrence.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/interleaved-accesses.ll
    M llvm/test/Transforms/LoopVectorize/X86/x86-interleaved-store-accesses-with-gaps.ll
    M llvm/test/Transforms/LoopVectorize/interleaved-accesses.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/bigger-expressions-double.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/const-gep.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/dot-product-transpose-int.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/load-align-volatile.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/multiply-add-sub-double-row-major.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/multiply-double-contraction-fmf.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/multiply-double-contraction.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/multiply-double-row-major.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/multiply-double.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/multiply-float-contraction-fmf.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/multiply-float-contraction.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/multiply-float.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/multiply-i32-row-major.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/multiply-i32.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/multiply-left-transpose-row-major.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/multiply-right-transpose.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/preserve-existing-fast-math-flags.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/propagate-backwards-unsupported.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/strided-load-double.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/strided-load-float.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/strided-load-i32.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/transpose-double.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/transpose-float.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/transpose-i32.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/transpose-opts-iterator-invalidation.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/transpose-opts.ll
    M llvm/test/Transforms/PhaseOrdering/ARM/mve-floatreduce.ll
    M llvm/test/Transforms/PhaseOrdering/X86/vector-reductions-expanded.ll
    M llvm/test/Transforms/PhaseOrdering/X86/vector-reductions-logical.ll
    M llvm/test/Transforms/PhaseOrdering/X86/vector-reductions.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/accelerate-vector-functions-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/accelerate-vector-functions.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/loadorder.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/transpose-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/transpose.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/tsc-s116.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/vectorize-free-extracts-inserts.ll
    M llvm/test/Transforms/SLPVectorizer/AMDGPU/add_sub_sat-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/AMDGPU/add_sub_sat.ll
    M llvm/test/Transforms/SLPVectorizer/AMDGPU/crash_extract_subvector_cost.ll
    M llvm/test/Transforms/SLPVectorizer/AMDGPU/phi-result-use-order.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/math-function.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/reductions.ll
    M llvm/test/Transforms/SLPVectorizer/SystemZ/pr34619.ll
    M llvm/test/Transforms/SLPVectorizer/X86/PR35865-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/PR35865.ll
    M llvm/test/Transforms/SLPVectorizer/X86/addsub.ll
    M llvm/test/Transforms/SLPVectorizer/X86/alternate-calls-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/alternate-calls.ll
    M llvm/test/Transforms/SLPVectorizer/X86/alternate-cast-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/alternate-cast.ll
    M llvm/test/Transforms/SLPVectorizer/X86/alternate-fp-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/alternate-fp.ll
    M llvm/test/Transforms/SLPVectorizer/X86/alternate-int-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/alternate-int.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-fp-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-fp.ll
    M llvm/test/Transforms/SLPVectorizer/X86/blending-shuffle-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/blending-shuffle.ll
    M llvm/test/Transforms/SLPVectorizer/X86/broadcast_long.ll
    M llvm/test/Transforms/SLPVectorizer/X86/buildvector-insert-mask-size.ll
    M llvm/test/Transforms/SLPVectorizer/X86/buildvector-same-lane-insert.ll
    M llvm/test/Transforms/SLPVectorizer/X86/buildvector-shuffle.ll
    M llvm/test/Transforms/SLPVectorizer/X86/c-ray.ll
    M llvm/test/Transforms/SLPVectorizer/X86/commutativity.ll
    M llvm/test/Transforms/SLPVectorizer/X86/crash_cmpop.ll
    M llvm/test/Transforms/SLPVectorizer/X86/crash_lencod-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/crash_scheduling-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/crash_scheduling.ll
    M llvm/test/Transforms/SLPVectorizer/X86/entries-different-vf.ll
    M llvm/test/Transforms/SLPVectorizer/X86/external-used-across-reductions.ll
    M llvm/test/Transforms/SLPVectorizer/X86/extract-many-users-buildvector.ll
    M llvm/test/Transforms/SLPVectorizer/X86/extract-scalar-from-undef.ll
    M llvm/test/Transforms/SLPVectorizer/X86/extract_with_non_const_index.ll
    M llvm/test/Transforms/SLPVectorizer/X86/gather-move-out-of-loop.ll
    M llvm/test/Transforms/SLPVectorizer/X86/hadd-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/hadd.ll
    M llvm/test/Transforms/SLPVectorizer/X86/insert-element-build-vector-const-undef.ll
    M llvm/test/Transforms/SLPVectorizer/X86/insert-element-build-vector-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/insert-element-build-vector.ll
    M llvm/test/Transforms/SLPVectorizer/X86/jumbled_store_crash.ll
    M llvm/test/Transforms/SLPVectorizer/X86/landing_pad.ll
    M llvm/test/Transforms/SLPVectorizer/X86/load-merge-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/load-merge.ll
    M llvm/test/Transforms/SLPVectorizer/X86/load-partial-vector-shuffle.ll
    M llvm/test/Transforms/SLPVectorizer/X86/lookahead.ll
    M llvm/test/Transforms/SLPVectorizer/X86/matched-shuffled-entries.ll
    M llvm/test/Transforms/SLPVectorizer/X86/memory-runtime-checks.ll
    M llvm/test/Transforms/SLPVectorizer/X86/operandorder.ll
    M llvm/test/Transforms/SLPVectorizer/X86/peek-through-shuffle.ll
    M llvm/test/Transforms/SLPVectorizer/X86/phi.ll
    M llvm/test/Transforms/SLPVectorizer/X86/pr47642.ll
    M llvm/test/Transforms/SLPVectorizer/X86/pr49081.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reduced-gathered-vectorized.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reduction2.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reorder-clustered-node.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reorder-reused-masked-gather.ll
    M llvm/test/Transforms/SLPVectorizer/X86/resched.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reused-extractelements.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reused-scalars-in-buildvector.ll
    M llvm/test/Transforms/SLPVectorizer/X86/root-trunc-extract-reuse.ll
    M llvm/test/Transforms/SLPVectorizer/X86/scatter-vectorize-reused-pointer.ll
    M llvm/test/Transforms/SLPVectorizer/X86/shuffle-multiple-nodes.ll
    M llvm/test/Transforms/SLPVectorizer/X86/sitofp-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/sitofp.ll
    M llvm/test/Transforms/SLPVectorizer/X86/split-load8_2-unord.ll
    M llvm/test/Transforms/SLPVectorizer/X86/tiny-tree.ll
    M llvm/test/Transforms/SLPVectorizer/X86/vec_list_bias-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/vec_list_bias.ll
    M llvm/test/Transforms/SLPVectorizer/X86/vec_list_bias_external_insert_shuffled.ll
    M llvm/test/Transforms/SLPVectorizer/X86/vect-gather-same-nodes.ll
    M llvm/test/Transforms/SROA/slice-width.ll
    M llvm/test/Transforms/SROA/vector-conversion.ll
    M llvm/test/Transforms/SROA/vector-promotion.ll
    M llvm/test/Transforms/VectorCombine/AArch64/load-extractelement-scalarization.ll
    M llvm/test/Transforms/VectorCombine/AArch64/select-shuffle.ll
    M llvm/test/Transforms/VectorCombine/AArch64/vecreduce-shuffle.ll
    M llvm/test/Transforms/VectorCombine/AMDGPU/as-transition-inseltpoison.ll
    M llvm/test/Transforms/VectorCombine/AMDGPU/as-transition.ll
    M llvm/test/Transforms/VectorCombine/X86/extract-binop-inseltpoison.ll
    M llvm/test/Transforms/VectorCombine/X86/extract-binop.ll
    M llvm/test/Transforms/VectorCombine/X86/extract-cmp-binop.ll
    M llvm/test/Transforms/VectorCombine/X86/extract-cmp.ll
    M llvm/test/Transforms/VectorCombine/X86/load-inseltpoison.ll
    M llvm/test/Transforms/VectorCombine/X86/load-widening.ll
    M llvm/test/Transforms/VectorCombine/X86/load.ll
    M llvm/test/Transforms/VectorCombine/X86/select-shuffle.ll
    M llvm/test/Transforms/VectorCombine/X86/shuffle.ll

  Log Message:
  -----------
  [IR] Change shufflevector undef mask to poison

With this patch an undefined mask in a shufflevector will be printed as poison.
This change is done to support the new shufflevector semantics
for undefined mask elements.

Differential Revision: https://reviews.llvm.org/D149210




More information about the All-commits mailing list