]> granicus.if.org Git - llvm/commit
Merging r332103:
authorTom Stellard <tstellar@redhat.com>
Fri, 11 May 2018 23:55:26 +0000 (23:55 +0000)
committerTom Stellard <tstellar@redhat.com>
Fri, 11 May 2018 23:55:26 +0000 (23:55 +0000)
commit5ac981ff4213d6d720ae340b292d87ba23dd63d0
tree78543410ad09059cc6282728f22c9aba0e95e9ff
parentf3bbc0667c2d431fd66aca0765244b72febee892
Merging r332103:

------------------------------------------------------------------------
r332103 | gberry | 2018-05-11 09:25:06 -0700 (Fri, 11 May 2018) | 24 lines

[AArch64] Fix performPostLD1Combine to check for constant lane index.

Summary:
performPostLD1Combine in AArch64ISelLowering looks for vector
insert_vector_elt of a loaded value which it can optimize into a single
LD1LANE instruction.  The code checking for the pattern was not checking
if the lane index was a constant which could cause two problems:

- an assert when lowering the LD1LANE ISD node since it assumes an
  constant operand

- an assert in isel if the lane index value depends on the
  post-incremented base register

Both of these issues are avoided by simply checking that the lane index
is a constant.

Fixes bug 35822.

Reviewers: t.p.northover, javed.absar

Subscribers: rengolin, kristof.beyls, mcrosier, llvm-commits

Differential Revision: https://reviews.llvm.org/D46591
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_60@332158 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/AArch64/AArch64ISelLowering.cpp
test/CodeGen/AArch64/arm64-indexed-vector-ldst-2.ll