[all-commits] [llvm/llvm-project] 9b2961: Use unary CreateShuffleVector if possible

Juneyoung Lee via All-commits all-commits at lists.llvm.org
Wed Dec 30 06:11:11 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 9b29610228c838a66a88edf43ddd25acf8d1b477
      https://github.com/llvm/llvm-project/commit/9b29610228c838a66a88edf43ddd25acf8d1b477
  Author: Juneyoung Lee <aqjune at gmail.com>
  Date:   2020-12-30 (Wed, 30 Dec 2020)

  Changed paths:
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/lib/CodeGen/CGExpr.cpp
    M clang/lib/CodeGen/CGExprScalar.cpp
    M clang/test/CodeGen/X86/avx-builtins.c
    M clang/test/CodeGen/X86/avx2-builtins.c
    M clang/test/CodeGen/X86/avx512-reduceMinMaxIntrin.c
    M clang/test/CodeGen/X86/avx512bw-builtins.c
    M clang/test/CodeGen/X86/avx512dq-builtins.c
    M clang/test/CodeGen/X86/avx512f-builtins.c
    M clang/test/CodeGen/X86/avx512vl-builtins-constrained.c
    M clang/test/CodeGen/X86/avx512vl-builtins.c
    M clang/test/CodeGen/X86/avx512vlbw-builtins.c
    M clang/test/CodeGen/X86/avx512vldq-builtins.c
    M clang/test/CodeGen/X86/f16c-builtins-constrained.c
    M clang/test/CodeGen/X86/f16c-builtins.c
    M clang/test/CodeGen/X86/sse2-builtins.c
    M clang/test/CodeGen/arm-mve-intrinsics/vmovl.c
    M clang/test/CodeGen/arm-mve-intrinsics/vmovn.c
    M clang/test/CodeGen/arm-mve-intrinsics/vrev.c
    M clang/test/CodeGen/arm64-abi-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/vectorLoadStore.cl
    M clang/test/CodeGenOpenCL/vector_literals_valid.cl
    M llvm/lib/Analysis/VectorUtils.cpp
    M llvm/lib/CodeGen/CodeGenPrepare.cpp
    M llvm/lib/CodeGen/InterleavedLoadCombinePass.cpp
    M llvm/lib/IR/AutoUpgrade.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp
    M llvm/lib/Target/AMDGPU/AMDGPULowerKernelArguments.cpp
    M llvm/lib/Target/AMDGPU/AMDGPURewriteOutArguments.cpp
    M llvm/lib/Target/Hexagon/HexagonVectorCombine.cpp
    M llvm/lib/Target/X86/X86InterleavedAccess.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
    M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
    M llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp
    M llvm/lib/Transforms/Scalar/SROA.cpp
    M llvm/lib/Transforms/Utils/LoopUtils.cpp
    M llvm/test/CodeGen/AArch64/aarch64-interleaved-ld-combine.ll
    M llvm/test/CodeGen/AMDGPU/lower-kernargs.ll
    M llvm/test/CodeGen/AMDGPU/rewrite-out-arguments-address-space.ll
    M llvm/test/CodeGen/AMDGPU/rewrite-out-arguments.ll
    M llvm/test/CodeGen/Generic/expand-experimental-reductions.ll
    M llvm/test/Instrumentation/MemorySanitizer/clmul.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/canonicalize-vector-insert.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/ARM/interleaved-accesses-inseltpoison.ll
    M llvm/test/Transforms/InterleavedAccess/ARM/interleaved-accesses.ll
    M llvm/test/Transforms/InterleavedAccess/X86/interleavedStore-inseltpoison.ll
    M llvm/test/Transforms/InterleavedAccess/X86/interleavedStore.ll
    M llvm/test/Transforms/LoopVectorize/AMDGPU/packed-math.ll
    M llvm/test/Transforms/LoopVectorize/ARM/sphinx.ll
    M llvm/test/Transforms/LoopVectorize/PowerPC/widened-massv-call.ll
    M llvm/test/Transforms/LoopVectorize/PowerPC/widened-massv-vfabi-attr.ll
    M llvm/test/Transforms/LoopVectorize/float-minmax-instruction-flag.ll
    M llvm/test/Transforms/LoopVectorize/interleaved-accesses.ll
    M llvm/test/Transforms/LoopVectorize/invariant-store-vectorization.ll
    M llvm/test/Transforms/LoopVectorize/reduction.ll
    M llvm/test/Transforms/LoopVectorize/select-reduction.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/bigger-expressions-double.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/const-gep.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-fused-volatile.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/multiply-i32-row-major.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/multiply-i32.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/propagate-backward.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/propagate-backwards-unsupported.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/propagate-forward.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/propagate-mixed-users.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/store-align-volatile.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/strided-store-double.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/strided-store-float.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/strided-store-i32.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/transpose-double-row-major.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/transpose-double.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/transpose-float-row-major.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/transpose-float.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/transpose-i32-row-major.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/transpose-i32.ll
    M llvm/test/Transforms/PhaseOrdering/X86/vector-reductions-expanded.ll
    M llvm/test/Transforms/SLPVectorizer/AMDGPU/horizontal-store.ll
    M llvm/test/Transforms/SLPVectorizer/AMDGPU/reduction.ll
    M llvm/test/Transforms/SROA/vector-promotion.ll
    M llvm/unittests/IR/PatternMatch.cpp

  Log Message:
  -----------
  Use unary CreateShuffleVector if possible

As mentioned in D93793, there are quite a few places where unary `IRBuilder::CreateShuffleVector(X, Mask)` can be used
instead of `IRBuilder::CreateShuffleVector(X, Undef, Mask)`.
Let's update them.

Actually, it would have been more natural if the patches were made in this order:
(1) let them use unary CreateShuffleVector first
(2) update IRBuilder::CreateShuffleVector to use poison as a placeholder value (D93793)

The order is swapped, but in terms of correctness it is still fine.

Reviewed By: spatel

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


  Commit: 420d046d6bdd8d950dad389a97e31f841052efb2
      https://github.com/llvm/llvm-project/commit/420d046d6bdd8d950dad389a97e31f841052efb2
  Author: Juneyoung Lee <aqjune at gmail.com>
  Date:   2020-12-30 (Wed, 30 Dec 2020)

  Changed paths:
    M clang/test/CodeGen/X86/avx512-reduceMinMaxIntrin.c
    M clang/test/CodeGen/X86/avx512f-builtins.c
    M clang/test/CodeGen/X86/avx512vl-builtins-constrained.c
    M clang/test/CodeGen/arm64-abi-vector.c
    M llvm/lib/IR/AutoUpgrade.cpp
    M llvm/lib/Target/AMDGPU/AMDGPULowerKernelArguments.cpp
    M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
    M llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp

  Log Message:
  -----------
  clang-format, address warnings


Compare: https://github.com/llvm/llvm-project/compare/e47e313d647e...420d046d6bdd


More information about the All-commits mailing list