<div dir="ltr">The CallingConv.td file can specify CCCustom and ISelLowering has LowerFormalArguments. The existing uses of CCCustom pick a register to pass an unmodified argument in and LowerFormalArguments is mostly concerned with marking registers as live, though I think provides enough information that I can munge the DAG there.<div><br></div><div>I would like to pass a scalar type (marked as a register class) in a vector register. I essentially want to wrap the argument in a SCALAR_TO_VECTOR ISD node before calling a function and unwrap it using EXTRACT_VECTOR_ELT or similar within the function.</div><div><br></div><div>Where should I introduce these additional nodes, or should it be possible to achieve this via CCCustom?</div><div><br></div><div>Cheers!</div><div><br></div><div>Jon</div><div><br></div></div>