https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106770

--- Comment #10 from Surya Kumari Jangala <jskumari at gcc dot gnu.org> ---
The swap pass analyzes vector computations and removes unnecessary doubleword
swaps (xxswapdi instructions). The swap pass first constructs webs and removes
swap instructions if possible. If the web contains operations that are
sensitive to element order, such as an extract, then such instructions should
be modified. For example, the lane is changed on an extract operation.

As we saw in comment 9, the swap pass has incorrectly changed the lane of the
vec_extract. The swap pass modifies the extract operation even though there are
no swap instructions in the web. This is a bug in the swap pass. It should
modify only those operations which are present in webs having swap
instructions.

Reply via email to