Other Intrinsics?

Do you have plans to add other intrinsics? I'm curious as to why there is an llvm.sin intrinsic and an llvm.cos intrinsic, but no llvm.atan intrinsic. Why is there an llvm.pow intrinsic but no llvm.log intrinsic? Also, have you thought about integer intrinsics like multiprecision multiply (u32xu32->u64) and multiprecision divide (u64/u32->(dividend:u32,remainder:u32))?

Regards,
Jon

Do you have plans to add other intrinsics? I'm curious as to why there is an llvm.sin intrinsic and an llvm.cos intrinsic, but no llvm.atan intrinsic. Why is there an llvm.pow intrinsic but no llvm.log intrinsic? Also, have you thought about integer intrinsics like multiprecision multiply (u32xu32->u64) and multiprecision divide (u64/u32->(dividend:u32,remainder:u32))?

It would be good if intrinsics could be added via a library approach.
This would be good for supporting new platform and language requirements.
Although describing or adding optimization code/phases maybe an issue.

Aaron

Do you have plans to add other intrinsics? I'm curious as to why there
is an llvm.sin intrinsic and an llvm.cos intrinsic, but no llvm.atan
intrinsic. Why is there an llvm.pow intrinsic but no llvm.log
intrinsic?

Intrinsics get added on demand. Generally there has to be a good reason to add them. llvm.sin was implemented (for example) to allow generation of code that uses vector sin operations.

To be honest, I'm not sure I understand why it exists anymore. Maybe Dan can comment on that.

Also, have you thought about integer intrinsics like
multiprecision multiply (u32xu32->u64) and multiprecision divide
(u64/u32->(dividend:u32,remainder:u32))?

We don't need anything fancy for these, see this recent thread:
http://lists.cs.uiuc.edu/pipermail/llvmdev/2007-November/011435.html
http://lists.cs.uiuc.edu/pipermail/llvmdev/2007-November/011440.html

-Chris