message: Set proper type to the EQ statement.
  The type of the EQ statement should not be boolean, but the supertype of all it's parameters. This way the right casting operations will be done in the backend jit.
diff: @@ -314,7 +314,15 @@ class StripeGenerator {
  if (scalar_inputs.size() > 1) {
  if (cion.comb_op == CombinationOp::COND) {
  kernel.get()->stmts.push_back(std::make_shared<Constant>("$ZERO", INT64_C(0)));
  - AddIntrinsic(kernel.get(), Intrinsic::EQ, DataType::BOOLEAN, {scalar_inputs[0], scalar_inputs[1]}, {"$IS_EQ"});
  +
  + tile::DataType eq_type = tile::DataType::INVALID;
  + for (const auto& input : op.inputs) {
  + scalar_inputs.push_back(ScalarName(input));
  + auto input_type = GetShape(input).type;
  + eq_type = CommonSupertype(input_type, eq_type);
  + }
  +
  + AddIntrinsic(kernel.get(), Intrinsic::EQ, eq_type, {scalar_inputs[0], scalar_inputs[1]}, {"$IS_EQ"});
  AddIntrinsic(kernel.get(), Intrinsic::COND, output_type, {"$IS_EQ", scalar_inputs[2], "$ZERO"},
  {ScalarName(op.output)});
  kernel->set_tag("comb_op_cond");
  