+#if HAVE_INT128
+ case PSI_T_INT128:
+ switch (t2) {
+ case PSI_T_INT8:
+ res->i128 = v1->i128 + v2->i8;
+ return PSI_T_INT128;
+ case PSI_T_UINT8:
+ res->i128 = v1->i128 + v2->u8;
+ return PSI_T_INT128;
+ case PSI_T_INT16:
+ res->i128 = v1->i128 + v2->i16;
+ return PSI_T_INT128;
+ case PSI_T_UINT16:
+ res->i128 = v1->i128 + v2->u16;
+ return PSI_T_INT128;
+ case PSI_T_INT32:
+ res->i128 = v1->i128 + v2->i32;
+ return PSI_T_INT128;
+ case PSI_T_UINT32:
+ res->i128 = v1->i128 + v2->u32;
+ return PSI_T_INT128;
+ case PSI_T_INT64:
+ res->i128 = v1->i128 + v2->i64;
+ return PSI_T_INT128;
+ case PSI_T_UINT64:
+ res->i128 = v1->i128 + v2->u64;
+ return PSI_T_INT128;
+# if HAVE_INT128
+ case PSI_T_INT128:
+ res->i128 = v1->i128 + v2->i128;
+ return PSI_T_INT128;
+# endif
+
+# if HAVE_UINT128
+ case PSI_T_UINT128:
+ res->u128 = v1->i128 + v2->u128;
+ return PSI_T_UINT128;
+# endif
+
+ case PSI_T_FLOAT:
+ res->fval = v1->i128 + v2->fval;
+ return PSI_T_FLOAT;
+ case PSI_T_DOUBLE:
+ res->dval = v1->i128 + v2->dval;
+ return PSI_T_DOUBLE;
+# if HAVE_LONG_DOUBLE
+ case PSI_T_LONG_DOUBLE:
+ res->ldval = v1->i128 + v2->ldval;
+ return PSI_T_LONG_DOUBLE;
+# endif
+
+ default:
+ assert(0);
+ break;
+ }
+ break;
+#endif
+
+#if HAVE_UINT128
+ case PSI_T_UINT128:
+ switch (t2) {
+ case PSI_T_INT8:
+ res->u128 = v1->u128 + v2->i8;
+ return PSI_T_UINT128;
+ case PSI_T_UINT8:
+ res->u128 = v1->u128 + v2->u8;
+ return PSI_T_UINT128;
+ case PSI_T_INT16:
+ res->u128 = v1->u128 + v2->i16;
+ return PSI_T_UINT128;
+ case PSI_T_UINT16:
+ res->u128 = v1->u128 + v2->u16;
+ return PSI_T_UINT128;
+ case PSI_T_INT32:
+ res->u128 = v1->u128 + v2->i32;
+ return PSI_T_UINT128;
+ case PSI_T_UINT32:
+ res->u128 = v1->u128 + v2->u32;
+ return PSI_T_UINT128;
+ case PSI_T_INT64:
+ res->u128 = v1->u128 + v2->i64;
+ return PSI_T_UINT128;
+ case PSI_T_UINT64:
+ res->u128 = v1->u128 + v2->u64;
+ return PSI_T_UINT128;
+# if HAVE_INT128
+ case PSI_T_INT128:
+ res->u128 = v1->u128 + v2->i128;
+ return PSI_T_UINT128;
+# endif
+
+# if HAVE_UINT128
+ case PSI_T_UINT128:
+ res->u128 = v1->u128 + v2->u128;
+ return PSI_T_UINT128;
+# endif
+
+ case PSI_T_FLOAT:
+ res->fval = v1->u128 + v2->fval;
+ return PSI_T_FLOAT;
+ case PSI_T_DOUBLE:
+ res->dval = v1->u128 + v2->dval;
+ return PSI_T_DOUBLE;
+# if HAVE_LONG_DOUBLE
+ case PSI_T_LONG_DOUBLE:
+ res->ldval = v1->u128 + v2->ldval;
+ return PSI_T_LONG_DOUBLE;
+# endif
+
+ default:
+ assert(0);
+ break;
+ }
+ break;
+#endif
+