[all-commits] [llvm/llvm-project] 17dd1a: [X86] lowerShuffleAsElementInsertion - fold to or(...

Simon Pilgrim via All-commits all-commits at lists.llvm.org
Sun May 7 12:58:33 PDT 2023

  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 17dd1ad14be77c722f7c7c1e4fa273c6f170abea
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2023-05-07 (Sun, 07 May 2023)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/insert-into-constant-vector.ll

  Log Message:
  [X86] lowerShuffleAsElementInsertion - fold to or(vzext_movl(scalar_to_vector(zext(x))), and(constant, mask))

The logic in this function is a bit of a mess, but masking a vector constant should allow us to OR the zero-extended i8/i16 scalar value in place.

We can do more here - reusing the OR pattern if the relevant unused elements are known zero etc. but this is enough to address a regression from D127115.

More information about the All-commits mailing list