The attached patch adds a new back-end hook that allows targets to prefer vector splitting over integer promotion for type legalization.  Right now, TargetLowering::computeRegisterProperties() will first try to promote <N x iM> to <N x iP> where P > M if <N x iM> is illegal.  However, for some targets, it is desirable to instead prefer splitting the vector.<div>
<br></div><div>The in-tree use case is the NVPTX back-end.  <N x i1> is not a legal type, but promotion to <N x i8> or <N x i32> is not desirable.  Instead, we want to force scalarization of vector code using these types (e.g. vselect).<br clear="all">
<div><br></div>-- <br><br><div>Thanks,</div><div><br></div><div>Justin Holewinski</div><br>
</div>