There are a variety of vector patterns that may be profitably reduced to a scalar op when scalar ops are performed using a subset (typically, the first lane) of the vector register file.
For x86, this is true for float/double ops and element 0 because insert/extract is just a sub-register rename.
Other targets should likely enable the hook in a similar way.
Note that we will move the splat after the binop in instcombine for these patterns, but it's possible that we'll create splats here in the backend and form this pattern.
If this looks ok, the planned follow-ups would be to handle splat constant operands as well as the case where the splat follows the binop.
Would we gain anything from supporting separate LHS/RHS splat indices? x86 probably not but other targets where larger vector register types often alias smaller/scalar (ARM NEON?)