intrinsic function which takes vec 3 parameters


I’m running into issues when trying to implement an intrinsic function which takes a vec 3 parameter and does not return anything(e.g. v3i32):

void @intrinsic_3d(<3 x i32>)

I’ve tried the following:

  1. Adding setOperationAction() to custom handle it
  • There’s no built-in MVT enum for this type

  • Not sure if I want to do this for all other intrinsic functions, since I can only specify for ISD::INTRINSIC_VOID here?

  1. In my target’s file, I declare the intrinsic as taking a “llvm_anyvector_ty” parameter, but it still complains about “lookupName Error …” for some reason. Tried a few other candidates, none of those seemed to work.

  2. Or just do the patching at the IR level?

I think this must have been discussed before, as I found an old thread on this - But I’m not sure what the resolution for this. Any other suggestions?


  • Chad