28 auto *thisCast =
static_cast<ConcreteType *
>(
this);
29 return TypeSwitch<Operation *, ResultType>(op)
32 AddOp, SubOp, MulOp, DivUOp, DivSOp, ModUOp, ModSOp, ShlOp, ShrUOp,
41 ConcatOp, ReplicateOp, ExtractOp, MuxOp>(
42 [&](
auto expr) -> ResultType {
43 return thisCast->visitComb(expr, args...);
45 .Default([&](
auto expr) -> ResultType {
46 return thisCast->visitInvalidComb(op, args...);