10 #define FR_SUB(Z, X, Y) \
13 "\n\tsub.u64.cc "#Z"0, "#X"0, "#Y"0;" \
14 "\n\tsubc.u64.cc "#Z"1, "#X"1, "#Y"1;" \
15 "\n\tsubc.u64.cc "#Z"2, "#X"2, "#Y"2;" \
16 "\n\tsubc.u64.cc "#Z"3, "#X"3, "#Y"3;" \
17 "\n\tsubc.u32 t4, 0, 0;" \
21 "\n\tsetp.ne.u32 nz, t4, 0;" \
22 "\n@nz\tadd.u64.cc "#Z"0, "#Z"0, 0xFFFFFFFE00000002U;" \
23 "\n@nz\taddc.u64.cc "#Z"1, "#Z"1, 0xA77B4805FFFCB7FDU;" \
24 "\n@nz\taddc.u64.cc "#Z"2, "#Z"2, 0x6673B0101343B00AU;" \
25 "\n@nz\taddc.u64.cc "#Z"3, "#Z"3, 0xE7DB4EA6533AFA90U;" \
26 "\n@nz\taddc.u32 t4, t4, 0;" \
30 "\n\tsetp.ne.u32 nz, t4, 0;" \
31 "\n@nz\tadd.u64.cc "#Z"0, "#Z"0, 0xFFFFFFFE00000002U;" \
32 "\n@nz\taddc.u64.cc "#Z"1, "#Z"1, 0xA77B4805FFFCB7FDU;" \
33 "\n@nz\taddc.u64.cc "#Z"2, "#Z"2, 0x6673B0101343B00AU;" \
34 "\n@nz\taddc.u64.cc "#Z"3, "#Z"3, 0xE7DB4EA6533AFA90U;" \