tschuett wrote: I can remove the flags tests. We need a mechanism to determine the type of `x` in `ext(trunc(x))`. The Sext, Zext, and Trunk wrappers make my live easier to walk over the expression. https://github.com/llvm/llvm-project/pull/87115