Fix type mismatch in SLPed constructors
authorRichard Sandiford <richard.sandiford@arm.com>
Thu, 9 Jan 2020 20:31:31 +0000 (20:31 +0000)
committerRichard Sandiford <richard.sandiford@arm.com>
Wed, 15 Jan 2020 13:35:51 +0000 (13:35 +0000)
commit86c3a7d891f9f175d09d61f5ce163c6dc5ce681f
tree48ffe61e9634d24fcde6ee1bdf2d8423d2f431af
parentaffb7b66aa6e08aa19ccec2cc24d166a37d4a556
Fix type mismatch in SLPed constructors

Having the "same" vector types with different modes means that we can
end up vectorising a constructor with a different mode from the lhs.
This patch adds a VIEW_CONVERT_EXPR in that case.

This showed up on existing tests when testing with fixed-length
-msve-vector-bits=128.

2020-01-15  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
* tree-vect-slp.c (vectorize_slp_instance_root_stmt): Use a
VIEW_CONVERT_EXPR if the vectorized constructor has a diffeent
type from the lhs.
gcc/ChangeLog
gcc/tree-vect-slp.c