// ASM stream Phase D — inline assembly that RUNS end-to-end. An aarch64 `add` // with two register-class inputs (`%[a]`, `%[b]`) and a value output (`%[out]`) // returned from the function. The `.build` pins aarch64-macOS: on a matching // host the runner executes it (exit 42); elsewhere it falls to ir-only mode and // asserts the `.ir` snapshot (the inline_asm op + LLVM `call asm` are target- // independent in the IR text). Regression for the full lower→emit→JIT path. add_asm :: (a: i64, b: i64) -> i64 { return asm { "add %[out], %[a], %[b]", [out] "=r" -> i64, [a] "r" = a, [b] "r" = b }; } main :: () -> i64 { return add_asm(40, 2); }