throw new OPT_OptimizingCompilerException("invalid condition " + this);
return UNKNOWN;
  public int evaluate(int v1, int v2) {    switch (value) {    case SAME:    case EQUAL: return (v1 == v2) ? TRUE : FALSE;    case NOT_SAME:    case NOT_EQUAL: return (v1 != v2) ? TRUE : FALSE;    case GREATER:   return (v1 > v2)  ? TRUE : FALSE;    case LESS:     return (v1 < v2) ? TRUE : FALSE;    case GREATER_EQUAL: return (v1 >= v2)  ? TRUE : FALSE;    case LESS_EQUAL:    return (v1 <= v2)  ? TRUE : FALSE;    case LOWER:       if ((v1 >= 0 && v2 >= 0) || (v1 < 0 && v2 < 0)) return (v1 < v2) ? TRUE : FALSE;      else if (v1 < 0) return FALSE;      else return TRUE;    case LOWER_EQUAL:      if ((v1 >= 0 && v2 >= 0) || (v1 < 0 && v2 < 0)) return (v1 <= v2) ? TRUE : FALSE;      else if (v1 < 0) return FALSE;      else return TRUE;    case HIGHER:       if ((v1 >= 0 && v2 >= 0) || (v1 < 0 && v2 < 0)) return (v1 > v2) ? TRUE : FALSE;      else if (v1 < 0) return TRUE;      else return FALSE;    case HIGHER_EQUAL:      if ((v1 >= 0 && v2 >= 0) || (v1 < 0 && v2 < 0)) return (v1 >= v2) ? TRUE : FALSE;      else if (v1 < 0) return TRUE;      else return FALSE;    }    throw new OPT_OptimizingCompilerException("invalid condition " + this);  }