I dug around a bit, and .rodata might be more idomatic. (I think it gets consolidated into the text segment at runtime.) Also, merely using the register relative addressing mode seems to be enough to avoid generating a runtime text relocation, even if shuffle_mask remains in the data segment.