title: Program received signal SIGILL Illegal instruction
body: <p>I'm running an application on a new machine for the first time but getting:</p>
  
  <blockquote>
    <p>Program received signal SIGILL, Illegal instruction</p>
  </blockquote>
  
  <p>and when I do </p>
  
  <blockquote>
    <p>x/i $pc</p>
  </blockquote>
  
  <p>I get:</p>
  
  <pre><code>=&gt; 0x7fffe98b8f5b &lt;_ZNSt10_HashtableImSt4pairIKmPN4ICE211t_orderInfoEESaIS5_ENSt8__detail10_Select1stESt8equal_toImESt4hashImENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEEC2Ev+
  
  147&gt;:       vmovss 0x84b4d(%rip),%xmm0        # 0x7fffe993dab0
  </code></pre>
  
  <p>Thought the machine might not have AVX, but checking proc/cpuinfo shows both avx and avx2 architectures available.</p>
  
  <p>The code wasn't compiled on this box and I haven't used this box before. I get the problem when I link statically and dynamically.</p>
  
  <p>Anybody got any tips what it could be? Is it the C++ runtime library version on the machine? </p>
  
  <p>UPDATE: seems this is an AVX512 instruction, which is totally weird. This code is being generated from gcc hashing. There is no AVX512 inline assembly. </p>