@cpp-linter/clang-tidy-darwin-x64 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
|
@@ -21,10 +21,45 @@ typedef int __v2si __attribute__((__vector_size__(8)));
|
|
|
21
21
|
typedef short __v4hi __attribute__((__vector_size__(8)));
|
|
22
22
|
typedef char __v8qi __attribute__((__vector_size__(8)));
|
|
23
23
|
|
|
24
|
+
/* Unsigned types */
|
|
25
|
+
typedef unsigned long long __v1du __attribute__ ((__vector_size__ (8)));
|
|
26
|
+
typedef unsigned int __v2su __attribute__ ((__vector_size__ (8)));
|
|
27
|
+
typedef unsigned short __v4hu __attribute__((__vector_size__(8)));
|
|
28
|
+
typedef unsigned char __v8qu __attribute__((__vector_size__(8)));
|
|
29
|
+
|
|
30
|
+
/* We need an explicitly signed variant for char. Note that this shouldn't
|
|
31
|
+
* appear in the interface though. */
|
|
32
|
+
typedef signed char __v8qs __attribute__((__vector_size__(8)));
|
|
33
|
+
|
|
34
|
+
/* SSE/SSE2 types */
|
|
35
|
+
typedef long long __m128i __attribute__((__vector_size__(16), __aligned__(16)));
|
|
36
|
+
typedef long long __v2di __attribute__ ((__vector_size__ (16)));
|
|
37
|
+
typedef int __v4si __attribute__((__vector_size__(16)));
|
|
38
|
+
typedef short __v8hi __attribute__((__vector_size__(16)));
|
|
39
|
+
typedef char __v16qi __attribute__((__vector_size__(16)));
|
|
40
|
+
|
|
24
41
|
/* Define the default attributes for the functions in this file. */
|
|
25
|
-
#
|
|
26
|
-
|
|
27
|
-
|
|
42
|
+
#if defined(__EVEX512__) && !defined(__AVX10_1_512__)
|
|
43
|
+
#define __DEFAULT_FN_ATTRS_SSE2 \
|
|
44
|
+
__attribute__((__always_inline__, __nodebug__, \
|
|
45
|
+
__target__("sse2,no-evex512"), __min_vector_width__(128)))
|
|
46
|
+
#else
|
|
47
|
+
#define __DEFAULT_FN_ATTRS_SSE2 \
|
|
48
|
+
__attribute__((__always_inline__, __nodebug__, __target__("sse2"), \
|
|
49
|
+
__min_vector_width__(128)))
|
|
50
|
+
#endif
|
|
51
|
+
|
|
52
|
+
#if defined(__cplusplus) && (__cplusplus >= 201103L)
|
|
53
|
+
#define __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR __DEFAULT_FN_ATTRS_SSE2 constexpr
|
|
54
|
+
#else
|
|
55
|
+
#define __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR __DEFAULT_FN_ATTRS_SSE2
|
|
56
|
+
#endif
|
|
57
|
+
|
|
58
|
+
#define __trunc64(x) \
|
|
59
|
+
(__m64) __builtin_shufflevector((__v2di)(x), __extension__(__v2di){}, 0)
|
|
60
|
+
#define __anyext128(x) \
|
|
61
|
+
(__m128i) __builtin_shufflevector((__v2si)(x), __extension__(__v2si){}, 0, \
|
|
62
|
+
1, -1, -1)
|
|
28
63
|
|
|
29
64
|
/// Clears the MMX state by setting the state of the x87 stack registers
|
|
30
65
|
/// to empty.
|
|
@@ -50,10 +85,10 @@ _mm_empty(void) {
|
|
|
50
85
|
/// A 32-bit integer value.
|
|
51
86
|
/// \returns A 64-bit integer vector. The lower 32 bits contain the value of the
|
|
52
87
|
/// parameter. The upper 32 bits are set to 0.
|
|
53
|
-
static __inline__ __m64
|
|
88
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
54
89
|
_mm_cvtsi32_si64(int __i)
|
|
55
90
|
{
|
|
56
|
-
return (__m64)
|
|
91
|
+
return __extension__ (__m64)(__v2si){__i, 0};
|
|
57
92
|
}
|
|
58
93
|
|
|
59
94
|
/// Returns the lower 32 bits of a 64-bit integer vector as a 32-bit
|
|
@@ -67,10 +102,10 @@ _mm_cvtsi32_si64(int __i)
|
|
|
67
102
|
/// A 64-bit integer vector.
|
|
68
103
|
/// \returns A 32-bit signed integer value containing the lower 32 bits of the
|
|
69
104
|
/// parameter.
|
|
70
|
-
static __inline__ int
|
|
105
|
+
static __inline__ int __DEFAULT_FN_ATTRS_SSE2
|
|
71
106
|
_mm_cvtsi64_si32(__m64 __m)
|
|
72
107
|
{
|
|
73
|
-
return
|
|
108
|
+
return ((__v2si)__m)[0];
|
|
74
109
|
}
|
|
75
110
|
|
|
76
111
|
/// Casts a 64-bit signed integer value into a 64-bit integer vector.
|
|
@@ -83,7 +118,7 @@ _mm_cvtsi64_si32(__m64 __m)
|
|
|
83
118
|
/// A 64-bit signed integer.
|
|
84
119
|
/// \returns A 64-bit integer vector containing the same bitwise pattern as the
|
|
85
120
|
/// parameter.
|
|
86
|
-
static __inline__ __m64
|
|
121
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
87
122
|
_mm_cvtsi64_m64(long long __i)
|
|
88
123
|
{
|
|
89
124
|
return (__m64)__i;
|
|
@@ -99,100 +134,88 @@ _mm_cvtsi64_m64(long long __i)
|
|
|
99
134
|
/// A 64-bit integer vector.
|
|
100
135
|
/// \returns A 64-bit signed integer containing the same bitwise pattern as the
|
|
101
136
|
/// parameter.
|
|
102
|
-
static __inline__ long long
|
|
137
|
+
static __inline__ long long __DEFAULT_FN_ATTRS_SSE2
|
|
103
138
|
_mm_cvtm64_si64(__m64 __m)
|
|
104
139
|
{
|
|
105
140
|
return (long long)__m;
|
|
106
141
|
}
|
|
107
142
|
|
|
108
|
-
/// Converts 16-bit signed integers from both 64-bit integer
|
|
109
|
-
/// parameters of [4 x i16] into 8-bit signed integer values, and
|
|
110
|
-
/// a 64-bit integer vector of [8 x i8] as the result.
|
|
111
|
-
///
|
|
112
|
-
/// are saturated to
|
|
143
|
+
/// Converts, with saturation, 16-bit signed integers from both 64-bit integer
|
|
144
|
+
/// vector parameters of [4 x i16] into 8-bit signed integer values, and
|
|
145
|
+
/// constructs a 64-bit integer vector of [8 x i8] as the result.
|
|
146
|
+
///
|
|
147
|
+
/// Positive values greater than 0x7F are saturated to 0x7F. Negative values
|
|
148
|
+
/// less than 0x80 are saturated to 0x80.
|
|
113
149
|
///
|
|
114
150
|
/// \headerfile <x86intrin.h>
|
|
115
151
|
///
|
|
116
152
|
/// This intrinsic corresponds to the <c> PACKSSWB </c> instruction.
|
|
117
153
|
///
|
|
118
154
|
/// \param __m1
|
|
119
|
-
/// A 64-bit integer vector of [4 x i16].
|
|
120
|
-
///
|
|
121
|
-
/// saturation. Positive values greater than 0x7F are saturated to 0x7F.
|
|
122
|
-
/// Negative values less than 0x80 are saturated to 0x80. The converted
|
|
123
|
-
/// [4 x i8] values are written to the lower 32 bits of the result.
|
|
155
|
+
/// A 64-bit integer vector of [4 x i16]. The converted [4 x i8] values are
|
|
156
|
+
/// written to the lower 32 bits of the result.
|
|
124
157
|
/// \param __m2
|
|
125
|
-
/// A 64-bit integer vector of [4 x i16].
|
|
126
|
-
///
|
|
127
|
-
/// saturation. Positive values greater than 0x7F are saturated to 0x7F.
|
|
128
|
-
/// Negative values less than 0x80 are saturated to 0x80. The converted
|
|
129
|
-
/// [4 x i8] values are written to the upper 32 bits of the result.
|
|
158
|
+
/// A 64-bit integer vector of [4 x i16]. The converted [4 x i8] values are
|
|
159
|
+
/// written to the upper 32 bits of the result.
|
|
130
160
|
/// \returns A 64-bit integer vector of [8 x i8] containing the converted
|
|
131
161
|
/// values.
|
|
132
|
-
static __inline__ __m64
|
|
162
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
133
163
|
_mm_packs_pi16(__m64 __m1, __m64 __m2)
|
|
134
164
|
{
|
|
135
|
-
return (
|
|
165
|
+
return __trunc64(__builtin_ia32_packsswb128(
|
|
166
|
+
(__v8hi)__builtin_shufflevector(__m1, __m2, 0, 1), (__v8hi){}));
|
|
136
167
|
}
|
|
137
168
|
|
|
138
|
-
/// Converts 32-bit signed integers from both 64-bit integer
|
|
139
|
-
/// parameters of [2 x i32] into 16-bit signed integer values, and
|
|
140
|
-
/// a 64-bit integer vector of [4 x i16] as the result.
|
|
141
|
-
///
|
|
142
|
-
///
|
|
169
|
+
/// Converts, with saturation, 32-bit signed integers from both 64-bit integer
|
|
170
|
+
/// vector parameters of [2 x i32] into 16-bit signed integer values, and
|
|
171
|
+
/// constructs a 64-bit integer vector of [4 x i16] as the result.
|
|
172
|
+
///
|
|
173
|
+
/// Positive values greater than 0x7FFF are saturated to 0x7FFF. Negative
|
|
174
|
+
/// values less than 0x8000 are saturated to 0x8000.
|
|
143
175
|
///
|
|
144
176
|
/// \headerfile <x86intrin.h>
|
|
145
177
|
///
|
|
146
178
|
/// This intrinsic corresponds to the <c> PACKSSDW </c> instruction.
|
|
147
179
|
///
|
|
148
180
|
/// \param __m1
|
|
149
|
-
/// A 64-bit integer vector of [2 x i32].
|
|
150
|
-
///
|
|
151
|
-
/// saturation. Positive values greater than 0x7FFF are saturated to 0x7FFF.
|
|
152
|
-
/// Negative values less than 0x8000 are saturated to 0x8000. The converted
|
|
153
|
-
/// [2 x i16] values are written to the lower 32 bits of the result.
|
|
181
|
+
/// A 64-bit integer vector of [2 x i32]. The converted [2 x i16] values are
|
|
182
|
+
/// written to the lower 32 bits of the result.
|
|
154
183
|
/// \param __m2
|
|
155
|
-
/// A 64-bit integer vector of [2 x i32].
|
|
156
|
-
///
|
|
157
|
-
/// saturation. Positive values greater than 0x7FFF are saturated to 0x7FFF.
|
|
158
|
-
/// Negative values less than 0x8000 are saturated to 0x8000. The converted
|
|
159
|
-
/// [2 x i16] values are written to the upper 32 bits of the result.
|
|
184
|
+
/// A 64-bit integer vector of [2 x i32]. The converted [2 x i16] values are
|
|
185
|
+
/// written to the upper 32 bits of the result.
|
|
160
186
|
/// \returns A 64-bit integer vector of [4 x i16] containing the converted
|
|
161
187
|
/// values.
|
|
162
|
-
static __inline__ __m64
|
|
188
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
163
189
|
_mm_packs_pi32(__m64 __m1, __m64 __m2)
|
|
164
190
|
{
|
|
165
|
-
return (
|
|
191
|
+
return __trunc64(__builtin_ia32_packssdw128(
|
|
192
|
+
(__v4si)__builtin_shufflevector(__m1, __m2, 0, 1), (__v4si){}));
|
|
166
193
|
}
|
|
167
194
|
|
|
168
|
-
/// Converts 16-bit signed integers from both 64-bit integer
|
|
169
|
-
/// parameters of [4 x i16] into 8-bit unsigned integer values, and
|
|
170
|
-
/// constructs a 64-bit integer vector of [8 x i8] as the result.
|
|
171
|
-
///
|
|
172
|
-
/// to 0
|
|
195
|
+
/// Converts, with saturation, 16-bit signed integers from both 64-bit integer
|
|
196
|
+
/// vector parameters of [4 x i16] into 8-bit unsigned integer values, and
|
|
197
|
+
/// constructs a 64-bit integer vector of [8 x i8] as the result.
|
|
198
|
+
///
|
|
199
|
+
/// Values greater than 0xFF are saturated to 0xFF. Values less than 0 are
|
|
200
|
+
/// saturated to 0.
|
|
173
201
|
///
|
|
174
202
|
/// \headerfile <x86intrin.h>
|
|
175
203
|
///
|
|
176
204
|
/// This intrinsic corresponds to the <c> PACKUSWB </c> instruction.
|
|
177
205
|
///
|
|
178
206
|
/// \param __m1
|
|
179
|
-
/// A 64-bit integer vector of [4 x i16].
|
|
180
|
-
///
|
|
181
|
-
/// saturation. Values greater than 0xFF are saturated to 0xFF. Values less
|
|
182
|
-
/// than 0 are saturated to 0. The converted [4 x i8] values are written to
|
|
183
|
-
/// the lower 32 bits of the result.
|
|
207
|
+
/// A 64-bit integer vector of [4 x i16]. The converted [4 x i8] values are
|
|
208
|
+
/// written to the lower 32 bits of the result.
|
|
184
209
|
/// \param __m2
|
|
185
|
-
/// A 64-bit integer vector of [4 x i16].
|
|
186
|
-
///
|
|
187
|
-
/// saturation. Values greater than 0xFF are saturated to 0xFF. Values less
|
|
188
|
-
/// than 0 are saturated to 0. The converted [4 x i8] values are written to
|
|
189
|
-
/// the upper 32 bits of the result.
|
|
210
|
+
/// A 64-bit integer vector of [4 x i16]. The converted [4 x i8] values are
|
|
211
|
+
/// written to the upper 32 bits of the result.
|
|
190
212
|
/// \returns A 64-bit integer vector of [8 x i8] containing the converted
|
|
191
213
|
/// values.
|
|
192
|
-
static __inline__ __m64
|
|
214
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
193
215
|
_mm_packs_pu16(__m64 __m1, __m64 __m2)
|
|
194
216
|
{
|
|
195
|
-
return (
|
|
217
|
+
return __trunc64(__builtin_ia32_packuswb128(
|
|
218
|
+
(__v8hi)__builtin_shufflevector(__m1, __m2, 0, 1), (__v8hi){}));
|
|
196
219
|
}
|
|
197
220
|
|
|
198
221
|
/// Unpacks the upper 32 bits from two 64-bit integer vectors of [8 x i8]
|
|
@@ -216,10 +239,11 @@ _mm_packs_pu16(__m64 __m1, __m64 __m2)
|
|
|
216
239
|
/// Bits [63:56] are written to bits [63:56] of the result.
|
|
217
240
|
/// \returns A 64-bit integer vector of [8 x i8] containing the interleaved
|
|
218
241
|
/// values.
|
|
219
|
-
static __inline__ __m64
|
|
242
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
220
243
|
_mm_unpackhi_pi8(__m64 __m1, __m64 __m2)
|
|
221
244
|
{
|
|
222
|
-
return (__m64)
|
|
245
|
+
return (__m64)__builtin_shufflevector((__v8qi)__m1, (__v8qi)__m2,
|
|
246
|
+
4, 12, 5, 13, 6, 14, 7, 15);
|
|
223
247
|
}
|
|
224
248
|
|
|
225
249
|
/// Unpacks the upper 32 bits from two 64-bit integer vectors of
|
|
@@ -239,10 +263,11 @@ _mm_unpackhi_pi8(__m64 __m1, __m64 __m2)
|
|
|
239
263
|
/// Bits [63:48] are written to bits [63:48] of the result.
|
|
240
264
|
/// \returns A 64-bit integer vector of [4 x i16] containing the interleaved
|
|
241
265
|
/// values.
|
|
242
|
-
static __inline__ __m64
|
|
266
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
243
267
|
_mm_unpackhi_pi16(__m64 __m1, __m64 __m2)
|
|
244
268
|
{
|
|
245
|
-
return (__m64)
|
|
269
|
+
return (__m64)__builtin_shufflevector((__v4hi)__m1, (__v4hi)__m2,
|
|
270
|
+
2, 6, 3, 7);
|
|
246
271
|
}
|
|
247
272
|
|
|
248
273
|
/// Unpacks the upper 32 bits from two 64-bit integer vectors of
|
|
@@ -260,10 +285,10 @@ _mm_unpackhi_pi16(__m64 __m1, __m64 __m2)
|
|
|
260
285
|
/// the upper 32 bits of the result.
|
|
261
286
|
/// \returns A 64-bit integer vector of [2 x i32] containing the interleaved
|
|
262
287
|
/// values.
|
|
263
|
-
static __inline__ __m64
|
|
288
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
264
289
|
_mm_unpackhi_pi32(__m64 __m1, __m64 __m2)
|
|
265
290
|
{
|
|
266
|
-
return (__m64)
|
|
291
|
+
return (__m64)__builtin_shufflevector((__v2si)__m1, (__v2si)__m2, 1, 3);
|
|
267
292
|
}
|
|
268
293
|
|
|
269
294
|
/// Unpacks the lower 32 bits from two 64-bit integer vectors of [8 x i8]
|
|
@@ -287,10 +312,11 @@ _mm_unpackhi_pi32(__m64 __m1, __m64 __m2)
|
|
|
287
312
|
/// Bits [31:24] are written to bits [63:56] of the result.
|
|
288
313
|
/// \returns A 64-bit integer vector of [8 x i8] containing the interleaved
|
|
289
314
|
/// values.
|
|
290
|
-
static __inline__ __m64
|
|
315
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
291
316
|
_mm_unpacklo_pi8(__m64 __m1, __m64 __m2)
|
|
292
317
|
{
|
|
293
|
-
return (__m64)
|
|
318
|
+
return (__m64)__builtin_shufflevector((__v8qi)__m1, (__v8qi)__m2,
|
|
319
|
+
0, 8, 1, 9, 2, 10, 3, 11);
|
|
294
320
|
}
|
|
295
321
|
|
|
296
322
|
/// Unpacks the lower 32 bits from two 64-bit integer vectors of
|
|
@@ -310,10 +336,11 @@ _mm_unpacklo_pi8(__m64 __m1, __m64 __m2)
|
|
|
310
336
|
/// Bits [31:16] are written to bits [63:48] of the result.
|
|
311
337
|
/// \returns A 64-bit integer vector of [4 x i16] containing the interleaved
|
|
312
338
|
/// values.
|
|
313
|
-
static __inline__ __m64
|
|
339
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
314
340
|
_mm_unpacklo_pi16(__m64 __m1, __m64 __m2)
|
|
315
341
|
{
|
|
316
|
-
return (__m64)
|
|
342
|
+
return (__m64)__builtin_shufflevector((__v4hi)__m1, (__v4hi)__m2,
|
|
343
|
+
0, 4, 1, 5);
|
|
317
344
|
}
|
|
318
345
|
|
|
319
346
|
/// Unpacks the lower 32 bits from two 64-bit integer vectors of
|
|
@@ -331,10 +358,10 @@ _mm_unpacklo_pi16(__m64 __m1, __m64 __m2)
|
|
|
331
358
|
/// the upper 32 bits of the result.
|
|
332
359
|
/// \returns A 64-bit integer vector of [2 x i32] containing the interleaved
|
|
333
360
|
/// values.
|
|
334
|
-
static __inline__ __m64
|
|
361
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
335
362
|
_mm_unpacklo_pi32(__m64 __m1, __m64 __m2)
|
|
336
363
|
{
|
|
337
|
-
return (__m64)
|
|
364
|
+
return (__m64)__builtin_shufflevector((__v2si)__m1, (__v2si)__m2, 0, 2);
|
|
338
365
|
}
|
|
339
366
|
|
|
340
367
|
/// Adds each 8-bit integer element of the first 64-bit integer vector
|
|
@@ -352,10 +379,10 @@ _mm_unpacklo_pi32(__m64 __m1, __m64 __m2)
|
|
|
352
379
|
/// A 64-bit integer vector of [8 x i8].
|
|
353
380
|
/// \returns A 64-bit integer vector of [8 x i8] containing the sums of both
|
|
354
381
|
/// parameters.
|
|
355
|
-
static __inline__ __m64
|
|
382
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
356
383
|
_mm_add_pi8(__m64 __m1, __m64 __m2)
|
|
357
384
|
{
|
|
358
|
-
return (__m64)
|
|
385
|
+
return (__m64)(((__v8qu)__m1) + ((__v8qu)__m2));
|
|
359
386
|
}
|
|
360
387
|
|
|
361
388
|
/// Adds each 16-bit integer element of the first 64-bit integer vector
|
|
@@ -373,10 +400,10 @@ _mm_add_pi8(__m64 __m1, __m64 __m2)
|
|
|
373
400
|
/// A 64-bit integer vector of [4 x i16].
|
|
374
401
|
/// \returns A 64-bit integer vector of [4 x i16] containing the sums of both
|
|
375
402
|
/// parameters.
|
|
376
|
-
static __inline__ __m64
|
|
403
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
377
404
|
_mm_add_pi16(__m64 __m1, __m64 __m2)
|
|
378
405
|
{
|
|
379
|
-
return (__m64)
|
|
406
|
+
return (__m64)(((__v4hu)__m1) + ((__v4hu)__m2));
|
|
380
407
|
}
|
|
381
408
|
|
|
382
409
|
/// Adds each 32-bit integer element of the first 64-bit integer vector
|
|
@@ -394,17 +421,19 @@ _mm_add_pi16(__m64 __m1, __m64 __m2)
|
|
|
394
421
|
/// A 64-bit integer vector of [2 x i32].
|
|
395
422
|
/// \returns A 64-bit integer vector of [2 x i32] containing the sums of both
|
|
396
423
|
/// parameters.
|
|
397
|
-
static __inline__ __m64
|
|
424
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
398
425
|
_mm_add_pi32(__m64 __m1, __m64 __m2)
|
|
399
426
|
{
|
|
400
|
-
return (__m64)
|
|
427
|
+
return (__m64)(((__v2su)__m1) + ((__v2su)__m2));
|
|
401
428
|
}
|
|
402
429
|
|
|
403
|
-
/// Adds each 8-bit signed integer element of the first
|
|
404
|
-
/// vector of [8 x i8] to the corresponding 8-bit signed
|
|
405
|
-
/// the second 64-bit integer vector of [8 x i8].
|
|
406
|
-
///
|
|
407
|
-
///
|
|
430
|
+
/// Adds, with saturation, each 8-bit signed integer element of the first
|
|
431
|
+
/// 64-bit integer vector of [8 x i8] to the corresponding 8-bit signed
|
|
432
|
+
/// integer element of the second 64-bit integer vector of [8 x i8].
|
|
433
|
+
///
|
|
434
|
+
/// Positive sums greater than 0x7F are saturated to 0x7F. Negative sums
|
|
435
|
+
/// less than 0x80 are saturated to 0x80. The results are packed into a
|
|
436
|
+
/// 64-bit integer vector of [8 x i8].
|
|
408
437
|
///
|
|
409
438
|
/// \headerfile <x86intrin.h>
|
|
410
439
|
///
|
|
@@ -416,18 +445,19 @@ _mm_add_pi32(__m64 __m1, __m64 __m2)
|
|
|
416
445
|
/// A 64-bit integer vector of [8 x i8].
|
|
417
446
|
/// \returns A 64-bit integer vector of [8 x i8] containing the saturated sums
|
|
418
447
|
/// of both parameters.
|
|
419
|
-
static __inline__ __m64
|
|
448
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
420
449
|
_mm_adds_pi8(__m64 __m1, __m64 __m2)
|
|
421
450
|
{
|
|
422
|
-
return (__m64)
|
|
451
|
+
return (__m64)__builtin_elementwise_add_sat((__v8qs)__m1, (__v8qs)__m2);
|
|
423
452
|
}
|
|
424
453
|
|
|
425
|
-
/// Adds each 16-bit signed integer element of the first
|
|
426
|
-
/// vector of [4 x i16] to the corresponding 16-bit signed
|
|
427
|
-
/// the second 64-bit integer vector of [4 x i16].
|
|
428
|
-
///
|
|
429
|
-
///
|
|
430
|
-
///
|
|
454
|
+
/// Adds, with saturation, each 16-bit signed integer element of the first
|
|
455
|
+
/// 64-bit integer vector of [4 x i16] to the corresponding 16-bit signed
|
|
456
|
+
/// integer element of the second 64-bit integer vector of [4 x i16].
|
|
457
|
+
///
|
|
458
|
+
/// Positive sums greater than 0x7FFF are saturated to 0x7FFF. Negative sums
|
|
459
|
+
/// less than 0x8000 are saturated to 0x8000. The results are packed into a
|
|
460
|
+
/// 64-bit integer vector of [4 x i16].
|
|
431
461
|
///
|
|
432
462
|
/// \headerfile <x86intrin.h>
|
|
433
463
|
///
|
|
@@ -439,17 +469,18 @@ _mm_adds_pi8(__m64 __m1, __m64 __m2)
|
|
|
439
469
|
/// A 64-bit integer vector of [4 x i16].
|
|
440
470
|
/// \returns A 64-bit integer vector of [4 x i16] containing the saturated sums
|
|
441
471
|
/// of both parameters.
|
|
442
|
-
static __inline__ __m64
|
|
472
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
443
473
|
_mm_adds_pi16(__m64 __m1, __m64 __m2)
|
|
444
474
|
{
|
|
445
|
-
return (__m64)
|
|
475
|
+
return (__m64)__builtin_elementwise_add_sat((__v4hi)__m1, (__v4hi)__m2);
|
|
446
476
|
}
|
|
447
477
|
|
|
448
|
-
/// Adds each 8-bit unsigned integer element of the first
|
|
449
|
-
/// vector of [8 x i8] to the corresponding 8-bit unsigned
|
|
450
|
-
/// the second 64-bit integer vector of [8 x i8].
|
|
451
|
-
///
|
|
452
|
-
///
|
|
478
|
+
/// Adds, with saturation, each 8-bit unsigned integer element of the first
|
|
479
|
+
/// 64-bit integer vector of [8 x i8] to the corresponding 8-bit unsigned
|
|
480
|
+
/// integer element of the second 64-bit integer vector of [8 x i8].
|
|
481
|
+
///
|
|
482
|
+
/// Sums greater than 0xFF are saturated to 0xFF. The results are packed
|
|
483
|
+
/// into a 64-bit integer vector of [8 x i8].
|
|
453
484
|
///
|
|
454
485
|
/// \headerfile <x86intrin.h>
|
|
455
486
|
///
|
|
@@ -461,17 +492,18 @@ _mm_adds_pi16(__m64 __m1, __m64 __m2)
|
|
|
461
492
|
/// A 64-bit integer vector of [8 x i8].
|
|
462
493
|
/// \returns A 64-bit integer vector of [8 x i8] containing the saturated
|
|
463
494
|
/// unsigned sums of both parameters.
|
|
464
|
-
static __inline__ __m64
|
|
495
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
465
496
|
_mm_adds_pu8(__m64 __m1, __m64 __m2)
|
|
466
497
|
{
|
|
467
|
-
return (__m64)
|
|
498
|
+
return (__m64)__builtin_elementwise_add_sat((__v8qu)__m1, (__v8qu)__m2);
|
|
468
499
|
}
|
|
469
500
|
|
|
470
|
-
/// Adds each 16-bit unsigned integer element of the first
|
|
471
|
-
/// vector of [4 x i16] to the corresponding 16-bit unsigned
|
|
472
|
-
/// of the second 64-bit integer vector of [4 x i16].
|
|
473
|
-
///
|
|
474
|
-
///
|
|
501
|
+
/// Adds, with saturation, each 16-bit unsigned integer element of the first
|
|
502
|
+
/// 64-bit integer vector of [4 x i16] to the corresponding 16-bit unsigned
|
|
503
|
+
/// integer element of the second 64-bit integer vector of [4 x i16].
|
|
504
|
+
///
|
|
505
|
+
/// Sums greater than 0xFFFF are saturated to 0xFFFF. The results are packed
|
|
506
|
+
/// into a 64-bit integer vector of [4 x i16].
|
|
475
507
|
///
|
|
476
508
|
/// \headerfile <x86intrin.h>
|
|
477
509
|
///
|
|
@@ -483,10 +515,10 @@ _mm_adds_pu8(__m64 __m1, __m64 __m2)
|
|
|
483
515
|
/// A 64-bit integer vector of [4 x i16].
|
|
484
516
|
/// \returns A 64-bit integer vector of [4 x i16] containing the saturated
|
|
485
517
|
/// unsigned sums of both parameters.
|
|
486
|
-
static __inline__ __m64
|
|
518
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
487
519
|
_mm_adds_pu16(__m64 __m1, __m64 __m2)
|
|
488
520
|
{
|
|
489
|
-
return (__m64)
|
|
521
|
+
return (__m64)__builtin_elementwise_add_sat((__v4hu)__m1, (__v4hu)__m2);
|
|
490
522
|
}
|
|
491
523
|
|
|
492
524
|
/// Subtracts each 8-bit integer element of the second 64-bit integer
|
|
@@ -504,10 +536,10 @@ _mm_adds_pu16(__m64 __m1, __m64 __m2)
|
|
|
504
536
|
/// A 64-bit integer vector of [8 x i8] containing the subtrahends.
|
|
505
537
|
/// \returns A 64-bit integer vector of [8 x i8] containing the differences of
|
|
506
538
|
/// both parameters.
|
|
507
|
-
static __inline__ __m64
|
|
539
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
508
540
|
_mm_sub_pi8(__m64 __m1, __m64 __m2)
|
|
509
541
|
{
|
|
510
|
-
return (__m64)
|
|
542
|
+
return (__m64)(((__v8qu)__m1) - ((__v8qu)__m2));
|
|
511
543
|
}
|
|
512
544
|
|
|
513
545
|
/// Subtracts each 16-bit integer element of the second 64-bit integer
|
|
@@ -525,10 +557,10 @@ _mm_sub_pi8(__m64 __m1, __m64 __m2)
|
|
|
525
557
|
/// A 64-bit integer vector of [4 x i16] containing the subtrahends.
|
|
526
558
|
/// \returns A 64-bit integer vector of [4 x i16] containing the differences of
|
|
527
559
|
/// both parameters.
|
|
528
|
-
static __inline__ __m64
|
|
560
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
529
561
|
_mm_sub_pi16(__m64 __m1, __m64 __m2)
|
|
530
562
|
{
|
|
531
|
-
return (__m64)
|
|
563
|
+
return (__m64)(((__v4hu)__m1) - ((__v4hu)__m2));
|
|
532
564
|
}
|
|
533
565
|
|
|
534
566
|
/// Subtracts each 32-bit integer element of the second 64-bit integer
|
|
@@ -546,18 +578,19 @@ _mm_sub_pi16(__m64 __m1, __m64 __m2)
|
|
|
546
578
|
/// A 64-bit integer vector of [2 x i32] containing the subtrahends.
|
|
547
579
|
/// \returns A 64-bit integer vector of [2 x i32] containing the differences of
|
|
548
580
|
/// both parameters.
|
|
549
|
-
static __inline__ __m64
|
|
581
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
550
582
|
_mm_sub_pi32(__m64 __m1, __m64 __m2)
|
|
551
583
|
{
|
|
552
|
-
return (__m64)
|
|
584
|
+
return (__m64)(((__v2su)__m1) - ((__v2su)__m2));
|
|
553
585
|
}
|
|
554
586
|
|
|
555
|
-
/// Subtracts each 8-bit signed integer element of the second
|
|
556
|
-
/// integer vector of [8 x i8] from the corresponding 8-bit signed
|
|
557
|
-
/// element of the first 64-bit integer vector of [8 x i8].
|
|
558
|
-
///
|
|
559
|
-
///
|
|
560
|
-
///
|
|
587
|
+
/// Subtracts, with saturation, each 8-bit signed integer element of the second
|
|
588
|
+
/// 64-bit integer vector of [8 x i8] from the corresponding 8-bit signed
|
|
589
|
+
/// integer element of the first 64-bit integer vector of [8 x i8].
|
|
590
|
+
///
|
|
591
|
+
/// Positive results greater than 0x7F are saturated to 0x7F. Negative
|
|
592
|
+
/// results less than 0x80 are saturated to 0x80. The results are packed
|
|
593
|
+
/// into a 64-bit integer vector of [8 x i8].
|
|
561
594
|
///
|
|
562
595
|
/// \headerfile <x86intrin.h>
|
|
563
596
|
///
|
|
@@ -569,18 +602,19 @@ _mm_sub_pi32(__m64 __m1, __m64 __m2)
|
|
|
569
602
|
/// A 64-bit integer vector of [8 x i8] containing the subtrahends.
|
|
570
603
|
/// \returns A 64-bit integer vector of [8 x i8] containing the saturated
|
|
571
604
|
/// differences of both parameters.
|
|
572
|
-
static __inline__ __m64
|
|
605
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
573
606
|
_mm_subs_pi8(__m64 __m1, __m64 __m2)
|
|
574
607
|
{
|
|
575
|
-
return (__m64)
|
|
608
|
+
return (__m64)__builtin_elementwise_sub_sat((__v8qs)__m1, (__v8qs)__m2);
|
|
576
609
|
}
|
|
577
610
|
|
|
578
|
-
/// Subtracts each 16-bit signed integer element of the
|
|
579
|
-
/// integer vector of [4 x i16] from the corresponding 16-bit
|
|
580
|
-
/// element of the first 64-bit integer vector of [4 x i16].
|
|
581
|
-
///
|
|
582
|
-
///
|
|
583
|
-
///
|
|
611
|
+
/// Subtracts, with saturation, each 16-bit signed integer element of the
|
|
612
|
+
/// second 64-bit integer vector of [4 x i16] from the corresponding 16-bit
|
|
613
|
+
/// signed integer element of the first 64-bit integer vector of [4 x i16].
|
|
614
|
+
///
|
|
615
|
+
/// Positive results greater than 0x7FFF are saturated to 0x7FFF. Negative
|
|
616
|
+
/// results less than 0x8000 are saturated to 0x8000. The results are packed
|
|
617
|
+
/// into a 64-bit integer vector of [4 x i16].
|
|
584
618
|
///
|
|
585
619
|
/// \headerfile <x86intrin.h>
|
|
586
620
|
///
|
|
@@ -592,10 +626,10 @@ _mm_subs_pi8(__m64 __m1, __m64 __m2)
|
|
|
592
626
|
/// A 64-bit integer vector of [4 x i16] containing the subtrahends.
|
|
593
627
|
/// \returns A 64-bit integer vector of [4 x i16] containing the saturated
|
|
594
628
|
/// differences of both parameters.
|
|
595
|
-
static __inline__ __m64
|
|
629
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
596
630
|
_mm_subs_pi16(__m64 __m1, __m64 __m2)
|
|
597
631
|
{
|
|
598
|
-
return (__m64)
|
|
632
|
+
return (__m64)__builtin_elementwise_sub_sat((__v4hi)__m1, (__v4hi)__m2);
|
|
599
633
|
}
|
|
600
634
|
|
|
601
635
|
/// Subtracts each 8-bit unsigned integer element of the second 64-bit
|
|
@@ -616,10 +650,10 @@ _mm_subs_pi16(__m64 __m1, __m64 __m2)
|
|
|
616
650
|
/// A 64-bit integer vector of [8 x i8] containing the subtrahends.
|
|
617
651
|
/// \returns A 64-bit integer vector of [8 x i8] containing the saturated
|
|
618
652
|
/// differences of both parameters.
|
|
619
|
-
static __inline__ __m64
|
|
653
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
620
654
|
_mm_subs_pu8(__m64 __m1, __m64 __m2)
|
|
621
655
|
{
|
|
622
|
-
return (__m64)
|
|
656
|
+
return (__m64)__builtin_elementwise_sub_sat((__v8qu)__m1, (__v8qu)__m2);
|
|
623
657
|
}
|
|
624
658
|
|
|
625
659
|
/// Subtracts each 16-bit unsigned integer element of the second 64-bit
|
|
@@ -640,10 +674,10 @@ _mm_subs_pu8(__m64 __m1, __m64 __m2)
|
|
|
640
674
|
/// A 64-bit integer vector of [4 x i16] containing the subtrahends.
|
|
641
675
|
/// \returns A 64-bit integer vector of [4 x i16] containing the saturated
|
|
642
676
|
/// differences of both parameters.
|
|
643
|
-
static __inline__ __m64
|
|
677
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
644
678
|
_mm_subs_pu16(__m64 __m1, __m64 __m2)
|
|
645
679
|
{
|
|
646
|
-
return (__m64)
|
|
680
|
+
return (__m64)__builtin_elementwise_sub_sat((__v4hu)__m1, (__v4hu)__m2);
|
|
647
681
|
}
|
|
648
682
|
|
|
649
683
|
/// Multiplies each 16-bit signed integer element of the first 64-bit
|
|
@@ -667,10 +701,11 @@ _mm_subs_pu16(__m64 __m1, __m64 __m2)
|
|
|
667
701
|
/// A 64-bit integer vector of [4 x i16].
|
|
668
702
|
/// \returns A 64-bit integer vector of [2 x i32] containing the sums of
|
|
669
703
|
/// products of both parameters.
|
|
670
|
-
static __inline__ __m64
|
|
704
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
671
705
|
_mm_madd_pi16(__m64 __m1, __m64 __m2)
|
|
672
706
|
{
|
|
673
|
-
return (
|
|
707
|
+
return __trunc64(__builtin_ia32_pmaddwd128((__v8hi)__anyext128(__m1),
|
|
708
|
+
(__v8hi)__anyext128(__m2)));
|
|
674
709
|
}
|
|
675
710
|
|
|
676
711
|
/// Multiplies each 16-bit signed integer element of the first 64-bit
|
|
@@ -688,10 +723,11 @@ _mm_madd_pi16(__m64 __m1, __m64 __m2)
|
|
|
688
723
|
/// A 64-bit integer vector of [4 x i16].
|
|
689
724
|
/// \returns A 64-bit integer vector of [4 x i16] containing the upper 16 bits
|
|
690
725
|
/// of the products of both parameters.
|
|
691
|
-
static __inline__ __m64
|
|
726
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
692
727
|
_mm_mulhi_pi16(__m64 __m1, __m64 __m2)
|
|
693
728
|
{
|
|
694
|
-
return (
|
|
729
|
+
return __trunc64(__builtin_ia32_pmulhw128((__v8hi)__anyext128(__m1),
|
|
730
|
+
(__v8hi)__anyext128(__m2)));
|
|
695
731
|
}
|
|
696
732
|
|
|
697
733
|
/// Multiplies each 16-bit signed integer element of the first 64-bit
|
|
@@ -709,10 +745,10 @@ _mm_mulhi_pi16(__m64 __m1, __m64 __m2)
|
|
|
709
745
|
/// A 64-bit integer vector of [4 x i16].
|
|
710
746
|
/// \returns A 64-bit integer vector of [4 x i16] containing the lower 16 bits
|
|
711
747
|
/// of the products of both parameters.
|
|
712
|
-
static __inline__ __m64
|
|
748
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
713
749
|
_mm_mullo_pi16(__m64 __m1, __m64 __m2)
|
|
714
750
|
{
|
|
715
|
-
return (__m64)
|
|
751
|
+
return (__m64)(((__v4hu)__m1) * ((__v4hu)__m2));
|
|
716
752
|
}
|
|
717
753
|
|
|
718
754
|
/// Left-shifts each 16-bit signed integer element of the first
|
|
@@ -732,10 +768,11 @@ _mm_mullo_pi16(__m64 __m1, __m64 __m2)
|
|
|
732
768
|
/// \returns A 64-bit integer vector of [4 x i16] containing the left-shifted
|
|
733
769
|
/// values. If \a __count is greater or equal to 16, the result is set to all
|
|
734
770
|
/// 0.
|
|
735
|
-
static __inline__ __m64
|
|
771
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
736
772
|
_mm_sll_pi16(__m64 __m, __m64 __count)
|
|
737
773
|
{
|
|
738
|
-
return (
|
|
774
|
+
return __trunc64(__builtin_ia32_psllw128((__v8hi)__anyext128(__m),
|
|
775
|
+
(__v8hi)__anyext128(__count)));
|
|
739
776
|
}
|
|
740
777
|
|
|
741
778
|
/// Left-shifts each 16-bit signed integer element of a 64-bit integer
|
|
@@ -754,10 +791,11 @@ _mm_sll_pi16(__m64 __m, __m64 __count)
|
|
|
754
791
|
/// \returns A 64-bit integer vector of [4 x i16] containing the left-shifted
|
|
755
792
|
/// values. If \a __count is greater or equal to 16, the result is set to all
|
|
756
793
|
/// 0.
|
|
757
|
-
static __inline__ __m64
|
|
794
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
758
795
|
_mm_slli_pi16(__m64 __m, int __count)
|
|
759
796
|
{
|
|
760
|
-
return (
|
|
797
|
+
return __trunc64(__builtin_ia32_psllwi128((__v8hi)__anyext128(__m),
|
|
798
|
+
__count));
|
|
761
799
|
}
|
|
762
800
|
|
|
763
801
|
/// Left-shifts each 32-bit signed integer element of the first
|
|
@@ -777,10 +815,11 @@ _mm_slli_pi16(__m64 __m, int __count)
|
|
|
777
815
|
/// \returns A 64-bit integer vector of [2 x i32] containing the left-shifted
|
|
778
816
|
/// values. If \a __count is greater or equal to 32, the result is set to all
|
|
779
817
|
/// 0.
|
|
780
|
-
static __inline__ __m64
|
|
818
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
781
819
|
_mm_sll_pi32(__m64 __m, __m64 __count)
|
|
782
820
|
{
|
|
783
|
-
return (
|
|
821
|
+
return __trunc64(__builtin_ia32_pslld128((__v4si)__anyext128(__m),
|
|
822
|
+
(__v4si)__anyext128(__count)));
|
|
784
823
|
}
|
|
785
824
|
|
|
786
825
|
/// Left-shifts each 32-bit signed integer element of a 64-bit integer
|
|
@@ -799,10 +838,11 @@ _mm_sll_pi32(__m64 __m, __m64 __count)
|
|
|
799
838
|
/// \returns A 64-bit integer vector of [2 x i32] containing the left-shifted
|
|
800
839
|
/// values. If \a __count is greater or equal to 32, the result is set to all
|
|
801
840
|
/// 0.
|
|
802
|
-
static __inline__ __m64
|
|
841
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
803
842
|
_mm_slli_pi32(__m64 __m, int __count)
|
|
804
843
|
{
|
|
805
|
-
return (
|
|
844
|
+
return __trunc64(__builtin_ia32_pslldi128((__v4si)__anyext128(__m),
|
|
845
|
+
__count));
|
|
806
846
|
}
|
|
807
847
|
|
|
808
848
|
/// Left-shifts the first 64-bit integer parameter by the number of bits
|
|
@@ -819,10 +859,11 @@ _mm_slli_pi32(__m64 __m, int __count)
|
|
|
819
859
|
/// A 64-bit integer vector interpreted as a single 64-bit integer.
|
|
820
860
|
/// \returns A 64-bit integer vector containing the left-shifted value. If
|
|
821
861
|
/// \a __count is greater or equal to 64, the result is set to 0.
|
|
822
|
-
static __inline__ __m64
|
|
862
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
823
863
|
_mm_sll_si64(__m64 __m, __m64 __count)
|
|
824
864
|
{
|
|
825
|
-
return (
|
|
865
|
+
return __trunc64(__builtin_ia32_psllq128((__v2di)__anyext128(__m),
|
|
866
|
+
(__v2di)__anyext128(__count)));
|
|
826
867
|
}
|
|
827
868
|
|
|
828
869
|
/// Left-shifts the first parameter, which is a 64-bit integer, by the
|
|
@@ -839,10 +880,11 @@ _mm_sll_si64(__m64 __m, __m64 __count)
|
|
|
839
880
|
/// A 32-bit integer value.
|
|
840
881
|
/// \returns A 64-bit integer vector containing the left-shifted value. If
|
|
841
882
|
/// \a __count is greater or equal to 64, the result is set to 0.
|
|
842
|
-
static __inline__ __m64
|
|
883
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
843
884
|
_mm_slli_si64(__m64 __m, int __count)
|
|
844
885
|
{
|
|
845
|
-
return (
|
|
886
|
+
return __trunc64(__builtin_ia32_psllqi128((__v2di)__anyext128(__m),
|
|
887
|
+
__count));
|
|
846
888
|
}
|
|
847
889
|
|
|
848
890
|
/// Right-shifts each 16-bit integer element of the first parameter,
|
|
@@ -863,10 +905,11 @@ _mm_slli_si64(__m64 __m, int __count)
|
|
|
863
905
|
/// A 64-bit integer vector interpreted as a single 64-bit integer.
|
|
864
906
|
/// \returns A 64-bit integer vector of [4 x i16] containing the right-shifted
|
|
865
907
|
/// values.
|
|
866
|
-
static __inline__ __m64
|
|
908
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
867
909
|
_mm_sra_pi16(__m64 __m, __m64 __count)
|
|
868
910
|
{
|
|
869
|
-
return (
|
|
911
|
+
return __trunc64(__builtin_ia32_psraw128((__v8hi)__anyext128(__m),
|
|
912
|
+
(__v8hi)__anyext128(__count)));
|
|
870
913
|
}
|
|
871
914
|
|
|
872
915
|
/// Right-shifts each 16-bit integer element of a 64-bit integer vector
|
|
@@ -886,10 +929,11 @@ _mm_sra_pi16(__m64 __m, __m64 __count)
|
|
|
886
929
|
/// A 32-bit integer value.
|
|
887
930
|
/// \returns A 64-bit integer vector of [4 x i16] containing the right-shifted
|
|
888
931
|
/// values.
|
|
889
|
-
static __inline__ __m64
|
|
932
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
890
933
|
_mm_srai_pi16(__m64 __m, int __count)
|
|
891
934
|
{
|
|
892
|
-
return (
|
|
935
|
+
return __trunc64(__builtin_ia32_psrawi128((__v8hi)__anyext128(__m),
|
|
936
|
+
__count));
|
|
893
937
|
}
|
|
894
938
|
|
|
895
939
|
/// Right-shifts each 32-bit integer element of the first parameter,
|
|
@@ -910,10 +954,11 @@ _mm_srai_pi16(__m64 __m, int __count)
|
|
|
910
954
|
/// A 64-bit integer vector interpreted as a single 64-bit integer.
|
|
911
955
|
/// \returns A 64-bit integer vector of [2 x i32] containing the right-shifted
|
|
912
956
|
/// values.
|
|
913
|
-
static __inline__ __m64
|
|
957
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
914
958
|
_mm_sra_pi32(__m64 __m, __m64 __count)
|
|
915
959
|
{
|
|
916
|
-
return (
|
|
960
|
+
return __trunc64(__builtin_ia32_psrad128((__v4si)__anyext128(__m),
|
|
961
|
+
(__v4si)__anyext128(__count)));
|
|
917
962
|
}
|
|
918
963
|
|
|
919
964
|
/// Right-shifts each 32-bit integer element of a 64-bit integer vector
|
|
@@ -933,10 +978,11 @@ _mm_sra_pi32(__m64 __m, __m64 __count)
|
|
|
933
978
|
/// A 32-bit integer value.
|
|
934
979
|
/// \returns A 64-bit integer vector of [2 x i32] containing the right-shifted
|
|
935
980
|
/// values.
|
|
936
|
-
static __inline__ __m64
|
|
981
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
937
982
|
_mm_srai_pi32(__m64 __m, int __count)
|
|
938
983
|
{
|
|
939
|
-
return (
|
|
984
|
+
return __trunc64(__builtin_ia32_psradi128((__v4si)__anyext128(__m),
|
|
985
|
+
__count));
|
|
940
986
|
}
|
|
941
987
|
|
|
942
988
|
/// Right-shifts each 16-bit integer element of the first parameter,
|
|
@@ -956,10 +1002,11 @@ _mm_srai_pi32(__m64 __m, int __count)
|
|
|
956
1002
|
/// A 64-bit integer vector interpreted as a single 64-bit integer.
|
|
957
1003
|
/// \returns A 64-bit integer vector of [4 x i16] containing the right-shifted
|
|
958
1004
|
/// values.
|
|
959
|
-
static __inline__ __m64
|
|
1005
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
960
1006
|
_mm_srl_pi16(__m64 __m, __m64 __count)
|
|
961
1007
|
{
|
|
962
|
-
return (
|
|
1008
|
+
return __trunc64(__builtin_ia32_psrlw128((__v8hi)__anyext128(__m),
|
|
1009
|
+
(__v8hi)__anyext128(__count)));
|
|
963
1010
|
}
|
|
964
1011
|
|
|
965
1012
|
/// Right-shifts each 16-bit integer element of a 64-bit integer vector
|
|
@@ -978,10 +1025,11 @@ _mm_srl_pi16(__m64 __m, __m64 __count)
|
|
|
978
1025
|
/// A 32-bit integer value.
|
|
979
1026
|
/// \returns A 64-bit integer vector of [4 x i16] containing the right-shifted
|
|
980
1027
|
/// values.
|
|
981
|
-
static __inline__ __m64
|
|
1028
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
982
1029
|
_mm_srli_pi16(__m64 __m, int __count)
|
|
983
1030
|
{
|
|
984
|
-
return (
|
|
1031
|
+
return __trunc64(__builtin_ia32_psrlwi128((__v8hi)__anyext128(__m),
|
|
1032
|
+
__count));
|
|
985
1033
|
}
|
|
986
1034
|
|
|
987
1035
|
/// Right-shifts each 32-bit integer element of the first parameter,
|
|
@@ -1001,10 +1049,11 @@ _mm_srli_pi16(__m64 __m, int __count)
|
|
|
1001
1049
|
/// A 64-bit integer vector interpreted as a single 64-bit integer.
|
|
1002
1050
|
/// \returns A 64-bit integer vector of [2 x i32] containing the right-shifted
|
|
1003
1051
|
/// values.
|
|
1004
|
-
static __inline__ __m64
|
|
1052
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
1005
1053
|
_mm_srl_pi32(__m64 __m, __m64 __count)
|
|
1006
1054
|
{
|
|
1007
|
-
return (
|
|
1055
|
+
return __trunc64(__builtin_ia32_psrld128((__v4si)__anyext128(__m),
|
|
1056
|
+
(__v4si)__anyext128(__count)));
|
|
1008
1057
|
}
|
|
1009
1058
|
|
|
1010
1059
|
/// Right-shifts each 32-bit integer element of a 64-bit integer vector
|
|
@@ -1023,10 +1072,11 @@ _mm_srl_pi32(__m64 __m, __m64 __count)
|
|
|
1023
1072
|
/// A 32-bit integer value.
|
|
1024
1073
|
/// \returns A 64-bit integer vector of [2 x i32] containing the right-shifted
|
|
1025
1074
|
/// values.
|
|
1026
|
-
static __inline__ __m64
|
|
1075
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
1027
1076
|
_mm_srli_pi32(__m64 __m, int __count)
|
|
1028
1077
|
{
|
|
1029
|
-
return (
|
|
1078
|
+
return __trunc64(__builtin_ia32_psrldi128((__v4si)__anyext128(__m),
|
|
1079
|
+
__count));
|
|
1030
1080
|
}
|
|
1031
1081
|
|
|
1032
1082
|
/// Right-shifts the first 64-bit integer parameter by the number of bits
|
|
@@ -1043,10 +1093,11 @@ _mm_srli_pi32(__m64 __m, int __count)
|
|
|
1043
1093
|
/// \param __count
|
|
1044
1094
|
/// A 64-bit integer vector interpreted as a single 64-bit integer.
|
|
1045
1095
|
/// \returns A 64-bit integer vector containing the right-shifted value.
|
|
1046
|
-
static __inline__ __m64
|
|
1096
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
1047
1097
|
_mm_srl_si64(__m64 __m, __m64 __count)
|
|
1048
1098
|
{
|
|
1049
|
-
return (
|
|
1099
|
+
return __trunc64(__builtin_ia32_psrlq128((__v2di)__anyext128(__m),
|
|
1100
|
+
(__v2di)__anyext128(__count)));
|
|
1050
1101
|
}
|
|
1051
1102
|
|
|
1052
1103
|
/// Right-shifts the first parameter, which is a 64-bit integer, by the
|
|
@@ -1064,10 +1115,11 @@ _mm_srl_si64(__m64 __m, __m64 __count)
|
|
|
1064
1115
|
/// \param __count
|
|
1065
1116
|
/// A 32-bit integer value.
|
|
1066
1117
|
/// \returns A 64-bit integer vector containing the right-shifted value.
|
|
1067
|
-
static __inline__ __m64
|
|
1118
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
1068
1119
|
_mm_srli_si64(__m64 __m, int __count)
|
|
1069
1120
|
{
|
|
1070
|
-
return (
|
|
1121
|
+
return __trunc64(__builtin_ia32_psrlqi128((__v2di)__anyext128(__m),
|
|
1122
|
+
__count));
|
|
1071
1123
|
}
|
|
1072
1124
|
|
|
1073
1125
|
/// Performs a bitwise AND of two 64-bit integer vectors.
|
|
@@ -1082,10 +1134,10 @@ _mm_srli_si64(__m64 __m, int __count)
|
|
|
1082
1134
|
/// A 64-bit integer vector.
|
|
1083
1135
|
/// \returns A 64-bit integer vector containing the bitwise AND of both
|
|
1084
1136
|
/// parameters.
|
|
1085
|
-
static __inline__ __m64
|
|
1137
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
1086
1138
|
_mm_and_si64(__m64 __m1, __m64 __m2)
|
|
1087
1139
|
{
|
|
1088
|
-
return
|
|
1140
|
+
return (__m64)(((__v1du)__m1) & ((__v1du)__m2));
|
|
1089
1141
|
}
|
|
1090
1142
|
|
|
1091
1143
|
/// Performs a bitwise NOT of the first 64-bit integer vector, and then
|
|
@@ -1103,10 +1155,10 @@ _mm_and_si64(__m64 __m1, __m64 __m2)
|
|
|
1103
1155
|
/// A 64-bit integer vector.
|
|
1104
1156
|
/// \returns A 64-bit integer vector containing the bitwise AND of the second
|
|
1105
1157
|
/// parameter and the one's complement of the first parameter.
|
|
1106
|
-
static __inline__ __m64
|
|
1158
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
1107
1159
|
_mm_andnot_si64(__m64 __m1, __m64 __m2)
|
|
1108
1160
|
{
|
|
1109
|
-
return
|
|
1161
|
+
return (__m64)(~((__v1du)__m1) & ((__v1du)__m2));
|
|
1110
1162
|
}
|
|
1111
1163
|
|
|
1112
1164
|
/// Performs a bitwise OR of two 64-bit integer vectors.
|
|
@@ -1121,10 +1173,10 @@ _mm_andnot_si64(__m64 __m1, __m64 __m2)
|
|
|
1121
1173
|
/// A 64-bit integer vector.
|
|
1122
1174
|
/// \returns A 64-bit integer vector containing the bitwise OR of both
|
|
1123
1175
|
/// parameters.
|
|
1124
|
-
static __inline__ __m64
|
|
1176
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
1125
1177
|
_mm_or_si64(__m64 __m1, __m64 __m2)
|
|
1126
1178
|
{
|
|
1127
|
-
return
|
|
1179
|
+
return (__m64)(((__v1du)__m1) | ((__v1du)__m2));
|
|
1128
1180
|
}
|
|
1129
1181
|
|
|
1130
1182
|
/// Performs a bitwise exclusive OR of two 64-bit integer vectors.
|
|
@@ -1139,17 +1191,17 @@ _mm_or_si64(__m64 __m1, __m64 __m2)
|
|
|
1139
1191
|
/// A 64-bit integer vector.
|
|
1140
1192
|
/// \returns A 64-bit integer vector containing the bitwise exclusive OR of both
|
|
1141
1193
|
/// parameters.
|
|
1142
|
-
static __inline__ __m64
|
|
1194
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
1143
1195
|
_mm_xor_si64(__m64 __m1, __m64 __m2)
|
|
1144
1196
|
{
|
|
1145
|
-
return
|
|
1197
|
+
return (__m64)(((__v1du)__m1) ^ ((__v1du)__m2));
|
|
1146
1198
|
}
|
|
1147
1199
|
|
|
1148
1200
|
/// Compares the 8-bit integer elements of two 64-bit integer vectors of
|
|
1149
1201
|
/// [8 x i8] to determine if the element of the first vector is equal to the
|
|
1150
1202
|
/// corresponding element of the second vector.
|
|
1151
1203
|
///
|
|
1152
|
-
///
|
|
1204
|
+
/// Each comparison returns 0 for false, 0xFF for true.
|
|
1153
1205
|
///
|
|
1154
1206
|
/// \headerfile <x86intrin.h>
|
|
1155
1207
|
///
|
|
@@ -1161,17 +1213,17 @@ _mm_xor_si64(__m64 __m1, __m64 __m2)
|
|
|
1161
1213
|
/// A 64-bit integer vector of [8 x i8].
|
|
1162
1214
|
/// \returns A 64-bit integer vector of [8 x i8] containing the comparison
|
|
1163
1215
|
/// results.
|
|
1164
|
-
static __inline__ __m64
|
|
1216
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
1165
1217
|
_mm_cmpeq_pi8(__m64 __m1, __m64 __m2)
|
|
1166
1218
|
{
|
|
1167
|
-
return (__m64)
|
|
1219
|
+
return (__m64)(((__v8qi)__m1) == ((__v8qi)__m2));
|
|
1168
1220
|
}
|
|
1169
1221
|
|
|
1170
1222
|
/// Compares the 16-bit integer elements of two 64-bit integer vectors of
|
|
1171
1223
|
/// [4 x i16] to determine if the element of the first vector is equal to the
|
|
1172
1224
|
/// corresponding element of the second vector.
|
|
1173
1225
|
///
|
|
1174
|
-
///
|
|
1226
|
+
/// Each comparison returns 0 for false, 0xFFFF for true.
|
|
1175
1227
|
///
|
|
1176
1228
|
/// \headerfile <x86intrin.h>
|
|
1177
1229
|
///
|
|
@@ -1183,17 +1235,17 @@ _mm_cmpeq_pi8(__m64 __m1, __m64 __m2)
|
|
|
1183
1235
|
/// A 64-bit integer vector of [4 x i16].
|
|
1184
1236
|
/// \returns A 64-bit integer vector of [4 x i16] containing the comparison
|
|
1185
1237
|
/// results.
|
|
1186
|
-
static __inline__ __m64
|
|
1238
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
1187
1239
|
_mm_cmpeq_pi16(__m64 __m1, __m64 __m2)
|
|
1188
1240
|
{
|
|
1189
|
-
return (__m64)
|
|
1241
|
+
return (__m64)(((__v4hi)__m1) == ((__v4hi)__m2));
|
|
1190
1242
|
}
|
|
1191
1243
|
|
|
1192
1244
|
/// Compares the 32-bit integer elements of two 64-bit integer vectors of
|
|
1193
1245
|
/// [2 x i32] to determine if the element of the first vector is equal to the
|
|
1194
1246
|
/// corresponding element of the second vector.
|
|
1195
1247
|
///
|
|
1196
|
-
///
|
|
1248
|
+
/// Each comparison returns 0 for false, 0xFFFFFFFF for true.
|
|
1197
1249
|
///
|
|
1198
1250
|
/// \headerfile <x86intrin.h>
|
|
1199
1251
|
///
|
|
@@ -1205,17 +1257,17 @@ _mm_cmpeq_pi16(__m64 __m1, __m64 __m2)
|
|
|
1205
1257
|
/// A 64-bit integer vector of [2 x i32].
|
|
1206
1258
|
/// \returns A 64-bit integer vector of [2 x i32] containing the comparison
|
|
1207
1259
|
/// results.
|
|
1208
|
-
static __inline__ __m64
|
|
1260
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
1209
1261
|
_mm_cmpeq_pi32(__m64 __m1, __m64 __m2)
|
|
1210
1262
|
{
|
|
1211
|
-
return (__m64)
|
|
1263
|
+
return (__m64)(((__v2si)__m1) == ((__v2si)__m2));
|
|
1212
1264
|
}
|
|
1213
1265
|
|
|
1214
1266
|
/// Compares the 8-bit integer elements of two 64-bit integer vectors of
|
|
1215
1267
|
/// [8 x i8] to determine if the element of the first vector is greater than
|
|
1216
1268
|
/// the corresponding element of the second vector.
|
|
1217
1269
|
///
|
|
1218
|
-
///
|
|
1270
|
+
/// Each comparison returns 0 for false, 0xFF for true.
|
|
1219
1271
|
///
|
|
1220
1272
|
/// \headerfile <x86intrin.h>
|
|
1221
1273
|
///
|
|
@@ -1227,17 +1279,19 @@ _mm_cmpeq_pi32(__m64 __m1, __m64 __m2)
|
|
|
1227
1279
|
/// A 64-bit integer vector of [8 x i8].
|
|
1228
1280
|
/// \returns A 64-bit integer vector of [8 x i8] containing the comparison
|
|
1229
1281
|
/// results.
|
|
1230
|
-
static __inline__ __m64
|
|
1282
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
1231
1283
|
_mm_cmpgt_pi8(__m64 __m1, __m64 __m2)
|
|
1232
1284
|
{
|
|
1233
|
-
|
|
1285
|
+
/* This function always performs a signed comparison, but __v8qi is a char
|
|
1286
|
+
which may be signed or unsigned, so use __v8qs. */
|
|
1287
|
+
return (__m64)((__v8qs)__m1 > (__v8qs)__m2);
|
|
1234
1288
|
}
|
|
1235
1289
|
|
|
1236
1290
|
/// Compares the 16-bit integer elements of two 64-bit integer vectors of
|
|
1237
1291
|
/// [4 x i16] to determine if the element of the first vector is greater than
|
|
1238
1292
|
/// the corresponding element of the second vector.
|
|
1239
1293
|
///
|
|
1240
|
-
///
|
|
1294
|
+
/// Each comparison returns 0 for false, 0xFFFF for true.
|
|
1241
1295
|
///
|
|
1242
1296
|
/// \headerfile <x86intrin.h>
|
|
1243
1297
|
///
|
|
@@ -1249,17 +1303,17 @@ _mm_cmpgt_pi8(__m64 __m1, __m64 __m2)
|
|
|
1249
1303
|
/// A 64-bit integer vector of [4 x i16].
|
|
1250
1304
|
/// \returns A 64-bit integer vector of [4 x i16] containing the comparison
|
|
1251
1305
|
/// results.
|
|
1252
|
-
static __inline__ __m64
|
|
1306
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
1253
1307
|
_mm_cmpgt_pi16(__m64 __m1, __m64 __m2)
|
|
1254
1308
|
{
|
|
1255
|
-
return (__m64)
|
|
1309
|
+
return (__m64)((__v4hi)__m1 > (__v4hi)__m2);
|
|
1256
1310
|
}
|
|
1257
1311
|
|
|
1258
1312
|
/// Compares the 32-bit integer elements of two 64-bit integer vectors of
|
|
1259
1313
|
/// [2 x i32] to determine if the element of the first vector is greater than
|
|
1260
1314
|
/// the corresponding element of the second vector.
|
|
1261
1315
|
///
|
|
1262
|
-
///
|
|
1316
|
+
/// Each comparison returns 0 for false, 0xFFFFFFFF for true.
|
|
1263
1317
|
///
|
|
1264
1318
|
/// \headerfile <x86intrin.h>
|
|
1265
1319
|
///
|
|
@@ -1271,10 +1325,10 @@ _mm_cmpgt_pi16(__m64 __m1, __m64 __m2)
|
|
|
1271
1325
|
/// A 64-bit integer vector of [2 x i32].
|
|
1272
1326
|
/// \returns A 64-bit integer vector of [2 x i32] containing the comparison
|
|
1273
1327
|
/// results.
|
|
1274
|
-
static __inline__ __m64
|
|
1328
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
1275
1329
|
_mm_cmpgt_pi32(__m64 __m1, __m64 __m2)
|
|
1276
1330
|
{
|
|
1277
|
-
return (__m64)
|
|
1331
|
+
return (__m64)((__v2si)__m1 > (__v2si)__m2);
|
|
1278
1332
|
}
|
|
1279
1333
|
|
|
1280
1334
|
/// Constructs a 64-bit integer vector initialized to zero.
|
|
@@ -1284,10 +1338,9 @@ _mm_cmpgt_pi32(__m64 __m1, __m64 __m2)
|
|
|
1284
1338
|
/// This intrinsic corresponds to the <c> PXOR </c> instruction.
|
|
1285
1339
|
///
|
|
1286
1340
|
/// \returns An initialized 64-bit integer vector with all elements set to zero.
|
|
1287
|
-
static __inline__ __m64
|
|
1288
|
-
_mm_setzero_si64(void)
|
|
1289
|
-
{
|
|
1290
|
-
return __extension__ (__m64){ 0LL };
|
|
1341
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
|
|
1342
|
+
_mm_setzero_si64(void) {
|
|
1343
|
+
return __extension__(__m64){0LL};
|
|
1291
1344
|
}
|
|
1292
1345
|
|
|
1293
1346
|
/// Constructs a 64-bit integer vector initialized with the specified
|
|
@@ -1305,10 +1358,9 @@ _mm_setzero_si64(void)
|
|
|
1305
1358
|
/// A 32-bit integer value used to initialize the lower 32 bits of the
|
|
1306
1359
|
/// result.
|
|
1307
1360
|
/// \returns An initialized 64-bit integer vector.
|
|
1308
|
-
static __inline__ __m64
|
|
1309
|
-
_mm_set_pi32(int __i1, int __i0)
|
|
1310
|
-
{
|
|
1311
|
-
return (__m64)__builtin_ia32_vec_init_v2si(__i0, __i1);
|
|
1361
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
|
|
1362
|
+
_mm_set_pi32(int __i1, int __i0) {
|
|
1363
|
+
return __extension__(__m64)(__v2si){__i0, __i1};
|
|
1312
1364
|
}
|
|
1313
1365
|
|
|
1314
1366
|
/// Constructs a 64-bit integer vector initialized with the specified
|
|
@@ -1328,10 +1380,9 @@ _mm_set_pi32(int __i1, int __i0)
|
|
|
1328
1380
|
/// \param __s0
|
|
1329
1381
|
/// A 16-bit integer value used to initialize bits [15:0] of the result.
|
|
1330
1382
|
/// \returns An initialized 64-bit integer vector.
|
|
1331
|
-
static __inline__ __m64
|
|
1332
|
-
_mm_set_pi16(short __s3, short __s2, short __s1, short __s0)
|
|
1333
|
-
{
|
|
1334
|
-
return (__m64)__builtin_ia32_vec_init_v4hi(__s0, __s1, __s2, __s3);
|
|
1383
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
|
|
1384
|
+
_mm_set_pi16(short __s3, short __s2, short __s1, short __s0) {
|
|
1385
|
+
return __extension__(__m64)(__v4hi){__s0, __s1, __s2, __s3};
|
|
1335
1386
|
}
|
|
1336
1387
|
|
|
1337
1388
|
/// Constructs a 64-bit integer vector initialized with the specified
|
|
@@ -1359,12 +1410,11 @@ _mm_set_pi16(short __s3, short __s2, short __s1, short __s0)
|
|
|
1359
1410
|
/// \param __b0
|
|
1360
1411
|
/// An 8-bit integer value used to initialize bits [7:0] of the result.
|
|
1361
1412
|
/// \returns An initialized 64-bit integer vector.
|
|
1362
|
-
static __inline__ __m64
|
|
1413
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
|
|
1363
1414
|
_mm_set_pi8(char __b7, char __b6, char __b5, char __b4, char __b3, char __b2,
|
|
1364
|
-
char __b1, char __b0)
|
|
1365
|
-
{
|
|
1366
|
-
|
|
1367
|
-
__b4, __b5, __b6, __b7);
|
|
1415
|
+
char __b1, char __b0) {
|
|
1416
|
+
return __extension__(__m64)(__v8qi){__b0, __b1, __b2, __b3,
|
|
1417
|
+
__b4, __b5, __b6, __b7};
|
|
1368
1418
|
}
|
|
1369
1419
|
|
|
1370
1420
|
/// Constructs a 64-bit integer vector of [2 x i32], with each of the
|
|
@@ -1380,10 +1430,9 @@ _mm_set_pi8(char __b7, char __b6, char __b5, char __b4, char __b3, char __b2,
|
|
|
1380
1430
|
/// A 32-bit integer value used to initialize each vector element of the
|
|
1381
1431
|
/// result.
|
|
1382
1432
|
/// \returns An initialized 64-bit integer vector of [2 x i32].
|
|
1383
|
-
static __inline__ __m64
|
|
1384
|
-
_mm_set1_pi32(int __i)
|
|
1385
|
-
|
|
1386
|
-
return _mm_set_pi32(__i, __i);
|
|
1433
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
|
|
1434
|
+
_mm_set1_pi32(int __i) {
|
|
1435
|
+
return _mm_set_pi32(__i, __i);
|
|
1387
1436
|
}
|
|
1388
1437
|
|
|
1389
1438
|
/// Constructs a 64-bit integer vector of [4 x i16], with each of the
|
|
@@ -1399,10 +1448,9 @@ _mm_set1_pi32(int __i)
|
|
|
1399
1448
|
/// A 16-bit integer value used to initialize each vector element of the
|
|
1400
1449
|
/// result.
|
|
1401
1450
|
/// \returns An initialized 64-bit integer vector of [4 x i16].
|
|
1402
|
-
static __inline__ __m64
|
|
1403
|
-
_mm_set1_pi16(short __w)
|
|
1404
|
-
|
|
1405
|
-
return _mm_set_pi16(__w, __w, __w, __w);
|
|
1451
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
|
|
1452
|
+
_mm_set1_pi16(short __w) {
|
|
1453
|
+
return _mm_set_pi16(__w, __w, __w, __w);
|
|
1406
1454
|
}
|
|
1407
1455
|
|
|
1408
1456
|
/// Constructs a 64-bit integer vector of [8 x i8], with each of the
|
|
@@ -1417,10 +1465,9 @@ _mm_set1_pi16(short __w)
|
|
|
1417
1465
|
/// An 8-bit integer value used to initialize each vector element of the
|
|
1418
1466
|
/// result.
|
|
1419
1467
|
/// \returns An initialized 64-bit integer vector of [8 x i8].
|
|
1420
|
-
static __inline__ __m64
|
|
1421
|
-
_mm_set1_pi8(char __b)
|
|
1422
|
-
|
|
1423
|
-
return _mm_set_pi8(__b, __b, __b, __b, __b, __b, __b, __b);
|
|
1468
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
|
|
1469
|
+
_mm_set1_pi8(char __b) {
|
|
1470
|
+
return _mm_set_pi8(__b, __b, __b, __b, __b, __b, __b, __b);
|
|
1424
1471
|
}
|
|
1425
1472
|
|
|
1426
1473
|
/// Constructs a 64-bit integer vector, initialized in reverse order with
|
|
@@ -1438,10 +1485,9 @@ _mm_set1_pi8(char __b)
|
|
|
1438
1485
|
/// A 32-bit integer value used to initialize the upper 32 bits of the
|
|
1439
1486
|
/// result.
|
|
1440
1487
|
/// \returns An initialized 64-bit integer vector.
|
|
1441
|
-
static __inline__ __m64
|
|
1442
|
-
_mm_setr_pi32(int __i0, int __i1)
|
|
1443
|
-
|
|
1444
|
-
return _mm_set_pi32(__i1, __i0);
|
|
1488
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
|
|
1489
|
+
_mm_setr_pi32(int __i0, int __i1) {
|
|
1490
|
+
return _mm_set_pi32(__i1, __i0);
|
|
1445
1491
|
}
|
|
1446
1492
|
|
|
1447
1493
|
/// Constructs a 64-bit integer vector, initialized in reverse order with
|
|
@@ -1461,10 +1507,9 @@ _mm_setr_pi32(int __i0, int __i1)
|
|
|
1461
1507
|
/// \param __w3
|
|
1462
1508
|
/// A 16-bit integer value used to initialize bits [63:48] of the result.
|
|
1463
1509
|
/// \returns An initialized 64-bit integer vector.
|
|
1464
|
-
static __inline__ __m64
|
|
1465
|
-
_mm_setr_pi16(short __w0, short __w1, short __w2, short __w3)
|
|
1466
|
-
|
|
1467
|
-
return _mm_set_pi16(__w3, __w2, __w1, __w0);
|
|
1510
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
|
|
1511
|
+
_mm_setr_pi16(short __w0, short __w1, short __w2, short __w3) {
|
|
1512
|
+
return _mm_set_pi16(__w3, __w2, __w1, __w0);
|
|
1468
1513
|
}
|
|
1469
1514
|
|
|
1470
1515
|
/// Constructs a 64-bit integer vector, initialized in reverse order with
|
|
@@ -1492,14 +1537,15 @@ _mm_setr_pi16(short __w0, short __w1, short __w2, short __w3)
|
|
|
1492
1537
|
/// \param __b7
|
|
1493
1538
|
/// An 8-bit integer value used to initialize bits [63:56] of the result.
|
|
1494
1539
|
/// \returns An initialized 64-bit integer vector.
|
|
1495
|
-
static __inline__ __m64
|
|
1540
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
|
|
1496
1541
|
_mm_setr_pi8(char __b0, char __b1, char __b2, char __b3, char __b4, char __b5,
|
|
1497
|
-
char __b6, char __b7)
|
|
1498
|
-
|
|
1499
|
-
return _mm_set_pi8(__b7, __b6, __b5, __b4, __b3, __b2, __b1, __b0);
|
|
1542
|
+
char __b6, char __b7) {
|
|
1543
|
+
return _mm_set_pi8(__b7, __b6, __b5, __b4, __b3, __b2, __b1, __b0);
|
|
1500
1544
|
}
|
|
1501
1545
|
|
|
1502
|
-
#undef
|
|
1546
|
+
#undef __anyext128
|
|
1547
|
+
#undef __trunc64
|
|
1548
|
+
#undef __DEFAULT_FN_ATTRS_SSE2
|
|
1503
1549
|
|
|
1504
1550
|
/* Aliases for compatibility. */
|
|
1505
1551
|
#define _m_empty _mm_empty
|