[all-commits] [llvm/llvm-project] 3dcc0d: [X86] Teach combineToExtendBoolVectorInReg to crea...

topperc via All-commits all-commits at lists.llvm.org
Mon Mar 9 11:26:52 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 3dcc0db15e372df2e6c61873dc2d8a2f780cd27e
      https://github.com/llvm/llvm-project/commit/3dcc0db15e372df2e6c61873dc2d8a2f780cd27e
  Author: Craig Topper <craig.topper at intel.com>
  Date:   2020-03-09 (Mon, 09 Mar 2020)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    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/bitcast-int-to-vector-bool.ll
    M llvm/test/CodeGen/X86/vector-sext.ll

  Log Message:
  -----------
  [X86] Teach combineToExtendBoolVectorInReg to create opportunities for using broadcast load instructions.

If we're inserting a scalar that is smaller than the element
size of the final VT, the value of the extra bits doesn't matter.

Previously we any_extended in the scalar domain before inserting.

This patch changes this to use a broadcast of the original
scalar type and then a bitcast to the final type. This might
enable the use of a broadcast load.

This recovers regressions from 07d68c24aa19483e44db4336b0935b00a5d69949
and 9fcd212e2f678fdbdf304399a1e58ca490dc54d1 without relying on
alignment of the load.

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




More information about the All-commits mailing list