https://issues.dlang.org/show_bug.cgi?id=15144
--- Comment #1 from Marco Leise <marco.le...@gmx.de> --- Ok, using `movdqa XMM0, csXMM;` it works when the `SSEFromString` is changed to declare the vector as __gshared instead of immutable. So DMD has trouble sorting things out when they are read-only data. void foo() { version (D_InlineAsm_X86_64) { alias csXMM = SSEFromString!`abc`; asm @nogc nothrow { movdqa XMM0, csXMM; } } else static assert(0, "Not implemented"); } template SSEFromString(string str) { import std.algorithm, std.range; version (DigitalMars) __gshared ubyte16 SIMDFromString = chain(str, '\0'.repeat(ubyte16.sizeof - str.length)).array; else immutable ubyte16 SIMDFromString = chain(str, '\0'.repeat(ubyte16.sizeof - str.length)).array; } --