alloca
Today we're making LLVM do a bunch of extra work for every enum you match on, even trivial stuff like `Option<bool>`. Let's not.
trunc nuw
br
Rather than needing to use `switch` for them to include the `unreachable` arm