intrinsic function which takes vec 3 parameters

Hi,

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 intrinsic.td 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 - http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-March/047996.html. But I’m not sure what the resolution for this. Any other suggestions?

Thanks!

  • Chad