[all-commits] [llvm/llvm-project] 34033a: [PowerPC] Skip combine for vector_shuffles when tw...

Amy Kwan via All-commits all-commits at lists.llvm.org
Wed Jun 15 12:12:49 PDT 2022

  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 34033a84b8b9a07917ffc73af05e857c7b4cfa33
  Author: Amy Kwan <amy.kwan1 at ibm.com>
  Date:   2022-06-15 (Wed, 15 Jun 2022)

  Changed paths:
    M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
    M llvm/test/CodeGen/PowerPC/p8-scalar_vector_conversions.ll
    A llvm/test/CodeGen/PowerPC/scalar_to_vector_shuffle.ll

  Log Message:
  [PowerPC] Skip combine for vector_shuffles when two scalar_to_vector nodes are different vector types.

Currently in `combineVectorShuffle()`, we update the shuffle mask if either
input vector comes from a scalar_to_vector, and we keep the respective input
vectors in its permuted form by producing PPCISD::SCALAR_TO_VECTOR_PERMUTED.
However, it is possible that we end up in a situation where both input vectors
to the vector_shuffle are scalar_to_vector, and are different vector types.
In situations like this, the shuffle mask is updated incorrectly as the current
code assumes both scalar_to_vector inputs are the same vector type.

This patch skips the combines for vector_shuffle if both input vectors are
scalar_to_vector, and if they are of different vector types. A follow up patch
will focus on fixing this issue afterwards, in order to correctly update the
shuffle mask.

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

More information about the All-commits mailing list