
function asmFunc(imports) {
 var Math_imul = Math.imul;
 var Math_fround = Math.fround;
 var Math_abs = Math.abs;
 var Math_clz32 = Math.clz32;
 var Math_min = Math.min;
 var Math_max = Math.max;
 var Math_floor = Math.floor;
 var Math_ceil = Math.ceil;
 var Math_trunc = Math.trunc;
 var Math_sqrt = Math.sqrt;
 function legalstub$0($0, $1, $2, $3, $4, $5) {
  $1 = $1 + $3 | 0;
  $0 = $0 + $2 | 0;
  $1 = $2 >>> 0 > $0 >>> 0 ? $1 + 1 | 0 : $1;
  return ($0 | 0) == ($4 | 0) & ($1 | 0) == ($5 | 0);
 }
 
 function legalstub$1($0, $1, $2, $3, $4, $5) {
  return ($4 | 0) == ($0 - $2 | 0) & ($5 | 0) == ($1 - (($0 >>> 0 < $2 >>> 0) + $3 | 0) | 0);
 }
 
 return {
  "check_add_i64": legalstub$0, 
  "check_sub_i64": legalstub$1
 };
}

var retasmFunc = asmFunc({
});
export var check_add_i64 = retasmFunc.check_add_i64;
export var check_sub_i64 = retasmFunc.check_sub_i64;
