title: Confusion about compiling with AVX512
body: <p>I'm reading <a href="https://software.intel.com/en-us/articles/compiling-for-the-intel-xeon-phi-processor-and-the-intel-avx-512-isa" rel="nofollow noreferrer">this</a> document about how to compile C/C++ code using the Intel C++ compiler and AVX512 support on a Intel Knights Landing.</p>
  
  <p>However, I'm a little bit confused about this part:</p>
  
  <blockquote>
    <p>-xMIC-AVX512: use this option to generate AVX-512F, AVX-512CD, AVX-512ER and AVX-512FP.</p>
    
    <p>-xCORE-AVX512: use this option to generate AVX-512F, AVX-512CD, AVX-512BW, AVX-512DQ and AVX-512VL.</p>
    
    <p>For example, to generate Intel AVX-512 instructions for the Intel Xeon
    Phi processor x200, you should use the option –xMIC-AVX512. For
    example, on a Linux system</p>
    
    <p>$ icc –xMIC-AVX512 application.c This compiler option is useful when
    you want to build a huge binary for the Intel Xeon Phi processor x200.
    Instead of building it on the coprocessor where it will take more
    time, build it on an Intel Xeon processor-based machine</p>
  </blockquote>
  
  <p>My Xeon Phi KNL doesn't have a coprocessor (No need to ssh micX or to compile with the <code>-mmic</code> flag). However, I don't understand if it's better to use the <code>-xMIC</code> or <code>-xCORE</code>?</p>
  
  <p>In second place about <code>-ax</code> instead of <code>-x</code>:</p>
  
  <blockquote>
    <p>This compiler option is useful when you try to build a binary that can run on multiple platforms.</p>
  </blockquote>
  
  <p>So <code>-ax</code> is used for cross-platform support, but is there any performance difference comapred to <code>-x</code>?</p>