Target Intrinsics with illegal types

My current implementation uses target intrinsic to represent math functions. The current issue with this is that the math functions must support up to vec16 but the backend only supports up to vec4. Is there a way to split a target intrinsic into multiple legal intrinsic of the smaller vector type? This is similar to the splitVectorOp in legalizeDag but on intrinsic.

Thanks,

Micah