[all-commits] [llvm/llvm-project] 0f04ff: [X86] Only pass v64i8/v32i16 as v16i32 on non-avx5...

topperc via All-commits all-commits at lists.llvm.org
Tue Nov 12 14:56:13 PST 2019


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 0f04ffc073deeb1738f1d9bd5c8161d13fe42592
      https://github.com/llvm/llvm-project/commit/0f04ffc073deeb1738f1d9bd5c8161d13fe42592
  Author: Craig Topper <craig.topper at intel.com>
  Date:   2019-11-12 (Tue, 12 Nov 2019)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp

  Log Message:
  -----------
  [X86] Only pass v64i8/v32i16 as v16i32 on non-avx512bw targets if the v16i32 type won't be split by prefer-vector-width=256

Otherwise just let the v64i8/v32i16 types be split to v32i8/v16i16.

In reality this shouldn't happen because it means we have a 512-bit
vector argument, but min-legal-vector-width says a value less than
512. But a 512-bit argument should have been factored into the
preferred vector width.


  Commit: 3e1aee2ba717529b651a79ed4fc7e7147358043f
      https://github.com/llvm/llvm-project/commit/3e1aee2ba717529b651a79ed4fc7e7147358043f
  Author: Craig Topper <craig.topper at intel.com>
  Date:   2019-11-12 (Tue, 12 Nov 2019)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/min-legal-vector-width.ll

  Log Message:
  -----------
  [X86] Don't consider v64i1 as a legal type unless v64i8 is also a legal type.

This avoids some nasty issues with argument passing and lowering of
arbitrary v64i8 shuffles.


Compare: https://github.com/llvm/llvm-project/compare/38c356176b53...3e1aee2ba717


More information about the All-commits mailing list