+if get_option('power8') != 'false'
+ # on old versions of meson the cpu family would return as ppc64le on little
+ # endian power8, this was changed in 0.48 such that the family would always
+ # be ppc64 regardless of endianness, and the the machine.endian() value
+ # should be checked. Since we support versions < 0.48 we need to use
+ # startswith.
+ if host_machine.cpu_family().startswith('ppc64') and host_machine.endian() == 'little'
+ if cc.get_id() == 'gcc' and cc.version().version_compare('< 4.8')
+ error('Altivec is not supported with gcc version < 4.8.')
+ endif
+ if cc.compiles('''
+ #include <altivec.h>
+ int main() {
+ vector unsigned char r;
+ vector unsigned int v = vec_splat_u32 (1);
+ r = __builtin_vec_vgbbd ((vector unsigned char) v);
+ return 0;
+ }''',
+ args : '-mpower8-vector',
+ name : 'POWER8 intrinsics')
+ pre_args += ['-D_ARCH_PWR8', '-mpower8-vector']
+ elif get_option('power8') == 'true'
+ error('POWER8 intrinsic support required but not found.')
+ endif
+ endif
+endif
+
+_opencl = get_option('gallium-opencl')
+clover_cpp_std = []
+if _opencl != 'disabled'
+ if not with_gallium
+ error('OpenCL Clover implementation requires at least one gallium driver.')
+ endif
+
+ dep_clc = dependency('libclc')
+ with_gallium_opencl = true
+ with_opencl_icd = _opencl == 'icd'
+
+ if host_machine.cpu_family().startswith('ppc') and cpp.compiles('''
+ #if !defined(__VEC__) || !defined(__ALTIVEC__)
+ #error "AltiVec not enabled"
+ #endif''',
+ name : 'Altivec')
+ clover_cpp_std += ['cpp_std=gnu++11']
+ endif
+else
+ dep_clc = null_dep
+ with_gallium_opencl = false
+ with_gallium_icd = false
+endif
+