Let's do __yield as-is, but IMO __emit should be a macro wrapping inline assembly in intrin.h. It has to be a macro because you'd need to use an 'I' constraint, which we don't support with always_inline. http://reviews.llvm.org/D3489