[all-commits] [llvm/llvm-project] 51a4c6: [X86] Add test cases for failures to form vbroadca...

topperc via All-commits all-commits at lists.llvm.org
Fri Mar 13 00:12:17 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 51a4c6125ca6f25cff39c82a62878556b430d7f1
      https://github.com/llvm/llvm-project/commit/51a4c6125ca6f25cff39c82a62878556b430d7f1
  Author: Craig Topper <craig.topper at gmail.com>
  Date:   2020-03-12 (Thu, 12 Mar 2020)

  Changed paths:
    M llvm/test/CodeGen/X86/vector-shuffle-128-v8.ll
    M llvm/test/CodeGen/X86/vector-shuffle-256-v16.ll
    M llvm/test/CodeGen/X86/vector-shuffle-512-v32.ll

  Log Message:
  -----------
  [X86] Add test cases for failures to form vbroadcastw due to isTypeDesirableForOp preventing load shrinking to i16.

These are based on existing test cases but use i64 instead of i32.
Some of these end up with i64 zextload/extloads from i16 that we
don't have isel patterns for.

Some of the other cases fail because isTypeDesirableForOp prevents
shrinking the (trunc (i64 (srl (load)))) directly. So we try
to shrink based on the (i64 (srl (load))) but we need 64 - shift_amount
to be a power of 2 to do that shrink.


  Commit: 09c8f38924d4bc302984de7bf67f4dbae15c38dc
      https://github.com/llvm/llvm-project/commit/09c8f38924d4bc302984de7bf67f4dbae15c38dc
  Author: Craig Topper <craig.topper at gmail.com>
  Date:   2020-03-13 (Fri, 13 Mar 2020)

  Changed paths:
    M llvm/lib/Target/X86/X86InstrAVX512.td
    M llvm/lib/Target/X86/X86InstrSSE.td
    M llvm/test/CodeGen/X86/vector-shuffle-128-v8.ll
    M llvm/test/CodeGen/X86/vector-shuffle-256-v16.ll
    M llvm/test/CodeGen/X86/vector-shuffle-512-v32.ll

  Log Message:
  -----------
  [X86] Add isel patterns for X86VBroadcast with i16 truncates from i16->i64 zextload/extload.

We can form vpbroadcastw with a folded load.

We had patterns for i16->i32 zextload/extload, but nothing prevents
i64 from occuring.

I'd like to move this all to DAG combine to fix more cases, but
this is trivial fix to minimize test diffs when moving to a combine.


Compare: https://github.com/llvm/llvm-project/compare/a198adb49027...09c8f38924d4


More information about the All-commits mailing list