[all-commits] [llvm/llvm-project] 602f81: [AArch64] Fix zero element TBL indices

David Green via All-commits all-commits at lists.llvm.org
Thu May 19 05:54:57 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 602f81ec336330f97e22442b98035c6f007cac6d
      https://github.com/llvm/llvm-project/commit/602f81ec336330f97e22442b98035c6f007cac6d
  Author: David Green <david.green at arm.com>
  Date:   2022-05-19 (Thu, 19 May 2022)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/test/CodeGen/AArch64/neon-bitwise-instructions.ll

  Log Message:
  -----------
  [AArch64] Fix zero element TBL indices

A TBL instruction will fill out-of-range values with 0's, something used
in D121139 to turn tbl2 with a zero input into tbl1s. This works OK for
v16i8, but for v8i8 the input is still treated as a v16i8, so
out-of-range values (like a lane index of 8) would end up loading values
from the top half of the input register. Clean this up by detecting the
out of range values and making sure they really use out of range values.
There is a fix for swapped indices of 64bit input vectors too, which
could be incorrectly adjusted if the zerovector was the first operand.

Fixes #55545

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




More information about the All-commits mailing list