Yup. And actually also "while" and "for". More minimal languages just have: block, conditional and jump-to-start-of-block.
This reminds me of Rust's mid-level IR for some reason. For instance, according to one of the Rust blog posts goto completely replaces loop, break, and continue.
Does it make sense to think of MIR as AST macros that only the compiler has access to?
