[all-commits] [llvm/llvm-project] bef25a: [X86] X86FixupVectorConstants - use explicit regis...

Simon Pilgrim via All-commits all-commits at lists.llvm.org
Thu Feb 8 09:39:48 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: bef25ae297d6d246bf0fa8667c8b08f9d5e8dae7
      https://github.com/llvm/llvm-project/commit/bef25ae297d6d246bf0fa8667c8b08f9d5e8dae7
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-02-08 (Thu, 08 Feb 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86FixupVectorConstants.cpp
    M llvm/test/CodeGen/X86/pr81136.ll

  Log Message:
  -----------
  [X86] X86FixupVectorConstants - use explicit register bitwidth for the loaded vector instead of using constant pool bitwidth

Fixes #81136 - we might be loading from a constant pool entry wider than the destination register bitwidth, affecting the vextload scale calculation.

ConvertToBroadcastAVX512 doesn't yet set an explicit bitwidth (it will default to the constant pool bitwidth) due to difficulties in looking up the original register width through the fold tables, but as we only use rebuildSplatCst this shouldn't cause any miscompilations, although it might prevent folding to broadcast if only the lower bits match a splatable pattern.




More information about the All-commits mailing list