@cpp-linter/clang-tidy-linux-arm64 18.1.5 → 20.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/bin/clang-tidy +2 -2
- package/lib/clang/{18 → 20}/include/__clang_cuda_device_functions.h +14 -0
- package/lib/clang/{18 → 20}/include/__clang_cuda_intrinsics.h +1 -3
- package/lib/clang/{18 → 20}/include/__clang_cuda_math.h +5 -0
- package/lib/clang/{18 → 20}/include/__clang_hip_cmath.h +6 -1
- package/lib/clang/{18 → 20}/include/__clang_hip_math.h +5 -0
- package/lib/clang/20/include/__stdarg_header_macro.h +12 -0
- package/lib/clang/20/include/__stddef_header_macro.h +12 -0
- package/lib/clang/{18 → 20}/include/adcintrin.h +5 -0
- package/lib/clang/{18 → 20}/include/adxintrin.h +5 -0
- package/lib/clang/{18 → 20}/include/altivec.h +8 -8
- package/lib/clang/20/include/amdgpuintrin.h +194 -0
- package/lib/clang/20/include/amxavx512intrin.h +382 -0
- package/lib/clang/20/include/amxbf16transposeintrin.h +94 -0
- package/lib/clang/20/include/amxcomplextransposeintrin.h +303 -0
- package/lib/clang/{18 → 20}/include/amxfp16intrin.h +35 -0
- package/lib/clang/20/include/amxfp16transposeintrin.h +94 -0
- package/lib/clang/20/include/amxfp8intrin.h +230 -0
- package/lib/clang/{18 → 20}/include/amxintrin.h +5 -35
- package/lib/clang/20/include/amxmovrsintrin.h +48 -0
- package/lib/clang/20/include/amxmovrstransposeintrin.h +200 -0
- package/lib/clang/20/include/amxtf32intrin.h +108 -0
- package/lib/clang/20/include/amxtf32transposeintrin.h +105 -0
- package/lib/clang/20/include/amxtransposeintrin.h +248 -0
- package/lib/clang/{18 → 20}/include/arm_acle.h +49 -26
- package/lib/clang/{18 → 20}/include/arm_fp16.h +1 -1
- package/lib/clang/{18 → 20}/include/arm_neon.h +45631 -43745
- package/lib/clang/{18 → 20}/include/arm_sme.h +641 -6
- package/lib/clang/{18 → 20}/include/arm_sve.h +28311 -27738
- package/lib/clang/{18 → 20}/include/arm_vector_types.h +92 -5
- package/lib/clang/20/include/avx10_2_512bf16intrin.h +561 -0
- package/lib/clang/20/include/avx10_2_512convertintrin.h +320 -0
- package/lib/clang/20/include/avx10_2_512minmaxintrin.h +127 -0
- package/lib/clang/20/include/avx10_2_512niintrin.h +314 -0
- package/lib/clang/20/include/avx10_2_512satcvtdsintrin.h +303 -0
- package/lib/clang/20/include/avx10_2_512satcvtintrin.h +301 -0
- package/lib/clang/20/include/avx10_2bf16intrin.h +1085 -0
- package/lib/clang/20/include/avx10_2convertintrin.h +589 -0
- package/lib/clang/20/include/avx10_2copyintrin.h +66 -0
- package/lib/clang/20/include/avx10_2minmaxintrin.h +277 -0
- package/lib/clang/20/include/avx10_2niintrin.h +2075 -0
- package/lib/clang/20/include/avx10_2satcvtdsintrin.h +496 -0
- package/lib/clang/20/include/avx10_2satcvtintrin.h +444 -0
- package/lib/clang/{18 → 20}/include/avx2intrin.h +9 -0
- package/lib/clang/{18 → 20}/include/avx512bitalgintrin.h +2 -2
- package/lib/clang/{18 → 20}/include/avx512fintrin.h +22 -14
- package/lib/clang/{18 → 20}/include/avx512fp16intrin.h +38 -38
- package/lib/clang/{18 → 20}/include/avx512vlbitalgintrin.h +4 -4
- package/lib/clang/{18 → 20}/include/avx512vpopcntdqintrin.h +12 -4
- package/lib/clang/{18 → 20}/include/avx512vpopcntdqvlintrin.h +16 -8
- package/lib/clang/{18 → 20}/include/avxintrin.h +88 -60
- package/lib/clang/{18 → 20}/include/avxvnniint16intrin.h +36 -77
- package/lib/clang/{18 → 20}/include/avxvnniint8intrin.h +36 -77
- package/lib/clang/{18 → 20}/include/bmi2intrin.h +15 -17
- package/lib/clang/{18 → 20}/include/bmiintrin.h +33 -41
- package/lib/clang/{18 → 20}/include/builtins.h +3 -0
- package/lib/clang/{18 → 20}/include/cmpccxaddintrin.h +1 -1
- package/lib/clang/{18 → 20}/include/cpuid.h +35 -14
- package/lib/clang/{18 → 20}/include/cuda_wrappers/algorithm +1 -1
- package/lib/clang/{18 → 20}/include/cuda_wrappers/cmath +4 -0
- package/lib/clang/{18 → 20}/include/cuda_wrappers/new +2 -0
- package/lib/clang/{18 → 20}/include/emmintrin.h +442 -277
- package/lib/clang/{18 → 20}/include/float.h +28 -0
- package/lib/clang/{18 → 20}/include/fmaintrin.h +32 -16
- package/lib/clang/{18 → 20}/include/gfniintrin.h +32 -10
- package/lib/clang/20/include/gpuintrin.h +224 -0
- package/lib/clang/{18 → 20}/include/hexagon_types.h +8 -4
- package/lib/clang/{18 → 20}/include/hlsl/hlsl_basic_types.h +57 -4
- package/lib/clang/20/include/hlsl/hlsl_detail.h +84 -0
- package/lib/clang/20/include/hlsl/hlsl_intrinsics.h +2814 -0
- package/lib/clang/{18 → 20}/include/hlsl.h +11 -0
- package/lib/clang/{18 → 20}/include/hvx_hexagon_protos.h +427 -0
- package/lib/clang/{18 → 20}/include/ia32intrin.h +36 -36
- package/lib/clang/{18 → 20}/include/immintrin.h +171 -161
- package/lib/clang/{18 → 20}/include/intrin.h +62 -228
- package/lib/clang/20/include/intrin0.h +256 -0
- package/lib/clang/{18 → 20}/include/inttypes.h +4 -0
- package/lib/clang/{18 → 20}/include/iso646.h +4 -0
- package/lib/clang/{18 → 20}/include/keylockerintrin.h +5 -8
- package/lib/clang/{18 → 20}/include/larchintrin.h +22 -8
- package/lib/clang/{18 → 20}/include/lasxintrin.h +27 -25
- package/lib/clang/{18 → 20}/include/limits.h +12 -4
- package/lib/clang/{18 → 20}/include/llvm_libc_wrappers/assert.h +1 -1
- package/lib/clang/{18 → 20}/include/llvm_libc_wrappers/ctype.h +38 -0
- package/lib/clang/{18 → 20}/include/llvm_libc_wrappers/stdlib.h +8 -0
- package/lib/clang/20/include/llvm_offload_wrappers/__llvm_offload.h +31 -0
- package/lib/clang/20/include/llvm_offload_wrappers/__llvm_offload_device.h +10 -0
- package/lib/clang/20/include/llvm_offload_wrappers/__llvm_offload_host.h +15 -0
- package/lib/clang/{18 → 20}/include/lsxintrin.h +27 -25
- package/lib/clang/{18 → 20}/include/lzcntintrin.h +10 -7
- package/lib/clang/20/include/mm3dnow.h +22 -0
- package/lib/clang/{18 → 20}/include/mmintrin.h +285 -239
- package/lib/clang/{18 → 20}/include/module.modulemap +16 -5
- package/lib/clang/20/include/movrs_avx10_2_512intrin.h +98 -0
- package/lib/clang/20/include/movrs_avx10_2intrin.h +174 -0
- package/lib/clang/20/include/movrsintrin.h +59 -0
- package/lib/clang/20/include/nvptxintrin.h +202 -0
- package/lib/clang/{18 → 20}/include/opencl-c-base.h +8 -0
- package/lib/clang/{18 → 20}/include/opencl-c.h +15 -0
- package/lib/clang/{18 → 20}/include/openmp_wrappers/__clang_openmp_device_functions.h +4 -5
- package/lib/clang/{18 → 20}/include/openmp_wrappers/complex_cmath.h +7 -2
- package/lib/clang/{18 → 20}/include/pmmintrin.h +16 -3
- package/lib/clang/{18 → 20}/include/popcntintrin.h +7 -7
- package/lib/clang/{18 → 20}/include/prfchwintrin.h +10 -8
- package/lib/clang/20/include/ptrauth.h +336 -0
- package/lib/clang/20/include/riscv_corev_alu.h +128 -0
- package/lib/clang/{18 → 20}/include/riscv_vector.h +0 -5
- package/lib/clang/20/include/sifive_vector.h +118 -0
- package/lib/clang/20/include/sm4evexintrin.h +32 -0
- package/lib/clang/{18 → 20}/include/smmintrin.h +18 -12
- package/lib/clang/{18 → 20}/include/stdarg.h +15 -19
- package/lib/clang/{18 → 20}/include/stdatomic.h +11 -1
- package/lib/clang/{18 → 20}/include/stdbool.h +5 -0
- package/lib/clang/{18 → 20}/include/stddef.h +38 -22
- package/lib/clang/{18 → 20}/include/stdint.h +5 -0
- package/lib/clang/{18 → 20}/include/stdnoreturn.h +6 -0
- package/lib/clang/{18 → 20}/include/tbmintrin.h +25 -37
- package/lib/clang/{18 → 20}/include/tmmintrin.h +84 -54
- package/lib/clang/{18 → 20}/include/varargs.h +5 -1
- package/lib/clang/{18 → 20}/include/vecintrin.h +1778 -60
- package/lib/clang/{18 → 20}/include/wasm_simd128.h +167 -21
- package/lib/clang/{18 → 20}/include/x86gprintrin.h +7 -14
- package/lib/clang/20/include/x86intrin.h +53 -0
- package/lib/clang/{18 → 20}/include/xmmintrin.h +455 -276
- package/lib/clang/20/include/yvals_core.h +25 -0
- package/lib/clang/20/include/zos_wrappers/builtins.h +18 -0
- package/package.json +6 -6
- package/lib/clang/18/include/avx512erintrin.h +0 -271
- package/lib/clang/18/include/avx512pfintrin.h +0 -92
- package/lib/clang/18/include/hlsl/hlsl_intrinsics.h +0 -624
- package/lib/clang/18/include/mm3dnow.h +0 -157
- package/lib/clang/18/include/sifive_vector.h +0 -16
- package/lib/clang/18/include/x86intrin.h +0 -67
- /package/lib/clang/{18 → 20}/include/__clang_cuda_builtin_vars.h +0 -0
- /package/lib/clang/{18 → 20}/include/__clang_cuda_cmath.h +0 -0
- /package/lib/clang/{18 → 20}/include/__clang_cuda_complex_builtins.h +0 -0
- /package/lib/clang/{18 → 20}/include/__clang_cuda_libdevice_declares.h +0 -0
- /package/lib/clang/{18 → 20}/include/__clang_cuda_math_forward_declares.h +0 -0
- /package/lib/clang/{18 → 20}/include/__clang_cuda_runtime_wrapper.h +0 -0
- /package/lib/clang/{18 → 20}/include/__clang_cuda_texture_intrinsics.h +0 -0
- /package/lib/clang/{18 → 20}/include/__clang_hip_libdevice_declares.h +0 -0
- /package/lib/clang/{18 → 20}/include/__clang_hip_runtime_wrapper.h +0 -0
- /package/lib/clang/{18 → 20}/include/__clang_hip_stdlib.h +0 -0
- /package/lib/clang/{18 → 20}/include/__stdarg___gnuc_va_list.h +0 -0
- /package/lib/clang/{18 → 20}/include/__stdarg___va_copy.h +0 -0
- /package/lib/clang/{18 → 20}/include/__stdarg_va_arg.h +0 -0
- /package/lib/clang/{18 → 20}/include/__stdarg_va_copy.h +0 -0
- /package/lib/clang/{18 → 20}/include/__stdarg_va_list.h +0 -0
- /package/lib/clang/{18 → 20}/include/__stddef_max_align_t.h +0 -0
- /package/lib/clang/{18 → 20}/include/__stddef_null.h +0 -0
- /package/lib/clang/{18 → 20}/include/__stddef_nullptr_t.h +0 -0
- /package/lib/clang/{18 → 20}/include/__stddef_offsetof.h +0 -0
- /package/lib/clang/{18 → 20}/include/__stddef_ptrdiff_t.h +0 -0
- /package/lib/clang/{18 → 20}/include/__stddef_rsize_t.h +0 -0
- /package/lib/clang/{18 → 20}/include/__stddef_size_t.h +0 -0
- /package/lib/clang/{18 → 20}/include/__stddef_unreachable.h +0 -0
- /package/lib/clang/{18 → 20}/include/__stddef_wchar_t.h +0 -0
- /package/lib/clang/{18 → 20}/include/__stddef_wint_t.h +0 -0
- /package/lib/clang/{18 → 20}/include/__wmmintrin_aes.h +0 -0
- /package/lib/clang/{18 → 20}/include/__wmmintrin_pclmul.h +0 -0
- /package/lib/clang/{18 → 20}/include/ammintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/amxcomplexintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/arm64intr.h +0 -0
- /package/lib/clang/{18 → 20}/include/arm_bf16.h +0 -0
- /package/lib/clang/{18 → 20}/include/arm_cde.h +0 -0
- /package/lib/clang/{18 → 20}/include/arm_cmse.h +0 -0
- /package/lib/clang/{18 → 20}/include/arm_mve.h +0 -0
- /package/lib/clang/{18 → 20}/include/arm_neon_sve_bridge.h +0 -0
- /package/lib/clang/{18 → 20}/include/armintr.h +0 -0
- /package/lib/clang/{18 → 20}/include/avx512bf16intrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avx512bwintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avx512cdintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avx512dqintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avx512ifmaintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avx512ifmavlintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avx512vbmi2intrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avx512vbmiintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avx512vbmivlintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avx512vlbf16intrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avx512vlbwintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avx512vlcdintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avx512vldqintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avx512vlfp16intrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avx512vlintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avx512vlvbmi2intrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avx512vlvnniintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avx512vlvp2intersectintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avx512vnniintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avx512vp2intersectintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avxifmaintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avxneconvertintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/avxvnniintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/cet.h +0 -0
- /package/lib/clang/{18 → 20}/include/cetintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/cldemoteintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/clflushoptintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/clwbintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/clzerointrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/crc32intrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/cuda_wrappers/bits/basic_string.h +0 -0
- /package/lib/clang/{18 → 20}/include/cuda_wrappers/bits/basic_string.tcc +0 -0
- /package/lib/clang/{18 → 20}/include/cuda_wrappers/bits/shared_ptr_base.h +0 -0
- /package/lib/clang/{18 → 20}/include/cuda_wrappers/complex +0 -0
- /package/lib/clang/{18 → 20}/include/enqcmdintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/f16cintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/fma4intrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/fxsrintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/hexagon_circ_brev_intrinsics.h +0 -0
- /package/lib/clang/{18 → 20}/include/hexagon_protos.h +0 -0
- /package/lib/clang/{18 → 20}/include/hresetintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/htmintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/htmxlintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/invpcidintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/llvm_libc_wrappers/inttypes.h +0 -0
- /package/lib/clang/{18 → 20}/include/llvm_libc_wrappers/stdio.h +0 -0
- /package/lib/clang/{18 → 20}/include/llvm_libc_wrappers/string.h +0 -0
- /package/lib/clang/{18 → 20}/include/llvm_libc_wrappers/time.h +0 -0
- /package/lib/clang/{18 → 20}/include/lwpintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/mm_malloc.h +0 -0
- /package/lib/clang/{18 → 20}/include/movdirintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/msa.h +0 -0
- /package/lib/clang/{18 → 20}/include/mwaitxintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/nmmintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/openmp_wrappers/cmath +0 -0
- /package/lib/clang/{18 → 20}/include/openmp_wrappers/complex +0 -0
- /package/lib/clang/{18 → 20}/include/openmp_wrappers/complex.h +0 -0
- /package/lib/clang/{18 → 20}/include/openmp_wrappers/math.h +0 -0
- /package/lib/clang/{18 → 20}/include/openmp_wrappers/new +0 -0
- /package/lib/clang/{18 → 20}/include/pconfigintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/pkuintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/ppc_wrappers/bmi2intrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/ppc_wrappers/bmiintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/ppc_wrappers/emmintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/ppc_wrappers/immintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/ppc_wrappers/mm_malloc.h +0 -0
- /package/lib/clang/{18 → 20}/include/ppc_wrappers/mmintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/ppc_wrappers/nmmintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/ppc_wrappers/pmmintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/ppc_wrappers/smmintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/ppc_wrappers/tmmintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/ppc_wrappers/x86gprintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/ppc_wrappers/x86intrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/ppc_wrappers/xmmintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/prfchiintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/ptwriteintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/raointintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/rdpruintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/rdseedintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/riscv_bitmanip.h +0 -0
- /package/lib/clang/{18 → 20}/include/riscv_crypto.h +0 -0
- /package/lib/clang/{18 → 20}/include/riscv_ntlh.h +0 -0
- /package/lib/clang/{18 → 20}/include/rtmintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/s390intrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/serializeintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/sgxintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/sha512intrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/shaintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/sm3intrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/sm4intrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/stdalign.h +0 -0
- /package/lib/clang/{18 → 20}/include/stdckdint.h +0 -0
- /package/lib/clang/{18 → 20}/include/tgmath.h +0 -0
- /package/lib/clang/{18 → 20}/include/tsxldtrkintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/uintrintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/unwind.h +0 -0
- /package/lib/clang/{18 → 20}/include/usermsrintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/vadefs.h +0 -0
- /package/lib/clang/{18 → 20}/include/vaesintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/velintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/velintrin_approx.h +0 -0
- /package/lib/clang/{18 → 20}/include/velintrin_gen.h +0 -0
- /package/lib/clang/{18 → 20}/include/vpclmulqdqintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/waitpkgintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/wbnoinvdintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/wmmintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/xopintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/xsavecintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/xsaveintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/xsaveoptintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/xsavesintrin.h +0 -0
- /package/lib/clang/{18 → 20}/include/xtestintrin.h +0 -0
|
@@ -468,6 +468,27 @@ vec_perm(__vector __bool long long __a, __vector __bool long long __b,
|
|
|
468
468
|
(__vector unsigned char)__a, (__vector unsigned char)__b, __c);
|
|
469
469
|
}
|
|
470
470
|
|
|
471
|
+
static inline __ATTRS_o_ai __vector signed __int128
|
|
472
|
+
vec_perm(__vector signed __int128 __a, __vector signed __int128 __b,
|
|
473
|
+
__vector unsigned char __c) {
|
|
474
|
+
return (__vector signed __int128)__builtin_s390_vperm(
|
|
475
|
+
(__vector unsigned char)__a, (__vector unsigned char)__b, __c);
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
479
|
+
vec_perm(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
|
|
480
|
+
__vector unsigned char __c) {
|
|
481
|
+
return (__vector unsigned __int128)__builtin_s390_vperm(
|
|
482
|
+
(__vector unsigned char)__a, (__vector unsigned char)__b, __c);
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
static inline __ATTRS_o_ai __vector __bool __int128
|
|
486
|
+
vec_perm(__vector __bool __int128 __a, __vector __bool __int128 __b,
|
|
487
|
+
__vector unsigned char __c) {
|
|
488
|
+
return (__vector __bool __int128)__builtin_s390_vperm(
|
|
489
|
+
(__vector unsigned char)__a, (__vector unsigned char)__b, __c);
|
|
490
|
+
}
|
|
491
|
+
|
|
471
492
|
#if __ARCH__ >= 12
|
|
472
493
|
static inline __ATTRS_o_ai __vector float
|
|
473
494
|
vec_perm(__vector float __a, __vector float __b,
|
|
@@ -514,9 +535,19 @@ vec_permi(__vector double __a, __vector double __b, int __c)
|
|
|
514
535
|
(__vector unsigned long long)(Y), \
|
|
515
536
|
(((Z) & 2) << 1) | ((Z) & 1)))
|
|
516
537
|
|
|
538
|
+
/*-- vec_bperm --------------------------------------------------------------*/
|
|
539
|
+
|
|
540
|
+
#if __ARCH__ >= 12
|
|
541
|
+
static inline __ATTRS_ai __vector unsigned long long
|
|
542
|
+
vec_bperm(__vector unsigned __int128 __a, __vector unsigned char __b) {
|
|
543
|
+
return __builtin_s390_vbperm((__vector unsigned char)__a, __b);
|
|
544
|
+
}
|
|
545
|
+
#endif
|
|
546
|
+
|
|
517
547
|
/*-- vec_bperm_u128 ---------------------------------------------------------*/
|
|
518
548
|
|
|
519
549
|
#if __ARCH__ >= 12
|
|
550
|
+
// This prototype is deprecated.
|
|
520
551
|
static inline __ATTRS_ai __vector unsigned long long
|
|
521
552
|
vec_bperm_u128(__vector unsigned char __a, __vector unsigned char __b) {
|
|
522
553
|
return __builtin_s390_vbperm(__a, __b);
|
|
@@ -558,6 +589,18 @@ vec_revb(__vector unsigned long long __vec) {
|
|
|
558
589
|
return __builtin_s390_vlbrg(__vec);
|
|
559
590
|
}
|
|
560
591
|
|
|
592
|
+
static inline __ATTRS_o_ai __vector signed __int128
|
|
593
|
+
vec_revb(__vector signed __int128 __vec) {
|
|
594
|
+
return (__vector signed __int128)
|
|
595
|
+
__builtin_s390_vlbrq((unsigned __int128)__vec);
|
|
596
|
+
}
|
|
597
|
+
|
|
598
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
599
|
+
vec_revb(__vector unsigned __int128 __vec) {
|
|
600
|
+
return (__vector unsigned __int128)
|
|
601
|
+
__builtin_s390_vlbrq((unsigned __int128)__vec);
|
|
602
|
+
}
|
|
603
|
+
|
|
561
604
|
#if __ARCH__ >= 12
|
|
562
605
|
static inline __ATTRS_o_ai __vector float
|
|
563
606
|
vec_revb(__vector float __vec) {
|
|
@@ -820,6 +863,46 @@ vec_sel(__vector unsigned long long __a, __vector unsigned long long __b,
|
|
|
820
863
|
(~(__vector unsigned long long)__c & __a));
|
|
821
864
|
}
|
|
822
865
|
|
|
866
|
+
static inline __ATTRS_o_ai __vector signed __int128
|
|
867
|
+
vec_sel(__vector signed __int128 __a, __vector signed __int128 __b,
|
|
868
|
+
__vector unsigned __int128 __c) {
|
|
869
|
+
return (((__vector signed __int128)__c & __b) |
|
|
870
|
+
(~(__vector signed __int128)__c & __a));
|
|
871
|
+
}
|
|
872
|
+
|
|
873
|
+
static inline __ATTRS_o_ai __vector signed __int128
|
|
874
|
+
vec_sel(__vector signed __int128 __a, __vector signed __int128 __b,
|
|
875
|
+
__vector __bool __int128 __c) {
|
|
876
|
+
return (((__vector signed __int128)__c & __b) |
|
|
877
|
+
(~(__vector signed __int128)__c & __a));
|
|
878
|
+
}
|
|
879
|
+
|
|
880
|
+
static inline __ATTRS_o_ai __vector __bool __int128
|
|
881
|
+
vec_sel(__vector __bool __int128 __a, __vector __bool __int128 __b,
|
|
882
|
+
__vector unsigned __int128 __c) {
|
|
883
|
+
return (((__vector __bool __int128)__c & __b) |
|
|
884
|
+
(~(__vector __bool __int128)__c & __a));
|
|
885
|
+
}
|
|
886
|
+
|
|
887
|
+
static inline __ATTRS_o_ai __vector __bool __int128
|
|
888
|
+
vec_sel(__vector __bool __int128 __a, __vector __bool __int128 __b,
|
|
889
|
+
__vector __bool __int128 __c) {
|
|
890
|
+
return (__c & __b) | (~__c & __a);
|
|
891
|
+
}
|
|
892
|
+
|
|
893
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
894
|
+
vec_sel(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
|
|
895
|
+
__vector unsigned __int128 __c) {
|
|
896
|
+
return (__c & __b) | (~__c & __a);
|
|
897
|
+
}
|
|
898
|
+
|
|
899
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
900
|
+
vec_sel(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
|
|
901
|
+
__vector __bool __int128 __c) {
|
|
902
|
+
return (((__vector unsigned __int128)__c & __b) |
|
|
903
|
+
(~(__vector unsigned __int128)__c & __a));
|
|
904
|
+
}
|
|
905
|
+
|
|
823
906
|
#if __ARCH__ >= 12
|
|
824
907
|
static inline __ATTRS_o_ai __vector float
|
|
825
908
|
vec_sel(__vector float __a, __vector float __b, __vector unsigned int __c) {
|
|
@@ -1078,6 +1161,22 @@ vec_xl(long __offset, const unsigned long long *__ptr) {
|
|
|
1078
1161
|
return V;
|
|
1079
1162
|
}
|
|
1080
1163
|
|
|
1164
|
+
static inline __ATTRS_o_ai __vector signed __int128
|
|
1165
|
+
vec_xl(long __offset, const signed __int128 *__ptr) {
|
|
1166
|
+
__vector signed __int128 V;
|
|
1167
|
+
__builtin_memcpy(&V, ((const char *)__ptr + __offset),
|
|
1168
|
+
sizeof(__vector signed __int128));
|
|
1169
|
+
return V;
|
|
1170
|
+
}
|
|
1171
|
+
|
|
1172
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
1173
|
+
vec_xl(long __offset, const unsigned __int128 *__ptr) {
|
|
1174
|
+
__vector unsigned __int128 V;
|
|
1175
|
+
__builtin_memcpy(&V, ((const char *)__ptr + __offset),
|
|
1176
|
+
sizeof(__vector unsigned __int128));
|
|
1177
|
+
return V;
|
|
1178
|
+
}
|
|
1179
|
+
|
|
1081
1180
|
#if __ARCH__ >= 12
|
|
1082
1181
|
static inline __ATTRS_o_ai __vector float
|
|
1083
1182
|
vec_xl(long __offset, const float *__ptr) {
|
|
@@ -1294,6 +1393,22 @@ vec_xst(__vector unsigned long long __vec, long __offset,
|
|
|
1294
1393
|
sizeof(__vector unsigned long long));
|
|
1295
1394
|
}
|
|
1296
1395
|
|
|
1396
|
+
static inline __ATTRS_o_ai void
|
|
1397
|
+
vec_xst(__vector signed __int128 __vec, long __offset,
|
|
1398
|
+
signed __int128 *__ptr) {
|
|
1399
|
+
__vector signed __int128 V = __vec;
|
|
1400
|
+
__builtin_memcpy(((char *)__ptr + __offset), &V,
|
|
1401
|
+
sizeof(__vector signed __int128));
|
|
1402
|
+
}
|
|
1403
|
+
|
|
1404
|
+
static inline __ATTRS_o_ai void
|
|
1405
|
+
vec_xst(__vector unsigned __int128 __vec, long __offset,
|
|
1406
|
+
unsigned __int128 *__ptr) {
|
|
1407
|
+
__vector unsigned __int128 V = __vec;
|
|
1408
|
+
__builtin_memcpy(((char *)__ptr + __offset), &V,
|
|
1409
|
+
sizeof(__vector unsigned __int128));
|
|
1410
|
+
}
|
|
1411
|
+
|
|
1297
1412
|
#if __ARCH__ >= 12
|
|
1298
1413
|
static inline __ATTRS_o_ai void
|
|
1299
1414
|
vec_xst(__vector float __vec, long __offset, float *__ptr) {
|
|
@@ -1465,6 +1580,14 @@ extern __ATTRS_o __vector unsigned long long
|
|
|
1465
1580
|
vec_load_bndry(const unsigned long long *__ptr, unsigned short __len)
|
|
1466
1581
|
__constant_pow2_range(__len, 64, 4096);
|
|
1467
1582
|
|
|
1583
|
+
extern __ATTRS_o __vector signed __int128
|
|
1584
|
+
vec_load_bndry(const signed __int128 *__ptr, unsigned short __len)
|
|
1585
|
+
__constant_pow2_range(__len, 64, 4096);
|
|
1586
|
+
|
|
1587
|
+
extern __ATTRS_o __vector unsigned __int128
|
|
1588
|
+
vec_load_bndry(const unsigned __int128 *__ptr, unsigned short __len)
|
|
1589
|
+
__constant_pow2_range(__len, 64, 4096);
|
|
1590
|
+
|
|
1468
1591
|
#if __ARCH__ >= 12
|
|
1469
1592
|
extern __ATTRS_o __vector float
|
|
1470
1593
|
vec_load_bndry(const float *__ptr, unsigned short __len)
|
|
@@ -1496,43 +1619,51 @@ vec_load_len(const unsigned char *__ptr, unsigned int __len) {
|
|
|
1496
1619
|
return (__vector unsigned char)__builtin_s390_vll(__len, __ptr);
|
|
1497
1620
|
}
|
|
1498
1621
|
|
|
1622
|
+
// This prototype is deprecated.
|
|
1499
1623
|
static inline __ATTRS_o_ai __vector signed short
|
|
1500
1624
|
vec_load_len(const signed short *__ptr, unsigned int __len) {
|
|
1501
1625
|
return (__vector signed short)__builtin_s390_vll(__len, __ptr);
|
|
1502
1626
|
}
|
|
1503
1627
|
|
|
1628
|
+
// This prototype is deprecated.
|
|
1504
1629
|
static inline __ATTRS_o_ai __vector unsigned short
|
|
1505
1630
|
vec_load_len(const unsigned short *__ptr, unsigned int __len) {
|
|
1506
1631
|
return (__vector unsigned short)__builtin_s390_vll(__len, __ptr);
|
|
1507
1632
|
}
|
|
1508
1633
|
|
|
1634
|
+
// This prototype is deprecated.
|
|
1509
1635
|
static inline __ATTRS_o_ai __vector signed int
|
|
1510
1636
|
vec_load_len(const signed int *__ptr, unsigned int __len) {
|
|
1511
1637
|
return (__vector signed int)__builtin_s390_vll(__len, __ptr);
|
|
1512
1638
|
}
|
|
1513
1639
|
|
|
1640
|
+
// This prototype is deprecated.
|
|
1514
1641
|
static inline __ATTRS_o_ai __vector unsigned int
|
|
1515
1642
|
vec_load_len(const unsigned int *__ptr, unsigned int __len) {
|
|
1516
1643
|
return (__vector unsigned int)__builtin_s390_vll(__len, __ptr);
|
|
1517
1644
|
}
|
|
1518
1645
|
|
|
1646
|
+
// This prototype is deprecated.
|
|
1519
1647
|
static inline __ATTRS_o_ai __vector signed long long
|
|
1520
1648
|
vec_load_len(const signed long long *__ptr, unsigned int __len) {
|
|
1521
1649
|
return (__vector signed long long)__builtin_s390_vll(__len, __ptr);
|
|
1522
1650
|
}
|
|
1523
1651
|
|
|
1652
|
+
// This prototype is deprecated.
|
|
1524
1653
|
static inline __ATTRS_o_ai __vector unsigned long long
|
|
1525
1654
|
vec_load_len(const unsigned long long *__ptr, unsigned int __len) {
|
|
1526
1655
|
return (__vector unsigned long long)__builtin_s390_vll(__len, __ptr);
|
|
1527
1656
|
}
|
|
1528
1657
|
|
|
1529
1658
|
#if __ARCH__ >= 12
|
|
1659
|
+
// This prototype is deprecated.
|
|
1530
1660
|
static inline __ATTRS_o_ai __vector float
|
|
1531
1661
|
vec_load_len(const float *__ptr, unsigned int __len) {
|
|
1532
1662
|
return (__vector float)__builtin_s390_vll(__len, __ptr);
|
|
1533
1663
|
}
|
|
1534
1664
|
#endif
|
|
1535
1665
|
|
|
1666
|
+
// This prototype is deprecated.
|
|
1536
1667
|
static inline __ATTRS_o_ai __vector double
|
|
1537
1668
|
vec_load_len(const double *__ptr, unsigned int __len) {
|
|
1538
1669
|
return (__vector double)__builtin_s390_vll(__len, __ptr);
|
|
@@ -1541,7 +1672,12 @@ vec_load_len(const double *__ptr, unsigned int __len) {
|
|
|
1541
1672
|
/*-- vec_load_len_r ---------------------------------------------------------*/
|
|
1542
1673
|
|
|
1543
1674
|
#if __ARCH__ >= 12
|
|
1544
|
-
static inline
|
|
1675
|
+
static inline __ATTRS_o_ai __vector signed char
|
|
1676
|
+
vec_load_len_r(const signed char *__ptr, unsigned int __len) {
|
|
1677
|
+
return (__vector signed char)__builtin_s390_vlrlr(__len, __ptr);
|
|
1678
|
+
}
|
|
1679
|
+
|
|
1680
|
+
static inline __ATTRS_o_ai __vector unsigned char
|
|
1545
1681
|
vec_load_len_r(const unsigned char *__ptr, unsigned int __len) {
|
|
1546
1682
|
return (__vector unsigned char)__builtin_s390_vlrlr(__len, __ptr);
|
|
1547
1683
|
}
|
|
@@ -1561,36 +1697,42 @@ vec_store_len(__vector unsigned char __vec, unsigned char *__ptr,
|
|
|
1561
1697
|
__builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
|
|
1562
1698
|
}
|
|
1563
1699
|
|
|
1700
|
+
// This prototype is deprecated.
|
|
1564
1701
|
static inline __ATTRS_o_ai void
|
|
1565
1702
|
vec_store_len(__vector signed short __vec, signed short *__ptr,
|
|
1566
1703
|
unsigned int __len) {
|
|
1567
1704
|
__builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
|
|
1568
1705
|
}
|
|
1569
1706
|
|
|
1707
|
+
// This prototype is deprecated.
|
|
1570
1708
|
static inline __ATTRS_o_ai void
|
|
1571
1709
|
vec_store_len(__vector unsigned short __vec, unsigned short *__ptr,
|
|
1572
1710
|
unsigned int __len) {
|
|
1573
1711
|
__builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
|
|
1574
1712
|
}
|
|
1575
1713
|
|
|
1714
|
+
// This prototype is deprecated.
|
|
1576
1715
|
static inline __ATTRS_o_ai void
|
|
1577
1716
|
vec_store_len(__vector signed int __vec, signed int *__ptr,
|
|
1578
1717
|
unsigned int __len) {
|
|
1579
1718
|
__builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
|
|
1580
1719
|
}
|
|
1581
1720
|
|
|
1721
|
+
// This prototype is deprecated.
|
|
1582
1722
|
static inline __ATTRS_o_ai void
|
|
1583
1723
|
vec_store_len(__vector unsigned int __vec, unsigned int *__ptr,
|
|
1584
1724
|
unsigned int __len) {
|
|
1585
1725
|
__builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
|
|
1586
1726
|
}
|
|
1587
1727
|
|
|
1728
|
+
// This prototype is deprecated.
|
|
1588
1729
|
static inline __ATTRS_o_ai void
|
|
1589
1730
|
vec_store_len(__vector signed long long __vec, signed long long *__ptr,
|
|
1590
1731
|
unsigned int __len) {
|
|
1591
1732
|
__builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
|
|
1592
1733
|
}
|
|
1593
1734
|
|
|
1735
|
+
// This prototype is deprecated.
|
|
1594
1736
|
static inline __ATTRS_o_ai void
|
|
1595
1737
|
vec_store_len(__vector unsigned long long __vec, unsigned long long *__ptr,
|
|
1596
1738
|
unsigned int __len) {
|
|
@@ -1598,6 +1740,7 @@ vec_store_len(__vector unsigned long long __vec, unsigned long long *__ptr,
|
|
|
1598
1740
|
}
|
|
1599
1741
|
|
|
1600
1742
|
#if __ARCH__ >= 12
|
|
1743
|
+
// This prototype is deprecated.
|
|
1601
1744
|
static inline __ATTRS_o_ai void
|
|
1602
1745
|
vec_store_len(__vector float __vec, float *__ptr,
|
|
1603
1746
|
unsigned int __len) {
|
|
@@ -1605,6 +1748,7 @@ vec_store_len(__vector float __vec, float *__ptr,
|
|
|
1605
1748
|
}
|
|
1606
1749
|
#endif
|
|
1607
1750
|
|
|
1751
|
+
// This prototype is deprecated.
|
|
1608
1752
|
static inline __ATTRS_o_ai void
|
|
1609
1753
|
vec_store_len(__vector double __vec, double *__ptr,
|
|
1610
1754
|
unsigned int __len) {
|
|
@@ -1614,7 +1758,13 @@ vec_store_len(__vector double __vec, double *__ptr,
|
|
|
1614
1758
|
/*-- vec_store_len_r --------------------------------------------------------*/
|
|
1615
1759
|
|
|
1616
1760
|
#if __ARCH__ >= 12
|
|
1617
|
-
static inline
|
|
1761
|
+
static inline __ATTRS_o_ai void
|
|
1762
|
+
vec_store_len_r(__vector signed char __vec, signed char *__ptr,
|
|
1763
|
+
unsigned int __len) {
|
|
1764
|
+
__builtin_s390_vstrlr(__vec, __len, __ptr);
|
|
1765
|
+
}
|
|
1766
|
+
|
|
1767
|
+
static inline __ATTRS_o_ai void
|
|
1618
1768
|
vec_store_len_r(__vector unsigned char __vec, unsigned char *__ptr,
|
|
1619
1769
|
unsigned int __len) {
|
|
1620
1770
|
__builtin_s390_vstrlr((__vector signed char)__vec, __len, __ptr);
|
|
@@ -1711,6 +1861,35 @@ vec_genmasks_64(unsigned char __first, unsigned char __last)
|
|
|
1711
1861
|
return (__vector unsigned long long)__value;
|
|
1712
1862
|
}
|
|
1713
1863
|
|
|
1864
|
+
/*-- vec_gen_element_masks_* ------------------------------------------------*/
|
|
1865
|
+
|
|
1866
|
+
#if __ARCH__ >= 15
|
|
1867
|
+
static inline __ATTRS_ai __vector unsigned char
|
|
1868
|
+
vec_gen_element_masks_8(__vector unsigned short __mask) {
|
|
1869
|
+
return __builtin_s390_vgemb(__mask);
|
|
1870
|
+
}
|
|
1871
|
+
|
|
1872
|
+
static inline __ATTRS_ai __vector unsigned short
|
|
1873
|
+
vec_gen_element_masks_16(__vector unsigned char __mask) {
|
|
1874
|
+
return __builtin_s390_vgemh(__mask);
|
|
1875
|
+
}
|
|
1876
|
+
|
|
1877
|
+
static inline __ATTRS_ai __vector unsigned int
|
|
1878
|
+
vec_gen_element_masks_32(__vector unsigned char __mask) {
|
|
1879
|
+
return __builtin_s390_vgemf(__mask);
|
|
1880
|
+
}
|
|
1881
|
+
|
|
1882
|
+
static inline __ATTRS_ai __vector unsigned long long
|
|
1883
|
+
vec_gen_element_masks_64(__vector unsigned char __mask) {
|
|
1884
|
+
return __builtin_s390_vgemg(__mask);
|
|
1885
|
+
}
|
|
1886
|
+
|
|
1887
|
+
static inline __ATTRS_ai __vector unsigned __int128
|
|
1888
|
+
vec_gen_element_masks_128(__vector unsigned char __mask) {
|
|
1889
|
+
return (__vector unsigned __int128)__builtin_s390_vgemq(__mask);
|
|
1890
|
+
}
|
|
1891
|
+
#endif
|
|
1892
|
+
|
|
1714
1893
|
/*-- vec_splat --------------------------------------------------------------*/
|
|
1715
1894
|
|
|
1716
1895
|
static inline __ATTRS_o_ai __vector signed char
|
|
@@ -1894,6 +2073,16 @@ vec_splats(unsigned long long __scalar) {
|
|
|
1894
2073
|
return (__vector unsigned long long)__scalar;
|
|
1895
2074
|
}
|
|
1896
2075
|
|
|
2076
|
+
static inline __ATTRS_o_ai __vector signed __int128
|
|
2077
|
+
vec_splats(signed __int128 __scalar) {
|
|
2078
|
+
return (__vector signed __int128)__scalar;
|
|
2079
|
+
}
|
|
2080
|
+
|
|
2081
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
2082
|
+
vec_splats(unsigned __int128 __scalar) {
|
|
2083
|
+
return (__vector unsigned __int128)__scalar;
|
|
2084
|
+
}
|
|
2085
|
+
|
|
1897
2086
|
#if __ARCH__ >= 12
|
|
1898
2087
|
static inline __ATTRS_o_ai __vector float
|
|
1899
2088
|
vec_splats(float __scalar) {
|
|
@@ -2166,6 +2355,27 @@ vec_pack(__vector unsigned long long __a, __vector unsigned long long __b) {
|
|
|
2166
2355
|
return (__vector unsigned int)(__ac[1], __ac[3], __bc[1], __bc[3]);
|
|
2167
2356
|
}
|
|
2168
2357
|
|
|
2358
|
+
static inline __ATTRS_o_ai __vector signed long long
|
|
2359
|
+
vec_pack(__vector signed __int128 __a, __vector signed __int128 __b) {
|
|
2360
|
+
__vector signed long long __ac = (__vector signed long long)__a;
|
|
2361
|
+
__vector signed long long __bc = (__vector signed long long)__b;
|
|
2362
|
+
return (__vector signed long long)(__ac[1], __bc[1]);
|
|
2363
|
+
}
|
|
2364
|
+
|
|
2365
|
+
static inline __ATTRS_o_ai __vector __bool long long
|
|
2366
|
+
vec_pack(__vector __bool __int128 __a, __vector __bool __int128 __b) {
|
|
2367
|
+
__vector __bool long long __ac = (__vector __bool long long)__a;
|
|
2368
|
+
__vector __bool long long __bc = (__vector __bool long long)__b;
|
|
2369
|
+
return (__vector __bool long long)(__ac[1], __bc[1]);
|
|
2370
|
+
}
|
|
2371
|
+
|
|
2372
|
+
static inline __ATTRS_o_ai __vector unsigned long long
|
|
2373
|
+
vec_pack(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
|
|
2374
|
+
__vector unsigned long long __ac = (__vector unsigned long long)__a;
|
|
2375
|
+
__vector unsigned long long __bc = (__vector unsigned long long)__b;
|
|
2376
|
+
return (__vector unsigned long long)(__ac[1], __bc[1]);
|
|
2377
|
+
}
|
|
2378
|
+
|
|
2169
2379
|
/*-- vec_packs --------------------------------------------------------------*/
|
|
2170
2380
|
|
|
2171
2381
|
static inline __ATTRS_o_ai __vector signed char
|
|
@@ -2344,6 +2554,24 @@ vec_unpackh(__vector unsigned int __a) {
|
|
|
2344
2554
|
return __builtin_s390_vuplhf(__a);
|
|
2345
2555
|
}
|
|
2346
2556
|
|
|
2557
|
+
#if __ARCH__ >= 15
|
|
2558
|
+
static inline __ATTRS_o_ai __vector signed __int128
|
|
2559
|
+
vec_unpackh(__vector signed long long __a) {
|
|
2560
|
+
return (__vector signed __int128)__builtin_s390_vuphg(__a);
|
|
2561
|
+
}
|
|
2562
|
+
|
|
2563
|
+
static inline __ATTRS_o_ai __vector __bool __int128
|
|
2564
|
+
vec_unpackh(__vector __bool long long __a) {
|
|
2565
|
+
return ((__vector __bool __int128)
|
|
2566
|
+
__builtin_s390_vuphg((__vector signed long long)__a));
|
|
2567
|
+
}
|
|
2568
|
+
|
|
2569
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
2570
|
+
vec_unpackh(__vector unsigned long long __a) {
|
|
2571
|
+
return (__vector unsigned __int128)__builtin_s390_vuplhg(__a);
|
|
2572
|
+
}
|
|
2573
|
+
#endif
|
|
2574
|
+
|
|
2347
2575
|
/*-- vec_unpackl ------------------------------------------------------------*/
|
|
2348
2576
|
|
|
2349
2577
|
static inline __ATTRS_o_ai __vector signed short
|
|
@@ -2394,6 +2622,24 @@ vec_unpackl(__vector unsigned int __a) {
|
|
|
2394
2622
|
return __builtin_s390_vupllf(__a);
|
|
2395
2623
|
}
|
|
2396
2624
|
|
|
2625
|
+
#if __ARCH__ >= 15
|
|
2626
|
+
static inline __ATTRS_o_ai __vector signed __int128
|
|
2627
|
+
vec_unpackl(__vector signed long long __a) {
|
|
2628
|
+
return (__vector signed __int128)__builtin_s390_vuplg(__a);
|
|
2629
|
+
}
|
|
2630
|
+
|
|
2631
|
+
static inline __ATTRS_o_ai __vector __bool __int128
|
|
2632
|
+
vec_unpackl(__vector __bool long long __a) {
|
|
2633
|
+
return ((__vector __bool __int128)
|
|
2634
|
+
__builtin_s390_vuplg((__vector signed long long)__a));
|
|
2635
|
+
}
|
|
2636
|
+
|
|
2637
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
2638
|
+
vec_unpackl(__vector unsigned long long __a) {
|
|
2639
|
+
return (__vector unsigned __int128)__builtin_s390_vupllg(__a);
|
|
2640
|
+
}
|
|
2641
|
+
#endif
|
|
2642
|
+
|
|
2397
2643
|
/*-- vec_cmpeq --------------------------------------------------------------*/
|
|
2398
2644
|
|
|
2399
2645
|
static inline __ATTRS_o_ai __vector __bool char
|
|
@@ -2456,6 +2702,21 @@ vec_cmpeq(__vector unsigned long long __a, __vector unsigned long long __b) {
|
|
|
2456
2702
|
return (__vector __bool long long)(__a == __b);
|
|
2457
2703
|
}
|
|
2458
2704
|
|
|
2705
|
+
static inline __ATTRS_o_ai __vector __bool __int128
|
|
2706
|
+
vec_cmpeq(__vector __bool __int128 __a, __vector __bool __int128 __b) {
|
|
2707
|
+
return (__vector __bool __int128)(__a == __b);
|
|
2708
|
+
}
|
|
2709
|
+
|
|
2710
|
+
static inline __ATTRS_o_ai __vector __bool __int128
|
|
2711
|
+
vec_cmpeq(__vector signed __int128 __a, __vector signed __int128 __b) {
|
|
2712
|
+
return (__vector __bool __int128)(__a == __b);
|
|
2713
|
+
}
|
|
2714
|
+
|
|
2715
|
+
static inline __ATTRS_o_ai __vector __bool __int128
|
|
2716
|
+
vec_cmpeq(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
|
|
2717
|
+
return (__vector __bool __int128)(__a == __b);
|
|
2718
|
+
}
|
|
2719
|
+
|
|
2459
2720
|
#if __ARCH__ >= 12
|
|
2460
2721
|
static inline __ATTRS_o_ai __vector __bool int
|
|
2461
2722
|
vec_cmpeq(__vector float __a, __vector float __b) {
|
|
@@ -2510,6 +2771,16 @@ vec_cmpge(__vector unsigned long long __a, __vector unsigned long long __b) {
|
|
|
2510
2771
|
return (__vector __bool long long)(__a >= __b);
|
|
2511
2772
|
}
|
|
2512
2773
|
|
|
2774
|
+
static inline __ATTRS_o_ai __vector __bool __int128
|
|
2775
|
+
vec_cmpge(__vector signed __int128 __a, __vector signed __int128 __b) {
|
|
2776
|
+
return (__vector __bool __int128)(__a >= __b);
|
|
2777
|
+
}
|
|
2778
|
+
|
|
2779
|
+
static inline __ATTRS_o_ai __vector __bool __int128
|
|
2780
|
+
vec_cmpge(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
|
|
2781
|
+
return (__vector __bool __int128)(__a >= __b);
|
|
2782
|
+
}
|
|
2783
|
+
|
|
2513
2784
|
#if __ARCH__ >= 12
|
|
2514
2785
|
static inline __ATTRS_o_ai __vector __bool int
|
|
2515
2786
|
vec_cmpge(__vector float __a, __vector float __b) {
|
|
@@ -2564,6 +2835,16 @@ vec_cmpgt(__vector unsigned long long __a, __vector unsigned long long __b) {
|
|
|
2564
2835
|
return (__vector __bool long long)(__a > __b);
|
|
2565
2836
|
}
|
|
2566
2837
|
|
|
2838
|
+
static inline __ATTRS_o_ai __vector __bool __int128
|
|
2839
|
+
vec_cmpgt(__vector signed __int128 __a, __vector signed __int128 __b) {
|
|
2840
|
+
return (__vector __bool __int128)(__a > __b);
|
|
2841
|
+
}
|
|
2842
|
+
|
|
2843
|
+
static inline __ATTRS_o_ai __vector __bool __int128
|
|
2844
|
+
vec_cmpgt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
|
|
2845
|
+
return (__vector __bool __int128)(__a > __b);
|
|
2846
|
+
}
|
|
2847
|
+
|
|
2567
2848
|
#if __ARCH__ >= 12
|
|
2568
2849
|
static inline __ATTRS_o_ai __vector __bool int
|
|
2569
2850
|
vec_cmpgt(__vector float __a, __vector float __b) {
|
|
@@ -2618,6 +2899,16 @@ vec_cmple(__vector unsigned long long __a, __vector unsigned long long __b) {
|
|
|
2618
2899
|
return (__vector __bool long long)(__a <= __b);
|
|
2619
2900
|
}
|
|
2620
2901
|
|
|
2902
|
+
static inline __ATTRS_o_ai __vector __bool __int128
|
|
2903
|
+
vec_cmple(__vector signed __int128 __a, __vector signed __int128 __b) {
|
|
2904
|
+
return (__vector __bool __int128)(__a <= __b);
|
|
2905
|
+
}
|
|
2906
|
+
|
|
2907
|
+
static inline __ATTRS_o_ai __vector __bool __int128
|
|
2908
|
+
vec_cmple(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
|
|
2909
|
+
return (__vector __bool __int128)(__a <= __b);
|
|
2910
|
+
}
|
|
2911
|
+
|
|
2621
2912
|
#if __ARCH__ >= 12
|
|
2622
2913
|
static inline __ATTRS_o_ai __vector __bool int
|
|
2623
2914
|
vec_cmple(__vector float __a, __vector float __b) {
|
|
@@ -2672,6 +2963,16 @@ vec_cmplt(__vector unsigned long long __a, __vector unsigned long long __b) {
|
|
|
2672
2963
|
return (__vector __bool long long)(__a < __b);
|
|
2673
2964
|
}
|
|
2674
2965
|
|
|
2966
|
+
static inline __ATTRS_o_ai __vector __bool __int128
|
|
2967
|
+
vec_cmplt(__vector signed __int128 __a, __vector signed __int128 __b) {
|
|
2968
|
+
return (__vector __bool __int128)(__a < __b);
|
|
2969
|
+
}
|
|
2970
|
+
|
|
2971
|
+
static inline __ATTRS_o_ai __vector __bool __int128
|
|
2972
|
+
vec_cmplt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
|
|
2973
|
+
return (__vector __bool __int128)(__a < __b);
|
|
2974
|
+
}
|
|
2975
|
+
|
|
2675
2976
|
#if __ARCH__ >= 12
|
|
2676
2977
|
static inline __ATTRS_o_ai __vector __bool int
|
|
2677
2978
|
vec_cmplt(__vector float __a, __vector float __b) {
|
|
@@ -2914,6 +3215,29 @@ vec_all_eq(__vector __bool long long __a, __vector __bool long long __b) {
|
|
|
2914
3215
|
return __cc == 0;
|
|
2915
3216
|
}
|
|
2916
3217
|
|
|
3218
|
+
#if __ARCH__ >= 15
|
|
3219
|
+
static inline __ATTRS_o_ai int
|
|
3220
|
+
vec_all_eq(__vector signed __int128 __a, __vector signed __int128 __b) {
|
|
3221
|
+
int __cc;
|
|
3222
|
+
__builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
|
|
3223
|
+
return __cc == 0;
|
|
3224
|
+
}
|
|
3225
|
+
|
|
3226
|
+
static inline __ATTRS_o_ai int
|
|
3227
|
+
vec_all_eq(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
|
|
3228
|
+
int __cc;
|
|
3229
|
+
__builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
|
|
3230
|
+
return __cc == 0;
|
|
3231
|
+
}
|
|
3232
|
+
|
|
3233
|
+
static inline __ATTRS_o_ai int
|
|
3234
|
+
vec_all_eq(__vector __bool __int128 __a, __vector __bool __int128 __b) {
|
|
3235
|
+
int __cc;
|
|
3236
|
+
__builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
|
|
3237
|
+
return __cc == 0;
|
|
3238
|
+
}
|
|
3239
|
+
#endif
|
|
3240
|
+
|
|
2917
3241
|
#if __ARCH__ >= 12
|
|
2918
3242
|
static inline __ATTRS_o_ai int
|
|
2919
3243
|
vec_all_eq(__vector float __a, __vector float __b) {
|
|
@@ -3161,6 +3485,29 @@ vec_all_ne(__vector __bool long long __a, __vector __bool long long __b) {
|
|
|
3161
3485
|
return __cc == 3;
|
|
3162
3486
|
}
|
|
3163
3487
|
|
|
3488
|
+
#if __ARCH__ >= 15
|
|
3489
|
+
static inline __ATTRS_o_ai int
|
|
3490
|
+
vec_all_ne(__vector signed __int128 __a, __vector signed __int128 __b) {
|
|
3491
|
+
int __cc;
|
|
3492
|
+
__builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
|
|
3493
|
+
return __cc == 3;
|
|
3494
|
+
}
|
|
3495
|
+
|
|
3496
|
+
static inline __ATTRS_o_ai int
|
|
3497
|
+
vec_all_ne(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
|
|
3498
|
+
int __cc;
|
|
3499
|
+
__builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
|
|
3500
|
+
return __cc == 3;
|
|
3501
|
+
}
|
|
3502
|
+
|
|
3503
|
+
static inline __ATTRS_o_ai int
|
|
3504
|
+
vec_all_ne(__vector __bool __int128 __a, __vector __bool __int128 __b) {
|
|
3505
|
+
int __cc;
|
|
3506
|
+
__builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
|
|
3507
|
+
return __cc == 3;
|
|
3508
|
+
}
|
|
3509
|
+
#endif
|
|
3510
|
+
|
|
3164
3511
|
#if __ARCH__ >= 12
|
|
3165
3512
|
static inline __ATTRS_o_ai int
|
|
3166
3513
|
vec_all_ne(__vector float __a, __vector float __b) {
|
|
@@ -3399,6 +3746,22 @@ vec_all_ge(__vector __bool long long __a, __vector __bool long long __b) {
|
|
|
3399
3746
|
return __cc == 3;
|
|
3400
3747
|
}
|
|
3401
3748
|
|
|
3749
|
+
#if __ARCH__ >= 15
|
|
3750
|
+
static inline __ATTRS_o_ai int
|
|
3751
|
+
vec_all_ge(__vector signed __int128 __a, __vector signed __int128 __b) {
|
|
3752
|
+
int __cc;
|
|
3753
|
+
__builtin_s390_vchqs((signed __int128)__b, (signed __int128)__a, &__cc);
|
|
3754
|
+
return __cc == 3;
|
|
3755
|
+
}
|
|
3756
|
+
|
|
3757
|
+
static inline __ATTRS_o_ai int
|
|
3758
|
+
vec_all_ge(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
|
|
3759
|
+
int __cc;
|
|
3760
|
+
__builtin_s390_vchlqs((unsigned __int128)__b, (unsigned __int128)__a, &__cc);
|
|
3761
|
+
return __cc == 3;
|
|
3762
|
+
}
|
|
3763
|
+
#endif
|
|
3764
|
+
|
|
3402
3765
|
#if __ARCH__ >= 12
|
|
3403
3766
|
static inline __ATTRS_o_ai int
|
|
3404
3767
|
vec_all_ge(__vector float __a, __vector float __b) {
|
|
@@ -3637,6 +4000,22 @@ vec_all_gt(__vector __bool long long __a, __vector __bool long long __b) {
|
|
|
3637
4000
|
return __cc == 0;
|
|
3638
4001
|
}
|
|
3639
4002
|
|
|
4003
|
+
#if __ARCH__ >= 15
|
|
4004
|
+
static inline __ATTRS_o_ai int
|
|
4005
|
+
vec_all_gt(__vector signed __int128 __a, __vector signed __int128 __b) {
|
|
4006
|
+
int __cc;
|
|
4007
|
+
__builtin_s390_vchqs((signed __int128)__a, (signed __int128)__b, &__cc);
|
|
4008
|
+
return __cc == 0;
|
|
4009
|
+
}
|
|
4010
|
+
|
|
4011
|
+
static inline __ATTRS_o_ai int
|
|
4012
|
+
vec_all_gt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
|
|
4013
|
+
int __cc;
|
|
4014
|
+
__builtin_s390_vchlqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
|
|
4015
|
+
return __cc == 0;
|
|
4016
|
+
}
|
|
4017
|
+
#endif
|
|
4018
|
+
|
|
3640
4019
|
#if __ARCH__ >= 12
|
|
3641
4020
|
static inline __ATTRS_o_ai int
|
|
3642
4021
|
vec_all_gt(__vector float __a, __vector float __b) {
|
|
@@ -3875,6 +4254,22 @@ vec_all_le(__vector __bool long long __a, __vector __bool long long __b) {
|
|
|
3875
4254
|
return __cc == 3;
|
|
3876
4255
|
}
|
|
3877
4256
|
|
|
4257
|
+
#if __ARCH__ >= 15
|
|
4258
|
+
static inline __ATTRS_o_ai int
|
|
4259
|
+
vec_all_le(__vector signed __int128 __a, __vector signed __int128 __b) {
|
|
4260
|
+
int __cc;
|
|
4261
|
+
__builtin_s390_vchqs((signed __int128)__a, (signed __int128)__b, &__cc);
|
|
4262
|
+
return __cc == 3;
|
|
4263
|
+
}
|
|
4264
|
+
|
|
4265
|
+
static inline __ATTRS_o_ai int
|
|
4266
|
+
vec_all_le(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
|
|
4267
|
+
int __cc;
|
|
4268
|
+
__builtin_s390_vchlqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
|
|
4269
|
+
return __cc == 3;
|
|
4270
|
+
}
|
|
4271
|
+
#endif
|
|
4272
|
+
|
|
3878
4273
|
#if __ARCH__ >= 12
|
|
3879
4274
|
static inline __ATTRS_o_ai int
|
|
3880
4275
|
vec_all_le(__vector float __a, __vector float __b) {
|
|
@@ -4113,6 +4508,22 @@ vec_all_lt(__vector __bool long long __a, __vector __bool long long __b) {
|
|
|
4113
4508
|
return __cc == 0;
|
|
4114
4509
|
}
|
|
4115
4510
|
|
|
4511
|
+
#if __ARCH__ >= 15
|
|
4512
|
+
static inline __ATTRS_o_ai int
|
|
4513
|
+
vec_all_lt(__vector signed __int128 __a, __vector signed __int128 __b) {
|
|
4514
|
+
int __cc;
|
|
4515
|
+
__builtin_s390_vchqs((signed __int128)__b, (signed __int128)__a, &__cc);
|
|
4516
|
+
return __cc == 0;
|
|
4517
|
+
}
|
|
4518
|
+
|
|
4519
|
+
static inline __ATTRS_o_ai int
|
|
4520
|
+
vec_all_lt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
|
|
4521
|
+
int __cc;
|
|
4522
|
+
__builtin_s390_vchlqs((unsigned __int128)__b, (unsigned __int128)__a, &__cc);
|
|
4523
|
+
return __cc == 0;
|
|
4524
|
+
}
|
|
4525
|
+
#endif
|
|
4526
|
+
|
|
4116
4527
|
#if __ARCH__ >= 12
|
|
4117
4528
|
static inline __ATTRS_o_ai int
|
|
4118
4529
|
vec_all_lt(__vector float __a, __vector float __b) {
|
|
@@ -4467,6 +4878,29 @@ vec_any_eq(__vector __bool long long __a, __vector __bool long long __b) {
|
|
|
4467
4878
|
return __cc <= 1;
|
|
4468
4879
|
}
|
|
4469
4880
|
|
|
4881
|
+
#if __ARCH__ >= 15
|
|
4882
|
+
static inline __ATTRS_o_ai int
|
|
4883
|
+
vec_any_eq(__vector signed __int128 __a, __vector signed __int128 __b) {
|
|
4884
|
+
int __cc;
|
|
4885
|
+
__builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
|
|
4886
|
+
return __cc <= 1;
|
|
4887
|
+
}
|
|
4888
|
+
|
|
4889
|
+
static inline __ATTRS_o_ai int
|
|
4890
|
+
vec_any_eq(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
|
|
4891
|
+
int __cc;
|
|
4892
|
+
__builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
|
|
4893
|
+
return __cc <= 1;
|
|
4894
|
+
}
|
|
4895
|
+
|
|
4896
|
+
static inline __ATTRS_o_ai int
|
|
4897
|
+
vec_any_eq(__vector __bool __int128 __a, __vector __bool __int128 __b) {
|
|
4898
|
+
int __cc;
|
|
4899
|
+
__builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
|
|
4900
|
+
return __cc <= 1;
|
|
4901
|
+
}
|
|
4902
|
+
#endif
|
|
4903
|
+
|
|
4470
4904
|
#if __ARCH__ >= 12
|
|
4471
4905
|
static inline __ATTRS_o_ai int
|
|
4472
4906
|
vec_any_eq(__vector float __a, __vector float __b) {
|
|
@@ -4713,28 +5147,51 @@ vec_any_ne(__vector __bool long long __a, __vector __bool long long __b) {
|
|
|
4713
5147
|
return __cc != 0;
|
|
4714
5148
|
}
|
|
4715
5149
|
|
|
4716
|
-
#if __ARCH__ >=
|
|
5150
|
+
#if __ARCH__ >= 15
|
|
4717
5151
|
static inline __ATTRS_o_ai int
|
|
4718
|
-
vec_any_ne(__vector
|
|
5152
|
+
vec_any_ne(__vector signed __int128 __a, __vector signed __int128 __b) {
|
|
4719
5153
|
int __cc;
|
|
4720
|
-
|
|
5154
|
+
__builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
|
|
4721
5155
|
return __cc != 0;
|
|
4722
5156
|
}
|
|
4723
|
-
#endif
|
|
4724
5157
|
|
|
4725
5158
|
static inline __ATTRS_o_ai int
|
|
4726
|
-
vec_any_ne(__vector
|
|
5159
|
+
vec_any_ne(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
|
|
4727
5160
|
int __cc;
|
|
4728
|
-
|
|
5161
|
+
__builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
|
|
4729
5162
|
return __cc != 0;
|
|
4730
5163
|
}
|
|
4731
5164
|
|
|
4732
|
-
/*-- vec_any_ge -------------------------------------------------------------*/
|
|
4733
|
-
|
|
4734
5165
|
static inline __ATTRS_o_ai int
|
|
4735
|
-
|
|
5166
|
+
vec_any_ne(__vector __bool __int128 __a, __vector __bool __int128 __b) {
|
|
4736
5167
|
int __cc;
|
|
4737
|
-
|
|
5168
|
+
__builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
|
|
5169
|
+
return __cc != 0;
|
|
5170
|
+
}
|
|
5171
|
+
#endif
|
|
5172
|
+
|
|
5173
|
+
#if __ARCH__ >= 12
|
|
5174
|
+
static inline __ATTRS_o_ai int
|
|
5175
|
+
vec_any_ne(__vector float __a, __vector float __b) {
|
|
5176
|
+
int __cc;
|
|
5177
|
+
__builtin_s390_vfcesbs(__a, __b, &__cc);
|
|
5178
|
+
return __cc != 0;
|
|
5179
|
+
}
|
|
5180
|
+
#endif
|
|
5181
|
+
|
|
5182
|
+
static inline __ATTRS_o_ai int
|
|
5183
|
+
vec_any_ne(__vector double __a, __vector double __b) {
|
|
5184
|
+
int __cc;
|
|
5185
|
+
__builtin_s390_vfcedbs(__a, __b, &__cc);
|
|
5186
|
+
return __cc != 0;
|
|
5187
|
+
}
|
|
5188
|
+
|
|
5189
|
+
/*-- vec_any_ge -------------------------------------------------------------*/
|
|
5190
|
+
|
|
5191
|
+
static inline __ATTRS_o_ai int
|
|
5192
|
+
vec_any_ge(__vector signed char __a, __vector signed char __b) {
|
|
5193
|
+
int __cc;
|
|
5194
|
+
__builtin_s390_vchbs(__b, __a, &__cc);
|
|
4738
5195
|
return __cc != 0;
|
|
4739
5196
|
}
|
|
4740
5197
|
|
|
@@ -4951,6 +5408,22 @@ vec_any_ge(__vector __bool long long __a, __vector __bool long long __b) {
|
|
|
4951
5408
|
return __cc != 0;
|
|
4952
5409
|
}
|
|
4953
5410
|
|
|
5411
|
+
#if __ARCH__ >= 15
|
|
5412
|
+
static inline __ATTRS_o_ai int
|
|
5413
|
+
vec_any_ge(__vector signed __int128 __a, __vector signed __int128 __b) {
|
|
5414
|
+
int __cc;
|
|
5415
|
+
__builtin_s390_vchqs((signed __int128)__b, (signed __int128)__a, &__cc);
|
|
5416
|
+
return __cc != 0;
|
|
5417
|
+
}
|
|
5418
|
+
|
|
5419
|
+
static inline __ATTRS_o_ai int
|
|
5420
|
+
vec_any_ge(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
|
|
5421
|
+
int __cc;
|
|
5422
|
+
__builtin_s390_vchlqs((unsigned __int128)__b, (unsigned __int128)__a, &__cc);
|
|
5423
|
+
return __cc != 0;
|
|
5424
|
+
}
|
|
5425
|
+
#endif
|
|
5426
|
+
|
|
4954
5427
|
#if __ARCH__ >= 12
|
|
4955
5428
|
static inline __ATTRS_o_ai int
|
|
4956
5429
|
vec_any_ge(__vector float __a, __vector float __b) {
|
|
@@ -5189,6 +5662,22 @@ vec_any_gt(__vector __bool long long __a, __vector __bool long long __b) {
|
|
|
5189
5662
|
return __cc <= 1;
|
|
5190
5663
|
}
|
|
5191
5664
|
|
|
5665
|
+
#if __ARCH__ >= 15
|
|
5666
|
+
static inline __ATTRS_o_ai int
|
|
5667
|
+
vec_any_gt(__vector signed __int128 __a, __vector signed __int128 __b) {
|
|
5668
|
+
int __cc;
|
|
5669
|
+
__builtin_s390_vchqs((signed __int128)__a, (signed __int128)__b, &__cc);
|
|
5670
|
+
return __cc <= 1;
|
|
5671
|
+
}
|
|
5672
|
+
|
|
5673
|
+
static inline __ATTRS_o_ai int
|
|
5674
|
+
vec_any_gt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
|
|
5675
|
+
int __cc;
|
|
5676
|
+
__builtin_s390_vchlqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
|
|
5677
|
+
return __cc <= 1;
|
|
5678
|
+
}
|
|
5679
|
+
#endif
|
|
5680
|
+
|
|
5192
5681
|
#if __ARCH__ >= 12
|
|
5193
5682
|
static inline __ATTRS_o_ai int
|
|
5194
5683
|
vec_any_gt(__vector float __a, __vector float __b) {
|
|
@@ -5427,6 +5916,22 @@ vec_any_le(__vector __bool long long __a, __vector __bool long long __b) {
|
|
|
5427
5916
|
return __cc != 0;
|
|
5428
5917
|
}
|
|
5429
5918
|
|
|
5919
|
+
#if __ARCH__ >= 15
|
|
5920
|
+
static inline __ATTRS_o_ai int
|
|
5921
|
+
vec_any_le(__vector signed __int128 __a, __vector signed __int128 __b) {
|
|
5922
|
+
int __cc;
|
|
5923
|
+
__builtin_s390_vchqs((signed __int128)__a, (signed __int128)__b, &__cc);
|
|
5924
|
+
return __cc != 0;
|
|
5925
|
+
}
|
|
5926
|
+
|
|
5927
|
+
static inline __ATTRS_o_ai int
|
|
5928
|
+
vec_any_le(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
|
|
5929
|
+
int __cc;
|
|
5930
|
+
__builtin_s390_vchlqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
|
|
5931
|
+
return __cc != 0;
|
|
5932
|
+
}
|
|
5933
|
+
#endif
|
|
5934
|
+
|
|
5430
5935
|
#if __ARCH__ >= 12
|
|
5431
5936
|
static inline __ATTRS_o_ai int
|
|
5432
5937
|
vec_any_le(__vector float __a, __vector float __b) {
|
|
@@ -5665,6 +6170,22 @@ vec_any_lt(__vector __bool long long __a, __vector __bool long long __b) {
|
|
|
5665
6170
|
return __cc <= 1;
|
|
5666
6171
|
}
|
|
5667
6172
|
|
|
6173
|
+
#if __ARCH__ >= 15
|
|
6174
|
+
static inline __ATTRS_o_ai int
|
|
6175
|
+
vec_any_lt(__vector signed __int128 __a, __vector signed __int128 __b) {
|
|
6176
|
+
int __cc;
|
|
6177
|
+
__builtin_s390_vchqs((signed __int128)__b, (signed __int128)__a, &__cc);
|
|
6178
|
+
return __cc <= 1;
|
|
6179
|
+
}
|
|
6180
|
+
|
|
6181
|
+
static inline __ATTRS_o_ai int
|
|
6182
|
+
vec_any_lt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
|
|
6183
|
+
int __cc;
|
|
6184
|
+
__builtin_s390_vchlqs((unsigned __int128)__b, (unsigned __int128)__a, &__cc);
|
|
6185
|
+
return __cc <= 1;
|
|
6186
|
+
}
|
|
6187
|
+
#endif
|
|
6188
|
+
|
|
5668
6189
|
#if __ARCH__ >= 12
|
|
5669
6190
|
static inline __ATTRS_o_ai int
|
|
5670
6191
|
vec_any_lt(__vector float __a, __vector float __b) {
|
|
@@ -5753,40 +6274,419 @@ vec_any_nlt(__vector double __a, __vector double __b) {
|
|
|
5753
6274
|
return __cc != 0;
|
|
5754
6275
|
}
|
|
5755
6276
|
|
|
5756
|
-
/*-- vec_any_nan ------------------------------------------------------------*/
|
|
6277
|
+
/*-- vec_any_nan ------------------------------------------------------------*/
|
|
6278
|
+
|
|
6279
|
+
#if __ARCH__ >= 12
|
|
6280
|
+
static inline __ATTRS_o_ai int
|
|
6281
|
+
vec_any_nan(__vector float __a) {
|
|
6282
|
+
int __cc;
|
|
6283
|
+
__builtin_s390_vftcisb(__a, 15, &__cc);
|
|
6284
|
+
return __cc != 3;
|
|
6285
|
+
}
|
|
6286
|
+
#endif
|
|
6287
|
+
|
|
6288
|
+
static inline __ATTRS_o_ai int
|
|
6289
|
+
vec_any_nan(__vector double __a) {
|
|
6290
|
+
int __cc;
|
|
6291
|
+
__builtin_s390_vftcidb(__a, 15, &__cc);
|
|
6292
|
+
return __cc != 3;
|
|
6293
|
+
}
|
|
6294
|
+
|
|
6295
|
+
/*-- vec_any_numeric --------------------------------------------------------*/
|
|
6296
|
+
|
|
6297
|
+
#if __ARCH__ >= 12
|
|
6298
|
+
static inline __ATTRS_o_ai int
|
|
6299
|
+
vec_any_numeric(__vector float __a) {
|
|
6300
|
+
int __cc;
|
|
6301
|
+
__builtin_s390_vftcisb(__a, 15, &__cc);
|
|
6302
|
+
return __cc != 0;
|
|
6303
|
+
}
|
|
6304
|
+
#endif
|
|
6305
|
+
|
|
6306
|
+
static inline __ATTRS_o_ai int
|
|
6307
|
+
vec_any_numeric(__vector double __a) {
|
|
6308
|
+
int __cc;
|
|
6309
|
+
__builtin_s390_vftcidb(__a, 15, &__cc);
|
|
6310
|
+
return __cc != 0;
|
|
6311
|
+
}
|
|
6312
|
+
|
|
6313
|
+
/*-- vec_blend --------------------------------------------------------------*/
|
|
6314
|
+
|
|
6315
|
+
#if __ARCH__ >= 15
|
|
6316
|
+
static inline __ATTRS_o_ai __vector signed char
|
|
6317
|
+
vec_blend(__vector signed char __a, __vector signed char __b,
|
|
6318
|
+
__vector signed char __c) {
|
|
6319
|
+
return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed char)0));
|
|
6320
|
+
}
|
|
6321
|
+
|
|
6322
|
+
static inline __ATTRS_o_ai __vector __bool char
|
|
6323
|
+
vec_blend(__vector __bool char __a, __vector __bool char __b,
|
|
6324
|
+
__vector signed char __c) {
|
|
6325
|
+
return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed char)0));
|
|
6326
|
+
}
|
|
6327
|
+
|
|
6328
|
+
static inline __ATTRS_o_ai __vector unsigned char
|
|
6329
|
+
vec_blend(__vector unsigned char __a, __vector unsigned char __b,
|
|
6330
|
+
__vector signed char __c) {
|
|
6331
|
+
return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed char)0));
|
|
6332
|
+
}
|
|
6333
|
+
|
|
6334
|
+
static inline __ATTRS_o_ai __vector signed short
|
|
6335
|
+
vec_blend(__vector signed short __a, __vector signed short __b,
|
|
6336
|
+
__vector signed short __c) {
|
|
6337
|
+
return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed short)0));
|
|
6338
|
+
}
|
|
6339
|
+
|
|
6340
|
+
static inline __ATTRS_o_ai __vector __bool short
|
|
6341
|
+
vec_blend(__vector __bool short __a, __vector __bool short __b,
|
|
6342
|
+
__vector signed short __c) {
|
|
6343
|
+
return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed short)0));
|
|
6344
|
+
}
|
|
6345
|
+
|
|
6346
|
+
static inline __ATTRS_o_ai __vector unsigned short
|
|
6347
|
+
vec_blend(__vector unsigned short __a, __vector unsigned short __b,
|
|
6348
|
+
__vector signed short __c) {
|
|
6349
|
+
return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed short)0));
|
|
6350
|
+
}
|
|
6351
|
+
|
|
6352
|
+
static inline __ATTRS_o_ai __vector signed int
|
|
6353
|
+
vec_blend(__vector signed int __a, __vector signed int __b,
|
|
6354
|
+
__vector signed int __c) {
|
|
6355
|
+
return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed int)0));
|
|
6356
|
+
}
|
|
6357
|
+
|
|
6358
|
+
static inline __ATTRS_o_ai __vector __bool int
|
|
6359
|
+
vec_blend(__vector __bool int __a, __vector __bool int __b,
|
|
6360
|
+
__vector signed int __c) {
|
|
6361
|
+
return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed int)0));
|
|
6362
|
+
}
|
|
6363
|
+
|
|
6364
|
+
static inline __ATTRS_o_ai __vector unsigned int
|
|
6365
|
+
vec_blend(__vector unsigned int __a, __vector unsigned int __b,
|
|
6366
|
+
__vector signed int __c) {
|
|
6367
|
+
return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed int)0));
|
|
6368
|
+
}
|
|
6369
|
+
|
|
6370
|
+
static inline __ATTRS_o_ai __vector signed long long
|
|
6371
|
+
vec_blend(__vector signed long long __a, __vector signed long long __b,
|
|
6372
|
+
__vector signed long long __c) {
|
|
6373
|
+
return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed long long)0));
|
|
6374
|
+
}
|
|
6375
|
+
|
|
6376
|
+
static inline __ATTRS_o_ai __vector __bool long long
|
|
6377
|
+
vec_blend(__vector __bool long long __a, __vector __bool long long __b,
|
|
6378
|
+
__vector signed long long __c) {
|
|
6379
|
+
return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed long long)0));
|
|
6380
|
+
}
|
|
6381
|
+
|
|
6382
|
+
static inline __ATTRS_o_ai __vector unsigned long long
|
|
6383
|
+
vec_blend(__vector unsigned long long __a, __vector unsigned long long __b,
|
|
6384
|
+
__vector signed long long __c) {
|
|
6385
|
+
return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed long long)0));
|
|
6386
|
+
}
|
|
6387
|
+
|
|
6388
|
+
static inline __ATTRS_o_ai __vector signed __int128
|
|
6389
|
+
vec_blend(__vector signed __int128 __a, __vector signed __int128 __b,
|
|
6390
|
+
__vector signed __int128 __c) {
|
|
6391
|
+
return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed __int128)0));
|
|
6392
|
+
}
|
|
6393
|
+
|
|
6394
|
+
static inline __ATTRS_o_ai __vector __bool __int128
|
|
6395
|
+
vec_blend(__vector __bool __int128 __a, __vector __bool __int128 __b,
|
|
6396
|
+
__vector signed __int128 __c) {
|
|
6397
|
+
return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed __int128)0));
|
|
6398
|
+
}
|
|
6399
|
+
|
|
6400
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
6401
|
+
vec_blend(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
|
|
6402
|
+
__vector signed __int128 __c) {
|
|
6403
|
+
return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed __int128)0));
|
|
6404
|
+
}
|
|
6405
|
+
|
|
6406
|
+
static inline __ATTRS_o_ai __vector float
|
|
6407
|
+
vec_blend(__vector float __a, __vector float __b,
|
|
6408
|
+
__vector signed int __c) {
|
|
6409
|
+
return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed int)0));
|
|
6410
|
+
}
|
|
6411
|
+
|
|
6412
|
+
static inline __ATTRS_o_ai __vector double
|
|
6413
|
+
vec_blend(__vector double __a, __vector double __b,
|
|
6414
|
+
__vector signed long long __c) {
|
|
6415
|
+
return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed long long)0));
|
|
6416
|
+
}
|
|
6417
|
+
#endif
|
|
6418
|
+
|
|
6419
|
+
/*-- vec_and ---------------------------------------------------------------*/
|
|
6420
|
+
|
|
6421
|
+
static inline __ATTRS_o_ai __vector __bool char
|
|
6422
|
+
vec_and(__vector __bool char __a, __vector __bool char __b) {
|
|
6423
|
+
return __a & __b;
|
|
6424
|
+
}
|
|
6425
|
+
|
|
6426
|
+
static inline __ATTRS_o_ai __vector signed char
|
|
6427
|
+
vec_and(__vector signed char __a, __vector signed char __b) {
|
|
6428
|
+
return __a & __b;
|
|
6429
|
+
}
|
|
6430
|
+
|
|
6431
|
+
static inline __ATTRS_o_ai __vector unsigned char
|
|
6432
|
+
vec_and(__vector unsigned char __a, __vector unsigned char __b) {
|
|
6433
|
+
return __a & __b;
|
|
6434
|
+
}
|
|
6435
|
+
|
|
6436
|
+
static inline __ATTRS_o_ai __vector __bool short
|
|
6437
|
+
vec_and(__vector __bool short __a, __vector __bool short __b) {
|
|
6438
|
+
return __a & __b;
|
|
6439
|
+
}
|
|
6440
|
+
|
|
6441
|
+
static inline __ATTRS_o_ai __vector signed short
|
|
6442
|
+
vec_and(__vector signed short __a, __vector signed short __b) {
|
|
6443
|
+
return __a & __b;
|
|
6444
|
+
}
|
|
6445
|
+
|
|
6446
|
+
static inline __ATTRS_o_ai __vector unsigned short
|
|
6447
|
+
vec_and(__vector unsigned short __a, __vector unsigned short __b) {
|
|
6448
|
+
return __a & __b;
|
|
6449
|
+
}
|
|
6450
|
+
|
|
6451
|
+
static inline __ATTRS_o_ai __vector __bool int
|
|
6452
|
+
vec_and(__vector __bool int __a, __vector __bool int __b) {
|
|
6453
|
+
return __a & __b;
|
|
6454
|
+
}
|
|
6455
|
+
|
|
6456
|
+
static inline __ATTRS_o_ai __vector signed int
|
|
6457
|
+
vec_and(__vector signed int __a, __vector signed int __b) {
|
|
6458
|
+
return __a & __b;
|
|
6459
|
+
}
|
|
6460
|
+
|
|
6461
|
+
static inline __ATTRS_o_ai __vector unsigned int
|
|
6462
|
+
vec_and(__vector unsigned int __a, __vector unsigned int __b) {
|
|
6463
|
+
return __a & __b;
|
|
6464
|
+
}
|
|
6465
|
+
|
|
6466
|
+
static inline __ATTRS_o_ai __vector __bool long long
|
|
6467
|
+
vec_and(__vector __bool long long __a, __vector __bool long long __b) {
|
|
6468
|
+
return __a & __b;
|
|
6469
|
+
}
|
|
6470
|
+
|
|
6471
|
+
static inline __ATTRS_o_ai __vector signed long long
|
|
6472
|
+
vec_and(__vector signed long long __a, __vector signed long long __b) {
|
|
6473
|
+
return __a & __b;
|
|
6474
|
+
}
|
|
6475
|
+
|
|
6476
|
+
static inline __ATTRS_o_ai __vector unsigned long long
|
|
6477
|
+
vec_and(__vector unsigned long long __a, __vector unsigned long long __b) {
|
|
6478
|
+
return __a & __b;
|
|
6479
|
+
}
|
|
6480
|
+
|
|
6481
|
+
static inline __ATTRS_o_ai __vector __bool __int128
|
|
6482
|
+
vec_and(__vector __bool __int128 __a, __vector __bool __int128 __b) {
|
|
6483
|
+
return __a & __b;
|
|
6484
|
+
}
|
|
6485
|
+
|
|
6486
|
+
static inline __ATTRS_o_ai __vector signed __int128
|
|
6487
|
+
vec_and(__vector signed __int128 __a, __vector signed __int128 __b) {
|
|
6488
|
+
return __a & __b;
|
|
6489
|
+
}
|
|
6490
|
+
|
|
6491
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
6492
|
+
vec_and(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
|
|
6493
|
+
return __a & __b;
|
|
6494
|
+
}
|
|
6495
|
+
|
|
6496
|
+
#if __ARCH__ >= 12
|
|
6497
|
+
static inline __ATTRS_o_ai __vector float
|
|
6498
|
+
vec_and(__vector float __a, __vector float __b) {
|
|
6499
|
+
return (__vector float)((__vector unsigned int)__a &
|
|
6500
|
+
(__vector unsigned int)__b);
|
|
6501
|
+
}
|
|
6502
|
+
#endif
|
|
6503
|
+
|
|
6504
|
+
static inline __ATTRS_o_ai __vector double
|
|
6505
|
+
vec_and(__vector double __a, __vector double __b) {
|
|
6506
|
+
return (__vector double)((__vector unsigned long long)__a &
|
|
6507
|
+
(__vector unsigned long long)__b);
|
|
6508
|
+
}
|
|
6509
|
+
|
|
6510
|
+
/*-- vec_or ----------------------------------------------------------------*/
|
|
6511
|
+
|
|
6512
|
+
static inline __ATTRS_o_ai __vector __bool char
|
|
6513
|
+
vec_or(__vector __bool char __a, __vector __bool char __b) {
|
|
6514
|
+
return __a | __b;
|
|
6515
|
+
}
|
|
6516
|
+
|
|
6517
|
+
static inline __ATTRS_o_ai __vector signed char
|
|
6518
|
+
vec_or(__vector signed char __a, __vector signed char __b) {
|
|
6519
|
+
return __a | __b;
|
|
6520
|
+
}
|
|
6521
|
+
|
|
6522
|
+
static inline __ATTRS_o_ai __vector unsigned char
|
|
6523
|
+
vec_or(__vector unsigned char __a, __vector unsigned char __b) {
|
|
6524
|
+
return __a | __b;
|
|
6525
|
+
}
|
|
6526
|
+
|
|
6527
|
+
static inline __ATTRS_o_ai __vector __bool short
|
|
6528
|
+
vec_or(__vector __bool short __a, __vector __bool short __b) {
|
|
6529
|
+
return __a | __b;
|
|
6530
|
+
}
|
|
6531
|
+
|
|
6532
|
+
static inline __ATTRS_o_ai __vector signed short
|
|
6533
|
+
vec_or(__vector signed short __a, __vector signed short __b) {
|
|
6534
|
+
return __a | __b;
|
|
6535
|
+
}
|
|
6536
|
+
|
|
6537
|
+
static inline __ATTRS_o_ai __vector unsigned short
|
|
6538
|
+
vec_or(__vector unsigned short __a, __vector unsigned short __b) {
|
|
6539
|
+
return __a | __b;
|
|
6540
|
+
}
|
|
6541
|
+
|
|
6542
|
+
static inline __ATTRS_o_ai __vector __bool int
|
|
6543
|
+
vec_or(__vector __bool int __a, __vector __bool int __b) {
|
|
6544
|
+
return __a | __b;
|
|
6545
|
+
}
|
|
6546
|
+
|
|
6547
|
+
static inline __ATTRS_o_ai __vector signed int
|
|
6548
|
+
vec_or(__vector signed int __a, __vector signed int __b) {
|
|
6549
|
+
return __a | __b;
|
|
6550
|
+
}
|
|
6551
|
+
|
|
6552
|
+
static inline __ATTRS_o_ai __vector unsigned int
|
|
6553
|
+
vec_or(__vector unsigned int __a, __vector unsigned int __b) {
|
|
6554
|
+
return __a | __b;
|
|
6555
|
+
}
|
|
6556
|
+
|
|
6557
|
+
static inline __ATTRS_o_ai __vector __bool long long
|
|
6558
|
+
vec_or(__vector __bool long long __a, __vector __bool long long __b) {
|
|
6559
|
+
return __a | __b;
|
|
6560
|
+
}
|
|
6561
|
+
|
|
6562
|
+
static inline __ATTRS_o_ai __vector signed long long
|
|
6563
|
+
vec_or(__vector signed long long __a, __vector signed long long __b) {
|
|
6564
|
+
return __a | __b;
|
|
6565
|
+
}
|
|
6566
|
+
|
|
6567
|
+
static inline __ATTRS_o_ai __vector unsigned long long
|
|
6568
|
+
vec_or(__vector unsigned long long __a, __vector unsigned long long __b) {
|
|
6569
|
+
return __a | __b;
|
|
6570
|
+
}
|
|
6571
|
+
|
|
6572
|
+
static inline __ATTRS_o_ai __vector __bool __int128
|
|
6573
|
+
vec_or(__vector __bool __int128 __a, __vector __bool __int128 __b) {
|
|
6574
|
+
return __a | __b;
|
|
6575
|
+
}
|
|
6576
|
+
|
|
6577
|
+
static inline __ATTRS_o_ai __vector signed __int128
|
|
6578
|
+
vec_or(__vector signed __int128 __a, __vector signed __int128 __b) {
|
|
6579
|
+
return __a | __b;
|
|
6580
|
+
}
|
|
6581
|
+
|
|
6582
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
6583
|
+
vec_or(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
|
|
6584
|
+
return __a | __b;
|
|
6585
|
+
}
|
|
6586
|
+
|
|
6587
|
+
#if __ARCH__ >= 12
|
|
6588
|
+
static inline __ATTRS_o_ai __vector float
|
|
6589
|
+
vec_or(__vector float __a, __vector float __b) {
|
|
6590
|
+
return (__vector float)((__vector unsigned int)__a |
|
|
6591
|
+
(__vector unsigned int)__b);
|
|
6592
|
+
}
|
|
6593
|
+
#endif
|
|
6594
|
+
|
|
6595
|
+
static inline __ATTRS_o_ai __vector double
|
|
6596
|
+
vec_or(__vector double __a, __vector double __b) {
|
|
6597
|
+
return (__vector double)((__vector unsigned long long)__a |
|
|
6598
|
+
(__vector unsigned long long)__b);
|
|
6599
|
+
}
|
|
6600
|
+
|
|
6601
|
+
/*-- vec_xor ----------------------------------------------------------------*/
|
|
6602
|
+
|
|
6603
|
+
static inline __ATTRS_o_ai __vector __bool char
|
|
6604
|
+
vec_xor(__vector __bool char __a, __vector __bool char __b) {
|
|
6605
|
+
return __a ^ __b;
|
|
6606
|
+
}
|
|
6607
|
+
|
|
6608
|
+
static inline __ATTRS_o_ai __vector signed char
|
|
6609
|
+
vec_xor(__vector signed char __a, __vector signed char __b) {
|
|
6610
|
+
return __a ^ __b;
|
|
6611
|
+
}
|
|
6612
|
+
|
|
6613
|
+
static inline __ATTRS_o_ai __vector unsigned char
|
|
6614
|
+
vec_xor(__vector unsigned char __a, __vector unsigned char __b) {
|
|
6615
|
+
return __a ^ __b;
|
|
6616
|
+
}
|
|
6617
|
+
|
|
6618
|
+
static inline __ATTRS_o_ai __vector __bool short
|
|
6619
|
+
vec_xor(__vector __bool short __a, __vector __bool short __b) {
|
|
6620
|
+
return __a ^ __b;
|
|
6621
|
+
}
|
|
6622
|
+
|
|
6623
|
+
static inline __ATTRS_o_ai __vector signed short
|
|
6624
|
+
vec_xor(__vector signed short __a, __vector signed short __b) {
|
|
6625
|
+
return __a ^ __b;
|
|
6626
|
+
}
|
|
6627
|
+
|
|
6628
|
+
static inline __ATTRS_o_ai __vector unsigned short
|
|
6629
|
+
vec_xor(__vector unsigned short __a, __vector unsigned short __b) {
|
|
6630
|
+
return __a ^ __b;
|
|
6631
|
+
}
|
|
6632
|
+
|
|
6633
|
+
static inline __ATTRS_o_ai __vector __bool int
|
|
6634
|
+
vec_xor(__vector __bool int __a, __vector __bool int __b) {
|
|
6635
|
+
return __a ^ __b;
|
|
6636
|
+
}
|
|
6637
|
+
|
|
6638
|
+
static inline __ATTRS_o_ai __vector signed int
|
|
6639
|
+
vec_xor(__vector signed int __a, __vector signed int __b) {
|
|
6640
|
+
return __a ^ __b;
|
|
6641
|
+
}
|
|
6642
|
+
|
|
6643
|
+
static inline __ATTRS_o_ai __vector unsigned int
|
|
6644
|
+
vec_xor(__vector unsigned int __a, __vector unsigned int __b) {
|
|
6645
|
+
return __a ^ __b;
|
|
6646
|
+
}
|
|
6647
|
+
|
|
6648
|
+
static inline __ATTRS_o_ai __vector __bool long long
|
|
6649
|
+
vec_xor(__vector __bool long long __a, __vector __bool long long __b) {
|
|
6650
|
+
return __a ^ __b;
|
|
6651
|
+
}
|
|
6652
|
+
|
|
6653
|
+
static inline __ATTRS_o_ai __vector signed long long
|
|
6654
|
+
vec_xor(__vector signed long long __a, __vector signed long long __b) {
|
|
6655
|
+
return __a ^ __b;
|
|
6656
|
+
}
|
|
6657
|
+
|
|
6658
|
+
static inline __ATTRS_o_ai __vector unsigned long long
|
|
6659
|
+
vec_xor(__vector unsigned long long __a, __vector unsigned long long __b) {
|
|
6660
|
+
return __a ^ __b;
|
|
6661
|
+
}
|
|
5757
6662
|
|
|
5758
|
-
|
|
5759
|
-
|
|
5760
|
-
|
|
5761
|
-
int __cc;
|
|
5762
|
-
__builtin_s390_vftcisb(__a, 15, &__cc);
|
|
5763
|
-
return __cc != 3;
|
|
6663
|
+
static inline __ATTRS_o_ai __vector __bool __int128
|
|
6664
|
+
vec_xor(__vector __bool __int128 __a, __vector __bool __int128 __b) {
|
|
6665
|
+
return __a ^ __b;
|
|
5764
6666
|
}
|
|
5765
|
-
#endif
|
|
5766
6667
|
|
|
5767
|
-
static inline __ATTRS_o_ai
|
|
5768
|
-
|
|
5769
|
-
|
|
5770
|
-
__builtin_s390_vftcidb(__a, 15, &__cc);
|
|
5771
|
-
return __cc != 3;
|
|
6668
|
+
static inline __ATTRS_o_ai __vector signed __int128
|
|
6669
|
+
vec_xor(__vector signed __int128 __a, __vector signed __int128 __b) {
|
|
6670
|
+
return __a ^ __b;
|
|
5772
6671
|
}
|
|
5773
6672
|
|
|
5774
|
-
|
|
6673
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
6674
|
+
vec_xor(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
|
|
6675
|
+
return __a ^ __b;
|
|
6676
|
+
}
|
|
5775
6677
|
|
|
5776
6678
|
#if __ARCH__ >= 12
|
|
5777
|
-
static inline __ATTRS_o_ai
|
|
5778
|
-
|
|
5779
|
-
int
|
|
5780
|
-
|
|
5781
|
-
return __cc != 0;
|
|
6679
|
+
static inline __ATTRS_o_ai __vector float
|
|
6680
|
+
vec_xor(__vector float __a, __vector float __b) {
|
|
6681
|
+
return (__vector float)((__vector unsigned int)__a ^
|
|
6682
|
+
(__vector unsigned int)__b);
|
|
5782
6683
|
}
|
|
5783
6684
|
#endif
|
|
5784
6685
|
|
|
5785
|
-
static inline __ATTRS_o_ai
|
|
5786
|
-
|
|
5787
|
-
|
|
5788
|
-
|
|
5789
|
-
return __cc != 0;
|
|
6686
|
+
static inline __ATTRS_o_ai __vector double
|
|
6687
|
+
vec_xor(__vector double __a, __vector double __b) {
|
|
6688
|
+
return (__vector double)((__vector unsigned long long)__a ^
|
|
6689
|
+
(__vector unsigned long long)__b);
|
|
5790
6690
|
}
|
|
5791
6691
|
|
|
5792
6692
|
/*-- vec_andc ---------------------------------------------------------------*/
|
|
@@ -5947,6 +6847,21 @@ vec_andc(__vector unsigned long long __a, __vector __bool long long __b) {
|
|
|
5947
6847
|
return __a & ~__b;
|
|
5948
6848
|
}
|
|
5949
6849
|
|
|
6850
|
+
static inline __ATTRS_o_ai __vector __bool __int128
|
|
6851
|
+
vec_andc(__vector __bool __int128 __a, __vector __bool __int128 __b) {
|
|
6852
|
+
return __a & ~__b;
|
|
6853
|
+
}
|
|
6854
|
+
|
|
6855
|
+
static inline __ATTRS_o_ai __vector signed __int128
|
|
6856
|
+
vec_andc(__vector signed __int128 __a, __vector signed __int128 __b) {
|
|
6857
|
+
return __a & ~__b;
|
|
6858
|
+
}
|
|
6859
|
+
|
|
6860
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
6861
|
+
vec_andc(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
|
|
6862
|
+
return __a & ~__b;
|
|
6863
|
+
}
|
|
6864
|
+
|
|
5950
6865
|
#if __ARCH__ >= 12
|
|
5951
6866
|
static inline __ATTRS_o_ai __vector float
|
|
5952
6867
|
vec_andc(__vector float __a, __vector float __b) {
|
|
@@ -6133,6 +7048,21 @@ vec_nor(__vector unsigned long long __a, __vector __bool long long __b) {
|
|
|
6133
7048
|
return ~(__a | __b);
|
|
6134
7049
|
}
|
|
6135
7050
|
|
|
7051
|
+
static inline __ATTRS_o_ai __vector __bool __int128
|
|
7052
|
+
vec_nor(__vector __bool __int128 __a, __vector __bool __int128 __b) {
|
|
7053
|
+
return ~(__a | __b);
|
|
7054
|
+
}
|
|
7055
|
+
|
|
7056
|
+
static inline __ATTRS_o_ai __vector signed __int128
|
|
7057
|
+
vec_nor(__vector signed __int128 __a, __vector signed __int128 __b) {
|
|
7058
|
+
return ~(__a | __b);
|
|
7059
|
+
}
|
|
7060
|
+
|
|
7061
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
7062
|
+
vec_nor(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
|
|
7063
|
+
return ~(__a | __b);
|
|
7064
|
+
}
|
|
7065
|
+
|
|
6136
7066
|
#if __ARCH__ >= 12
|
|
6137
7067
|
static inline __ATTRS_o_ai __vector float
|
|
6138
7068
|
vec_nor(__vector float __a, __vector float __b) {
|
|
@@ -6224,6 +7154,21 @@ vec_orc(__vector unsigned long long __a, __vector unsigned long long __b) {
|
|
|
6224
7154
|
return __a | ~__b;
|
|
6225
7155
|
}
|
|
6226
7156
|
|
|
7157
|
+
static inline __ATTRS_o_ai __vector __bool __int128
|
|
7158
|
+
vec_orc(__vector __bool __int128 __a, __vector __bool __int128 __b) {
|
|
7159
|
+
return __a | ~__b;
|
|
7160
|
+
}
|
|
7161
|
+
|
|
7162
|
+
static inline __ATTRS_o_ai __vector signed __int128
|
|
7163
|
+
vec_orc(__vector signed __int128 __a, __vector signed __int128 __b) {
|
|
7164
|
+
return __a | ~__b;
|
|
7165
|
+
}
|
|
7166
|
+
|
|
7167
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
7168
|
+
vec_orc(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
|
|
7169
|
+
return __a | ~__b;
|
|
7170
|
+
}
|
|
7171
|
+
|
|
6227
7172
|
static inline __ATTRS_o_ai __vector float
|
|
6228
7173
|
vec_orc(__vector float __a, __vector float __b) {
|
|
6229
7174
|
return (__vector float)((__vector unsigned int)__a |
|
|
@@ -6300,6 +7245,21 @@ vec_nand(__vector unsigned long long __a, __vector unsigned long long __b) {
|
|
|
6300
7245
|
return ~(__a & __b);
|
|
6301
7246
|
}
|
|
6302
7247
|
|
|
7248
|
+
static inline __ATTRS_o_ai __vector __bool __int128
|
|
7249
|
+
vec_nand(__vector __bool __int128 __a, __vector __bool __int128 __b) {
|
|
7250
|
+
return ~(__a & __b);
|
|
7251
|
+
}
|
|
7252
|
+
|
|
7253
|
+
static inline __ATTRS_o_ai __vector signed __int128
|
|
7254
|
+
vec_nand(__vector signed __int128 __a, __vector signed __int128 __b) {
|
|
7255
|
+
return ~(__a & __b);
|
|
7256
|
+
}
|
|
7257
|
+
|
|
7258
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
7259
|
+
vec_nand(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
|
|
7260
|
+
return ~(__a & __b);
|
|
7261
|
+
}
|
|
7262
|
+
|
|
6303
7263
|
static inline __ATTRS_o_ai __vector float
|
|
6304
7264
|
vec_nand(__vector float __a, __vector float __b) {
|
|
6305
7265
|
return (__vector float)~((__vector unsigned int)__a &
|
|
@@ -6376,6 +7336,21 @@ vec_eqv(__vector unsigned long long __a, __vector unsigned long long __b) {
|
|
|
6376
7336
|
return ~(__a ^ __b);
|
|
6377
7337
|
}
|
|
6378
7338
|
|
|
7339
|
+
static inline __ATTRS_o_ai __vector __bool __int128
|
|
7340
|
+
vec_eqv(__vector __bool __int128 __a, __vector __bool __int128 __b) {
|
|
7341
|
+
return ~(__a ^ __b);
|
|
7342
|
+
}
|
|
7343
|
+
|
|
7344
|
+
static inline __ATTRS_o_ai __vector signed __int128
|
|
7345
|
+
vec_eqv(__vector signed __int128 __a, __vector signed __int128 __b) {
|
|
7346
|
+
return ~(__a ^ __b);
|
|
7347
|
+
}
|
|
7348
|
+
|
|
7349
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
7350
|
+
vec_eqv(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
|
|
7351
|
+
return ~(__a ^ __b);
|
|
7352
|
+
}
|
|
7353
|
+
|
|
6379
7354
|
static inline __ATTRS_o_ai __vector float
|
|
6380
7355
|
vec_eqv(__vector float __a, __vector float __b) {
|
|
6381
7356
|
return (__vector float)~((__vector unsigned int)__a ^
|
|
@@ -6389,6 +7364,91 @@ vec_eqv(__vector double __a, __vector double __b) {
|
|
|
6389
7364
|
}
|
|
6390
7365
|
#endif
|
|
6391
7366
|
|
|
7367
|
+
/*-- vec_evaluate -----------------------------------------------------------*/
|
|
7368
|
+
|
|
7369
|
+
#if __ARCH__ >= 15
|
|
7370
|
+
extern __ATTRS_o __vector signed char
|
|
7371
|
+
vec_evaluate(__vector signed char __a, __vector signed char __b,
|
|
7372
|
+
__vector signed char __c, unsigned char __d)
|
|
7373
|
+
__constant(__d);
|
|
7374
|
+
|
|
7375
|
+
extern __ATTRS_o __vector unsigned char
|
|
7376
|
+
vec_evaluate(__vector unsigned char __a, __vector unsigned char __b,
|
|
7377
|
+
__vector unsigned char __c, unsigned char __d)
|
|
7378
|
+
__constant(__d);
|
|
7379
|
+
|
|
7380
|
+
extern __ATTRS_o __vector __bool char
|
|
7381
|
+
vec_evaluate(__vector __bool char __a, __vector __bool char __b,
|
|
7382
|
+
__vector __bool char __c, unsigned char __d)
|
|
7383
|
+
__constant(__d);
|
|
7384
|
+
|
|
7385
|
+
extern __ATTRS_o __vector signed short
|
|
7386
|
+
vec_evaluate(__vector signed short __a, __vector signed short __b,
|
|
7387
|
+
__vector signed short __c, unsigned char __d)
|
|
7388
|
+
__constant(__d);
|
|
7389
|
+
|
|
7390
|
+
extern __ATTRS_o __vector unsigned short
|
|
7391
|
+
vec_evaluate(__vector unsigned short __a, __vector unsigned short __b,
|
|
7392
|
+
__vector unsigned short __c, unsigned char __d)
|
|
7393
|
+
__constant(__d);
|
|
7394
|
+
|
|
7395
|
+
extern __ATTRS_o __vector __bool short
|
|
7396
|
+
vec_evaluate(__vector __bool short __a, __vector __bool short __b,
|
|
7397
|
+
__vector __bool short __c, unsigned char __d)
|
|
7398
|
+
__constant(__d);
|
|
7399
|
+
|
|
7400
|
+
extern __ATTRS_o __vector signed int
|
|
7401
|
+
vec_evaluate(__vector signed int __a, __vector signed int __b,
|
|
7402
|
+
__vector signed int __c, unsigned char __d)
|
|
7403
|
+
__constant(__d);
|
|
7404
|
+
|
|
7405
|
+
extern __ATTRS_o __vector unsigned int
|
|
7406
|
+
vec_evaluate(__vector unsigned int __a, __vector unsigned int __b,
|
|
7407
|
+
__vector unsigned int __c, unsigned char __d)
|
|
7408
|
+
__constant(__d);
|
|
7409
|
+
|
|
7410
|
+
extern __ATTRS_o __vector __bool int
|
|
7411
|
+
vec_evaluate(__vector __bool int __a, __vector __bool int __b,
|
|
7412
|
+
__vector __bool int __c, unsigned char __d)
|
|
7413
|
+
__constant(__d);
|
|
7414
|
+
|
|
7415
|
+
extern __ATTRS_o __vector signed long long
|
|
7416
|
+
vec_evaluate(__vector signed long long __a, __vector signed long long __b,
|
|
7417
|
+
__vector signed long long __c, unsigned char __d)
|
|
7418
|
+
__constant(__d);
|
|
7419
|
+
|
|
7420
|
+
extern __ATTRS_o __vector unsigned long long
|
|
7421
|
+
vec_evaluate(__vector unsigned long long __a, __vector unsigned long long __b,
|
|
7422
|
+
__vector unsigned long long __c, unsigned char __d)
|
|
7423
|
+
__constant(__d);
|
|
7424
|
+
|
|
7425
|
+
extern __ATTRS_o __vector __bool long long
|
|
7426
|
+
vec_evaluate(__vector __bool long long __a, __vector __bool long long __b,
|
|
7427
|
+
__vector __bool long long __c, unsigned char __d)
|
|
7428
|
+
__constant(__d);
|
|
7429
|
+
|
|
7430
|
+
extern __ATTRS_o __vector signed __int128
|
|
7431
|
+
vec_evaluate(__vector signed __int128 __a, __vector signed __int128 __b,
|
|
7432
|
+
__vector signed __int128 __c, unsigned char __d)
|
|
7433
|
+
__constant(__d);
|
|
7434
|
+
|
|
7435
|
+
extern __ATTRS_o __vector unsigned __int128
|
|
7436
|
+
vec_evaluate(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
|
|
7437
|
+
__vector unsigned __int128 __c, unsigned char __d)
|
|
7438
|
+
__constant(__d);
|
|
7439
|
+
|
|
7440
|
+
extern __ATTRS_o __vector __bool __int128
|
|
7441
|
+
vec_evaluate(__vector __bool __int128 __a, __vector __bool __int128 __b,
|
|
7442
|
+
__vector __bool __int128 __c, unsigned char __d)
|
|
7443
|
+
__constant(__d);
|
|
7444
|
+
|
|
7445
|
+
#define vec_evaluate(A, B, C, D) \
|
|
7446
|
+
((__typeof__((vec_evaluate)((A), (B), (C), (D)))) \
|
|
7447
|
+
__builtin_s390_veval((__vector unsigned char)(A), \
|
|
7448
|
+
(__vector unsigned char)(B), \
|
|
7449
|
+
(__vector unsigned char)(C), (D)))
|
|
7450
|
+
#endif
|
|
7451
|
+
|
|
6392
7452
|
/*-- vec_cntlz --------------------------------------------------------------*/
|
|
6393
7453
|
|
|
6394
7454
|
static inline __ATTRS_o_ai __vector unsigned char
|
|
@@ -6431,6 +7491,20 @@ vec_cntlz(__vector unsigned long long __a) {
|
|
|
6431
7491
|
return __builtin_s390_vclzg(__a);
|
|
6432
7492
|
}
|
|
6433
7493
|
|
|
7494
|
+
#if __ARCH__ >= 15
|
|
7495
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
7496
|
+
vec_cntlz(__vector signed __int128 __a) {
|
|
7497
|
+
return (__vector unsigned __int128)
|
|
7498
|
+
__builtin_s390_vclzq((unsigned __int128)__a);
|
|
7499
|
+
}
|
|
7500
|
+
|
|
7501
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
7502
|
+
vec_cntlz(__vector unsigned __int128 __a) {
|
|
7503
|
+
return (__vector unsigned __int128)
|
|
7504
|
+
__builtin_s390_vclzq((unsigned __int128)__a);
|
|
7505
|
+
}
|
|
7506
|
+
#endif
|
|
7507
|
+
|
|
6434
7508
|
/*-- vec_cnttz --------------------------------------------------------------*/
|
|
6435
7509
|
|
|
6436
7510
|
static inline __ATTRS_o_ai __vector unsigned char
|
|
@@ -6473,46 +7547,60 @@ vec_cnttz(__vector unsigned long long __a) {
|
|
|
6473
7547
|
return __builtin_s390_vctzg(__a);
|
|
6474
7548
|
}
|
|
6475
7549
|
|
|
7550
|
+
#if __ARCH__ >= 15
|
|
7551
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
7552
|
+
vec_cnttz(__vector signed __int128 __a) {
|
|
7553
|
+
return (__vector unsigned __int128)
|
|
7554
|
+
__builtin_s390_vctzq((unsigned __int128)__a);
|
|
7555
|
+
}
|
|
7556
|
+
|
|
7557
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
7558
|
+
vec_cnttz(__vector unsigned __int128 __a) {
|
|
7559
|
+
return (__vector unsigned __int128)
|
|
7560
|
+
__builtin_s390_vctzq((unsigned __int128)__a);
|
|
7561
|
+
}
|
|
7562
|
+
#endif
|
|
7563
|
+
|
|
6476
7564
|
/*-- vec_popcnt -------------------------------------------------------------*/
|
|
6477
7565
|
|
|
6478
7566
|
static inline __ATTRS_o_ai __vector unsigned char
|
|
6479
7567
|
vec_popcnt(__vector signed char __a) {
|
|
6480
|
-
return
|
|
7568
|
+
return __builtin_elementwise_popcount((__vector unsigned char)__a);
|
|
6481
7569
|
}
|
|
6482
7570
|
|
|
6483
7571
|
static inline __ATTRS_o_ai __vector unsigned char
|
|
6484
7572
|
vec_popcnt(__vector unsigned char __a) {
|
|
6485
|
-
return
|
|
7573
|
+
return __builtin_elementwise_popcount(__a);
|
|
6486
7574
|
}
|
|
6487
7575
|
|
|
6488
7576
|
static inline __ATTRS_o_ai __vector unsigned short
|
|
6489
7577
|
vec_popcnt(__vector signed short __a) {
|
|
6490
|
-
return
|
|
7578
|
+
return __builtin_elementwise_popcount((__vector unsigned short)__a);
|
|
6491
7579
|
}
|
|
6492
7580
|
|
|
6493
7581
|
static inline __ATTRS_o_ai __vector unsigned short
|
|
6494
7582
|
vec_popcnt(__vector unsigned short __a) {
|
|
6495
|
-
return
|
|
7583
|
+
return __builtin_elementwise_popcount(__a);
|
|
6496
7584
|
}
|
|
6497
7585
|
|
|
6498
7586
|
static inline __ATTRS_o_ai __vector unsigned int
|
|
6499
7587
|
vec_popcnt(__vector signed int __a) {
|
|
6500
|
-
return
|
|
7588
|
+
return __builtin_elementwise_popcount((__vector unsigned int)__a);
|
|
6501
7589
|
}
|
|
6502
7590
|
|
|
6503
7591
|
static inline __ATTRS_o_ai __vector unsigned int
|
|
6504
7592
|
vec_popcnt(__vector unsigned int __a) {
|
|
6505
|
-
return
|
|
7593
|
+
return __builtin_elementwise_popcount(__a);
|
|
6506
7594
|
}
|
|
6507
7595
|
|
|
6508
7596
|
static inline __ATTRS_o_ai __vector unsigned long long
|
|
6509
7597
|
vec_popcnt(__vector signed long long __a) {
|
|
6510
|
-
return
|
|
7598
|
+
return __builtin_elementwise_popcount((__vector unsigned long long)__a);
|
|
6511
7599
|
}
|
|
6512
7600
|
|
|
6513
7601
|
static inline __ATTRS_o_ai __vector unsigned long long
|
|
6514
7602
|
vec_popcnt(__vector unsigned long long __a) {
|
|
6515
|
-
return
|
|
7603
|
+
return __builtin_elementwise_popcount(__a);
|
|
6516
7604
|
}
|
|
6517
7605
|
|
|
6518
7606
|
/*-- vec_rl -----------------------------------------------------------------*/
|
|
@@ -6904,8 +7992,21 @@ vec_sll(__vector unsigned long long __a, __vector unsigned int __b) {
|
|
|
6904
7992
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
6905
7993
|
}
|
|
6906
7994
|
|
|
7995
|
+
static inline __ATTRS_o_ai __vector signed __int128
|
|
7996
|
+
vec_sll(__vector signed __int128 __a, __vector unsigned char __b) {
|
|
7997
|
+
return (__vector signed __int128)__builtin_s390_vsl(
|
|
7998
|
+
(__vector unsigned char)__a, __b);
|
|
7999
|
+
}
|
|
8000
|
+
|
|
8001
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
8002
|
+
vec_sll(__vector unsigned __int128 __a, __vector unsigned char __b) {
|
|
8003
|
+
return (__vector unsigned __int128)__builtin_s390_vsl(
|
|
8004
|
+
(__vector unsigned char)__a, __b);
|
|
8005
|
+
}
|
|
8006
|
+
|
|
6907
8007
|
/*-- vec_slb ----------------------------------------------------------------*/
|
|
6908
8008
|
|
|
8009
|
+
// This prototype is deprecated.
|
|
6909
8010
|
static inline __ATTRS_o_ai __vector signed char
|
|
6910
8011
|
vec_slb(__vector signed char __a, __vector signed char __b) {
|
|
6911
8012
|
return (__vector signed char)__builtin_s390_vslb(
|
|
@@ -6918,6 +8019,7 @@ vec_slb(__vector signed char __a, __vector unsigned char __b) {
|
|
|
6918
8019
|
(__vector unsigned char)__a, __b);
|
|
6919
8020
|
}
|
|
6920
8021
|
|
|
8022
|
+
// This prototype is deprecated.
|
|
6921
8023
|
static inline __ATTRS_o_ai __vector unsigned char
|
|
6922
8024
|
vec_slb(__vector unsigned char __a, __vector signed char __b) {
|
|
6923
8025
|
return __builtin_s390_vslb(__a, (__vector unsigned char)__b);
|
|
@@ -6928,110 +8030,187 @@ vec_slb(__vector unsigned char __a, __vector unsigned char __b) {
|
|
|
6928
8030
|
return __builtin_s390_vslb(__a, __b);
|
|
6929
8031
|
}
|
|
6930
8032
|
|
|
8033
|
+
// This prototype is deprecated.
|
|
6931
8034
|
static inline __ATTRS_o_ai __vector signed short
|
|
6932
8035
|
vec_slb(__vector signed short __a, __vector signed short __b) {
|
|
6933
8036
|
return (__vector signed short)__builtin_s390_vslb(
|
|
6934
8037
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
6935
8038
|
}
|
|
6936
8039
|
|
|
8040
|
+
// This prototype is deprecated.
|
|
6937
8041
|
static inline __ATTRS_o_ai __vector signed short
|
|
6938
8042
|
vec_slb(__vector signed short __a, __vector unsigned short __b) {
|
|
6939
8043
|
return (__vector signed short)__builtin_s390_vslb(
|
|
6940
8044
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
6941
8045
|
}
|
|
6942
8046
|
|
|
8047
|
+
static inline __ATTRS_o_ai __vector signed short
|
|
8048
|
+
vec_slb(__vector signed short __a, __vector unsigned char __b) {
|
|
8049
|
+
return (__vector signed short)__builtin_s390_vslb(
|
|
8050
|
+
(__vector unsigned char)__a, __b);
|
|
8051
|
+
}
|
|
8052
|
+
|
|
8053
|
+
// This prototype is deprecated.
|
|
6943
8054
|
static inline __ATTRS_o_ai __vector unsigned short
|
|
6944
8055
|
vec_slb(__vector unsigned short __a, __vector signed short __b) {
|
|
6945
8056
|
return (__vector unsigned short)__builtin_s390_vslb(
|
|
6946
8057
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
6947
8058
|
}
|
|
6948
8059
|
|
|
8060
|
+
// This prototype is deprecated.
|
|
6949
8061
|
static inline __ATTRS_o_ai __vector unsigned short
|
|
6950
8062
|
vec_slb(__vector unsigned short __a, __vector unsigned short __b) {
|
|
6951
8063
|
return (__vector unsigned short)__builtin_s390_vslb(
|
|
6952
8064
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
6953
8065
|
}
|
|
6954
8066
|
|
|
8067
|
+
static inline __ATTRS_o_ai __vector unsigned short
|
|
8068
|
+
vec_slb(__vector unsigned short __a, __vector unsigned char __b) {
|
|
8069
|
+
return (__vector unsigned short)__builtin_s390_vslb(
|
|
8070
|
+
(__vector unsigned char)__a, __b);
|
|
8071
|
+
}
|
|
8072
|
+
|
|
8073
|
+
// This prototype is deprecated.
|
|
6955
8074
|
static inline __ATTRS_o_ai __vector signed int
|
|
6956
8075
|
vec_slb(__vector signed int __a, __vector signed int __b) {
|
|
6957
8076
|
return (__vector signed int)__builtin_s390_vslb(
|
|
6958
8077
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
6959
8078
|
}
|
|
6960
8079
|
|
|
8080
|
+
// This prototype is deprecated.
|
|
6961
8081
|
static inline __ATTRS_o_ai __vector signed int
|
|
6962
8082
|
vec_slb(__vector signed int __a, __vector unsigned int __b) {
|
|
6963
8083
|
return (__vector signed int)__builtin_s390_vslb(
|
|
6964
8084
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
6965
8085
|
}
|
|
6966
8086
|
|
|
8087
|
+
static inline __ATTRS_o_ai __vector signed int
|
|
8088
|
+
vec_slb(__vector signed int __a, __vector unsigned char __b) {
|
|
8089
|
+
return (__vector signed int)__builtin_s390_vslb(
|
|
8090
|
+
(__vector unsigned char)__a, __b);
|
|
8091
|
+
}
|
|
8092
|
+
|
|
8093
|
+
// This prototype is deprecated.
|
|
6967
8094
|
static inline __ATTRS_o_ai __vector unsigned int
|
|
6968
8095
|
vec_slb(__vector unsigned int __a, __vector signed int __b) {
|
|
6969
8096
|
return (__vector unsigned int)__builtin_s390_vslb(
|
|
6970
8097
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
6971
8098
|
}
|
|
6972
8099
|
|
|
8100
|
+
// This prototype is deprecated.
|
|
6973
8101
|
static inline __ATTRS_o_ai __vector unsigned int
|
|
6974
8102
|
vec_slb(__vector unsigned int __a, __vector unsigned int __b) {
|
|
6975
8103
|
return (__vector unsigned int)__builtin_s390_vslb(
|
|
6976
8104
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
6977
8105
|
}
|
|
6978
8106
|
|
|
8107
|
+
static inline __ATTRS_o_ai __vector unsigned int
|
|
8108
|
+
vec_slb(__vector unsigned int __a, __vector unsigned char __b) {
|
|
8109
|
+
return (__vector unsigned int)__builtin_s390_vslb(
|
|
8110
|
+
(__vector unsigned char)__a, __b);
|
|
8111
|
+
}
|
|
8112
|
+
|
|
8113
|
+
// This prototype is deprecated.
|
|
6979
8114
|
static inline __ATTRS_o_ai __vector signed long long
|
|
6980
8115
|
vec_slb(__vector signed long long __a, __vector signed long long __b) {
|
|
6981
8116
|
return (__vector signed long long)__builtin_s390_vslb(
|
|
6982
8117
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
6983
8118
|
}
|
|
6984
8119
|
|
|
8120
|
+
// This prototype is deprecated.
|
|
6985
8121
|
static inline __ATTRS_o_ai __vector signed long long
|
|
6986
8122
|
vec_slb(__vector signed long long __a, __vector unsigned long long __b) {
|
|
6987
8123
|
return (__vector signed long long)__builtin_s390_vslb(
|
|
6988
8124
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
6989
8125
|
}
|
|
6990
8126
|
|
|
8127
|
+
static inline __ATTRS_o_ai __vector signed long long
|
|
8128
|
+
vec_slb(__vector signed long long __a, __vector unsigned char __b) {
|
|
8129
|
+
return (__vector signed long long)__builtin_s390_vslb(
|
|
8130
|
+
(__vector unsigned char)__a, __b);
|
|
8131
|
+
}
|
|
8132
|
+
|
|
8133
|
+
// This prototype is deprecated.
|
|
6991
8134
|
static inline __ATTRS_o_ai __vector unsigned long long
|
|
6992
8135
|
vec_slb(__vector unsigned long long __a, __vector signed long long __b) {
|
|
6993
8136
|
return (__vector unsigned long long)__builtin_s390_vslb(
|
|
6994
8137
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
6995
8138
|
}
|
|
6996
8139
|
|
|
8140
|
+
// This prototype is deprecated.
|
|
6997
8141
|
static inline __ATTRS_o_ai __vector unsigned long long
|
|
6998
8142
|
vec_slb(__vector unsigned long long __a, __vector unsigned long long __b) {
|
|
6999
8143
|
return (__vector unsigned long long)__builtin_s390_vslb(
|
|
7000
8144
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
7001
8145
|
}
|
|
7002
8146
|
|
|
8147
|
+
static inline __ATTRS_o_ai __vector unsigned long long
|
|
8148
|
+
vec_slb(__vector unsigned long long __a, __vector unsigned char __b) {
|
|
8149
|
+
return (__vector unsigned long long)__builtin_s390_vslb(
|
|
8150
|
+
(__vector unsigned char)__a, __b);
|
|
8151
|
+
}
|
|
8152
|
+
|
|
8153
|
+
static inline __ATTRS_o_ai __vector signed __int128
|
|
8154
|
+
vec_slb(__vector signed __int128 __a, __vector unsigned char __b) {
|
|
8155
|
+
return (__vector signed __int128)__builtin_s390_vslb(
|
|
8156
|
+
(__vector unsigned char)__a, __b);
|
|
8157
|
+
}
|
|
8158
|
+
|
|
8159
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
8160
|
+
vec_slb(__vector unsigned __int128 __a, __vector unsigned char __b) {
|
|
8161
|
+
return (__vector unsigned __int128)__builtin_s390_vslb(
|
|
8162
|
+
(__vector unsigned char)__a, __b);
|
|
8163
|
+
}
|
|
8164
|
+
|
|
7003
8165
|
#if __ARCH__ >= 12
|
|
8166
|
+
// This prototype is deprecated.
|
|
7004
8167
|
static inline __ATTRS_o_ai __vector float
|
|
7005
8168
|
vec_slb(__vector float __a, __vector signed int __b) {
|
|
7006
8169
|
return (__vector float)__builtin_s390_vslb(
|
|
7007
8170
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
7008
8171
|
}
|
|
7009
8172
|
|
|
8173
|
+
// This prototype is deprecated.
|
|
7010
8174
|
static inline __ATTRS_o_ai __vector float
|
|
7011
8175
|
vec_slb(__vector float __a, __vector unsigned int __b) {
|
|
7012
8176
|
return (__vector float)__builtin_s390_vslb(
|
|
7013
8177
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
7014
8178
|
}
|
|
8179
|
+
|
|
8180
|
+
static inline __ATTRS_o_ai __vector float
|
|
8181
|
+
vec_slb(__vector float __a, __vector unsigned char __b) {
|
|
8182
|
+
return (__vector float)__builtin_s390_vslb(
|
|
8183
|
+
(__vector unsigned char)__a, __b);
|
|
8184
|
+
}
|
|
7015
8185
|
#endif
|
|
7016
8186
|
|
|
8187
|
+
// This prototype is deprecated.
|
|
7017
8188
|
static inline __ATTRS_o_ai __vector double
|
|
7018
8189
|
vec_slb(__vector double __a, __vector signed long long __b) {
|
|
7019
8190
|
return (__vector double)__builtin_s390_vslb(
|
|
7020
8191
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
7021
8192
|
}
|
|
7022
8193
|
|
|
8194
|
+
// This prototype is deprecated.
|
|
7023
8195
|
static inline __ATTRS_o_ai __vector double
|
|
7024
8196
|
vec_slb(__vector double __a, __vector unsigned long long __b) {
|
|
7025
8197
|
return (__vector double)__builtin_s390_vslb(
|
|
7026
8198
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
7027
8199
|
}
|
|
7028
8200
|
|
|
8201
|
+
static inline __ATTRS_o_ai __vector double
|
|
8202
|
+
vec_slb(__vector double __a, __vector unsigned char __b) {
|
|
8203
|
+
return (__vector double)__builtin_s390_vslb(
|
|
8204
|
+
(__vector unsigned char)__a, __b);
|
|
8205
|
+
}
|
|
8206
|
+
|
|
7029
8207
|
/*-- vec_sld ----------------------------------------------------------------*/
|
|
7030
8208
|
|
|
7031
8209
|
extern __ATTRS_o __vector signed char
|
|
7032
8210
|
vec_sld(__vector signed char __a, __vector signed char __b, int __c)
|
|
7033
8211
|
__constant_range(__c, 0, 15);
|
|
7034
8212
|
|
|
8213
|
+
// This prototype is deprecated.
|
|
7035
8214
|
extern __ATTRS_o __vector __bool char
|
|
7036
8215
|
vec_sld(__vector __bool char __a, __vector __bool char __b, int __c)
|
|
7037
8216
|
__constant_range(__c, 0, 15);
|
|
@@ -7044,6 +8223,7 @@ extern __ATTRS_o __vector signed short
|
|
|
7044
8223
|
vec_sld(__vector signed short __a, __vector signed short __b, int __c)
|
|
7045
8224
|
__constant_range(__c, 0, 15);
|
|
7046
8225
|
|
|
8226
|
+
// This prototype is deprecated.
|
|
7047
8227
|
extern __ATTRS_o __vector __bool short
|
|
7048
8228
|
vec_sld(__vector __bool short __a, __vector __bool short __b, int __c)
|
|
7049
8229
|
__constant_range(__c, 0, 15);
|
|
@@ -7056,6 +8236,7 @@ extern __ATTRS_o __vector signed int
|
|
|
7056
8236
|
vec_sld(__vector signed int __a, __vector signed int __b, int __c)
|
|
7057
8237
|
__constant_range(__c, 0, 15);
|
|
7058
8238
|
|
|
8239
|
+
// This prototype is deprecated.
|
|
7059
8240
|
extern __ATTRS_o __vector __bool int
|
|
7060
8241
|
vec_sld(__vector __bool int __a, __vector __bool int __b, int __c)
|
|
7061
8242
|
__constant_range(__c, 0, 15);
|
|
@@ -7068,6 +8249,7 @@ extern __ATTRS_o __vector signed long long
|
|
|
7068
8249
|
vec_sld(__vector signed long long __a, __vector signed long long __b, int __c)
|
|
7069
8250
|
__constant_range(__c, 0, 15);
|
|
7070
8251
|
|
|
8252
|
+
// This prototype is deprecated.
|
|
7071
8253
|
extern __ATTRS_o __vector __bool long long
|
|
7072
8254
|
vec_sld(__vector __bool long long __a, __vector __bool long long __b, int __c)
|
|
7073
8255
|
__constant_range(__c, 0, 15);
|
|
@@ -7077,6 +8259,15 @@ vec_sld(__vector unsigned long long __a, __vector unsigned long long __b,
|
|
|
7077
8259
|
int __c)
|
|
7078
8260
|
__constant_range(__c, 0, 15);
|
|
7079
8261
|
|
|
8262
|
+
extern __ATTRS_o __vector signed __int128
|
|
8263
|
+
vec_sld(__vector signed __int128 __a, __vector signed __int128 __b, int __c)
|
|
8264
|
+
__constant_range(__c, 0, 15);
|
|
8265
|
+
|
|
8266
|
+
extern __ATTRS_o __vector unsigned __int128
|
|
8267
|
+
vec_sld(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
|
|
8268
|
+
int __c)
|
|
8269
|
+
__constant_range(__c, 0, 15);
|
|
8270
|
+
|
|
7080
8271
|
#if __ARCH__ >= 12
|
|
7081
8272
|
extern __ATTRS_o __vector float
|
|
7082
8273
|
vec_sld(__vector float __a, __vector float __b, int __c)
|
|
@@ -7126,6 +8317,15 @@ vec_sldw(__vector unsigned long long __a, __vector unsigned long long __b,
|
|
|
7126
8317
|
int __c)
|
|
7127
8318
|
__constant_range(__c, 0, 3);
|
|
7128
8319
|
|
|
8320
|
+
extern __ATTRS_o __vector signed __int128
|
|
8321
|
+
vec_sldw(__vector signed __int128 __a, __vector signed __int128 __b, int __c)
|
|
8322
|
+
__constant_range(__c, 0, 3);
|
|
8323
|
+
|
|
8324
|
+
extern __ATTRS_o __vector unsigned __int128
|
|
8325
|
+
vec_sldw(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
|
|
8326
|
+
int __c)
|
|
8327
|
+
__constant_range(__c, 0, 3);
|
|
8328
|
+
|
|
7129
8329
|
// This prototype is deprecated.
|
|
7130
8330
|
extern __ATTRS_o __vector double
|
|
7131
8331
|
vec_sldw(__vector double __a, __vector double __b, int __c)
|
|
@@ -7172,6 +8372,15 @@ vec_sldb(__vector unsigned long long __a, __vector unsigned long long __b,
|
|
|
7172
8372
|
int __c)
|
|
7173
8373
|
__constant_range(__c, 0, 7);
|
|
7174
8374
|
|
|
8375
|
+
extern __ATTRS_o __vector signed __int128
|
|
8376
|
+
vec_sldb(__vector signed __int128 __a, __vector signed __int128 __b, int __c)
|
|
8377
|
+
__constant_range(__c, 0, 7);
|
|
8378
|
+
|
|
8379
|
+
extern __ATTRS_o __vector unsigned __int128
|
|
8380
|
+
vec_sldb(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
|
|
8381
|
+
int __c)
|
|
8382
|
+
__constant_range(__c, 0, 7);
|
|
8383
|
+
|
|
7175
8384
|
extern __ATTRS_o __vector float
|
|
7176
8385
|
vec_sldb(__vector float __a, __vector float __b, int __c)
|
|
7177
8386
|
__constant_range(__c, 0, 7);
|
|
@@ -7429,8 +8638,21 @@ vec_sral(__vector unsigned long long __a, __vector unsigned int __b) {
|
|
|
7429
8638
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
7430
8639
|
}
|
|
7431
8640
|
|
|
8641
|
+
static inline __ATTRS_o_ai __vector signed __int128
|
|
8642
|
+
vec_sral(__vector signed __int128 __a, __vector unsigned char __b) {
|
|
8643
|
+
return (__vector signed __int128)__builtin_s390_vsra(
|
|
8644
|
+
(__vector unsigned char)__a, __b);
|
|
8645
|
+
}
|
|
8646
|
+
|
|
8647
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
8648
|
+
vec_sral(__vector unsigned __int128 __a, __vector unsigned char __b) {
|
|
8649
|
+
return (__vector unsigned __int128)__builtin_s390_vsra(
|
|
8650
|
+
(__vector unsigned char)__a, __b);
|
|
8651
|
+
}
|
|
8652
|
+
|
|
7432
8653
|
/*-- vec_srab ---------------------------------------------------------------*/
|
|
7433
8654
|
|
|
8655
|
+
// This prototype is deprecated.
|
|
7434
8656
|
static inline __ATTRS_o_ai __vector signed char
|
|
7435
8657
|
vec_srab(__vector signed char __a, __vector signed char __b) {
|
|
7436
8658
|
return (__vector signed char)__builtin_s390_vsrab(
|
|
@@ -7443,6 +8665,7 @@ vec_srab(__vector signed char __a, __vector unsigned char __b) {
|
|
|
7443
8665
|
(__vector unsigned char)__a, __b);
|
|
7444
8666
|
}
|
|
7445
8667
|
|
|
8668
|
+
// This prototype is deprecated.
|
|
7446
8669
|
static inline __ATTRS_o_ai __vector unsigned char
|
|
7447
8670
|
vec_srab(__vector unsigned char __a, __vector signed char __b) {
|
|
7448
8671
|
return __builtin_s390_vsrab(__a, (__vector unsigned char)__b);
|
|
@@ -7453,104 +8676,180 @@ vec_srab(__vector unsigned char __a, __vector unsigned char __b) {
|
|
|
7453
8676
|
return __builtin_s390_vsrab(__a, __b);
|
|
7454
8677
|
}
|
|
7455
8678
|
|
|
8679
|
+
// This prototype is deprecated.
|
|
7456
8680
|
static inline __ATTRS_o_ai __vector signed short
|
|
7457
8681
|
vec_srab(__vector signed short __a, __vector signed short __b) {
|
|
7458
8682
|
return (__vector signed short)__builtin_s390_vsrab(
|
|
7459
8683
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
7460
8684
|
}
|
|
7461
8685
|
|
|
8686
|
+
// This prototype is deprecated.
|
|
7462
8687
|
static inline __ATTRS_o_ai __vector signed short
|
|
7463
8688
|
vec_srab(__vector signed short __a, __vector unsigned short __b) {
|
|
7464
8689
|
return (__vector signed short)__builtin_s390_vsrab(
|
|
7465
8690
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
7466
8691
|
}
|
|
7467
8692
|
|
|
8693
|
+
static inline __ATTRS_o_ai __vector signed short
|
|
8694
|
+
vec_srab(__vector signed short __a, __vector unsigned char __b) {
|
|
8695
|
+
return (__vector signed short)__builtin_s390_vsrab(
|
|
8696
|
+
(__vector unsigned char)__a, __b);
|
|
8697
|
+
}
|
|
8698
|
+
|
|
8699
|
+
// This prototype is deprecated.
|
|
7468
8700
|
static inline __ATTRS_o_ai __vector unsigned short
|
|
7469
8701
|
vec_srab(__vector unsigned short __a, __vector signed short __b) {
|
|
7470
8702
|
return (__vector unsigned short)__builtin_s390_vsrab(
|
|
7471
8703
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
7472
8704
|
}
|
|
7473
8705
|
|
|
8706
|
+
// This prototype is deprecated.
|
|
7474
8707
|
static inline __ATTRS_o_ai __vector unsigned short
|
|
7475
8708
|
vec_srab(__vector unsigned short __a, __vector unsigned short __b) {
|
|
7476
8709
|
return (__vector unsigned short)__builtin_s390_vsrab(
|
|
7477
8710
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
7478
8711
|
}
|
|
7479
8712
|
|
|
8713
|
+
static inline __ATTRS_o_ai __vector unsigned short
|
|
8714
|
+
vec_srab(__vector unsigned short __a, __vector unsigned char __b) {
|
|
8715
|
+
return (__vector unsigned short)__builtin_s390_vsrab(
|
|
8716
|
+
(__vector unsigned char)__a, __b);
|
|
8717
|
+
}
|
|
8718
|
+
|
|
8719
|
+
// This prototype is deprecated.
|
|
7480
8720
|
static inline __ATTRS_o_ai __vector signed int
|
|
7481
8721
|
vec_srab(__vector signed int __a, __vector signed int __b) {
|
|
7482
8722
|
return (__vector signed int)__builtin_s390_vsrab(
|
|
7483
8723
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
7484
8724
|
}
|
|
7485
8725
|
|
|
8726
|
+
// This prototype is deprecated.
|
|
7486
8727
|
static inline __ATTRS_o_ai __vector signed int
|
|
7487
8728
|
vec_srab(__vector signed int __a, __vector unsigned int __b) {
|
|
7488
8729
|
return (__vector signed int)__builtin_s390_vsrab(
|
|
7489
8730
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
7490
8731
|
}
|
|
7491
8732
|
|
|
8733
|
+
static inline __ATTRS_o_ai __vector signed int
|
|
8734
|
+
vec_srab(__vector signed int __a, __vector unsigned char __b) {
|
|
8735
|
+
return (__vector signed int)__builtin_s390_vsrab(
|
|
8736
|
+
(__vector unsigned char)__a, __b);
|
|
8737
|
+
}
|
|
8738
|
+
|
|
8739
|
+
// This prototype is deprecated.
|
|
7492
8740
|
static inline __ATTRS_o_ai __vector unsigned int
|
|
7493
8741
|
vec_srab(__vector unsigned int __a, __vector signed int __b) {
|
|
7494
8742
|
return (__vector unsigned int)__builtin_s390_vsrab(
|
|
7495
8743
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
7496
8744
|
}
|
|
7497
8745
|
|
|
8746
|
+
// This prototype is deprecated.
|
|
7498
8747
|
static inline __ATTRS_o_ai __vector unsigned int
|
|
7499
8748
|
vec_srab(__vector unsigned int __a, __vector unsigned int __b) {
|
|
7500
8749
|
return (__vector unsigned int)__builtin_s390_vsrab(
|
|
7501
8750
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
7502
8751
|
}
|
|
7503
8752
|
|
|
8753
|
+
static inline __ATTRS_o_ai __vector unsigned int
|
|
8754
|
+
vec_srab(__vector unsigned int __a, __vector unsigned char __b) {
|
|
8755
|
+
return (__vector unsigned int)__builtin_s390_vsrab(
|
|
8756
|
+
(__vector unsigned char)__a, __b);
|
|
8757
|
+
}
|
|
8758
|
+
|
|
8759
|
+
// This prototype is deprecated.
|
|
7504
8760
|
static inline __ATTRS_o_ai __vector signed long long
|
|
7505
8761
|
vec_srab(__vector signed long long __a, __vector signed long long __b) {
|
|
7506
8762
|
return (__vector signed long long)__builtin_s390_vsrab(
|
|
7507
8763
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
7508
8764
|
}
|
|
7509
8765
|
|
|
8766
|
+
// This prototype is deprecated.
|
|
7510
8767
|
static inline __ATTRS_o_ai __vector signed long long
|
|
7511
8768
|
vec_srab(__vector signed long long __a, __vector unsigned long long __b) {
|
|
7512
8769
|
return (__vector signed long long)__builtin_s390_vsrab(
|
|
7513
8770
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
7514
8771
|
}
|
|
7515
8772
|
|
|
8773
|
+
static inline __ATTRS_o_ai __vector signed long long
|
|
8774
|
+
vec_srab(__vector signed long long __a, __vector unsigned char __b) {
|
|
8775
|
+
return (__vector signed long long)__builtin_s390_vsrab(
|
|
8776
|
+
(__vector unsigned char)__a, __b);
|
|
8777
|
+
}
|
|
8778
|
+
|
|
8779
|
+
// This prototype is deprecated.
|
|
7516
8780
|
static inline __ATTRS_o_ai __vector unsigned long long
|
|
7517
8781
|
vec_srab(__vector unsigned long long __a, __vector signed long long __b) {
|
|
7518
8782
|
return (__vector unsigned long long)__builtin_s390_vsrab(
|
|
7519
8783
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
7520
8784
|
}
|
|
7521
8785
|
|
|
7522
|
-
|
|
7523
|
-
|
|
7524
|
-
|
|
7525
|
-
|
|
8786
|
+
// This prototype is deprecated.
|
|
8787
|
+
static inline __ATTRS_o_ai __vector unsigned long long
|
|
8788
|
+
vec_srab(__vector unsigned long long __a, __vector unsigned long long __b) {
|
|
8789
|
+
return (__vector unsigned long long)__builtin_s390_vsrab(
|
|
8790
|
+
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
8791
|
+
}
|
|
8792
|
+
|
|
8793
|
+
static inline __ATTRS_o_ai __vector unsigned long long
|
|
8794
|
+
vec_srab(__vector unsigned long long __a, __vector unsigned char __b) {
|
|
8795
|
+
return (__vector unsigned long long)__builtin_s390_vsrab(
|
|
8796
|
+
(__vector unsigned char)__a, __b);
|
|
8797
|
+
}
|
|
8798
|
+
|
|
8799
|
+
static inline __ATTRS_o_ai __vector signed __int128
|
|
8800
|
+
vec_srab(__vector signed __int128 __a, __vector unsigned char __b) {
|
|
8801
|
+
return (__vector signed __int128)__builtin_s390_vsrab(
|
|
8802
|
+
(__vector unsigned char)__a, __b);
|
|
8803
|
+
}
|
|
8804
|
+
|
|
8805
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
8806
|
+
vec_srab(__vector unsigned __int128 __a, __vector unsigned char __b) {
|
|
8807
|
+
return (__vector unsigned __int128)__builtin_s390_vsrab(
|
|
8808
|
+
(__vector unsigned char)__a, __b);
|
|
7526
8809
|
}
|
|
7527
8810
|
|
|
7528
8811
|
#if __ARCH__ >= 12
|
|
8812
|
+
// This prototype is deprecated.
|
|
7529
8813
|
static inline __ATTRS_o_ai __vector float
|
|
7530
8814
|
vec_srab(__vector float __a, __vector signed int __b) {
|
|
7531
8815
|
return (__vector float)__builtin_s390_vsrab(
|
|
7532
8816
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
7533
8817
|
}
|
|
7534
8818
|
|
|
8819
|
+
// This prototype is deprecated.
|
|
7535
8820
|
static inline __ATTRS_o_ai __vector float
|
|
7536
8821
|
vec_srab(__vector float __a, __vector unsigned int __b) {
|
|
7537
8822
|
return (__vector float)__builtin_s390_vsrab(
|
|
7538
8823
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
7539
8824
|
}
|
|
8825
|
+
|
|
8826
|
+
static inline __ATTRS_o_ai __vector float
|
|
8827
|
+
vec_srab(__vector float __a, __vector unsigned char __b) {
|
|
8828
|
+
return (__vector float)__builtin_s390_vsrab(
|
|
8829
|
+
(__vector unsigned char)__a, __b);
|
|
8830
|
+
}
|
|
7540
8831
|
#endif
|
|
7541
8832
|
|
|
8833
|
+
// This prototype is deprecated.
|
|
7542
8834
|
static inline __ATTRS_o_ai __vector double
|
|
7543
8835
|
vec_srab(__vector double __a, __vector signed long long __b) {
|
|
7544
8836
|
return (__vector double)__builtin_s390_vsrab(
|
|
7545
8837
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
7546
8838
|
}
|
|
7547
8839
|
|
|
8840
|
+
// This prototype is deprecated.
|
|
7548
8841
|
static inline __ATTRS_o_ai __vector double
|
|
7549
8842
|
vec_srab(__vector double __a, __vector unsigned long long __b) {
|
|
7550
8843
|
return (__vector double)__builtin_s390_vsrab(
|
|
7551
8844
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
7552
8845
|
}
|
|
7553
8846
|
|
|
8847
|
+
static inline __ATTRS_o_ai __vector double
|
|
8848
|
+
vec_srab(__vector double __a, __vector unsigned char __b) {
|
|
8849
|
+
return (__vector double)__builtin_s390_vsrab(
|
|
8850
|
+
(__vector unsigned char)__a, __b);
|
|
8851
|
+
}
|
|
8852
|
+
|
|
7554
8853
|
/*-- vec_srl ----------------------------------------------------------------*/
|
|
7555
8854
|
|
|
7556
8855
|
static inline __ATTRS_o_ai __vector signed char
|
|
@@ -7794,8 +9093,21 @@ vec_srl(__vector unsigned long long __a, __vector unsigned int __b) {
|
|
|
7794
9093
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
7795
9094
|
}
|
|
7796
9095
|
|
|
9096
|
+
static inline __ATTRS_o_ai __vector signed __int128
|
|
9097
|
+
vec_srl(__vector signed __int128 __a, __vector unsigned char __b) {
|
|
9098
|
+
return (__vector signed __int128)__builtin_s390_vsrl(
|
|
9099
|
+
(__vector unsigned char)__a, __b);
|
|
9100
|
+
}
|
|
9101
|
+
|
|
9102
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
9103
|
+
vec_srl(__vector unsigned __int128 __a, __vector unsigned char __b) {
|
|
9104
|
+
return (__vector unsigned __int128)__builtin_s390_vsrl(
|
|
9105
|
+
(__vector unsigned char)__a, __b);
|
|
9106
|
+
}
|
|
9107
|
+
|
|
7797
9108
|
/*-- vec_srb ----------------------------------------------------------------*/
|
|
7798
9109
|
|
|
9110
|
+
// This prototype is deprecated.
|
|
7799
9111
|
static inline __ATTRS_o_ai __vector signed char
|
|
7800
9112
|
vec_srb(__vector signed char __a, __vector signed char __b) {
|
|
7801
9113
|
return (__vector signed char)__builtin_s390_vsrlb(
|
|
@@ -7808,6 +9120,7 @@ vec_srb(__vector signed char __a, __vector unsigned char __b) {
|
|
|
7808
9120
|
(__vector unsigned char)__a, __b);
|
|
7809
9121
|
}
|
|
7810
9122
|
|
|
9123
|
+
// This prototype is deprecated.
|
|
7811
9124
|
static inline __ATTRS_o_ai __vector unsigned char
|
|
7812
9125
|
vec_srb(__vector unsigned char __a, __vector signed char __b) {
|
|
7813
9126
|
return __builtin_s390_vsrlb(__a, (__vector unsigned char)__b);
|
|
@@ -7818,104 +9131,180 @@ vec_srb(__vector unsigned char __a, __vector unsigned char __b) {
|
|
|
7818
9131
|
return __builtin_s390_vsrlb(__a, __b);
|
|
7819
9132
|
}
|
|
7820
9133
|
|
|
9134
|
+
// This prototype is deprecated.
|
|
7821
9135
|
static inline __ATTRS_o_ai __vector signed short
|
|
7822
9136
|
vec_srb(__vector signed short __a, __vector signed short __b) {
|
|
7823
9137
|
return (__vector signed short)__builtin_s390_vsrlb(
|
|
7824
9138
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
7825
9139
|
}
|
|
7826
9140
|
|
|
9141
|
+
// This prototype is deprecated.
|
|
7827
9142
|
static inline __ATTRS_o_ai __vector signed short
|
|
7828
9143
|
vec_srb(__vector signed short __a, __vector unsigned short __b) {
|
|
7829
9144
|
return (__vector signed short)__builtin_s390_vsrlb(
|
|
7830
9145
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
7831
9146
|
}
|
|
7832
9147
|
|
|
9148
|
+
static inline __ATTRS_o_ai __vector signed short
|
|
9149
|
+
vec_srb(__vector signed short __a, __vector unsigned char __b) {
|
|
9150
|
+
return (__vector signed short)__builtin_s390_vsrlb(
|
|
9151
|
+
(__vector unsigned char)__a, __b);
|
|
9152
|
+
}
|
|
9153
|
+
|
|
9154
|
+
// This prototype is deprecated.
|
|
7833
9155
|
static inline __ATTRS_o_ai __vector unsigned short
|
|
7834
9156
|
vec_srb(__vector unsigned short __a, __vector signed short __b) {
|
|
7835
9157
|
return (__vector unsigned short)__builtin_s390_vsrlb(
|
|
7836
9158
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
7837
9159
|
}
|
|
7838
9160
|
|
|
9161
|
+
// This prototype is deprecated.
|
|
7839
9162
|
static inline __ATTRS_o_ai __vector unsigned short
|
|
7840
9163
|
vec_srb(__vector unsigned short __a, __vector unsigned short __b) {
|
|
7841
9164
|
return (__vector unsigned short)__builtin_s390_vsrlb(
|
|
7842
9165
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
7843
9166
|
}
|
|
7844
9167
|
|
|
9168
|
+
static inline __ATTRS_o_ai __vector unsigned short
|
|
9169
|
+
vec_srb(__vector unsigned short __a, __vector unsigned char __b) {
|
|
9170
|
+
return (__vector unsigned short)__builtin_s390_vsrlb(
|
|
9171
|
+
(__vector unsigned char)__a, __b);
|
|
9172
|
+
}
|
|
9173
|
+
|
|
9174
|
+
// This prototype is deprecated.
|
|
7845
9175
|
static inline __ATTRS_o_ai __vector signed int
|
|
7846
9176
|
vec_srb(__vector signed int __a, __vector signed int __b) {
|
|
7847
9177
|
return (__vector signed int)__builtin_s390_vsrlb(
|
|
7848
9178
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
7849
9179
|
}
|
|
7850
9180
|
|
|
9181
|
+
// This prototype is deprecated.
|
|
7851
9182
|
static inline __ATTRS_o_ai __vector signed int
|
|
7852
9183
|
vec_srb(__vector signed int __a, __vector unsigned int __b) {
|
|
7853
9184
|
return (__vector signed int)__builtin_s390_vsrlb(
|
|
7854
9185
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
7855
9186
|
}
|
|
7856
9187
|
|
|
9188
|
+
static inline __ATTRS_o_ai __vector signed int
|
|
9189
|
+
vec_srb(__vector signed int __a, __vector unsigned char __b) {
|
|
9190
|
+
return (__vector signed int)__builtin_s390_vsrlb(
|
|
9191
|
+
(__vector unsigned char)__a, __b);
|
|
9192
|
+
}
|
|
9193
|
+
|
|
9194
|
+
// This prototype is deprecated.
|
|
7857
9195
|
static inline __ATTRS_o_ai __vector unsigned int
|
|
7858
9196
|
vec_srb(__vector unsigned int __a, __vector signed int __b) {
|
|
7859
9197
|
return (__vector unsigned int)__builtin_s390_vsrlb(
|
|
7860
9198
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
7861
9199
|
}
|
|
7862
9200
|
|
|
9201
|
+
// This prototype is deprecated.
|
|
7863
9202
|
static inline __ATTRS_o_ai __vector unsigned int
|
|
7864
9203
|
vec_srb(__vector unsigned int __a, __vector unsigned int __b) {
|
|
7865
9204
|
return (__vector unsigned int)__builtin_s390_vsrlb(
|
|
7866
9205
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
7867
9206
|
}
|
|
7868
9207
|
|
|
9208
|
+
static inline __ATTRS_o_ai __vector unsigned int
|
|
9209
|
+
vec_srb(__vector unsigned int __a, __vector unsigned char __b) {
|
|
9210
|
+
return (__vector unsigned int)__builtin_s390_vsrlb(
|
|
9211
|
+
(__vector unsigned char)__a, __b);
|
|
9212
|
+
}
|
|
9213
|
+
|
|
9214
|
+
// This prototype is deprecated.
|
|
7869
9215
|
static inline __ATTRS_o_ai __vector signed long long
|
|
7870
9216
|
vec_srb(__vector signed long long __a, __vector signed long long __b) {
|
|
7871
9217
|
return (__vector signed long long)__builtin_s390_vsrlb(
|
|
7872
9218
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
7873
9219
|
}
|
|
7874
9220
|
|
|
9221
|
+
// This prototype is deprecated.
|
|
7875
9222
|
static inline __ATTRS_o_ai __vector signed long long
|
|
7876
9223
|
vec_srb(__vector signed long long __a, __vector unsigned long long __b) {
|
|
7877
9224
|
return (__vector signed long long)__builtin_s390_vsrlb(
|
|
7878
9225
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
7879
9226
|
}
|
|
7880
9227
|
|
|
9228
|
+
static inline __ATTRS_o_ai __vector signed long long
|
|
9229
|
+
vec_srb(__vector signed long long __a, __vector unsigned char __b) {
|
|
9230
|
+
return (__vector signed long long)__builtin_s390_vsrlb(
|
|
9231
|
+
(__vector unsigned char)__a, __b);
|
|
9232
|
+
}
|
|
9233
|
+
|
|
9234
|
+
// This prototype is deprecated.
|
|
7881
9235
|
static inline __ATTRS_o_ai __vector unsigned long long
|
|
7882
9236
|
vec_srb(__vector unsigned long long __a, __vector signed long long __b) {
|
|
7883
9237
|
return (__vector unsigned long long)__builtin_s390_vsrlb(
|
|
7884
9238
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
7885
9239
|
}
|
|
7886
9240
|
|
|
9241
|
+
// This prototype is deprecated.
|
|
7887
9242
|
static inline __ATTRS_o_ai __vector unsigned long long
|
|
7888
9243
|
vec_srb(__vector unsigned long long __a, __vector unsigned long long __b) {
|
|
7889
9244
|
return (__vector unsigned long long)__builtin_s390_vsrlb(
|
|
7890
9245
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
7891
9246
|
}
|
|
7892
9247
|
|
|
9248
|
+
static inline __ATTRS_o_ai __vector unsigned long long
|
|
9249
|
+
vec_srb(__vector unsigned long long __a, __vector unsigned char __b) {
|
|
9250
|
+
return (__vector unsigned long long)__builtin_s390_vsrlb(
|
|
9251
|
+
(__vector unsigned char)__a, __b);
|
|
9252
|
+
}
|
|
9253
|
+
|
|
9254
|
+
static inline __ATTRS_o_ai __vector signed __int128
|
|
9255
|
+
vec_srb(__vector signed __int128 __a, __vector unsigned char __b) {
|
|
9256
|
+
return (__vector signed __int128)__builtin_s390_vsrlb(
|
|
9257
|
+
(__vector unsigned char)__a, __b);
|
|
9258
|
+
}
|
|
9259
|
+
|
|
9260
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
9261
|
+
vec_srb(__vector unsigned __int128 __a, __vector unsigned char __b) {
|
|
9262
|
+
return (__vector unsigned __int128)__builtin_s390_vsrlb(
|
|
9263
|
+
(__vector unsigned char)__a, __b);
|
|
9264
|
+
}
|
|
9265
|
+
|
|
7893
9266
|
#if __ARCH__ >= 12
|
|
9267
|
+
// This prototype is deprecated.
|
|
7894
9268
|
static inline __ATTRS_o_ai __vector float
|
|
7895
9269
|
vec_srb(__vector float __a, __vector signed int __b) {
|
|
7896
9270
|
return (__vector float)__builtin_s390_vsrlb(
|
|
7897
9271
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
7898
9272
|
}
|
|
7899
9273
|
|
|
9274
|
+
// This prototype is deprecated.
|
|
7900
9275
|
static inline __ATTRS_o_ai __vector float
|
|
7901
9276
|
vec_srb(__vector float __a, __vector unsigned int __b) {
|
|
7902
9277
|
return (__vector float)__builtin_s390_vsrlb(
|
|
7903
9278
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
7904
9279
|
}
|
|
9280
|
+
|
|
9281
|
+
static inline __ATTRS_o_ai __vector float
|
|
9282
|
+
vec_srb(__vector float __a, __vector unsigned char __b) {
|
|
9283
|
+
return (__vector float)__builtin_s390_vsrlb(
|
|
9284
|
+
(__vector unsigned char)__a, __b);
|
|
9285
|
+
}
|
|
7905
9286
|
#endif
|
|
7906
9287
|
|
|
9288
|
+
// This prototype is deprecated.
|
|
7907
9289
|
static inline __ATTRS_o_ai __vector double
|
|
7908
9290
|
vec_srb(__vector double __a, __vector signed long long __b) {
|
|
7909
9291
|
return (__vector double)__builtin_s390_vsrlb(
|
|
7910
9292
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
7911
9293
|
}
|
|
7912
9294
|
|
|
9295
|
+
// This prototype is deprecated.
|
|
7913
9296
|
static inline __ATTRS_o_ai __vector double
|
|
7914
9297
|
vec_srb(__vector double __a, __vector unsigned long long __b) {
|
|
7915
9298
|
return (__vector double)__builtin_s390_vsrlb(
|
|
7916
9299
|
(__vector unsigned char)__a, (__vector unsigned char)__b);
|
|
7917
9300
|
}
|
|
7918
9301
|
|
|
9302
|
+
static inline __ATTRS_o_ai __vector double
|
|
9303
|
+
vec_srb(__vector double __a, __vector unsigned char __b) {
|
|
9304
|
+
return (__vector double)__builtin_s390_vsrlb(
|
|
9305
|
+
(__vector unsigned char)__a, __b);
|
|
9306
|
+
}
|
|
9307
|
+
|
|
7919
9308
|
/*-- vec_srdb ---------------------------------------------------------------*/
|
|
7920
9309
|
|
|
7921
9310
|
#if __ARCH__ >= 13
|
|
@@ -7953,6 +9342,15 @@ vec_srdb(__vector unsigned long long __a, __vector unsigned long long __b,
|
|
|
7953
9342
|
int __c)
|
|
7954
9343
|
__constant_range(__c, 0, 7);
|
|
7955
9344
|
|
|
9345
|
+
extern __ATTRS_o __vector signed __int128
|
|
9346
|
+
vec_srdb(__vector signed __int128 __a, __vector signed __int128 __b, int __c)
|
|
9347
|
+
__constant_range(__c, 0, 7);
|
|
9348
|
+
|
|
9349
|
+
extern __ATTRS_o __vector unsigned __int128
|
|
9350
|
+
vec_srdb(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
|
|
9351
|
+
int __c)
|
|
9352
|
+
__constant_range(__c, 0, 7);
|
|
9353
|
+
|
|
7956
9354
|
extern __ATTRS_o __vector float
|
|
7957
9355
|
vec_srdb(__vector float __a, __vector float __b, int __c)
|
|
7958
9356
|
__constant_range(__c, 0, 7);
|
|
@@ -7989,6 +9387,11 @@ vec_abs(__vector signed long long __a) {
|
|
|
7989
9387
|
return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed long long)0));
|
|
7990
9388
|
}
|
|
7991
9389
|
|
|
9390
|
+
static inline __ATTRS_o_ai __vector signed __int128
|
|
9391
|
+
vec_abs(__vector signed __int128 __a) {
|
|
9392
|
+
return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed __int128)0));
|
|
9393
|
+
}
|
|
9394
|
+
|
|
7992
9395
|
#if __ARCH__ >= 12
|
|
7993
9396
|
static inline __ATTRS_o_ai __vector float
|
|
7994
9397
|
vec_abs(__vector float __a) {
|
|
@@ -8169,6 +9572,16 @@ vec_max(__vector __bool long long __a, __vector unsigned long long __b) {
|
|
|
8169
9572
|
return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
|
|
8170
9573
|
}
|
|
8171
9574
|
|
|
9575
|
+
static inline __ATTRS_o_ai __vector signed __int128
|
|
9576
|
+
vec_max(__vector signed __int128 __a, __vector signed __int128 __b) {
|
|
9577
|
+
return vec_sel(__b, __a, vec_cmpgt(__a, __b));
|
|
9578
|
+
}
|
|
9579
|
+
|
|
9580
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
9581
|
+
vec_max(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
|
|
9582
|
+
return vec_sel(__b, __a, vec_cmpgt(__a, __b));
|
|
9583
|
+
}
|
|
9584
|
+
|
|
8172
9585
|
#if __ARCH__ >= 12
|
|
8173
9586
|
static inline __ATTRS_o_ai __vector float
|
|
8174
9587
|
vec_max(__vector float __a, __vector float __b) {
|
|
@@ -8339,6 +9752,16 @@ vec_min(__vector __bool long long __a, __vector unsigned long long __b) {
|
|
|
8339
9752
|
return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
|
|
8340
9753
|
}
|
|
8341
9754
|
|
|
9755
|
+
static inline __ATTRS_o_ai __vector signed __int128
|
|
9756
|
+
vec_min(__vector signed __int128 __a, __vector signed __int128 __b) {
|
|
9757
|
+
return vec_sel(__a, __b, vec_cmpgt(__a, __b));
|
|
9758
|
+
}
|
|
9759
|
+
|
|
9760
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
9761
|
+
vec_min(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
|
|
9762
|
+
return vec_sel(__a, __b, vec_cmpgt(__a, __b));
|
|
9763
|
+
}
|
|
9764
|
+
|
|
8342
9765
|
#if __ARCH__ >= 12
|
|
8343
9766
|
static inline __ATTRS_o_ai __vector float
|
|
8344
9767
|
vec_min(__vector float __a, __vector float __b) {
|
|
@@ -8357,9 +9780,11 @@ vec_min(__vector double __a, __vector double __b) {
|
|
|
8357
9780
|
|
|
8358
9781
|
/*-- vec_add_u128 -----------------------------------------------------------*/
|
|
8359
9782
|
|
|
9783
|
+
// This prototype is deprecated.
|
|
8360
9784
|
static inline __ATTRS_ai __vector unsigned char
|
|
8361
9785
|
vec_add_u128(__vector unsigned char __a, __vector unsigned char __b) {
|
|
8362
|
-
return (__vector unsigned char)(
|
|
9786
|
+
return (__vector unsigned char)(__vector unsigned __int128)
|
|
9787
|
+
((__int128)__a + (__int128)__b);
|
|
8363
9788
|
}
|
|
8364
9789
|
|
|
8365
9790
|
/*-- vec_addc ---------------------------------------------------------------*/
|
|
@@ -8384,30 +9809,59 @@ vec_addc(__vector unsigned long long __a, __vector unsigned long long __b) {
|
|
|
8384
9809
|
return __builtin_s390_vaccg(__a, __b);
|
|
8385
9810
|
}
|
|
8386
9811
|
|
|
9812
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
9813
|
+
vec_addc(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
|
|
9814
|
+
return (__vector unsigned __int128)
|
|
9815
|
+
__builtin_s390_vaccq((unsigned __int128)__a, (unsigned __int128)__b);
|
|
9816
|
+
}
|
|
9817
|
+
|
|
8387
9818
|
/*-- vec_addc_u128 ----------------------------------------------------------*/
|
|
8388
9819
|
|
|
9820
|
+
// This prototype is deprecated.
|
|
8389
9821
|
static inline __ATTRS_ai __vector unsigned char
|
|
8390
9822
|
vec_addc_u128(__vector unsigned char __a, __vector unsigned char __b) {
|
|
8391
|
-
return (__vector unsigned char)
|
|
9823
|
+
return (__vector unsigned char)(__vector unsigned __int128)
|
|
8392
9824
|
__builtin_s390_vaccq((unsigned __int128)__a, (unsigned __int128)__b);
|
|
8393
9825
|
}
|
|
8394
9826
|
|
|
9827
|
+
/*-- vec_adde ---------------------------------------------------------------*/
|
|
9828
|
+
|
|
9829
|
+
static inline __ATTRS_ai __vector unsigned __int128
|
|
9830
|
+
vec_adde(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
|
|
9831
|
+
__vector unsigned __int128 __c) {
|
|
9832
|
+
return (__vector unsigned __int128)
|
|
9833
|
+
__builtin_s390_vacq((unsigned __int128)__a, (unsigned __int128)__b,
|
|
9834
|
+
(unsigned __int128)__c);
|
|
9835
|
+
}
|
|
9836
|
+
|
|
8395
9837
|
/*-- vec_adde_u128 ----------------------------------------------------------*/
|
|
8396
9838
|
|
|
9839
|
+
// This prototype is deprecated.
|
|
8397
9840
|
static inline __ATTRS_ai __vector unsigned char
|
|
8398
9841
|
vec_adde_u128(__vector unsigned char __a, __vector unsigned char __b,
|
|
8399
9842
|
__vector unsigned char __c) {
|
|
8400
|
-
return (__vector unsigned char)
|
|
9843
|
+
return (__vector unsigned char)(__vector unsigned __int128)
|
|
8401
9844
|
__builtin_s390_vacq((unsigned __int128)__a, (unsigned __int128)__b,
|
|
8402
9845
|
(unsigned __int128)__c);
|
|
8403
9846
|
}
|
|
8404
9847
|
|
|
9848
|
+
/*-- vec_addec --------------------------------------------------------------*/
|
|
9849
|
+
|
|
9850
|
+
static inline __ATTRS_ai __vector unsigned __int128
|
|
9851
|
+
vec_addec(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
|
|
9852
|
+
__vector unsigned __int128 __c) {
|
|
9853
|
+
return (__vector unsigned __int128)
|
|
9854
|
+
__builtin_s390_vacccq((unsigned __int128)__a, (unsigned __int128)__b,
|
|
9855
|
+
(unsigned __int128)__c);
|
|
9856
|
+
}
|
|
9857
|
+
|
|
8405
9858
|
/*-- vec_addec_u128 ---------------------------------------------------------*/
|
|
8406
9859
|
|
|
9860
|
+
// This prototype is deprecated.
|
|
8407
9861
|
static inline __ATTRS_ai __vector unsigned char
|
|
8408
9862
|
vec_addec_u128(__vector unsigned char __a, __vector unsigned char __b,
|
|
8409
9863
|
__vector unsigned char __c) {
|
|
8410
|
-
return (__vector unsigned char)
|
|
9864
|
+
return (__vector unsigned char)(__vector unsigned __int128)
|
|
8411
9865
|
__builtin_s390_vacccq((unsigned __int128)__a, (unsigned __int128)__b,
|
|
8412
9866
|
(unsigned __int128)__c);
|
|
8413
9867
|
}
|
|
@@ -8434,6 +9888,14 @@ vec_avg(__vector signed long long __a, __vector signed long long __b) {
|
|
|
8434
9888
|
return __builtin_s390_vavgg(__a, __b);
|
|
8435
9889
|
}
|
|
8436
9890
|
|
|
9891
|
+
#if __ARCH__ >= 15
|
|
9892
|
+
static inline __ATTRS_o_ai __vector signed __int128
|
|
9893
|
+
vec_avg(__vector signed __int128 __a, __vector signed __int128 __b) {
|
|
9894
|
+
return (__vector signed __int128)
|
|
9895
|
+
__builtin_s390_vavgq((signed __int128)__a, (signed __int128)__b);
|
|
9896
|
+
}
|
|
9897
|
+
#endif
|
|
9898
|
+
|
|
8437
9899
|
static inline __ATTRS_o_ai __vector unsigned char
|
|
8438
9900
|
vec_avg(__vector unsigned char __a, __vector unsigned char __b) {
|
|
8439
9901
|
return __builtin_s390_vavglb(__a, __b);
|
|
@@ -8454,6 +9916,14 @@ vec_avg(__vector unsigned long long __a, __vector unsigned long long __b) {
|
|
|
8454
9916
|
return __builtin_s390_vavglg(__a, __b);
|
|
8455
9917
|
}
|
|
8456
9918
|
|
|
9919
|
+
#if __ARCH__ >= 15
|
|
9920
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
9921
|
+
vec_avg(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
|
|
9922
|
+
return (__vector unsigned __int128)
|
|
9923
|
+
__builtin_s390_vavglq((unsigned __int128)__a, (unsigned __int128)__b);
|
|
9924
|
+
}
|
|
9925
|
+
#endif
|
|
9926
|
+
|
|
8457
9927
|
/*-- vec_checksum -----------------------------------------------------------*/
|
|
8458
9928
|
|
|
8459
9929
|
static inline __ATTRS_ai __vector unsigned int
|
|
@@ -8478,12 +9948,19 @@ vec_gfmsum(__vector unsigned int __a, __vector unsigned int __b) {
|
|
|
8478
9948
|
return __builtin_s390_vgfmf(__a, __b);
|
|
8479
9949
|
}
|
|
8480
9950
|
|
|
9951
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
9952
|
+
vec_gfmsum(__vector unsigned long long __a, __vector unsigned long long __b) {
|
|
9953
|
+
return (__vector unsigned __int128)__builtin_s390_vgfmg(__a, __b);
|
|
9954
|
+
}
|
|
9955
|
+
|
|
8481
9956
|
/*-- vec_gfmsum_128 ---------------------------------------------------------*/
|
|
8482
9957
|
|
|
9958
|
+
// This prototype is deprecated.
|
|
8483
9959
|
static inline __ATTRS_o_ai __vector unsigned char
|
|
8484
9960
|
vec_gfmsum_128(__vector unsigned long long __a,
|
|
8485
9961
|
__vector unsigned long long __b) {
|
|
8486
|
-
return (__vector unsigned char)
|
|
9962
|
+
return (__vector unsigned char)(__vector unsigned __int128)
|
|
9963
|
+
__builtin_s390_vgfmg(__a, __b);
|
|
8487
9964
|
}
|
|
8488
9965
|
|
|
8489
9966
|
/*-- vec_gfmsum_accum -------------------------------------------------------*/
|
|
@@ -8506,13 +9983,21 @@ vec_gfmsum_accum(__vector unsigned int __a, __vector unsigned int __b,
|
|
|
8506
9983
|
return __builtin_s390_vgfmaf(__a, __b, __c);
|
|
8507
9984
|
}
|
|
8508
9985
|
|
|
9986
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
9987
|
+
vec_gfmsum_accum(__vector unsigned long long __a, __vector unsigned long long __b,
|
|
9988
|
+
__vector unsigned __int128 __c) {
|
|
9989
|
+
return (__vector unsigned __int128)
|
|
9990
|
+
__builtin_s390_vgfmag(__a, __b, (unsigned __int128)__c);
|
|
9991
|
+
}
|
|
9992
|
+
|
|
8509
9993
|
/*-- vec_gfmsum_accum_128 ---------------------------------------------------*/
|
|
8510
9994
|
|
|
9995
|
+
// This prototype is deprecated.
|
|
8511
9996
|
static inline __ATTRS_o_ai __vector unsigned char
|
|
8512
9997
|
vec_gfmsum_accum_128(__vector unsigned long long __a,
|
|
8513
9998
|
__vector unsigned long long __b,
|
|
8514
9999
|
__vector unsigned char __c) {
|
|
8515
|
-
return (__vector unsigned char)
|
|
10000
|
+
return (__vector unsigned char)(__vector unsigned __int128)
|
|
8516
10001
|
__builtin_s390_vgfmag(__a, __b, (unsigned __int128)__c);
|
|
8517
10002
|
}
|
|
8518
10003
|
|
|
@@ -8590,6 +10075,56 @@ vec_mladd(__vector unsigned int __a, __vector unsigned int __b,
|
|
|
8590
10075
|
return __a * __b + __c;
|
|
8591
10076
|
}
|
|
8592
10077
|
|
|
10078
|
+
#if __ARCH__ >= 15
|
|
10079
|
+
static inline __ATTRS_o_ai __vector signed long long
|
|
10080
|
+
vec_mladd(__vector signed long long __a, __vector signed long long __b,
|
|
10081
|
+
__vector signed long long __c) {
|
|
10082
|
+
return __a * __b + __c;
|
|
10083
|
+
}
|
|
10084
|
+
|
|
10085
|
+
static inline __ATTRS_o_ai __vector signed long long
|
|
10086
|
+
vec_mladd(__vector unsigned long long __a, __vector signed long long __b,
|
|
10087
|
+
__vector signed long long __c) {
|
|
10088
|
+
return (__vector signed long long)__a * __b + __c;
|
|
10089
|
+
}
|
|
10090
|
+
|
|
10091
|
+
static inline __ATTRS_o_ai __vector signed long long
|
|
10092
|
+
vec_mladd(__vector signed long long __a, __vector unsigned long long __b,
|
|
10093
|
+
__vector unsigned long long __c) {
|
|
10094
|
+
return __a * (__vector signed long long)__b + (__vector signed long long)__c;
|
|
10095
|
+
}
|
|
10096
|
+
|
|
10097
|
+
static inline __ATTRS_o_ai __vector unsigned long long
|
|
10098
|
+
vec_mladd(__vector unsigned long long __a, __vector unsigned long long __b,
|
|
10099
|
+
__vector unsigned long long __c) {
|
|
10100
|
+
return __a * __b + __c;
|
|
10101
|
+
}
|
|
10102
|
+
|
|
10103
|
+
static inline __ATTRS_o_ai __vector signed __int128
|
|
10104
|
+
vec_mladd(__vector signed __int128 __a, __vector signed __int128 __b,
|
|
10105
|
+
__vector signed __int128 __c) {
|
|
10106
|
+
return __a * __b + __c;
|
|
10107
|
+
}
|
|
10108
|
+
|
|
10109
|
+
static inline __ATTRS_o_ai __vector signed __int128
|
|
10110
|
+
vec_mladd(__vector unsigned __int128 __a, __vector signed __int128 __b,
|
|
10111
|
+
__vector signed __int128 __c) {
|
|
10112
|
+
return (__vector signed __int128)__a * __b + __c;
|
|
10113
|
+
}
|
|
10114
|
+
|
|
10115
|
+
static inline __ATTRS_o_ai __vector signed __int128
|
|
10116
|
+
vec_mladd(__vector signed __int128 __a, __vector unsigned __int128 __b,
|
|
10117
|
+
__vector unsigned __int128 __c) {
|
|
10118
|
+
return __a * (__vector signed __int128)__b + (__vector signed __int128)__c;
|
|
10119
|
+
}
|
|
10120
|
+
|
|
10121
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
10122
|
+
vec_mladd(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
|
|
10123
|
+
__vector unsigned __int128 __c) {
|
|
10124
|
+
return __a * __b + __c;
|
|
10125
|
+
}
|
|
10126
|
+
#endif
|
|
10127
|
+
|
|
8593
10128
|
/*-- vec_mhadd --------------------------------------------------------------*/
|
|
8594
10129
|
|
|
8595
10130
|
static inline __ATTRS_o_ai __vector signed char
|
|
@@ -8628,6 +10163,34 @@ vec_mhadd(__vector unsigned int __a, __vector unsigned int __b,
|
|
|
8628
10163
|
return __builtin_s390_vmalhf(__a, __b, __c);
|
|
8629
10164
|
}
|
|
8630
10165
|
|
|
10166
|
+
#if __ARCH__ >= 15
|
|
10167
|
+
static inline __ATTRS_o_ai __vector signed long long
|
|
10168
|
+
vec_mhadd(__vector signed long long __a, __vector signed long long __b,
|
|
10169
|
+
__vector signed long long __c) {
|
|
10170
|
+
return __builtin_s390_vmahg(__a, __b, __c);
|
|
10171
|
+
}
|
|
10172
|
+
|
|
10173
|
+
static inline __ATTRS_o_ai __vector unsigned long long
|
|
10174
|
+
vec_mhadd(__vector unsigned long long __a, __vector unsigned long long __b,
|
|
10175
|
+
__vector unsigned long long __c) {
|
|
10176
|
+
return __builtin_s390_vmalhg(__a, __b, __c);
|
|
10177
|
+
}
|
|
10178
|
+
|
|
10179
|
+
static inline __ATTRS_o_ai __vector signed __int128
|
|
10180
|
+
vec_mhadd(__vector signed __int128 __a, __vector signed __int128 __b,
|
|
10181
|
+
__vector signed __int128 __c) {
|
|
10182
|
+
return (__vector signed __int128)
|
|
10183
|
+
__builtin_s390_vmahq((signed __int128)__a, (signed __int128)__b, (signed __int128)__c);
|
|
10184
|
+
}
|
|
10185
|
+
|
|
10186
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
10187
|
+
vec_mhadd(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
|
|
10188
|
+
__vector unsigned __int128 __c) {
|
|
10189
|
+
return (__vector unsigned __int128)
|
|
10190
|
+
__builtin_s390_vmalhq((unsigned __int128)__a, (unsigned __int128)__b, (unsigned __int128)__c);
|
|
10191
|
+
}
|
|
10192
|
+
#endif
|
|
10193
|
+
|
|
8631
10194
|
/*-- vec_meadd --------------------------------------------------------------*/
|
|
8632
10195
|
|
|
8633
10196
|
static inline __ATTRS_o_ai __vector signed short
|
|
@@ -8666,6 +10229,22 @@ vec_meadd(__vector unsigned int __a, __vector unsigned int __b,
|
|
|
8666
10229
|
return __builtin_s390_vmalef(__a, __b, __c);
|
|
8667
10230
|
}
|
|
8668
10231
|
|
|
10232
|
+
#if __ARCH__ >= 15
|
|
10233
|
+
static inline __ATTRS_o_ai __vector signed __int128
|
|
10234
|
+
vec_meadd(__vector signed long long __a, __vector signed long long __b,
|
|
10235
|
+
__vector signed __int128 __c) {
|
|
10236
|
+
return (__vector signed __int128)
|
|
10237
|
+
__builtin_s390_vmaeg(__a, __b, (signed __int128)__c);
|
|
10238
|
+
}
|
|
10239
|
+
|
|
10240
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
10241
|
+
vec_meadd(__vector unsigned long long __a, __vector unsigned long long __b,
|
|
10242
|
+
__vector unsigned __int128 __c) {
|
|
10243
|
+
return (__vector unsigned __int128)
|
|
10244
|
+
__builtin_s390_vmaleg(__a, __b, (unsigned __int128)__c);
|
|
10245
|
+
}
|
|
10246
|
+
#endif
|
|
10247
|
+
|
|
8669
10248
|
/*-- vec_moadd --------------------------------------------------------------*/
|
|
8670
10249
|
|
|
8671
10250
|
static inline __ATTRS_o_ai __vector signed short
|
|
@@ -8704,6 +10283,22 @@ vec_moadd(__vector unsigned int __a, __vector unsigned int __b,
|
|
|
8704
10283
|
return __builtin_s390_vmalof(__a, __b, __c);
|
|
8705
10284
|
}
|
|
8706
10285
|
|
|
10286
|
+
#if __ARCH__ >= 15
|
|
10287
|
+
static inline __ATTRS_o_ai __vector signed __int128
|
|
10288
|
+
vec_moadd(__vector signed long long __a, __vector signed long long __b,
|
|
10289
|
+
__vector signed __int128 __c) {
|
|
10290
|
+
return (__vector signed __int128)
|
|
10291
|
+
__builtin_s390_vmaog(__a, __b, (signed __int128)__c);
|
|
10292
|
+
}
|
|
10293
|
+
|
|
10294
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
10295
|
+
vec_moadd(__vector unsigned long long __a, __vector unsigned long long __b,
|
|
10296
|
+
__vector unsigned __int128 __c) {
|
|
10297
|
+
return (__vector unsigned __int128)
|
|
10298
|
+
__builtin_s390_vmalog(__a, __b, (unsigned __int128)__c);
|
|
10299
|
+
}
|
|
10300
|
+
#endif
|
|
10301
|
+
|
|
8707
10302
|
/*-- vec_mulh ---------------------------------------------------------------*/
|
|
8708
10303
|
|
|
8709
10304
|
static inline __ATTRS_o_ai __vector signed char
|
|
@@ -8736,6 +10331,30 @@ vec_mulh(__vector unsigned int __a, __vector unsigned int __b) {
|
|
|
8736
10331
|
return __builtin_s390_vmlhf(__a, __b);
|
|
8737
10332
|
}
|
|
8738
10333
|
|
|
10334
|
+
#if __ARCH__ >= 15
|
|
10335
|
+
static inline __ATTRS_o_ai __vector signed long long
|
|
10336
|
+
vec_mulh(__vector signed long long __a, __vector signed long long __b) {
|
|
10337
|
+
return __builtin_s390_vmhg(__a, __b);
|
|
10338
|
+
}
|
|
10339
|
+
|
|
10340
|
+
static inline __ATTRS_o_ai __vector unsigned long long
|
|
10341
|
+
vec_mulh(__vector unsigned long long __a, __vector unsigned long long __b) {
|
|
10342
|
+
return __builtin_s390_vmlhg(__a, __b);
|
|
10343
|
+
}
|
|
10344
|
+
|
|
10345
|
+
static inline __ATTRS_o_ai __vector signed __int128
|
|
10346
|
+
vec_mulh(__vector signed __int128 __a, __vector signed __int128 __b) {
|
|
10347
|
+
return (__vector signed __int128)
|
|
10348
|
+
__builtin_s390_vmhq((signed __int128)__a, (signed __int128)__b);
|
|
10349
|
+
}
|
|
10350
|
+
|
|
10351
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
10352
|
+
vec_mulh(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
|
|
10353
|
+
return (__vector unsigned __int128)
|
|
10354
|
+
__builtin_s390_vmlhq((unsigned __int128)__a, (unsigned __int128)__b);
|
|
10355
|
+
}
|
|
10356
|
+
#endif
|
|
10357
|
+
|
|
8739
10358
|
/*-- vec_mule ---------------------------------------------------------------*/
|
|
8740
10359
|
|
|
8741
10360
|
static inline __ATTRS_o_ai __vector signed short
|
|
@@ -8768,6 +10387,18 @@ vec_mule(__vector unsigned int __a, __vector unsigned int __b) {
|
|
|
8768
10387
|
return __builtin_s390_vmlef(__a, __b);
|
|
8769
10388
|
}
|
|
8770
10389
|
|
|
10390
|
+
#if __ARCH__ >= 15
|
|
10391
|
+
static inline __ATTRS_o_ai __vector signed __int128
|
|
10392
|
+
vec_mule(__vector signed long long __a, __vector signed long long __b) {
|
|
10393
|
+
return (__vector signed __int128)__builtin_s390_vmeg(__a, __b);
|
|
10394
|
+
}
|
|
10395
|
+
|
|
10396
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
10397
|
+
vec_mule(__vector unsigned long long __a, __vector unsigned long long __b) {
|
|
10398
|
+
return (__vector unsigned __int128)__builtin_s390_vmleg(__a, __b);
|
|
10399
|
+
}
|
|
10400
|
+
#endif
|
|
10401
|
+
|
|
8771
10402
|
/*-- vec_mulo ---------------------------------------------------------------*/
|
|
8772
10403
|
|
|
8773
10404
|
static inline __ATTRS_o_ai __vector signed short
|
|
@@ -8800,9 +10431,35 @@ vec_mulo(__vector unsigned int __a, __vector unsigned int __b) {
|
|
|
8800
10431
|
return __builtin_s390_vmlof(__a, __b);
|
|
8801
10432
|
}
|
|
8802
10433
|
|
|
10434
|
+
#if __ARCH__ >= 15
|
|
10435
|
+
static inline __ATTRS_o_ai __vector signed __int128
|
|
10436
|
+
vec_mulo(__vector signed long long __a, __vector signed long long __b) {
|
|
10437
|
+
return (__vector signed __int128)__builtin_s390_vmog(__a, __b);
|
|
10438
|
+
}
|
|
10439
|
+
|
|
10440
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
10441
|
+
vec_mulo(__vector unsigned long long __a, __vector unsigned long long __b) {
|
|
10442
|
+
return (__vector unsigned __int128)__builtin_s390_vmlog(__a, __b);
|
|
10443
|
+
}
|
|
10444
|
+
#endif
|
|
10445
|
+
|
|
10446
|
+
/*-- vec_msum ---------------------------------------------------------------*/
|
|
10447
|
+
|
|
10448
|
+
#if __ARCH__ >= 12
|
|
10449
|
+
extern __ATTRS_o __vector unsigned __int128
|
|
10450
|
+
vec_msum(__vector unsigned long long __a, __vector unsigned long long __b,
|
|
10451
|
+
__vector unsigned __int128 __c, int __d)
|
|
10452
|
+
__constant_range(__d, 0, 15);
|
|
10453
|
+
|
|
10454
|
+
#define vec_msum(X, Y, Z, W) \
|
|
10455
|
+
((__typeof__((vec_msum)((X), (Y), (Z), (W)))) \
|
|
10456
|
+
__builtin_s390_vmslg((X), (Y), (unsigned __int128)(Z), (W)))
|
|
10457
|
+
#endif
|
|
10458
|
+
|
|
8803
10459
|
/*-- vec_msum_u128 ----------------------------------------------------------*/
|
|
8804
10460
|
|
|
8805
10461
|
#if __ARCH__ >= 12
|
|
10462
|
+
// This prototype is deprecated.
|
|
8806
10463
|
extern __ATTRS_o __vector unsigned char
|
|
8807
10464
|
vec_msum_u128(__vector unsigned long long __a, __vector unsigned long long __b,
|
|
8808
10465
|
__vector unsigned char __c, int __d)
|
|
@@ -8810,14 +10467,17 @@ vec_msum_u128(__vector unsigned long long __a, __vector unsigned long long __b,
|
|
|
8810
10467
|
|
|
8811
10468
|
#define vec_msum_u128(X, Y, Z, W) \
|
|
8812
10469
|
((__typeof__((vec_msum_u128)((X), (Y), (Z), (W)))) \
|
|
10470
|
+
(__vector unsigned __int128) \
|
|
8813
10471
|
__builtin_s390_vmslg((X), (Y), (unsigned __int128)(Z), (W)))
|
|
8814
10472
|
#endif
|
|
8815
10473
|
|
|
8816
10474
|
/*-- vec_sub_u128 -----------------------------------------------------------*/
|
|
8817
10475
|
|
|
10476
|
+
// This prototype is deprecated.
|
|
8818
10477
|
static inline __ATTRS_ai __vector unsigned char
|
|
8819
10478
|
vec_sub_u128(__vector unsigned char __a, __vector unsigned char __b) {
|
|
8820
|
-
return (__vector unsigned char)(
|
|
10479
|
+
return (__vector unsigned char)(__vector unsigned __int128)
|
|
10480
|
+
((__int128)__a - (__int128)__b);
|
|
8821
10481
|
}
|
|
8822
10482
|
|
|
8823
10483
|
/*-- vec_subc ---------------------------------------------------------------*/
|
|
@@ -8842,30 +10502,59 @@ vec_subc(__vector unsigned long long __a, __vector unsigned long long __b) {
|
|
|
8842
10502
|
return __builtin_s390_vscbig(__a, __b);
|
|
8843
10503
|
}
|
|
8844
10504
|
|
|
10505
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
10506
|
+
vec_subc(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
|
|
10507
|
+
return (__vector unsigned __int128)
|
|
10508
|
+
__builtin_s390_vscbiq((unsigned __int128)__a, (unsigned __int128)__b);
|
|
10509
|
+
}
|
|
10510
|
+
|
|
8845
10511
|
/*-- vec_subc_u128 ----------------------------------------------------------*/
|
|
8846
10512
|
|
|
10513
|
+
// This prototype is deprecated.
|
|
8847
10514
|
static inline __ATTRS_ai __vector unsigned char
|
|
8848
10515
|
vec_subc_u128(__vector unsigned char __a, __vector unsigned char __b) {
|
|
8849
|
-
return (__vector unsigned char)
|
|
10516
|
+
return (__vector unsigned char)(__vector unsigned __int128)
|
|
8850
10517
|
__builtin_s390_vscbiq((unsigned __int128)__a, (unsigned __int128)__b);
|
|
8851
10518
|
}
|
|
8852
10519
|
|
|
10520
|
+
/*-- vec_sube ---------------------------------------------------------------*/
|
|
10521
|
+
|
|
10522
|
+
static inline __ATTRS_ai __vector unsigned __int128
|
|
10523
|
+
vec_sube(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
|
|
10524
|
+
__vector unsigned __int128 __c) {
|
|
10525
|
+
return (__vector unsigned __int128)
|
|
10526
|
+
__builtin_s390_vsbiq((unsigned __int128)__a, (unsigned __int128)__b,
|
|
10527
|
+
(unsigned __int128)__c);
|
|
10528
|
+
}
|
|
10529
|
+
|
|
8853
10530
|
/*-- vec_sube_u128 ----------------------------------------------------------*/
|
|
8854
10531
|
|
|
10532
|
+
// This prototype is deprecated.
|
|
8855
10533
|
static inline __ATTRS_ai __vector unsigned char
|
|
8856
10534
|
vec_sube_u128(__vector unsigned char __a, __vector unsigned char __b,
|
|
8857
10535
|
__vector unsigned char __c) {
|
|
8858
|
-
return (__vector unsigned char)
|
|
10536
|
+
return (__vector unsigned char)(__vector unsigned __int128)
|
|
8859
10537
|
__builtin_s390_vsbiq((unsigned __int128)__a, (unsigned __int128)__b,
|
|
8860
10538
|
(unsigned __int128)__c);
|
|
8861
10539
|
}
|
|
8862
10540
|
|
|
10541
|
+
/*-- vec_subec --------------------------------------------------------------*/
|
|
10542
|
+
|
|
10543
|
+
static inline __ATTRS_ai __vector unsigned __int128
|
|
10544
|
+
vec_subec(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
|
|
10545
|
+
__vector unsigned __int128 __c) {
|
|
10546
|
+
return (__vector unsigned __int128)
|
|
10547
|
+
__builtin_s390_vsbcbiq((unsigned __int128)__a, (unsigned __int128)__b,
|
|
10548
|
+
(unsigned __int128)__c);
|
|
10549
|
+
}
|
|
10550
|
+
|
|
8863
10551
|
/*-- vec_subec_u128 ---------------------------------------------------------*/
|
|
8864
10552
|
|
|
10553
|
+
// This prototype is deprecated.
|
|
8865
10554
|
static inline __ATTRS_ai __vector unsigned char
|
|
8866
10555
|
vec_subec_u128(__vector unsigned char __a, __vector unsigned char __b,
|
|
8867
10556
|
__vector unsigned char __c) {
|
|
8868
|
-
return (__vector unsigned char)
|
|
10557
|
+
return (__vector unsigned char)(__vector unsigned __int128)
|
|
8869
10558
|
__builtin_s390_vsbcbiq((unsigned __int128)__a, (unsigned __int128)__b,
|
|
8870
10559
|
(unsigned __int128)__c);
|
|
8871
10560
|
}
|
|
@@ -8882,16 +10571,32 @@ vec_sum2(__vector unsigned int __a, __vector unsigned int __b) {
|
|
|
8882
10571
|
return __builtin_s390_vsumgf(__a, __b);
|
|
8883
10572
|
}
|
|
8884
10573
|
|
|
10574
|
+
/*-- vec_sum ----------------------------------------------------------------*/
|
|
10575
|
+
|
|
10576
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
10577
|
+
vec_sum(__vector unsigned int __a, __vector unsigned int __b) {
|
|
10578
|
+
return (__vector unsigned __int128)__builtin_s390_vsumqf(__a, __b);
|
|
10579
|
+
}
|
|
10580
|
+
|
|
10581
|
+
static inline __ATTRS_o_ai __vector unsigned __int128
|
|
10582
|
+
vec_sum(__vector unsigned long long __a, __vector unsigned long long __b) {
|
|
10583
|
+
return (__vector unsigned __int128)__builtin_s390_vsumqg(__a, __b);
|
|
10584
|
+
}
|
|
10585
|
+
|
|
8885
10586
|
/*-- vec_sum_u128 -----------------------------------------------------------*/
|
|
8886
10587
|
|
|
10588
|
+
// This prototype is deprecated.
|
|
8887
10589
|
static inline __ATTRS_o_ai __vector unsigned char
|
|
8888
10590
|
vec_sum_u128(__vector unsigned int __a, __vector unsigned int __b) {
|
|
8889
|
-
return (__vector unsigned char)
|
|
10591
|
+
return (__vector unsigned char)(__vector unsigned __int128)
|
|
10592
|
+
__builtin_s390_vsumqf(__a, __b);
|
|
8890
10593
|
}
|
|
8891
10594
|
|
|
10595
|
+
// This prototype is deprecated.
|
|
8892
10596
|
static inline __ATTRS_o_ai __vector unsigned char
|
|
8893
10597
|
vec_sum_u128(__vector unsigned long long __a, __vector unsigned long long __b) {
|
|
8894
|
-
return (__vector unsigned char)
|
|
10598
|
+
return (__vector unsigned char)(__vector unsigned __int128)
|
|
10599
|
+
__builtin_s390_vsumqg(__a, __b);
|
|
8895
10600
|
}
|
|
8896
10601
|
|
|
8897
10602
|
/*-- vec_sum4 ---------------------------------------------------------------*/
|
|
@@ -8956,6 +10661,19 @@ vec_test_mask(__vector unsigned long long __a,
|
|
|
8956
10661
|
(__vector unsigned char)__b);
|
|
8957
10662
|
}
|
|
8958
10663
|
|
|
10664
|
+
static inline __ATTRS_o_ai int
|
|
10665
|
+
vec_test_mask(__vector signed __int128 __a, __vector unsigned __int128 __b) {
|
|
10666
|
+
return __builtin_s390_vtm((__vector unsigned char)__a,
|
|
10667
|
+
(__vector unsigned char)__b);
|
|
10668
|
+
}
|
|
10669
|
+
|
|
10670
|
+
static inline __ATTRS_o_ai int
|
|
10671
|
+
vec_test_mask(__vector unsigned __int128 __a,
|
|
10672
|
+
__vector unsigned __int128 __b) {
|
|
10673
|
+
return __builtin_s390_vtm((__vector unsigned char)__a,
|
|
10674
|
+
(__vector unsigned char)__b);
|
|
10675
|
+
}
|
|
10676
|
+
|
|
8959
10677
|
#if __ARCH__ >= 12
|
|
8960
10678
|
static inline __ATTRS_o_ai int
|
|
8961
10679
|
vec_test_mask(__vector float __a, __vector unsigned int __b) {
|