NVPTX codegen for llvm.sin (and friends)

No, but if the backend does, that should not be disturbed (as it is the “best” solution).
We basically want to have the following flow:

  • llvm.math flows in (or is created at some point) which is understood by the optimizer
  • libm comes in that implements llvm.math (via attributes)
  • backends report what intrinsics they support natively
  • a pass in the middle end replaces llvm.math with libm calls
  • inliner and IPO have a chance to optimize the call sites