I ran across this bug by accident, via a typo, in the PTX ADDC/SUBC instructions.
According to the PTX manual, ADDC is valid for 32 bits only, e.g., ADDC.U32, ADDC.S32, SUBC.U32, SUBC.S32. But, the PTXAS program also accepts other sizes, 16 and 64 bits. So, I think this is a (minor) bug in either the doc or PTXAS.
BTW, is there any way to search the Nvidia site for open bugs? The registered developer area has a “Current Bugs” search form, but it returns nothing. I suspect this may be because it only returns bugs that I submit, which would be very disappointing. (Or the code has no bugs ;). ) And, it does not seem to have a great way of selecting a subset either through “Division” or “Projects”, for ones associated with PTXAS. I don’t like making the forums a bug tracking system. But, until something better exists, I don’t see any good options.
[codebox] addc.u16 %s16_1, 0, 0; // Accepted, not documented.
addc.u32 %s32_1, 0, 0;
addc.u64 %s64_1, 0, 0; // Acepted, not documented.
// addc.cc.u16 %s16_1, 0, 0; // Not accepted.
addc.cc.u32 %s32_1, 0, 0;
// addc.cc.u64 %s64_1, 0, 0; // Not accepted.
// add.cc.u16 %s16_1, 0, 0; // Not accepted.
add.cc.u32 %s32_1, 0, 0;
// add.cc.u64 %s64_1, 0, 0; // Not accepted.
subc.u16 %s16_1, 0, 0; // Accepted, not documented.
subc.u32 %s32_1, 0, 0;
subc.u64 %s64_1, 0, 0; // Accepted, not documented.
// subc.cc.u16 %s16_1, 0, 0; // Not accepted.
subc.cc.u32 %s32_1, 0, 0;
// subc.cc.u64 %s64_1, 0, 0; // Not accepted.
// sub.cc.u16 %s16_1, 0, 0; // Not accepted.
sub.cc.u32 %s32_1, 0, 0;
// sub.cc.u64 %s64_1, 0, 0; // Not accepted.
[/codebox]