From: yjcoshc (yjcoshc_at_gmail.com)
Date: Tue Nov 03 2020 - 19:22:56 CST

Dear VMD developers,
I have downloaded the VMD 1.9.4 a48 tarball from the website and tried to
compile build it from source, but I encounter the following error:
WKFThreads.C: In function ‘int wkf_cpu_capability_flags(wkf_cpu_caps_t*)’:
WKFThreads.C:426:3: error: ‘__m256’ was not declared in this scope
 426 | __m256 qq = _mm256_set1_ps(3.14159f);
     | ^~~~~~
WKFThreads.C:427:3: error: ‘__m512’ was not declared in this scope
 427 | __m512 qqqq = _mm512_set1_ps(3.141f);
     | ^~~~~~
WKFThreads.C:428:26: error: ‘qq’ was not declared in this scope; did you
mean ‘q1’?
 428 | float q1 = ((float *) &qq)[0];
     | ^~
     | q1
WKFThreads.C:429:26: error: ‘qqqq’ was not declared in this scope
 429 | float q2 = ((float *) &qqqq)[0];
     | ^~~~
WKFThreads.C:466:1: error: jump to label ‘nocpuinfo’
 466 | nocpuinfo:
     | ^~~~~~~~~

It seems the code uses some AVX instructions. However, I did not enable AVX
in the configuration, and here is my configuration options:
LINUXAMD64 OPENGL OPENGLPBUFFER FLTKOPENGL FLTK TK CUDA IMD XINERAMA XINPUT
LIBTACHYON LIBPNG
ZLIB NETCDF CONTRIB TCL PYTHON PTHREADS NUMPY GCC

I take a look at these AVX instructions and they should be in immintrin.h
and emmintrin.h, which also appear in the GCC include path, so I remove the
intel compiler macros, but I still run into the error:
WKFThreads.C: In function ‘int wkf_cpu_capability_flags(wkf_cpu_caps_t*)’:
WKFThreads.C:466:1: error: jump to label ‘nocpuinfo’
 466 | nocpuinfo:
     | ^~~~~~~~~
WKFThreads.C:349:10: note: from here
 349 | goto nocpuinfo; /* bail on very primitive CPU type, max fctn
code==0 */
     | ^~~~~~~~~
WKFThreads.C:429:9: note: crosses initialization of ‘float q2’
 429 | float q2 = ((float *) &qqqq)[0];
     | ^~
WKFThreads.C:428:9: note: crosses initialization of ‘float q1’
 428 | float q1 = ((float *) &qq)[0];
     | ^~
WKFThreads.C:427:10: note: crosses initialization of ‘__m512 qqqq’
 427 | __m512 qqqq = _mm512_set1_ps(3.141f);
     | ^~~~
WKFThreads.C:426:10: note: crosses initialization of ‘__m256 qq’
 426 | __m256 qq = _mm256_set1_ps(3.14159f);

Any ideas?
Haochuan Chen