12 #define FP_SUB(Z, X, Y) \ 
   15     "\n\tsub.u64.cc  "#Z"0, "#X"0, "#Y"0;" \
 
   16     "\n\tsubc.u64.cc "#Z"1, "#X"1, "#Y"1;" \
 
   17     "\n\tsubc.u64.cc "#Z"2, "#X"2, "#Y"2;" \
 
   18     "\n\tsubc.u64.cc "#Z"3, "#X"3, "#Y"3;" \
 
   19     "\n\tsubc.u64.cc "#Z"4, "#X"4, "#Y"4;" \
 
   20     "\n\tsubc.u64.cc "#Z"5, "#X"5, "#Y"5;" \
 
   21     "\n\tsubc.u32    z6,  0,   0;" \
 
   26     "\n\tsetp.gt.u64 gt, z5, 0x1a0111ea397fe69aU;" \
 
   27     "\n\tsetp.ne.u32 nz, z6, 0;" \
 
   31     "\n@!gt\tadd.u64.cc  "#Z"0, "#Z"0, 0xb9feffffffffaaabU;" \
 
   32     "\n@!gt\taddc.u64.cc "#Z"1, "#Z"1, 0x1eabfffeb153ffffU;" \
 
   33     "\n@!gt\taddc.u64.cc "#Z"2, "#Z"2, 0x6730d2a0f6b0f624U;" \
 
   34     "\n@!gt\taddc.u64.cc "#Z"3, "#Z"3, 0x64774b84f38512bfU;" \
 
   35     "\n@!gt\taddc.u64.cc "#Z"4, "#Z"4, 0x4b1ba7b6434bacd7U;" \
 
   36     "\n@!gt\taddc.u64.cc "#Z"5, "#Z"5, 0x1a0111ea397fe69aU;" \
 
   40     "\n@nz\tadd.u64.cc  "#Z"0, "#Z"0, 0x89f6fffffffd0003U;" \
 
   41     "\n@nz\taddc.u64.cc "#Z"1, "#Z"1, 0x140bfff43bf3fffdU;" \
 
   42     "\n@nz\taddc.u64.cc "#Z"2, "#Z"2, 0xa0b767a8ac38a745U;" \
 
   43     "\n@nz\taddc.u64.cc "#Z"3, "#Z"3, 0x8831a7ac8fada8baU;" \
 
   44     "\n@nz\taddc.u64.cc "#Z"4, "#Z"4, 0xa3f8e5685da91392U;" \
 
   45     "\n@nz\taddc.u64.cc "#Z"5, "#Z"5, 0xea09a13c057f1b6cU;"