@cpp-linter/clang-tidy-win32-x64 19.1.0 → 21.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.exe +2 -2
- package/lib/clang/{19 → 21}/include/__clang_cuda_device_functions.h +14 -0
- package/lib/clang/{19 → 21}/include/__clang_cuda_intrinsics.h +295 -8
- package/lib/clang/{19 → 21}/include/__clang_cuda_math.h +5 -0
- package/lib/clang/{19 → 21}/include/__clang_cuda_runtime_wrapper.h +1 -0
- package/lib/clang/{19 → 21}/include/__clang_cuda_texture_intrinsics.h +437 -2
- package/lib/clang/{19 → 21}/include/__clang_hip_cmath.h +15 -9
- package/lib/clang/{19 → 21}/include/__clang_hip_libdevice_declares.h +12 -20
- package/lib/clang/{19 → 21}/include/__clang_hip_math.h +110 -29
- package/lib/clang/{19 → 21}/include/__clang_hip_runtime_wrapper.h +3 -0
- package/lib/clang/21/include/__clang_spirv_builtins.h +217 -0
- package/lib/clang/{19 → 21}/include/__stdarg_va_arg.h +2 -2
- package/lib/clang/{19 → 21}/include/adcintrin.h +5 -0
- package/lib/clang/{19 → 21}/include/adxintrin.h +5 -0
- package/lib/clang/{19 → 21}/include/altivec.h +90 -87
- package/lib/clang/21/include/amdgpuintrin.h +191 -0
- package/lib/clang/21/include/amxavx512intrin.h +382 -0
- package/lib/clang/21/include/amxbf16transposeintrin.h +94 -0
- package/lib/clang/{19 → 21}/include/amxcomplexintrin.h +4 -6
- package/lib/clang/21/include/amxcomplextransposeintrin.h +303 -0
- package/lib/clang/{19 → 21}/include/amxfp16intrin.h +35 -0
- package/lib/clang/21/include/amxfp16transposeintrin.h +94 -0
- package/lib/clang/21/include/amxfp8intrin.h +230 -0
- package/lib/clang/{19 → 21}/include/amxintrin.h +5 -35
- package/lib/clang/21/include/amxmovrsintrin.h +48 -0
- package/lib/clang/21/include/amxmovrstransposeintrin.h +200 -0
- package/lib/clang/21/include/amxtf32intrin.h +108 -0
- package/lib/clang/21/include/amxtf32transposeintrin.h +105 -0
- package/lib/clang/21/include/amxtransposeintrin.h +248 -0
- package/lib/clang/{19/include/hlsl.h → 21/include/andes_vector.h} +7 -6
- package/lib/clang/{19 → 21}/include/arm_acle.h +29 -62
- package/lib/clang/{19 → 21}/include/arm_fp16.h +89 -89
- package/lib/clang/{19 → 21}/include/arm_neon.h +24549 -20140
- package/lib/clang/{19 → 21}/include/arm_sme.h +1016 -94
- package/lib/clang/{19 → 21}/include/arm_sve.h +4633 -3272
- package/lib/clang/{19 → 21}/include/arm_vector_types.h +87 -0
- package/lib/clang/21/include/avx10_2_512bf16intrin.h +561 -0
- package/lib/clang/21/include/avx10_2_512convertintrin.h +322 -0
- package/lib/clang/21/include/avx10_2_512minmaxintrin.h +127 -0
- package/lib/clang/21/include/avx10_2_512niintrin.h +314 -0
- package/lib/clang/21/include/avx10_2_512satcvtdsintrin.h +307 -0
- package/lib/clang/21/include/avx10_2_512satcvtintrin.h +301 -0
- package/lib/clang/21/include/avx10_2bf16intrin.h +1085 -0
- package/lib/clang/21/include/avx10_2convertintrin.h +3257 -0
- package/lib/clang/21/include/avx10_2copyintrin.h +66 -0
- package/lib/clang/21/include/avx10_2minmaxintrin.h +232 -0
- package/lib/clang/21/include/avx10_2niintrin.h +409 -0
- package/lib/clang/21/include/avx10_2satcvtdsintrin.h +376 -0
- package/lib/clang/21/include/avx10_2satcvtintrin.h +312 -0
- package/lib/clang/{19 → 21}/include/avx2intrin.h +9 -0
- package/lib/clang/{19 → 21}/include/avx512bitalgintrin.h +2 -2
- package/lib/clang/{19 → 21}/include/avx512fintrin.h +22 -14
- package/lib/clang/{19 → 21}/include/avx512fp16intrin.h +2 -1
- package/lib/clang/{19 → 21}/include/avx512vlbitalgintrin.h +4 -4
- package/lib/clang/{19 → 21}/include/avx512vpopcntdqintrin.h +12 -4
- package/lib/clang/{19 → 21}/include/avx512vpopcntdqvlintrin.h +16 -8
- package/lib/clang/{19 → 21}/include/avxintrin.h +30 -16
- package/lib/clang/{19 → 21}/include/avxvnniint16intrin.h +36 -77
- package/lib/clang/{19 → 21}/include/avxvnniint8intrin.h +36 -77
- package/lib/clang/{19 → 21}/include/bmi2intrin.h +15 -17
- package/lib/clang/{19 → 21}/include/bmiintrin.h +31 -41
- package/lib/clang/{19 → 21}/include/cmpccxaddintrin.h +1 -1
- package/lib/clang/{19 → 21}/include/cpuid.h +36 -33
- package/lib/clang/21/include/cuda_wrappers/bits/c++config.h +61 -0
- package/lib/clang/21/include/cuda_wrappers/cmath +44 -0
- package/lib/clang/{19 → 21}/include/cuda_wrappers/new +2 -0
- package/lib/clang/{19 → 21}/include/emmintrin.h +141 -107
- package/lib/clang/{19 → 21}/include/float.h +2 -11
- package/lib/clang/{19 → 21}/include/gfniintrin.h +32 -10
- package/lib/clang/21/include/gpuintrin.h +328 -0
- package/lib/clang/{19 → 21}/include/hexagon_types.h +8 -4
- package/lib/clang/{19/include/hlsl/hlsl_intrinsics.h → 21/include/hlsl/hlsl_alias_intrinsics.h} +1214 -100
- package/lib/clang/{19 → 21}/include/hlsl/hlsl_basic_types.h +47 -1
- package/lib/clang/21/include/hlsl/hlsl_compat_overloads.h +427 -0
- package/lib/clang/21/include/hlsl/hlsl_detail.h +54 -0
- package/lib/clang/21/include/hlsl/hlsl_intrinsic_helpers.h +144 -0
- package/lib/clang/21/include/hlsl/hlsl_intrinsics.h +526 -0
- package/lib/clang/21/include/hlsl/hlsl_spirv.h +28 -0
- package/lib/clang/21/include/hlsl.h +38 -0
- package/lib/clang/{19 → 21}/include/hvx_hexagon_protos.h +427 -0
- package/lib/clang/{19 → 21}/include/immintrin.h +45 -185
- package/lib/clang/{19 → 21}/include/intrin.h +41 -14
- package/lib/clang/{19 → 21}/include/intrin0.h +10 -1
- package/lib/clang/{19 → 21}/include/keylockerintrin.h +0 -9
- package/lib/clang/{19 → 21}/include/larchintrin.h +22 -8
- package/lib/clang/{19 → 21}/include/lasxintrin.h +27 -25
- package/lib/clang/{19 → 21}/include/limits.h +7 -4
- package/lib/clang/{19 → 21}/include/llvm_libc_wrappers/ctype.h +38 -0
- package/lib/clang/{19 → 21}/include/llvm_libc_wrappers/stdlib.h +9 -1
- package/lib/clang/21/include/llvm_offload_wrappers/__llvm_offload.h +31 -0
- package/lib/clang/21/include/llvm_offload_wrappers/__llvm_offload_device.h +10 -0
- package/lib/clang/21/include/llvm_offload_wrappers/__llvm_offload_host.h +15 -0
- package/lib/clang/{19 → 21}/include/lsxintrin.h +27 -25
- package/lib/clang/{19 → 21}/include/lzcntintrin.h +13 -8
- package/lib/clang/{19 → 21}/include/mmintrin.h +209 -155
- package/lib/clang/{19 → 21}/include/module.modulemap +15 -4
- package/lib/clang/21/include/movrs_avx10_2_512intrin.h +98 -0
- package/lib/clang/21/include/movrs_avx10_2intrin.h +174 -0
- package/lib/clang/21/include/movrsintrin.h +59 -0
- package/lib/clang/21/include/nvptxintrin.h +219 -0
- package/lib/clang/{19 → 21}/include/opencl-c-base.h +23 -1
- package/lib/clang/{19 → 21}/include/opencl-c.h +298 -39
- package/lib/clang/{19 → 21}/include/openmp_wrappers/__clang_openmp_device_functions.h +4 -5
- package/lib/clang/{19 → 21}/include/openmp_wrappers/complex_cmath.h +7 -2
- package/lib/clang/{19 → 21}/include/pmmintrin.h +16 -3
- package/lib/clang/{19 → 21}/include/popcntintrin.h +7 -7
- package/lib/clang/{19 → 21}/include/prfchwintrin.h +10 -13
- package/lib/clang/{19 → 21}/include/ptrauth.h +65 -2
- package/lib/clang/21/include/riscv_corev_alu.h +128 -0
- package/lib/clang/{19 → 21}/include/riscv_vector.h +0 -5
- package/lib/clang/{19 → 21}/include/shaintrin.h +3 -2
- package/lib/clang/21/include/sm4evexintrin.h +32 -0
- package/lib/clang/{19 → 21}/include/smmintrin.h +6 -0
- package/lib/clang/{19 → 21}/include/stdalign.h +0 -5
- package/lib/clang/21/include/stdcountof.h +15 -0
- package/lib/clang/{19 → 21}/include/stdint.h +18 -129
- package/lib/clang/{19 → 21}/include/tbmintrin.h +25 -37
- package/lib/clang/{19 → 21}/include/tmmintrin.h +64 -38
- package/lib/clang/{19 → 21}/include/vecintrin.h +1784 -61
- package/lib/clang/{19 → 21}/include/wasm_simd128.h +167 -21
- package/lib/clang/{19 → 21}/include/x86gprintrin.h +0 -14
- package/lib/clang/{19 → 21}/include/x86intrin.h +0 -18
- package/lib/clang/{19 → 21}/include/xmmintrin.h +173 -179
- package/package.json +6 -6
- package/lib/clang/19/include/cuda_wrappers/cmath +0 -90
- /package/lib/clang/{19 → 21}/include/__clang_cuda_builtin_vars.h +0 -0
- /package/lib/clang/{19 → 21}/include/__clang_cuda_cmath.h +0 -0
- /package/lib/clang/{19 → 21}/include/__clang_cuda_complex_builtins.h +0 -0
- /package/lib/clang/{19 → 21}/include/__clang_cuda_libdevice_declares.h +0 -0
- /package/lib/clang/{19 → 21}/include/__clang_cuda_math_forward_declares.h +0 -0
- /package/lib/clang/{19 → 21}/include/__clang_hip_stdlib.h +0 -0
- /package/lib/clang/{19 → 21}/include/__stdarg___gnuc_va_list.h +0 -0
- /package/lib/clang/{19 → 21}/include/__stdarg___va_copy.h +0 -0
- /package/lib/clang/{19 → 21}/include/__stdarg_header_macro.h +0 -0
- /package/lib/clang/{19 → 21}/include/__stdarg_va_copy.h +0 -0
- /package/lib/clang/{19 → 21}/include/__stdarg_va_list.h +0 -0
- /package/lib/clang/{19 → 21}/include/__stddef_header_macro.h +0 -0
- /package/lib/clang/{19 → 21}/include/__stddef_max_align_t.h +0 -0
- /package/lib/clang/{19 → 21}/include/__stddef_null.h +0 -0
- /package/lib/clang/{19 → 21}/include/__stddef_nullptr_t.h +0 -0
- /package/lib/clang/{19 → 21}/include/__stddef_offsetof.h +0 -0
- /package/lib/clang/{19 → 21}/include/__stddef_ptrdiff_t.h +0 -0
- /package/lib/clang/{19 → 21}/include/__stddef_rsize_t.h +0 -0
- /package/lib/clang/{19 → 21}/include/__stddef_size_t.h +0 -0
- /package/lib/clang/{19 → 21}/include/__stddef_unreachable.h +0 -0
- /package/lib/clang/{19 → 21}/include/__stddef_wchar_t.h +0 -0
- /package/lib/clang/{19 → 21}/include/__stddef_wint_t.h +0 -0
- /package/lib/clang/{19 → 21}/include/__wmmintrin_aes.h +0 -0
- /package/lib/clang/{19 → 21}/include/__wmmintrin_pclmul.h +0 -0
- /package/lib/clang/{19 → 21}/include/ammintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/arm64intr.h +0 -0
- /package/lib/clang/{19 → 21}/include/arm_bf16.h +0 -0
- /package/lib/clang/{19 → 21}/include/arm_cde.h +0 -0
- /package/lib/clang/{19 → 21}/include/arm_cmse.h +0 -0
- /package/lib/clang/{19 → 21}/include/arm_mve.h +0 -0
- /package/lib/clang/{19 → 21}/include/arm_neon_sve_bridge.h +0 -0
- /package/lib/clang/{19 → 21}/include/armintr.h +0 -0
- /package/lib/clang/{19 → 21}/include/avx512bf16intrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/avx512bwintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/avx512cdintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/avx512dqintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/avx512ifmaintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/avx512ifmavlintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/avx512vbmi2intrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/avx512vbmiintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/avx512vbmivlintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/avx512vlbf16intrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/avx512vlbwintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/avx512vlcdintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/avx512vldqintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/avx512vlfp16intrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/avx512vlintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/avx512vlvbmi2intrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/avx512vlvnniintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/avx512vlvp2intersectintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/avx512vnniintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/avx512vp2intersectintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/avxifmaintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/avxneconvertintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/avxvnniintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/builtins.h +0 -0
- /package/lib/clang/{19 → 21}/include/cet.h +0 -0
- /package/lib/clang/{19 → 21}/include/cetintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/cldemoteintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/clflushoptintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/clwbintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/clzerointrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/crc32intrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/cuda_wrappers/algorithm +0 -0
- /package/lib/clang/{19 → 21}/include/cuda_wrappers/bits/basic_string.h +0 -0
- /package/lib/clang/{19 → 21}/include/cuda_wrappers/bits/basic_string.tcc +0 -0
- /package/lib/clang/{19 → 21}/include/cuda_wrappers/bits/shared_ptr_base.h +0 -0
- /package/lib/clang/{19 → 21}/include/cuda_wrappers/complex +0 -0
- /package/lib/clang/{19 → 21}/include/enqcmdintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/f16cintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/fma4intrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/fmaintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/fxsrintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/hexagon_circ_brev_intrinsics.h +0 -0
- /package/lib/clang/{19 → 21}/include/hexagon_protos.h +0 -0
- /package/lib/clang/{19 → 21}/include/hresetintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/htmintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/htmxlintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/ia32intrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/inttypes.h +0 -0
- /package/lib/clang/{19 → 21}/include/invpcidintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/iso646.h +0 -0
- /package/lib/clang/{19 → 21}/include/llvm_libc_wrappers/assert.h +0 -0
- /package/lib/clang/{19 → 21}/include/llvm_libc_wrappers/inttypes.h +0 -0
- /package/lib/clang/{19 → 21}/include/llvm_libc_wrappers/stdio.h +0 -0
- /package/lib/clang/{19 → 21}/include/llvm_libc_wrappers/string.h +0 -0
- /package/lib/clang/{19 → 21}/include/llvm_libc_wrappers/time.h +0 -0
- /package/lib/clang/{19 → 21}/include/lwpintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/mm3dnow.h +0 -0
- /package/lib/clang/{19 → 21}/include/mm_malloc.h +0 -0
- /package/lib/clang/{19 → 21}/include/movdirintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/msa.h +0 -0
- /package/lib/clang/{19 → 21}/include/mwaitxintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/nmmintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/openmp_wrappers/cmath +0 -0
- /package/lib/clang/{19 → 21}/include/openmp_wrappers/complex +0 -0
- /package/lib/clang/{19 → 21}/include/openmp_wrappers/complex.h +0 -0
- /package/lib/clang/{19 → 21}/include/openmp_wrappers/math.h +0 -0
- /package/lib/clang/{19 → 21}/include/openmp_wrappers/new +0 -0
- /package/lib/clang/{19 → 21}/include/pconfigintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/pkuintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/ppc_wrappers/bmi2intrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/ppc_wrappers/bmiintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/ppc_wrappers/emmintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/ppc_wrappers/immintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/ppc_wrappers/mm_malloc.h +0 -0
- /package/lib/clang/{19 → 21}/include/ppc_wrappers/mmintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/ppc_wrappers/nmmintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/ppc_wrappers/pmmintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/ppc_wrappers/smmintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/ppc_wrappers/tmmintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/ppc_wrappers/x86gprintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/ppc_wrappers/x86intrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/ppc_wrappers/xmmintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/prfchiintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/ptwriteintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/raointintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/rdpruintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/rdseedintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/riscv_bitmanip.h +0 -0
- /package/lib/clang/{19 → 21}/include/riscv_crypto.h +0 -0
- /package/lib/clang/{19 → 21}/include/riscv_ntlh.h +0 -0
- /package/lib/clang/{19 → 21}/include/rtmintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/s390intrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/serializeintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/sgxintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/sha512intrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/sifive_vector.h +0 -0
- /package/lib/clang/{19 → 21}/include/sm3intrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/sm4intrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/stdarg.h +0 -0
- /package/lib/clang/{19 → 21}/include/stdatomic.h +0 -0
- /package/lib/clang/{19 → 21}/include/stdbool.h +0 -0
- /package/lib/clang/{19 → 21}/include/stdckdint.h +0 -0
- /package/lib/clang/{19 → 21}/include/stddef.h +0 -0
- /package/lib/clang/{19 → 21}/include/stdnoreturn.h +0 -0
- /package/lib/clang/{19 → 21}/include/tgmath.h +0 -0
- /package/lib/clang/{19 → 21}/include/tsxldtrkintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/uintrintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/unwind.h +0 -0
- /package/lib/clang/{19 → 21}/include/usermsrintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/vadefs.h +0 -0
- /package/lib/clang/{19 → 21}/include/vaesintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/varargs.h +0 -0
- /package/lib/clang/{19 → 21}/include/velintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/velintrin_approx.h +0 -0
- /package/lib/clang/{19 → 21}/include/velintrin_gen.h +0 -0
- /package/lib/clang/{19 → 21}/include/vpclmulqdqintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/waitpkgintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/wbnoinvdintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/wmmintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/xopintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/xsavecintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/xsaveintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/xsaveoptintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/xsavesintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/xtestintrin.h +0 -0
- /package/lib/clang/{19 → 21}/include/yvals_core.h +0 -0
- /package/lib/clang/{19 → 21}/include/zos_wrappers/builtins.h +0 -0
|
@@ -32,12 +32,41 @@ typedef unsigned int __v4su __attribute__((__vector_size__(16)));
|
|
|
32
32
|
#endif
|
|
33
33
|
|
|
34
34
|
/* Define the default attributes for the functions in this file. */
|
|
35
|
+
#if defined(__EVEX512__) && !defined(__AVX10_1_512__)
|
|
35
36
|
#define __DEFAULT_FN_ATTRS \
|
|
36
37
|
__attribute__((__always_inline__, __nodebug__, __target__("sse,no-evex512"), \
|
|
37
38
|
__min_vector_width__(128)))
|
|
38
|
-
#define
|
|
39
|
+
#define __DEFAULT_FN_ATTRS_SSE2 \
|
|
39
40
|
__attribute__((__always_inline__, __nodebug__, \
|
|
40
|
-
__target__("
|
|
41
|
+
__target__("sse2,no-evex512"), __min_vector_width__(128)))
|
|
42
|
+
#else
|
|
43
|
+
#define __DEFAULT_FN_ATTRS \
|
|
44
|
+
__attribute__((__always_inline__, __nodebug__, __target__("sse"), \
|
|
45
|
+
__min_vector_width__(128)))
|
|
46
|
+
#define __DEFAULT_FN_ATTRS_SSE2 \
|
|
47
|
+
__attribute__((__always_inline__, __nodebug__, __target__("sse2"), \
|
|
48
|
+
__min_vector_width__(128)))
|
|
49
|
+
#endif
|
|
50
|
+
|
|
51
|
+
#if defined(__cplusplus) && (__cplusplus >= 201103L)
|
|
52
|
+
#define __DEFAULT_FN_ATTRS_CONSTEXPR __DEFAULT_FN_ATTRS constexpr
|
|
53
|
+
#define __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR __DEFAULT_FN_ATTRS_SSE2 constexpr
|
|
54
|
+
#else
|
|
55
|
+
#define __DEFAULT_FN_ATTRS_CONSTEXPR __DEFAULT_FN_ATTRS
|
|
56
|
+
#define __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR __DEFAULT_FN_ATTRS_SSE2
|
|
57
|
+
#endif
|
|
58
|
+
|
|
59
|
+
#define __trunc64(x) \
|
|
60
|
+
(__m64) __builtin_shufflevector((__v2di)(x), __extension__(__v2di){}, 0)
|
|
61
|
+
#define __zext128(x) \
|
|
62
|
+
(__m128i) __builtin_shufflevector((__v2si)(x), __extension__(__v2si){}, 0, \
|
|
63
|
+
1, 2, 3)
|
|
64
|
+
#define __anyext128(x) \
|
|
65
|
+
(__m128i) __builtin_shufflevector((__v2si)(x), __extension__(__v2si){}, 0, \
|
|
66
|
+
1, -1, -1)
|
|
67
|
+
#define __zeroupper64(x) \
|
|
68
|
+
(__m128i) __builtin_shufflevector((__v4si)(x), __extension__(__v4si){}, 0, \
|
|
69
|
+
1, 4, 5)
|
|
41
70
|
|
|
42
71
|
/// Adds the 32-bit float values in the low-order bits of the operands.
|
|
43
72
|
///
|
|
@@ -54,9 +83,8 @@ typedef unsigned int __v4su __attribute__((__vector_size__(16)));
|
|
|
54
83
|
/// \returns A 128-bit vector of [4 x float] whose lower 32 bits contain the sum
|
|
55
84
|
/// of the lower 32 bits of both operands. The upper 96 bits are copied from
|
|
56
85
|
/// the upper 96 bits of the first source operand.
|
|
57
|
-
static __inline__ __m128
|
|
58
|
-
_mm_add_ss(__m128 __a, __m128 __b)
|
|
59
|
-
{
|
|
86
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
87
|
+
_mm_add_ss(__m128 __a, __m128 __b) {
|
|
60
88
|
__a[0] += __b[0];
|
|
61
89
|
return __a;
|
|
62
90
|
}
|
|
@@ -74,9 +102,8 @@ _mm_add_ss(__m128 __a, __m128 __b)
|
|
|
74
102
|
/// A 128-bit vector of [4 x float] containing one of the source operands.
|
|
75
103
|
/// \returns A 128-bit vector of [4 x float] containing the sums of both
|
|
76
104
|
/// operands.
|
|
77
|
-
static __inline__ __m128
|
|
78
|
-
_mm_add_ps(__m128 __a, __m128 __b)
|
|
79
|
-
{
|
|
105
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
106
|
+
_mm_add_ps(__m128 __a, __m128 __b) {
|
|
80
107
|
return (__m128)((__v4sf)__a + (__v4sf)__b);
|
|
81
108
|
}
|
|
82
109
|
|
|
@@ -96,9 +123,8 @@ _mm_add_ps(__m128 __a, __m128 __b)
|
|
|
96
123
|
/// \returns A 128-bit vector of [4 x float] whose lower 32 bits contain the
|
|
97
124
|
/// difference of the lower 32 bits of both operands. The upper 96 bits are
|
|
98
125
|
/// copied from the upper 96 bits of the first source operand.
|
|
99
|
-
static __inline__ __m128
|
|
100
|
-
_mm_sub_ss(__m128 __a, __m128 __b)
|
|
101
|
-
{
|
|
126
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
127
|
+
_mm_sub_ss(__m128 __a, __m128 __b) {
|
|
102
128
|
__a[0] -= __b[0];
|
|
103
129
|
return __a;
|
|
104
130
|
}
|
|
@@ -117,9 +143,8 @@ _mm_sub_ss(__m128 __a, __m128 __b)
|
|
|
117
143
|
/// A 128-bit vector of [4 x float] containing the subtrahend.
|
|
118
144
|
/// \returns A 128-bit vector of [4 x float] containing the differences between
|
|
119
145
|
/// both operands.
|
|
120
|
-
static __inline__ __m128
|
|
121
|
-
_mm_sub_ps(__m128 __a, __m128 __b)
|
|
122
|
-
{
|
|
146
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
147
|
+
_mm_sub_ps(__m128 __a, __m128 __b) {
|
|
123
148
|
return (__m128)((__v4sf)__a - (__v4sf)__b);
|
|
124
149
|
}
|
|
125
150
|
|
|
@@ -139,9 +164,8 @@ _mm_sub_ps(__m128 __a, __m128 __b)
|
|
|
139
164
|
/// \returns A 128-bit vector of [4 x float] containing the product of the lower
|
|
140
165
|
/// 32 bits of both operands. The upper 96 bits are copied from the upper 96
|
|
141
166
|
/// bits of the first source operand.
|
|
142
|
-
static __inline__ __m128
|
|
143
|
-
_mm_mul_ss(__m128 __a, __m128 __b)
|
|
144
|
-
{
|
|
167
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
168
|
+
_mm_mul_ss(__m128 __a, __m128 __b) {
|
|
145
169
|
__a[0] *= __b[0];
|
|
146
170
|
return __a;
|
|
147
171
|
}
|
|
@@ -159,9 +183,8 @@ _mm_mul_ss(__m128 __a, __m128 __b)
|
|
|
159
183
|
/// A 128-bit vector of [4 x float] containing one of the source operands.
|
|
160
184
|
/// \returns A 128-bit vector of [4 x float] containing the products of both
|
|
161
185
|
/// operands.
|
|
162
|
-
static __inline__ __m128
|
|
163
|
-
_mm_mul_ps(__m128 __a, __m128 __b)
|
|
164
|
-
{
|
|
186
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
187
|
+
_mm_mul_ps(__m128 __a, __m128 __b) {
|
|
165
188
|
return (__m128)((__v4sf)__a * (__v4sf)__b);
|
|
166
189
|
}
|
|
167
190
|
|
|
@@ -181,9 +204,8 @@ _mm_mul_ps(__m128 __a, __m128 __b)
|
|
|
181
204
|
/// \returns A 128-bit vector of [4 x float] containing the quotients of the
|
|
182
205
|
/// lower 32 bits of both operands. The upper 96 bits are copied from the
|
|
183
206
|
/// upper 96 bits of the first source operand.
|
|
184
|
-
static __inline__ __m128
|
|
185
|
-
_mm_div_ss(__m128 __a, __m128 __b)
|
|
186
|
-
{
|
|
207
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
208
|
+
_mm_div_ss(__m128 __a, __m128 __b) {
|
|
187
209
|
__a[0] /= __b[0];
|
|
188
210
|
return __a;
|
|
189
211
|
}
|
|
@@ -200,9 +222,8 @@ _mm_div_ss(__m128 __a, __m128 __b)
|
|
|
200
222
|
/// A 128-bit vector of [4 x float] containing the divisor.
|
|
201
223
|
/// \returns A 128-bit vector of [4 x float] containing the quotients of both
|
|
202
224
|
/// operands.
|
|
203
|
-
static __inline__ __m128
|
|
204
|
-
_mm_div_ps(__m128 __a, __m128 __b)
|
|
205
|
-
{
|
|
225
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
226
|
+
_mm_div_ps(__m128 __a, __m128 __b) {
|
|
206
227
|
return (__m128)((__v4sf)__a / (__v4sf)__b);
|
|
207
228
|
}
|
|
208
229
|
|
|
@@ -416,9 +437,8 @@ _mm_max_ps(__m128 __a, __m128 __b)
|
|
|
416
437
|
/// A 128-bit vector containing one of the source operands.
|
|
417
438
|
/// \returns A 128-bit vector of [4 x float] containing the bitwise AND of the
|
|
418
439
|
/// values between both operands.
|
|
419
|
-
static __inline__ __m128
|
|
420
|
-
_mm_and_ps(__m128 __a, __m128 __b)
|
|
421
|
-
{
|
|
440
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
441
|
+
_mm_and_ps(__m128 __a, __m128 __b) {
|
|
422
442
|
return (__m128)((__v4su)__a & (__v4su)__b);
|
|
423
443
|
}
|
|
424
444
|
|
|
@@ -438,9 +458,8 @@ _mm_and_ps(__m128 __a, __m128 __b)
|
|
|
438
458
|
/// \returns A 128-bit vector of [4 x float] containing the bitwise AND of the
|
|
439
459
|
/// one's complement of the first operand and the values in the second
|
|
440
460
|
/// operand.
|
|
441
|
-
static __inline__ __m128
|
|
442
|
-
_mm_andnot_ps(__m128 __a, __m128 __b)
|
|
443
|
-
{
|
|
461
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
462
|
+
_mm_andnot_ps(__m128 __a, __m128 __b) {
|
|
444
463
|
return (__m128)(~(__v4su)__a & (__v4su)__b);
|
|
445
464
|
}
|
|
446
465
|
|
|
@@ -456,9 +475,8 @@ _mm_andnot_ps(__m128 __a, __m128 __b)
|
|
|
456
475
|
/// A 128-bit vector of [4 x float] containing one of the source operands.
|
|
457
476
|
/// \returns A 128-bit vector of [4 x float] containing the bitwise OR of the
|
|
458
477
|
/// values between both operands.
|
|
459
|
-
static __inline__ __m128
|
|
460
|
-
_mm_or_ps(__m128 __a, __m128 __b)
|
|
461
|
-
{
|
|
478
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
479
|
+
_mm_or_ps(__m128 __a, __m128 __b) {
|
|
462
480
|
return (__m128)((__v4su)__a | (__v4su)__b);
|
|
463
481
|
}
|
|
464
482
|
|
|
@@ -475,9 +493,8 @@ _mm_or_ps(__m128 __a, __m128 __b)
|
|
|
475
493
|
/// A 128-bit vector of [4 x float] containing one of the source operands.
|
|
476
494
|
/// \returns A 128-bit vector of [4 x float] containing the bitwise exclusive OR
|
|
477
495
|
/// of the values between both operands.
|
|
478
|
-
static __inline__ __m128
|
|
479
|
-
_mm_xor_ps(__m128 __a, __m128 __b)
|
|
480
|
-
{
|
|
496
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
497
|
+
_mm_xor_ps(__m128 __a, __m128 __b) {
|
|
481
498
|
return (__m128)((__v4su)__a ^ (__v4su)__b);
|
|
482
499
|
}
|
|
483
500
|
|
|
@@ -1448,10 +1465,10 @@ _mm_cvtss_si64(__m128 __a)
|
|
|
1448
1465
|
/// \param __a
|
|
1449
1466
|
/// A 128-bit vector of [4 x float].
|
|
1450
1467
|
/// \returns A 64-bit integer vector containing the converted values.
|
|
1451
|
-
static __inline__ __m64
|
|
1468
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
1452
1469
|
_mm_cvtps_pi32(__m128 __a)
|
|
1453
1470
|
{
|
|
1454
|
-
return (
|
|
1471
|
+
return __trunc64(__builtin_ia32_cvtps2dq((__v4sf)__zeroupper64(__a)));
|
|
1455
1472
|
}
|
|
1456
1473
|
|
|
1457
1474
|
/// Converts two low-order float values in a 128-bit vector of
|
|
@@ -1468,7 +1485,7 @@ _mm_cvtps_pi32(__m128 __a)
|
|
|
1468
1485
|
/// \param __a
|
|
1469
1486
|
/// A 128-bit vector of [4 x float].
|
|
1470
1487
|
/// \returns A 64-bit integer vector containing the converted values.
|
|
1471
|
-
static __inline__ __m64
|
|
1488
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
1472
1489
|
_mm_cvt_ps2pi(__m128 __a)
|
|
1473
1490
|
{
|
|
1474
1491
|
return _mm_cvtps_pi32(__a);
|
|
@@ -1558,10 +1575,10 @@ _mm_cvttss_si64(__m128 __a)
|
|
|
1558
1575
|
/// \param __a
|
|
1559
1576
|
/// A 128-bit vector of [4 x float].
|
|
1560
1577
|
/// \returns A 64-bit integer vector containing the converted values.
|
|
1561
|
-
static __inline__ __m64
|
|
1578
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
1562
1579
|
_mm_cvttps_pi32(__m128 __a)
|
|
1563
1580
|
{
|
|
1564
|
-
return (
|
|
1581
|
+
return __trunc64(__builtin_ia32_cvttps2dq((__v4sf)__zeroupper64(__a)));
|
|
1565
1582
|
}
|
|
1566
1583
|
|
|
1567
1584
|
/// Converts the lower (first) two elements of a 128-bit vector of [4 x float]
|
|
@@ -1579,7 +1596,7 @@ _mm_cvttps_pi32(__m128 __a)
|
|
|
1579
1596
|
/// \param __a
|
|
1580
1597
|
/// A 128-bit vector of [4 x float].
|
|
1581
1598
|
/// \returns A 64-bit integer vector containing the converted values.
|
|
1582
|
-
static __inline__ __m64
|
|
1599
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
1583
1600
|
_mm_cvtt_ps2pi(__m128 __a)
|
|
1584
1601
|
{
|
|
1585
1602
|
return _mm_cvttps_pi32(__a);
|
|
@@ -1601,9 +1618,8 @@ _mm_cvtt_ps2pi(__m128 __a)
|
|
|
1601
1618
|
/// \returns A 128-bit vector of [4 x float] whose lower 32 bits contain the
|
|
1602
1619
|
/// converted value of the second operand. The upper 96 bits are copied from
|
|
1603
1620
|
/// the upper 96 bits of the first operand.
|
|
1604
|
-
static __inline__ __m128
|
|
1605
|
-
|
|
1606
|
-
{
|
|
1621
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_cvtsi32_ss(__m128 __a,
|
|
1622
|
+
int __b) {
|
|
1607
1623
|
__a[0] = __b;
|
|
1608
1624
|
return __a;
|
|
1609
1625
|
}
|
|
@@ -1624,9 +1640,8 @@ _mm_cvtsi32_ss(__m128 __a, int __b)
|
|
|
1624
1640
|
/// \returns A 128-bit vector of [4 x float] whose lower 32 bits contain the
|
|
1625
1641
|
/// converted value of the second operand. The upper 96 bits are copied from
|
|
1626
1642
|
/// the upper 96 bits of the first operand.
|
|
1627
|
-
static __inline__ __m128
|
|
1628
|
-
|
|
1629
|
-
{
|
|
1643
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_cvt_si2ss(__m128 __a,
|
|
1644
|
+
int __b) {
|
|
1630
1645
|
return _mm_cvtsi32_ss(__a, __b);
|
|
1631
1646
|
}
|
|
1632
1647
|
|
|
@@ -1648,9 +1663,8 @@ _mm_cvt_si2ss(__m128 __a, int __b)
|
|
|
1648
1663
|
/// \returns A 128-bit vector of [4 x float] whose lower 32 bits contain the
|
|
1649
1664
|
/// converted value of the second operand. The upper 96 bits are copied from
|
|
1650
1665
|
/// the upper 96 bits of the first operand.
|
|
1651
|
-
static __inline__ __m128
|
|
1652
|
-
_mm_cvtsi64_ss(__m128 __a, long long __b)
|
|
1653
|
-
{
|
|
1666
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
1667
|
+
_mm_cvtsi64_ss(__m128 __a, long long __b) {
|
|
1654
1668
|
__a[0] = __b;
|
|
1655
1669
|
return __a;
|
|
1656
1670
|
}
|
|
@@ -1674,10 +1688,13 @@ _mm_cvtsi64_ss(__m128 __a, long long __b)
|
|
|
1674
1688
|
/// \returns A 128-bit vector of [4 x float] whose lower 64 bits contain the
|
|
1675
1689
|
/// converted value of the second operand. The upper 64 bits are copied from
|
|
1676
1690
|
/// the upper 64 bits of the first operand.
|
|
1677
|
-
static __inline__ __m128
|
|
1691
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_SSE2
|
|
1678
1692
|
_mm_cvtpi32_ps(__m128 __a, __m64 __b)
|
|
1679
1693
|
{
|
|
1680
|
-
return
|
|
1694
|
+
return (__m128)__builtin_shufflevector(
|
|
1695
|
+
(__v4sf)__a,
|
|
1696
|
+
__builtin_convertvector((__v4si)__zext128(__b), __v4sf),
|
|
1697
|
+
4, 5, 2, 3);
|
|
1681
1698
|
}
|
|
1682
1699
|
|
|
1683
1700
|
/// Converts two elements of a 64-bit vector of [2 x i32] into two
|
|
@@ -1697,7 +1714,7 @@ _mm_cvtpi32_ps(__m128 __a, __m64 __b)
|
|
|
1697
1714
|
/// \returns A 128-bit vector of [4 x float] whose lower 64 bits contain the
|
|
1698
1715
|
/// converted value from the second operand. The upper 64 bits are copied
|
|
1699
1716
|
/// from the upper 64 bits of the first operand.
|
|
1700
|
-
static __inline__ __m128
|
|
1717
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_SSE2
|
|
1701
1718
|
_mm_cvt_pi2ps(__m128 __a, __m64 __b)
|
|
1702
1719
|
{
|
|
1703
1720
|
return _mm_cvtpi32_ps(__a, __b);
|
|
@@ -1714,9 +1731,8 @@ _mm_cvt_pi2ps(__m128 __a, __m64 __b)
|
|
|
1714
1731
|
/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
|
|
1715
1732
|
/// used in the extraction.
|
|
1716
1733
|
/// \returns A 32-bit float containing the extracted value.
|
|
1717
|
-
static __inline__ float
|
|
1718
|
-
_mm_cvtss_f32(__m128 __a)
|
|
1719
|
-
{
|
|
1734
|
+
static __inline__ float __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
1735
|
+
_mm_cvtss_f32(__m128 __a) {
|
|
1720
1736
|
return __a[0];
|
|
1721
1737
|
}
|
|
1722
1738
|
|
|
@@ -1907,9 +1923,8 @@ _mm_undefined_ps(void)
|
|
|
1907
1923
|
/// \returns An initialized 128-bit floating-point vector of [4 x float]. The
|
|
1908
1924
|
/// lower 32 bits contain the value provided in the source operand. The
|
|
1909
1925
|
/// upper 96 bits are set to zero.
|
|
1910
|
-
static __inline__ __m128
|
|
1911
|
-
_mm_set_ss(float __w)
|
|
1912
|
-
{
|
|
1926
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
1927
|
+
_mm_set_ss(float __w) {
|
|
1913
1928
|
return __extension__ (__m128){ __w, 0.0f, 0.0f, 0.0f };
|
|
1914
1929
|
}
|
|
1915
1930
|
|
|
@@ -1925,9 +1940,8 @@ _mm_set_ss(float __w)
|
|
|
1925
1940
|
/// A single-precision floating-point value used to initialize each vector
|
|
1926
1941
|
/// element of the result.
|
|
1927
1942
|
/// \returns An initialized 128-bit floating-point vector of [4 x float].
|
|
1928
|
-
static __inline__ __m128
|
|
1929
|
-
_mm_set1_ps(float __w)
|
|
1930
|
-
{
|
|
1943
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
1944
|
+
_mm_set1_ps(float __w) {
|
|
1931
1945
|
return __extension__ (__m128){ __w, __w, __w, __w };
|
|
1932
1946
|
}
|
|
1933
1947
|
|
|
@@ -1944,9 +1958,8 @@ _mm_set1_ps(float __w)
|
|
|
1944
1958
|
/// A single-precision floating-point value used to initialize each vector
|
|
1945
1959
|
/// element of the result.
|
|
1946
1960
|
/// \returns An initialized 128-bit floating-point vector of [4 x float].
|
|
1947
|
-
static __inline__ __m128
|
|
1948
|
-
_mm_set_ps1(float __w)
|
|
1949
|
-
{
|
|
1961
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
1962
|
+
_mm_set_ps1(float __w) {
|
|
1950
1963
|
return _mm_set1_ps(__w);
|
|
1951
1964
|
}
|
|
1952
1965
|
|
|
@@ -1971,9 +1984,8 @@ _mm_set_ps1(float __w)
|
|
|
1971
1984
|
/// A single-precision floating-point value used to initialize bits [31:0]
|
|
1972
1985
|
/// of the result.
|
|
1973
1986
|
/// \returns An initialized 128-bit floating-point vector of [4 x float].
|
|
1974
|
-
static __inline__ __m128
|
|
1975
|
-
_mm_set_ps(float __z, float __y, float __x, float __w)
|
|
1976
|
-
{
|
|
1987
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
1988
|
+
_mm_set_ps(float __z, float __y, float __x, float __w) {
|
|
1977
1989
|
return __extension__ (__m128){ __w, __x, __y, __z };
|
|
1978
1990
|
}
|
|
1979
1991
|
|
|
@@ -1999,9 +2011,8 @@ _mm_set_ps(float __z, float __y, float __x, float __w)
|
|
|
1999
2011
|
/// A single-precision floating-point value used to initialize bits [127:96]
|
|
2000
2012
|
/// of the result.
|
|
2001
2013
|
/// \returns An initialized 128-bit floating-point vector of [4 x float].
|
|
2002
|
-
static __inline__ __m128
|
|
2003
|
-
_mm_setr_ps(float __z, float __y, float __x, float __w)
|
|
2004
|
-
{
|
|
2014
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
2015
|
+
_mm_setr_ps(float __z, float __y, float __x, float __w) {
|
|
2005
2016
|
return __extension__ (__m128){ __z, __y, __x, __w };
|
|
2006
2017
|
}
|
|
2007
2018
|
|
|
@@ -2014,9 +2025,8 @@ _mm_setr_ps(float __z, float __y, float __x, float __w)
|
|
|
2014
2025
|
///
|
|
2015
2026
|
/// \returns An initialized 128-bit floating-point vector of [4 x float] with
|
|
2016
2027
|
/// all elements set to zero.
|
|
2017
|
-
static __inline__ __m128
|
|
2018
|
-
_mm_setzero_ps(void)
|
|
2019
|
-
{
|
|
2028
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
2029
|
+
_mm_setzero_ps(void) {
|
|
2020
2030
|
return __extension__ (__m128){ 0.0f, 0.0f, 0.0f, 0.0f };
|
|
2021
2031
|
}
|
|
2022
2032
|
|
|
@@ -2188,8 +2198,9 @@ _mm_storer_ps(float *__p, __m128 __a)
|
|
|
2188
2198
|
#define _MM_HINT_NTA 0
|
|
2189
2199
|
|
|
2190
2200
|
#ifndef _MSC_VER
|
|
2191
|
-
|
|
2192
|
-
|
|
2201
|
+
// If _MSC_VER is defined, we use the builtin variant of _mm_prefetch.
|
|
2202
|
+
// Otherwise, we provide this macro, which includes a cast, allowing the user
|
|
2203
|
+
// to pass a pointer of any time. The _mm_prefetch accepts char to match MSVC.
|
|
2193
2204
|
|
|
2194
2205
|
/// Loads one cache line of data from the specified address to a location
|
|
2195
2206
|
/// closer to the processor.
|
|
@@ -2231,10 +2242,10 @@ _mm_storer_ps(float *__p, __m128 __a)
|
|
|
2231
2242
|
/// A pointer to an aligned memory location used to store the register value.
|
|
2232
2243
|
/// \param __a
|
|
2233
2244
|
/// A 64-bit integer containing the value to be stored.
|
|
2234
|
-
static __inline__ void
|
|
2245
|
+
static __inline__ void __DEFAULT_FN_ATTRS
|
|
2235
2246
|
_mm_stream_pi(void *__p, __m64 __a)
|
|
2236
2247
|
{
|
|
2237
|
-
|
|
2248
|
+
__builtin_nontemporal_store(__a, (__m64 *)__p);
|
|
2238
2249
|
}
|
|
2239
2250
|
|
|
2240
2251
|
/// Moves packed float values from a 128-bit vector of [4 x float] to a
|
|
@@ -2296,7 +2307,7 @@ void _mm_sfence(void);
|
|
|
2296
2307
|
/// 3: Bits [63:48] are copied to the destination.
|
|
2297
2308
|
/// \returns A 16-bit integer containing the extracted 16 bits of packed data.
|
|
2298
2309
|
#define _mm_extract_pi16(a, n) \
|
|
2299
|
-
((int)__builtin_ia32_vec_ext_v4hi((__v4hi)a, (int)n))
|
|
2310
|
+
((int)(unsigned short)__builtin_ia32_vec_ext_v4hi((__v4hi)a, (int)n))
|
|
2300
2311
|
|
|
2301
2312
|
/// Copies data from the 64-bit vector of [4 x i16] to the destination,
|
|
2302
2313
|
/// and inserts the lower 16-bits of an integer operand at the 16-bit offset
|
|
@@ -2342,10 +2353,10 @@ void _mm_sfence(void);
|
|
|
2342
2353
|
/// \param __b
|
|
2343
2354
|
/// A 64-bit integer vector containing one of the source operands.
|
|
2344
2355
|
/// \returns A 64-bit integer vector containing the comparison results.
|
|
2345
|
-
static __inline__ __m64
|
|
2356
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
2346
2357
|
_mm_max_pi16(__m64 __a, __m64 __b)
|
|
2347
2358
|
{
|
|
2348
|
-
return (__m64)
|
|
2359
|
+
return (__m64)__builtin_elementwise_max((__v4hi)__a, (__v4hi)__b);
|
|
2349
2360
|
}
|
|
2350
2361
|
|
|
2351
2362
|
/// Compares each of the corresponding packed 8-bit unsigned integer
|
|
@@ -2361,10 +2372,10 @@ _mm_max_pi16(__m64 __a, __m64 __b)
|
|
|
2361
2372
|
/// \param __b
|
|
2362
2373
|
/// A 64-bit integer vector containing one of the source operands.
|
|
2363
2374
|
/// \returns A 64-bit integer vector containing the comparison results.
|
|
2364
|
-
static __inline__ __m64
|
|
2375
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
2365
2376
|
_mm_max_pu8(__m64 __a, __m64 __b)
|
|
2366
2377
|
{
|
|
2367
|
-
return (__m64)
|
|
2378
|
+
return (__m64)__builtin_elementwise_max((__v8qu)__a, (__v8qu)__b);
|
|
2368
2379
|
}
|
|
2369
2380
|
|
|
2370
2381
|
/// Compares each of the corresponding packed 16-bit integer values of
|
|
@@ -2380,10 +2391,10 @@ _mm_max_pu8(__m64 __a, __m64 __b)
|
|
|
2380
2391
|
/// \param __b
|
|
2381
2392
|
/// A 64-bit integer vector containing one of the source operands.
|
|
2382
2393
|
/// \returns A 64-bit integer vector containing the comparison results.
|
|
2383
|
-
static __inline__ __m64
|
|
2394
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
2384
2395
|
_mm_min_pi16(__m64 __a, __m64 __b)
|
|
2385
2396
|
{
|
|
2386
|
-
return (__m64)
|
|
2397
|
+
return (__m64)__builtin_elementwise_min((__v4hi)__a, (__v4hi)__b);
|
|
2387
2398
|
}
|
|
2388
2399
|
|
|
2389
2400
|
/// Compares each of the corresponding packed 8-bit unsigned integer
|
|
@@ -2399,10 +2410,10 @@ _mm_min_pi16(__m64 __a, __m64 __b)
|
|
|
2399
2410
|
/// \param __b
|
|
2400
2411
|
/// A 64-bit integer vector containing one of the source operands.
|
|
2401
2412
|
/// \returns A 64-bit integer vector containing the comparison results.
|
|
2402
|
-
static __inline__ __m64
|
|
2413
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
2403
2414
|
_mm_min_pu8(__m64 __a, __m64 __b)
|
|
2404
2415
|
{
|
|
2405
|
-
return (__m64)
|
|
2416
|
+
return (__m64)__builtin_elementwise_min((__v8qu)__a, (__v8qu)__b);
|
|
2406
2417
|
}
|
|
2407
2418
|
|
|
2408
2419
|
/// Takes the most significant bit from each 8-bit element in a 64-bit
|
|
@@ -2417,10 +2428,10 @@ _mm_min_pu8(__m64 __a, __m64 __b)
|
|
|
2417
2428
|
/// A 64-bit integer vector containing the values with bits to be extracted.
|
|
2418
2429
|
/// \returns The most significant bit from each 8-bit element in \a __a,
|
|
2419
2430
|
/// written to bits [7:0].
|
|
2420
|
-
static __inline__ int
|
|
2431
|
+
static __inline__ int __DEFAULT_FN_ATTRS_SSE2
|
|
2421
2432
|
_mm_movemask_pi8(__m64 __a)
|
|
2422
2433
|
{
|
|
2423
|
-
return
|
|
2434
|
+
return __builtin_ia32_pmovmskb128((__v16qi)__zext128(__a));
|
|
2424
2435
|
}
|
|
2425
2436
|
|
|
2426
2437
|
/// Multiplies packed 16-bit unsigned integer values and writes the
|
|
@@ -2436,10 +2447,11 @@ _mm_movemask_pi8(__m64 __a)
|
|
|
2436
2447
|
/// \param __b
|
|
2437
2448
|
/// A 64-bit integer vector containing one of the source operands.
|
|
2438
2449
|
/// \returns A 64-bit integer vector containing the products of both operands.
|
|
2439
|
-
static __inline__ __m64
|
|
2450
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
2440
2451
|
_mm_mulhi_pu16(__m64 __a, __m64 __b)
|
|
2441
2452
|
{
|
|
2442
|
-
return (
|
|
2453
|
+
return __trunc64(__builtin_ia32_pmulhuw128((__v8hi)__anyext128(__a),
|
|
2454
|
+
(__v8hi)__anyext128(__b)));
|
|
2443
2455
|
}
|
|
2444
2456
|
|
|
2445
2457
|
/// Shuffles the 4 16-bit integers from a 64-bit integer vector to the
|
|
@@ -2476,8 +2488,10 @@ _mm_mulhi_pu16(__m64 __a, __m64 __b)
|
|
|
2476
2488
|
/// <c>_MM_SHUFFLE(b6, b4, b2, b0)</c> can create an 8-bit mask of the form
|
|
2477
2489
|
/// <c>[b6, b4, b2, b0]</c>.
|
|
2478
2490
|
/// \returns A 64-bit integer vector containing the shuffled values.
|
|
2479
|
-
#define _mm_shuffle_pi16(a, n)
|
|
2480
|
-
((__m64)
|
|
2491
|
+
#define _mm_shuffle_pi16(a, n) \
|
|
2492
|
+
((__m64)__builtin_shufflevector((__v4hi)(__m64)(a), __extension__(__v4hi){}, \
|
|
2493
|
+
(n) & 0x3, ((n) >> 2) & 0x3, \
|
|
2494
|
+
((n) >> 4) & 0x3, ((n) >> 6) & 0x3))
|
|
2481
2495
|
|
|
2482
2496
|
/// Conditionally copies the values from each 8-bit element in the first
|
|
2483
2497
|
/// 64-bit integer vector operand to the specified memory location, as
|
|
@@ -2502,10 +2516,25 @@ _mm_mulhi_pu16(__m64 __a, __m64 __b)
|
|
|
2502
2516
|
/// A pointer to a 64-bit memory location that will receive the conditionally
|
|
2503
2517
|
/// copied integer values. The address of the memory location does not have
|
|
2504
2518
|
/// to be aligned.
|
|
2505
|
-
static __inline__ void
|
|
2519
|
+
static __inline__ void __DEFAULT_FN_ATTRS_SSE2
|
|
2506
2520
|
_mm_maskmove_si64(__m64 __d, __m64 __n, char *__p)
|
|
2507
2521
|
{
|
|
2508
|
-
|
|
2522
|
+
// This is complex, because we need to support the case where __p is pointing
|
|
2523
|
+
// within the last 15 to 8 bytes of a page. In that case, using a 128-bit
|
|
2524
|
+
// write might cause a trap where a 64-bit maskmovq would not. (Memory
|
|
2525
|
+
// locations not selected by the mask bits might still cause traps.)
|
|
2526
|
+
__m128i __d128 = __anyext128(__d);
|
|
2527
|
+
__m128i __n128 = __zext128(__n);
|
|
2528
|
+
if (((__SIZE_TYPE__)__p & 0xfff) >= 4096-15 &&
|
|
2529
|
+
((__SIZE_TYPE__)__p & 0xfff) <= 4096-8) {
|
|
2530
|
+
// If there's a risk of spurious trap due to a 128-bit write, back up the
|
|
2531
|
+
// pointer by 8 bytes and shift values in registers to match.
|
|
2532
|
+
__p -= 8;
|
|
2533
|
+
__d128 = __builtin_ia32_pslldqi128_byteshift((__v2di)__d128, 8);
|
|
2534
|
+
__n128 = __builtin_ia32_pslldqi128_byteshift((__v2di)__n128, 8);
|
|
2535
|
+
}
|
|
2536
|
+
|
|
2537
|
+
__builtin_ia32_maskmovdqu((__v16qi)__d128, (__v16qi)__n128, __p);
|
|
2509
2538
|
}
|
|
2510
2539
|
|
|
2511
2540
|
/// Computes the rounded averages of the packed unsigned 8-bit integer
|
|
@@ -2521,10 +2550,11 @@ _mm_maskmove_si64(__m64 __d, __m64 __n, char *__p)
|
|
|
2521
2550
|
/// \param __b
|
|
2522
2551
|
/// A 64-bit integer vector containing one of the source operands.
|
|
2523
2552
|
/// \returns A 64-bit integer vector containing the averages of both operands.
|
|
2524
|
-
static __inline__ __m64
|
|
2553
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
2525
2554
|
_mm_avg_pu8(__m64 __a, __m64 __b)
|
|
2526
2555
|
{
|
|
2527
|
-
return (
|
|
2556
|
+
return __trunc64(__builtin_ia32_pavgb128((__v16qi)__anyext128(__a),
|
|
2557
|
+
(__v16qi)__anyext128(__b)));
|
|
2528
2558
|
}
|
|
2529
2559
|
|
|
2530
2560
|
/// Computes the rounded averages of the packed unsigned 16-bit integer
|
|
@@ -2540,10 +2570,11 @@ _mm_avg_pu8(__m64 __a, __m64 __b)
|
|
|
2540
2570
|
/// \param __b
|
|
2541
2571
|
/// A 64-bit integer vector containing one of the source operands.
|
|
2542
2572
|
/// \returns A 64-bit integer vector containing the averages of both operands.
|
|
2543
|
-
static __inline__ __m64
|
|
2573
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
2544
2574
|
_mm_avg_pu16(__m64 __a, __m64 __b)
|
|
2545
2575
|
{
|
|
2546
|
-
return (
|
|
2576
|
+
return __trunc64(__builtin_ia32_pavgw128((__v8hi)__anyext128(__a),
|
|
2577
|
+
(__v8hi)__anyext128(__b)));
|
|
2547
2578
|
}
|
|
2548
2579
|
|
|
2549
2580
|
/// Subtracts the corresponding 8-bit unsigned integer values of the two
|
|
@@ -2562,10 +2593,11 @@ _mm_avg_pu16(__m64 __a, __m64 __b)
|
|
|
2562
2593
|
/// \returns A 64-bit integer vector whose lower 16 bits contain the sums of the
|
|
2563
2594
|
/// sets of absolute differences between both operands. The upper bits are
|
|
2564
2595
|
/// cleared.
|
|
2565
|
-
static __inline__ __m64
|
|
2596
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
2566
2597
|
_mm_sad_pu8(__m64 __a, __m64 __b)
|
|
2567
2598
|
{
|
|
2568
|
-
return (
|
|
2599
|
+
return __trunc64(__builtin_ia32_psadbw128((__v16qi)__zext128(__a),
|
|
2600
|
+
(__v16qi)__zext128(__b)));
|
|
2569
2601
|
}
|
|
2570
2602
|
|
|
2571
2603
|
#if defined(__cplusplus)
|
|
@@ -2741,9 +2773,8 @@ void _mm_setcsr(unsigned int __i);
|
|
|
2741
2773
|
/// Bits [95:64] are written to bits [63:32] of the destination. \n
|
|
2742
2774
|
/// Bits [127:96] are written to bits [127:96] of the destination.
|
|
2743
2775
|
/// \returns A 128-bit vector of [4 x float] containing the interleaved values.
|
|
2744
|
-
static __inline__ __m128
|
|
2745
|
-
_mm_unpackhi_ps(__m128 __a, __m128 __b)
|
|
2746
|
-
{
|
|
2776
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
2777
|
+
_mm_unpackhi_ps(__m128 __a, __m128 __b) {
|
|
2747
2778
|
return __builtin_shufflevector((__v4sf)__a, (__v4sf)__b, 2, 6, 3, 7);
|
|
2748
2779
|
}
|
|
2749
2780
|
|
|
@@ -2763,9 +2794,8 @@ _mm_unpackhi_ps(__m128 __a, __m128 __b)
|
|
|
2763
2794
|
/// Bits [31:0] are written to bits [63:32] of the destination. \n
|
|
2764
2795
|
/// Bits [63:32] are written to bits [127:96] of the destination.
|
|
2765
2796
|
/// \returns A 128-bit vector of [4 x float] containing the interleaved values.
|
|
2766
|
-
static __inline__ __m128
|
|
2767
|
-
_mm_unpacklo_ps(__m128 __a, __m128 __b)
|
|
2768
|
-
{
|
|
2797
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
2798
|
+
_mm_unpacklo_ps(__m128 __a, __m128 __b) {
|
|
2769
2799
|
return __builtin_shufflevector((__v4sf)__a, (__v4sf)__b, 0, 4, 1, 5);
|
|
2770
2800
|
}
|
|
2771
2801
|
|
|
@@ -2785,9 +2815,8 @@ _mm_unpacklo_ps(__m128 __a, __m128 __b)
|
|
|
2785
2815
|
/// A 128-bit floating-point vector of [4 x float]. The lower 32 bits are
|
|
2786
2816
|
/// written to the lower 32 bits of the result.
|
|
2787
2817
|
/// \returns A 128-bit floating-point vector of [4 x float].
|
|
2788
|
-
static __inline__ __m128
|
|
2789
|
-
_mm_move_ss(__m128 __a, __m128 __b)
|
|
2790
|
-
{
|
|
2818
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
2819
|
+
_mm_move_ss(__m128 __a, __m128 __b) {
|
|
2791
2820
|
__a[0] = __b[0];
|
|
2792
2821
|
return __a;
|
|
2793
2822
|
}
|
|
@@ -2807,9 +2836,8 @@ _mm_move_ss(__m128 __a, __m128 __b)
|
|
|
2807
2836
|
/// A 128-bit floating-point vector of [4 x float]. The upper 64 bits are
|
|
2808
2837
|
/// written to the lower 64 bits of the result.
|
|
2809
2838
|
/// \returns A 128-bit floating-point vector of [4 x float].
|
|
2810
|
-
static __inline__ __m128
|
|
2811
|
-
_mm_movehl_ps(__m128 __a, __m128 __b)
|
|
2812
|
-
{
|
|
2839
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
2840
|
+
_mm_movehl_ps(__m128 __a, __m128 __b) {
|
|
2813
2841
|
return __builtin_shufflevector((__v4sf)__a, (__v4sf)__b, 6, 7, 2, 3);
|
|
2814
2842
|
}
|
|
2815
2843
|
|
|
@@ -2828,9 +2856,8 @@ _mm_movehl_ps(__m128 __a, __m128 __b)
|
|
|
2828
2856
|
/// A 128-bit floating-point vector of [4 x float]. The lower 64 bits are
|
|
2829
2857
|
/// written to the upper 64 bits of the result.
|
|
2830
2858
|
/// \returns A 128-bit floating-point vector of [4 x float].
|
|
2831
|
-
static __inline__ __m128
|
|
2832
|
-
_mm_movelh_ps(__m128 __a, __m128 __b)
|
|
2833
|
-
{
|
|
2859
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
2860
|
+
_mm_movelh_ps(__m128 __a, __m128 __b) {
|
|
2834
2861
|
return __builtin_shufflevector((__v4sf)__a, (__v4sf)__b, 0, 1, 4, 5);
|
|
2835
2862
|
}
|
|
2836
2863
|
|
|
@@ -2846,22 +2873,10 @@ _mm_movelh_ps(__m128 __a, __m128 __b)
|
|
|
2846
2873
|
/// from the corresponding elements in this operand.
|
|
2847
2874
|
/// \returns A 128-bit vector of [4 x float] containing the copied and converted
|
|
2848
2875
|
/// values from the operand.
|
|
2849
|
-
static __inline__ __m128
|
|
2876
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_SSE2
|
|
2850
2877
|
_mm_cvtpi16_ps(__m64 __a)
|
|
2851
2878
|
{
|
|
2852
|
-
|
|
2853
|
-
__m128 __r;
|
|
2854
|
-
|
|
2855
|
-
__b = _mm_setzero_si64();
|
|
2856
|
-
__b = _mm_cmpgt_pi16(__b, __a);
|
|
2857
|
-
__c = _mm_unpackhi_pi16(__a, __b);
|
|
2858
|
-
__r = _mm_setzero_ps();
|
|
2859
|
-
__r = _mm_cvtpi32_ps(__r, __c);
|
|
2860
|
-
__r = _mm_movelh_ps(__r, __r);
|
|
2861
|
-
__c = _mm_unpacklo_pi16(__a, __b);
|
|
2862
|
-
__r = _mm_cvtpi32_ps(__r, __c);
|
|
2863
|
-
|
|
2864
|
-
return __r;
|
|
2879
|
+
return __builtin_convertvector((__v4hi)__a, __v4sf);
|
|
2865
2880
|
}
|
|
2866
2881
|
|
|
2867
2882
|
/// Converts a 64-bit vector of 16-bit unsigned integer values into a
|
|
@@ -2876,21 +2891,10 @@ _mm_cvtpi16_ps(__m64 __a)
|
|
|
2876
2891
|
/// destination are copied from the corresponding elements in this operand.
|
|
2877
2892
|
/// \returns A 128-bit vector of [4 x float] containing the copied and converted
|
|
2878
2893
|
/// values from the operand.
|
|
2879
|
-
static __inline__ __m128
|
|
2894
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_SSE2
|
|
2880
2895
|
_mm_cvtpu16_ps(__m64 __a)
|
|
2881
2896
|
{
|
|
2882
|
-
|
|
2883
|
-
__m128 __r;
|
|
2884
|
-
|
|
2885
|
-
__b = _mm_setzero_si64();
|
|
2886
|
-
__c = _mm_unpackhi_pi16(__a, __b);
|
|
2887
|
-
__r = _mm_setzero_ps();
|
|
2888
|
-
__r = _mm_cvtpi32_ps(__r, __c);
|
|
2889
|
-
__r = _mm_movelh_ps(__r, __r);
|
|
2890
|
-
__c = _mm_unpacklo_pi16(__a, __b);
|
|
2891
|
-
__r = _mm_cvtpi32_ps(__r, __c);
|
|
2892
|
-
|
|
2893
|
-
return __r;
|
|
2897
|
+
return __builtin_convertvector((__v4hu)__a, __v4sf);
|
|
2894
2898
|
}
|
|
2895
2899
|
|
|
2896
2900
|
/// Converts the lower four 8-bit values from a 64-bit vector of [8 x i8]
|
|
@@ -2905,16 +2909,12 @@ _mm_cvtpu16_ps(__m64 __a)
|
|
|
2905
2909
|
/// from the corresponding lower 4 elements in this operand.
|
|
2906
2910
|
/// \returns A 128-bit vector of [4 x float] containing the copied and converted
|
|
2907
2911
|
/// values from the operand.
|
|
2908
|
-
static __inline__ __m128
|
|
2912
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_SSE2
|
|
2909
2913
|
_mm_cvtpi8_ps(__m64 __a)
|
|
2910
2914
|
{
|
|
2911
|
-
|
|
2912
|
-
|
|
2913
|
-
|
|
2914
|
-
__b = _mm_cmpgt_pi8(__b, __a);
|
|
2915
|
-
__b = _mm_unpacklo_pi8(__a, __b);
|
|
2916
|
-
|
|
2917
|
-
return _mm_cvtpi16_ps(__b);
|
|
2915
|
+
return __builtin_convertvector(
|
|
2916
|
+
__builtin_shufflevector((__v8qs)__a, __extension__ (__v8qs){},
|
|
2917
|
+
0, 1, 2, 3), __v4sf);
|
|
2918
2918
|
}
|
|
2919
2919
|
|
|
2920
2920
|
/// Converts the lower four unsigned 8-bit integer values from a 64-bit
|
|
@@ -2930,15 +2930,12 @@ _mm_cvtpi8_ps(__m64 __a)
|
|
|
2930
2930
|
/// operand.
|
|
2931
2931
|
/// \returns A 128-bit vector of [4 x float] containing the copied and converted
|
|
2932
2932
|
/// values from the source operand.
|
|
2933
|
-
static __inline__ __m128
|
|
2933
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_SSE2
|
|
2934
2934
|
_mm_cvtpu8_ps(__m64 __a)
|
|
2935
2935
|
{
|
|
2936
|
-
|
|
2937
|
-
|
|
2938
|
-
|
|
2939
|
-
__b = _mm_unpacklo_pi8(__a, __b);
|
|
2940
|
-
|
|
2941
|
-
return _mm_cvtpi16_ps(__b);
|
|
2936
|
+
return __builtin_convertvector(
|
|
2937
|
+
__builtin_shufflevector((__v8qu)__a, __extension__ (__v8qu){},
|
|
2938
|
+
0, 1, 2, 3), __v4sf);
|
|
2942
2939
|
}
|
|
2943
2940
|
|
|
2944
2941
|
/// Converts the two 32-bit signed integer values from each 64-bit vector
|
|
@@ -2957,16 +2954,12 @@ _mm_cvtpu8_ps(__m64 __a)
|
|
|
2957
2954
|
/// \returns A 128-bit vector of [4 x float] whose lower 64 bits contain the
|
|
2958
2955
|
/// copied and converted values from the first operand. The upper 64 bits
|
|
2959
2956
|
/// contain the copied and converted values from the second operand.
|
|
2960
|
-
static __inline__ __m128
|
|
2957
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS_SSE2
|
|
2961
2958
|
_mm_cvtpi32x2_ps(__m64 __a, __m64 __b)
|
|
2962
2959
|
{
|
|
2963
|
-
|
|
2964
|
-
|
|
2965
|
-
|
|
2966
|
-
__c = _mm_cvtpi32_ps(__c, __b);
|
|
2967
|
-
__c = _mm_movelh_ps(__c, __c);
|
|
2968
|
-
|
|
2969
|
-
return _mm_cvtpi32_ps(__c, __a);
|
|
2960
|
+
return __builtin_convertvector(
|
|
2961
|
+
__builtin_shufflevector((__v2si)__a, (__v2si)__b,
|
|
2962
|
+
0, 1, 2, 3), __v4sf);
|
|
2970
2963
|
}
|
|
2971
2964
|
|
|
2972
2965
|
/// Converts each single-precision floating-point element of a 128-bit
|
|
@@ -2986,16 +2979,11 @@ _mm_cvtpi32x2_ps(__m64 __a, __m64 __b)
|
|
|
2986
2979
|
/// A 128-bit floating-point vector of [4 x float].
|
|
2987
2980
|
/// \returns A 64-bit integer vector of [4 x i16] containing the converted
|
|
2988
2981
|
/// values.
|
|
2989
|
-
static __inline__ __m64
|
|
2982
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
2990
2983
|
_mm_cvtps_pi16(__m128 __a)
|
|
2991
2984
|
{
|
|
2992
|
-
|
|
2993
|
-
|
|
2994
|
-
__b = _mm_cvtps_pi32(__a);
|
|
2995
|
-
__a = _mm_movehl_ps(__a, __a);
|
|
2996
|
-
__c = _mm_cvtps_pi32(__a);
|
|
2997
|
-
|
|
2998
|
-
return _mm_packs_pi32(__b, __c);
|
|
2985
|
+
return __trunc64(__builtin_ia32_packssdw128(
|
|
2986
|
+
(__v4si)__builtin_ia32_cvtps2dq((__v4sf)__a), (__v4si)_mm_setzero_ps()));
|
|
2999
2987
|
}
|
|
3000
2988
|
|
|
3001
2989
|
/// Converts each single-precision floating-point element of a 128-bit
|
|
@@ -3016,7 +3004,7 @@ _mm_cvtps_pi16(__m128 __a)
|
|
|
3016
3004
|
/// 128-bit floating-point vector of [4 x float].
|
|
3017
3005
|
/// \returns A 64-bit integer vector of [8 x i8]. The lower 32 bits contain the
|
|
3018
3006
|
/// converted values and the uppper 32 bits are set to zero.
|
|
3019
|
-
static __inline__ __m64
|
|
3007
|
+
static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2
|
|
3020
3008
|
_mm_cvtps_pi8(__m128 __a)
|
|
3021
3009
|
{
|
|
3022
3010
|
__m64 __b, __c;
|
|
@@ -3196,8 +3184,14 @@ do { \
|
|
|
3196
3184
|
#define _m_psadbw _mm_sad_pu8
|
|
3197
3185
|
#define _m_ _mm_
|
|
3198
3186
|
|
|
3187
|
+
#undef __trunc64
|
|
3188
|
+
#undef __zext128
|
|
3189
|
+
#undef __anyext128
|
|
3190
|
+
#undef __zeroupper64
|
|
3199
3191
|
#undef __DEFAULT_FN_ATTRS
|
|
3200
|
-
#undef
|
|
3192
|
+
#undef __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
3193
|
+
#undef __DEFAULT_FN_ATTRS_SSE2
|
|
3194
|
+
#undef __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR
|
|
3201
3195
|
|
|
3202
3196
|
/* Ugly hack for backwards-compatibility (compatible with gcc) */
|
|
3203
3197
|
#if defined(__SSE2__) && !__building_module(_Builtin_intrinsics)
|