10 #define FP_X12(Z, X) \ 
   13     "\n\tadd.u64.cc  t0, "#X"0, "#X"0;" \
 
   14     "\n\taddc.u64.cc t1, "#X"1, "#X"1;" \
 
   15     "\n\taddc.u64.cc t2, "#X"2, "#X"2;" \
 
   16     "\n\taddc.u64.cc t3, "#X"3, "#X"3;" \
 
   17     "\n\taddc.u64.cc t4, "#X"4, "#X"4;" \
 
   18     "\n\taddc.u64.cc t5, "#X"5, "#X"5;" \
 
   19     "\n\taddc.u32    z6,     0,     0;" \
 
   23     "\n\tadd.u64.cc  "#Z"0, "#X"0, t0;" \
 
   24     "\n\taddc.u64.cc "#Z"1, "#X"1, t1;" \
 
   25     "\n\taddc.u64.cc "#Z"2, "#X"2, t2;" \
 
   26     "\n\taddc.u64.cc "#Z"3, "#X"3, t3;" \
 
   27     "\n\taddc.u64.cc "#Z"4, "#X"4, t4;" \
 
   28     "\n\taddc.u64.cc "#Z"5, "#X"5, t5;" \
 
   29     "\n\taddc.u32       z6,     0, z6;" \
 
   33     "\n\tadd.u64.cc  "#Z"0, "#Z"0, "#Z"0;" \
 
   34     "\n\taddc.u64.cc "#Z"1, "#Z"1, "#Z"1;" \
 
   35     "\n\taddc.u64.cc "#Z"2, "#Z"2, "#Z"2;" \
 
   36     "\n\taddc.u64.cc "#Z"3, "#Z"3, "#Z"3;" \
 
   37     "\n\taddc.u64.cc "#Z"4, "#Z"4, "#Z"4;" \
 
   38     "\n\taddc.u64.cc "#Z"5, "#Z"5, "#Z"5;" \
 
   39     "\n\taddc.u32       z6,    z6,    z6;" \
 
   43     "\n\tadd.u64.cc  "#Z"0, "#Z"0, "#Z"0;" \
 
   44     "\n\taddc.u64.cc "#Z"1, "#Z"1, "#Z"1;" \
 
   45     "\n\taddc.u64.cc "#Z"2, "#Z"2, "#Z"2;" \
 
   46     "\n\taddc.u64.cc "#Z"3, "#Z"3, "#Z"3;" \
 
   47     "\n\taddc.u64.cc "#Z"4, "#Z"4, "#Z"4;" \
 
   48     "\n\taddc.u64.cc "#Z"5, "#Z"5, "#Z"5;" \
 
   49     "\n\taddc.u32       z6,    z6,    z6;" \
 
   53     "\n\tsetp.gt.u32 gt, z6, 7;" \
 
   54     "\n@gt\tsub.u64.cc  "#Z"0, "#Z"0, 0xABB1FFFFFFE6001AU;" \
 
   55     "\n@gt\tsubc.u64.cc "#Z"1, "#Z"1, 0x5867FF9A0797FFEAU;" \
 
   56     "\n@gt\tsubc.u64.cc "#Z"2, "#Z"2, 0x70E02D0B29EAFF01U;" \
 
   57     "\n@gt\tsubc.u64.cc "#Z"3, "#Z"3, 0x9C590282328BB651U;" \
 
   58     "\n@gt\tsubc.u64.cc "#Z"4, "#Z"4, 0xE26D1988810EA9A0U;" \
 
   59     "\n@gt\tsubc.u64.cc "#Z"5, "#Z"5, 0xEC53755D84F84302U;" \
 
   60     "\n@gt\tsubc.u32       z6,    z6, 7;" \
 
   64     "\n\tsetp.gt.u32 gt, z6, 3;" \
 
   65     "\n@gt\tsub.u64.cc  "#Z"0, "#Z"0, 0x55D8FFFFFFF3000DU;" \
 
   66     "\n@gt\tsubc.u64.cc "#Z"1, "#Z"1, 0xAC33FFCD03CBFFF5U;" \
 
   67     "\n@gt\tsubc.u64.cc "#Z"2, "#Z"2, 0xB870168594F57F80U;" \
 
   68     "\n@gt\tsubc.u64.cc "#Z"3, "#Z"3, 0x4E2C81411945DB28U;" \
 
   69     "\n@gt\tsubc.u64.cc "#Z"4, "#Z"4, 0x71368CC4408754D0U;" \
 
   70     "\n@gt\tsubc.u64.cc "#Z"5, "#Z"5, 0xF629BAAEC27C2181U;" \
 
   71     "\n@gt\tsubc.u32       z6,    z6, 3;" \
 
   75     "\n\tsetp.gt.u32 gt, z6, 1;" \
 
   76     "\n@gt\tsub.u64.cc  "#Z"0, "#Z"0, 0xCDECFFFFFFF9AAB1U;" \
 
   77     "\n@gt\tsubc.u64.cc "#Z"1, "#Z"1, 0x46C3FFE7293BFFFAU;" \
 
   78     "\n@gt\tsubc.u64.cc "#Z"2, "#Z"2, 0xA89FA1F24F2244AEU;" \
 
   79     "\n@gt\tsubc.u64.cc "#Z"3, "#Z"3, 0x74DA9ADE12E06434U;" \
 
   80     "\n@gt\tsubc.u64.cc "#Z"4, "#Z"4, 0x930D7286FE9DD3FCU;" \
 
   81     "\n@gt\tsubc.u64.cc "#Z"5, "#Z"5, 0xEE145462447E1D73U;" \
 
   82     "\n@gt\tsubc.u32       z6,    z6, 1;" \
 
   86     "\n\tsetp.gt.u32 gt, z6, 0;" \
 
   87     "\n@gt\tsub.u64.cc  "#Z"0, "#Z"0, 0x89F6FFFFFFFD0003U;" \
 
   88     "\n@gt\tsubc.u64.cc "#Z"1, "#Z"1, 0x140BFFF43BF3FFFDU;" \
 
   89     "\n@gt\tsubc.u64.cc "#Z"2, "#Z"2, 0xA0B767A8AC38A745U;" \
 
   90     "\n@gt\tsubc.u64.cc "#Z"3, "#Z"3, 0x8831A7AC8FADA8BAU;" \
 
   91     "\n@gt\tsubc.u64.cc "#Z"4, "#Z"4, 0xA3F8E5685DA91392U;" \
 
   92     "\n@gt\tsubc.u64.cc "#Z"5, "#Z"5, 0xEA09A13C057F1B6CU;" \
 
   93     "\n@gt\tsubc.u32       z6,    z6, 0;" \
 
   97     "\n\tsetp.gt.u32 gt, z6, 0;" \
 
   98     "\n@gt\tsub.u64.cc  "#Z"0, "#Z"0, 0x89F6FFFFFFFD0003U;" \
 
   99     "\n@gt\tsubc.u64.cc "#Z"1, "#Z"1, 0x140BFFF43BF3FFFDU;" \
 
  100     "\n@gt\tsubc.u64.cc "#Z"2, "#Z"2, 0xA0B767A8AC38A745U;" \
 
  101     "\n@gt\tsubc.u64.cc "#Z"3, "#Z"3, 0x8831A7AC8FADA8BAU;" \
 
  102     "\n@gt\tsubc.u64.cc "#Z"4, "#Z"4, 0xA3F8E5685DA91392U;" \
 
  103     "\n@gt\tsubc.u64.cc "#Z"5, "#Z"5, 0xEA09A13C057F1B6CU;"