src/wasm.h
bool isRelational() {
    switch (op) {
      case EqFloat64:
      case NeFloat64:
      case LtFloat64:
      case LeFloat64:
      case GtFloat64:
      case GeFloat64:
      case EqInt32:
      case NeInt32:
      case LtSInt32:
      case LtUInt32:
      case LeSInt32:
      case LeUInt32:
      case GtSInt32:
      case GtUInt32:
      case GeSInt32:
      case GeUInt32:
      case EqInt64:
      case NeInt64:
      case LtSInt64:
      case LtUInt64:
      case LeSInt64:
      case LeUInt64:
      case GtSInt64:
      case GtUInt64:
      case GeSInt64:
      case GeUInt64:
      case EqFloat32:
      case NeFloat32:
      case LtFloat32:
      case LeFloat32:
      case GtFloat32:
      case GeFloat32: return true;
      default: return false;
    }
  }
// the type is always the type of the operands,
// except for relationals
the type is always the type of the operands,
except for relationals
the type is always the type of the operands except for relationals
bool isRelational() {
    switch (op) {
      case EqFloat64:
      case NeFloat64:
      case LtFloat64:
      case LeFloat64:
      case GtFloat64:
      case GeFloat64:
      case EqInt32:
      case NeInt32:
      case LtSInt32:
      case LtUInt32:
      case LeSInt32:
      case LeUInt32:
      case GtSInt32:
      case GtUInt32:
      case GeSInt32:
      case GeUInt32:
      case EqInt64:
      case NeInt64:
      case LtSInt64:
      case LtUInt64:
      case LeSInt64:
      case LeUInt64:
      case GtSInt64:
      case GtUInt64:
      case GeSInt64:
      case GeUInt64:
      case EqFloat32:
      case NeFloat32:
      case LtFloat32:
      case LeFloat32:
      case GtFloat32:
      case GeFloat32: return true;
      default: return false;
    }
  }
bool isRelational ( ) { switch ( op ) { case EqFloat64 : case NeFloat64 : case LtFloat64 : case LeFloat64 : case GtFloat64 : case GeFloat64 : case EqInt32 : case NeInt32 : case LtSInt32 : case LtUInt32 : case LeSInt32 : case LeUInt32 : case GtSInt32 : case GtUInt32 : case GeSInt32 : case GeUInt32 : case EqInt64 : case NeInt64 : case LtSInt64 : case LtUInt64 : case LeSInt64 : case LeUInt64 : case GtSInt64 : case GtUInt64 : case GeSInt64 : case GeUInt64 : case EqFloat32 : case NeFloat32 : case LtFloat32 : case LeFloat32 : case GtFloat32 : case GeFloat32 : return true ; default : return false ; } }
the type is always the type of the operands,
except for relationals
the type is always the type of the operands except for relationals