At the moment, the SLP vectorizer uses the arguments for the first
call in the bundle to the intrinsic cost estimate. This can lead to
mis-classifications, causing the SLP vectorizer to underestimate the
vector call cost.
The main case is constant arguments, where incorrectly assuming the same
contant is passed for all vector lanes can impact the cost computation.
An example where this estimate leads to sub-optimal code is fshl calls,
illustrated in the test case.
This patch updates SLP to more careful and not use arguments if
different constants are passed in different lanes.
This was exposed by 55c600819f92ed33bef868b5056b699915d645fa/D140392.