
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) {
  return ($0 | 0) == ($2 | 0) & ($1 | 0) == ($3 | 0);
 }
 
 function legalstub$1($0, $1, $2, $3) {
  return ($0 | 0) != ($2 | 0) | ($1 | 0) != ($3 | 0);
 }
 
 function legalstub$2($0, $1, $2, $3) {
  return ($1 | 0) >= ($3 | 0) & $0 >>> 0 >= $2 >>> 0 | ($1 | 0) > ($3 | 0);
 }
 
 function legalstub$3($0, $1, $2, $3) {
  return $0 >>> 0 > $2 >>> 0 & ($1 | 0) >= ($3 | 0) | ($1 | 0) > ($3 | 0);
 }
 
 function legalstub$4($0, $1, $2, $3) {
  return ($1 | 0) <= ($3 | 0) & $0 >>> 0 <= $2 >>> 0 | ($1 | 0) < ($3 | 0);
 }
 
 function legalstub$5($0, $1, $2, $3) {
  return $0 >>> 0 < $2 >>> 0 & ($1 | 0) <= ($3 | 0) | ($1 | 0) < ($3 | 0);
 }
 
 function legalstub$6($0, $1, $2, $3) {
  return ($1 | 0) == ($3 | 0) & $0 >>> 0 >= $2 >>> 0 | $1 >>> 0 > $3 >>> 0;
 }
 
 function legalstub$7($0, $1, $2, $3) {
  return ($1 | 0) == ($3 | 0) & $0 >>> 0 > $2 >>> 0 | $1 >>> 0 > $3 >>> 0;
 }
 
 function legalstub$8($0, $1, $2, $3) {
  return ($1 | 0) == ($3 | 0) & $0 >>> 0 <= $2 >>> 0 | $1 >>> 0 < $3 >>> 0;
 }
 
 function legalstub$9($0, $1, $2, $3) {
  return ($1 | 0) == ($3 | 0) & $0 >>> 0 < $2 >>> 0 | $1 >>> 0 < $3 >>> 0;
 }
 
 return {
  "eq_i64": legalstub$0, 
  "ne_i64": legalstub$1, 
  "ge_s_i64": legalstub$2, 
  "gt_s_i64": legalstub$3, 
  "le_s_i64": legalstub$4, 
  "lt_s_i64": legalstub$5, 
  "ge_u_i64": legalstub$6, 
  "gt_u_i64": legalstub$7, 
  "le_u_i64": legalstub$8, 
  "lt_u_i64": legalstub$9
 };
}

var retasmFunc = asmFunc({
});
export var eq_i64 = retasmFunc.eq_i64;
export var ne_i64 = retasmFunc.ne_i64;
export var ge_s_i64 = retasmFunc.ge_s_i64;
export var gt_s_i64 = retasmFunc.gt_s_i64;
export var le_s_i64 = retasmFunc.le_s_i64;
export var lt_s_i64 = retasmFunc.lt_s_i64;
export var ge_u_i64 = retasmFunc.ge_u_i64;
export var gt_u_i64 = retasmFunc.gt_u_i64;
export var le_u_i64 = retasmFunc.le_u_i64;
export var lt_u_i64 = retasmFunc.lt_u_i64;
