This patch fixes the issue with the cost of a combined load+broadcast
when these cannot be combined into a single instruction.
For example, there may be other instructions in between:
%ld = ... <other instructions> %vec = broadcast %ld ...
Or they may be in different bbs:
bb1:
%ld = ...
bb2:
%vec = broadcast %ld ...
This should fix cost modeling for SLP of such cases.
The user of an instruction should always be an instruction.
Just to make sure - it isn't a problem for the SLP vectorizer is it? That the load might have multiple uses, which we are turning into a splat?