99 auto *thisCast =
static_cast<ConcreteType *
>(
this);
100 return TypeSwitch<Operation *, ResultType>(op)
102 arith::IndexCastOp, arith::ExtUIOp, arith::ExtSIOp, arith::TruncIOp,
104 arith::CmpIOp, arith::AddIOp, arith::SubIOp, arith::MulIOp,
105 arith::DivSIOp, arith::RemSIOp, arith::DivUIOp, arith::RemUIOp,
106 arith::XOrIOp, arith::AndIOp, arith::OrIOp, arith::ShLIOp,
107 arith::ShRSIOp, arith::ShRUIOp, arith::SelectOp>(
108 [&](
auto opNode) -> ResultType {
109 return thisCast->visitStdExpr(opNode, args...);
111 .Default([&](
auto opNode) -> ResultType {
112 return thisCast->visitInvalidOp(op, args...);