[all-commits] [llvm/llvm-project] 77f048: [AArch64] Combine zext of deinterleaving shuffle. ...

David Green via All-commits all-commits at lists.llvm.org
Thu Sep 5 00:11:51 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 77f04882251b1e44239d6d7545cd62301e903a4a
      https://github.com/llvm/llvm-project/commit/77f04882251b1e44239d6d7545cd62301e903a4a
  Author: David Green <david.green at arm.com>
  Date:   2024-09-05 (Thu, 05 Sep 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/test/CodeGen/AArch64/zext-shuffle.ll

  Log Message:
  -----------
  [AArch64] Combine zext of deinterleaving shuffle. (#107201)

This is part 1 of a few patches that are intended to take deinterleaving
shuffles with masks like `[0,4,8,12]`, where the shuffle is
zero-extended to a larger size, and optimize away the deinterleave. In
this case it converts them to `and(uzp1, mask)`, where the `uzp1` act
upon the elements in the larger type size to get the lanes into the
correct possitions, and the `and` performs the zext. It performs the
combine fairly late, on the legalized type so that uitofp that are
converted to uitofp(zext(..)) will also be handled.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list