This, to me, sounds like the beginning of a rabbit-hole, which leads to the same morass of architecture-specific directives that infect many codes, particularly in HPC where codes can live a long time. I think it'd be better to tuck this mess away under the hood.
Turning off bounds-checking isn't architecture-specific--it's an assertion of your program's correctness. I don't like @simd, but vectorization isn't completely automatic yet. Atomics exist on most architectures, and you can do a lot of lock-free data structures with those, so I'm not really arguing those. In general though, I'd think carefully about any architectural detail I make visible... one of the big positives of using LLVM is insulation from the back-end.
