HomePhabricator

[VectorCombine][SVE] Do not fold bitcast shuffle for scalable type.

Authored by huihuiz on Sep 2 2020, 3:02 PM.

Description

[VectorCombine][SVE] Do not fold bitcast shuffle for scalable type.

First, shuffle cost for scalable type is not known for scalable type;
Second, we cannot reason if the narrowed shuffle mask for scalable type
is a splat or not.

E.g., Bitcast splat vector from type <vscale x 4 x i32> to <vscale x 8 x i16>
will involve narrowing shuffle mask <vscale x 4 x i32> zeroinitializer to
<vscale x 8 x i32> with element sequence of <0, 1, 0, 1, ...>, which cannot be
reasoned if it's a valid splat or not.

Reviewed By: spatel

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

Details