title: How is the arch parameter used when compiling code with visual studio?
body: <p>My goal is to develop code that compiles using SIMD instructions when they are available and doesn't when they are not. More specifically in my C code I am making explicit SIMD calls and checking whether or not these calls are valid based on processor info I am pulling.</p>
  
  <p>I had a bunch of questions but after enough typing SO pointed me to:
  <a href="https://stackoverflow.com/questions/40757107/detecting-simd-instruction-sets-to-be-used-with-c-macros-in-visual-studio-2015">Detecting SIMD instruction sets to be used with C++ Macros in Visual Studio 2015</a></p>
  
  <p>The only remaining question is how does the <code>/arch</code> flag impact explicit SIMD code? Does this still work even if your arch is not set? For example, can I write AVX2 calls without having /arch:AVX2?</p>