It seems that several intrinsics are missing from this routine.

In particular, floor, which was causing problems in the mips16 port.

Is there some reason to not add the ones that are missing?

For example, adding the following fixed my problem with floor.

       case Intrinsic::floor:
         EnsureFPIntrinsicsExist(M, I, "floorf", "floor", "floor");

Ooops... Ignore this previous mail.

The problem still exists with this change.

Note that this code is being used mainly (only?) by the Interpreter.


Yes. I don’t know the source of this problem with some intrinsics being declared improperly. Sin, cos are okay but Floor and trunc not. I have a workaround that I will implement today. For mips16 pic mode I need to make calls to helper functions for functions with certain prototype. I intend to move this logic to an earlier place where I am operating on clang ir but for now it is being handled during call lowering and I rely on Args and RetTy being correct.