[PATCH] D136722: [AArch64] Extending lowering of 'zext <Y x i8> %x to <Y x i8X>' to use tbl instructions

NILANJANA BASU via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 8 11:01:07 PST 2022


nilanjana_basu created this revision.
nilanjana_basu added a reviewer: fhahn.
Herald added subscribers: hiraditya, kristof.beyls.
Herald added a project: All.
nilanjana_basu edited the summary of this revision.
nilanjana_basu added a reviewer: paquette.
nilanjana_basu updated this revision to Diff 473568.
nilanjana_basu added a comment.
nilanjana_basu updated this revision to Diff 473596.
nilanjana_basu retitled this revision from "[AArch64] Extending lowering of 'zext <(8|16) x i8> %x to <(8|16) x (i16|i64)>' to use tbl instructions" to "[AArch64] Extending lowering of 'zext <Y x i8> %x to <Y x (i16|i64)>' to use tbl instructions".
nilanjana_basu edited the summary of this revision.
nilanjana_basu added reviewers: t.p.northover, dmgreen.
nilanjana_basu updated this revision to Diff 473761.
nilanjana_basu updated this revision to Diff 473769.
nilanjana_basu updated this revision to Diff 473877.
nilanjana_basu retitled this revision from "[AArch64] Extending lowering of 'zext <Y x i8> %x to <Y x (i16|i64)>' to use tbl instructions" to "[AArch64] Extending lowering of 'zext <Y x i8> %x to <Y x i8X>' to use tbl instructions".
nilanjana_basu edited the summary of this revision.
nilanjana_basu published this revision for review.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

Added more test cases for zext lowering of different vector types


nilanjana_basu added a comment.

Allowed the zext to tbl lowering for all lengths of vectors


nilanjana_basu added a comment.

Added Big-Endian checks for the test cases that I missed earlier


nilanjana_basu added a comment.

Ran clang-format


nilanjana_basu added a comment.

Allowed all element sizes in the destination element that is a multiple of 8


Adding support for ZExt lowering for destination types beyond the existing support for (8|16) x i32

[AArch64] Patch for lowering zext instructions to 'tbl' for (8|16)xi8 -> (8|16)xi32 conversions in D120571 <https://reviews.llvm.org/D120571> is extended to support zext to 'tbl' lowering for Y x i8 to Y x i8X. Any number of vector elements & any destination element type whose size is a multiple of 8 is allowed for this transformation.

Related microbenchmarks can be added by extending D136274 <https://reviews.llvm.org/D136274>

Depends on  D120571 <https://reviews.llvm.org/D120571>


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D136722

Files:
  llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
  llvm/test/CodeGen/AArch64/aarch64-matrix-umull-smull.ll
  llvm/test/CodeGen/AArch64/zext-to-tbl.ll
  llvm/test/Transforms/CodeGenPrepare/AArch64/zext-to-shuffle.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D136722.473877.patch
Type: text/x-patch
Size: 112650 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20221108/feb70c07/attachment-0001.bin>


More information about the llvm-commits mailing list