[AArch64] match splat of bitcasted extract subvector to DUPLANE
authorSanjay Patel <spatel@rotateright.com>
Sat, 21 Dec 2019 15:33:58 +0000 (10:33 -0500)
committerSanjay Patel <spatel@rotateright.com>
Sun, 22 Dec 2019 13:37:03 +0000 (08:37 -0500)
commit0b38af89e2c0adc13a6efb1dd04485229ef0d1c6
tree32866523a69556361ad699c1355bb7271e516133
parent218601ada1496f920fadddae9a21f7d6ccf48da5
[AArch64] match splat of bitcasted extract subvector to DUPLANE

This is another potential regression exposed by D63815.

Here we peek through a bitcast to find an extract subvector and
scale the splat offset based on that:
splat (bitcast (extract X, C)), LaneC --> duplane (bitcast X), LaneC'

Differential Revision: https://reviews.llvm.org/D71672
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
llvm/test/CodeGen/AArch64/arm64-neon-2velem.ll