[all-commits] [llvm/llvm-project] e9015b: [X86][AVX] lowerShuffleAsBroadcast - MOVDDUP(SCALA...

Simon Pilgrim via All-commits all-commits at lists.llvm.org
Wed Mar 24 04:32:24 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: e9015bd59519e205c2205fa413c8af7e677cc65d
      https://github.com/llvm/llvm-project/commit/e9015bd59519e205c2205fa413c8af7e677cc65d
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-03-24 (Wed, 24 Mar 2021)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/avx-intrinsics-fast-isel.ll
    M llvm/test/CodeGen/X86/avx-splat.ll
    M llvm/test/CodeGen/X86/bitcast-int-to-vector-bool-sext.ll
    M llvm/test/CodeGen/X86/bitcast-int-to-vector-bool-zext.ll
    M llvm/test/CodeGen/X86/combine-bitselect.ll
    M llvm/test/CodeGen/X86/combine-pmuldq.ll
    M llvm/test/CodeGen/X86/insertelement-var-index.ll

  Log Message:
  -----------
  [X86][AVX] lowerShuffleAsBroadcast - MOVDDUP(SCALAR_TO_VECTOR(X)) -> BROADCAST(X)

Prefer broadcast from scalar on AVX targets as this makes it easier for later folds to strip away bitcasts etc.

This helps a lot with the AVX1 poor codegen from PR49658.

There's a trivial regression in bitcast-int-to-vector-bool-*ext.ll tests due to SimplifyDemandedBits not being able to see a multi-use case, but there's bigger existing codegen issues to be addressed first in those tests (unnecessary NOTs).




More information about the All-commits mailing list