This patch changes the intrinsics cost model to assume that by default target intrinsics are cheap. This didn't seem to be the case for all intrinsics, and is potentially an MVE problem due to our scalarization overheads. Cheap seems to be a good default in general though.
Found from D90554, which would also end up changing the size costs which then has an effect on loop unrolling and unswitch.
Do you see any differences if we add the check here?
I've been staring at and stepping through this code for days, and I'm still not exactly sure how it works...
But it seems like if we can stub something out at this level, it's better than waiting for the type-based specialization.