The cse_sincos pass tries to optimize sequences such as sin (x); cos (x); into a single call to sincos, or cexpi, when available. However, the nvptx target has sin and cos instructions, albeit with some loss of precision (so it's only enabled with -ffast-math). This patch teaches cse_sincos pass to ignore sin, cos and cexpi instructions when the target can expand those calls. This yields a 6x speedup in 314.omriq from spec accel when running on Nvidia accelerators. Is this OK for trunk? Cesar