The atomic_compare_exchange_$n builtins have an exciting calling convention where the 4th ('weak') parm is dropped in a real call. This caused gcc.dg/atomic-noinline.c to fail on PTX as the prototype didn't match the use. Fixed thusly when emitting the ptx prototyp. Also fixed is the subsequently uncovered type mismatch in the testcase -- atomic_is_lock_free's first parm is size_t not int. Usually this mismatch is harmless even when one is 64 bits and the other 32. But again, PTX requires a match. Applied to trunk. nathan