s390x: choose SIMD kernels at run-time based on OS and compiler support
s390x: choose SIMD kernels at run-time based on OS and compiler support

Extend and simplify the run-time detection for dynamic architecture support for z
to check HW_CAP and only use SIMD features if advertised by the OS.
While at it, also honor the env variable LD_HWCAP_MASK and do not use
the CPU features masked there.

Note that we can only use the SIMD features on z13 or newer (i.e.,
Vector Facility or Vector-Enhancements Facilities) when the operating
system supports properly context-switching the vector registers. The OS
advertises that support as a bit in the HW_CAP value in the auxiliary
vector. While all recent Linux kernels have that support, we should
maintain compatibility with older versions that may still be in use.

Signed-off-by: Marius Hillenbrand <fe1e41a2593d8a0d1128edc53cee7053b8cae934@linux.ibm.com>

xianyi/OpenBLAS,xianyi/OpenBLAS,xianyi/OpenBLAS,xianyi/OpenBLAS,xianyi/OpenBLAS,xianyi/OpenBLAS,xianyi/OpenBLAS,xianyi/OpenBLAS