@cpp-linter/clang-tidy-linux-arm64 18.1.5 → 19.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 → 19}/include/__clang_cuda_intrinsics.h +1 -3
- package/lib/clang/19/include/__stdarg_header_macro.h +12 -0
- package/lib/clang/19/include/__stddef_header_macro.h +12 -0
- package/lib/clang/{18 → 19}/include/arm_acle.h +31 -5
- package/lib/clang/{18 → 19}/include/arm_fp16.h +1 -1
- package/lib/clang/{18 → 19}/include/arm_neon.h +43796 -43801
- package/lib/clang/{18 → 19}/include/arm_sme.h +408 -1
- package/lib/clang/{18 → 19}/include/arm_sve.h +27266 -27714
- package/lib/clang/{18 → 19}/include/arm_vector_types.h +5 -5
- package/lib/clang/{18 → 19}/include/avx512fp16intrin.h +38 -38
- package/lib/clang/{18 → 19}/include/avxintrin.h +58 -44
- package/lib/clang/{18 → 19}/include/bmiintrin.h +2 -4
- package/lib/clang/{18 → 19}/include/builtins.h +3 -0
- package/lib/clang/{18 → 19}/include/cpuid.h +23 -3
- package/lib/clang/{18 → 19}/include/cuda_wrappers/algorithm +1 -1
- package/lib/clang/{18 → 19}/include/emmintrin.h +301 -170
- package/lib/clang/{18 → 19}/include/float.h +28 -0
- package/lib/clang/{18 → 19}/include/fmaintrin.h +32 -16
- package/lib/clang/{18 → 19}/include/hlsl/hlsl_basic_types.h +10 -3
- package/lib/clang/19/include/hlsl/hlsl_intrinsics.h +1697 -0
- package/lib/clang/{18 → 19}/include/ia32intrin.h +36 -36
- package/lib/clang/{18 → 19}/include/immintrin.h +85 -159
- package/lib/clang/{18 → 19}/include/intrin.h +48 -224
- package/lib/clang/19/include/intrin0.h +247 -0
- package/lib/clang/{18 → 19}/include/inttypes.h +4 -0
- package/lib/clang/{18 → 19}/include/iso646.h +4 -0
- package/lib/clang/{18 → 19}/include/keylockerintrin.h +5 -8
- package/lib/clang/{18 → 19}/include/limits.h +5 -0
- package/lib/clang/{18 → 19}/include/llvm_libc_wrappers/assert.h +1 -1
- package/lib/clang/19/include/mm3dnow.h +22 -0
- package/lib/clang/{18 → 19}/include/mmintrin.h +76 -84
- package/lib/clang/{18 → 19}/include/module.modulemap +14 -1
- package/lib/clang/{18 → 19}/include/opencl-c-base.h +4 -0
- package/lib/clang/{18 → 19}/include/opencl-c.h +15 -0
- package/lib/clang/{18 → 19}/include/prfchwintrin.h +10 -8
- package/lib/clang/19/include/ptrauth.h +330 -0
- package/lib/clang/{18 → 19}/include/riscv_vector.h +0 -4
- package/lib/clang/19/include/sifive_vector.h +118 -0
- package/lib/clang/{18 → 19}/include/smmintrin.h +12 -12
- package/lib/clang/{18 → 19}/include/stdalign.h +5 -0
- package/lib/clang/{18 → 19}/include/stdarg.h +15 -19
- package/lib/clang/{18 → 19}/include/stdatomic.h +11 -1
- package/lib/clang/{18 → 19}/include/stdbool.h +5 -0
- package/lib/clang/{18 → 19}/include/stddef.h +38 -22
- package/lib/clang/{18 → 19}/include/stdint.h +5 -0
- package/lib/clang/{18 → 19}/include/stdnoreturn.h +6 -0
- package/lib/clang/{18 → 19}/include/tmmintrin.h +20 -16
- package/lib/clang/{18 → 19}/include/varargs.h +5 -1
- package/lib/clang/{18 → 19}/include/x86gprintrin.h +7 -14
- package/lib/clang/19/include/x86intrin.h +53 -0
- package/lib/clang/{18 → 19}/include/xmmintrin.h +285 -99
- package/lib/clang/19/include/yvals_core.h +25 -0
- package/lib/clang/19/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 → 19}/include/__clang_cuda_builtin_vars.h +0 -0
- /package/lib/clang/{18 → 19}/include/__clang_cuda_cmath.h +0 -0
- /package/lib/clang/{18 → 19}/include/__clang_cuda_complex_builtins.h +0 -0
- /package/lib/clang/{18 → 19}/include/__clang_cuda_device_functions.h +0 -0
- /package/lib/clang/{18 → 19}/include/__clang_cuda_libdevice_declares.h +0 -0
- /package/lib/clang/{18 → 19}/include/__clang_cuda_math.h +0 -0
- /package/lib/clang/{18 → 19}/include/__clang_cuda_math_forward_declares.h +0 -0
- /package/lib/clang/{18 → 19}/include/__clang_cuda_runtime_wrapper.h +0 -0
- /package/lib/clang/{18 → 19}/include/__clang_cuda_texture_intrinsics.h +0 -0
- /package/lib/clang/{18 → 19}/include/__clang_hip_cmath.h +0 -0
- /package/lib/clang/{18 → 19}/include/__clang_hip_libdevice_declares.h +0 -0
- /package/lib/clang/{18 → 19}/include/__clang_hip_math.h +0 -0
- /package/lib/clang/{18 → 19}/include/__clang_hip_runtime_wrapper.h +0 -0
- /package/lib/clang/{18 → 19}/include/__clang_hip_stdlib.h +0 -0
- /package/lib/clang/{18 → 19}/include/__stdarg___gnuc_va_list.h +0 -0
- /package/lib/clang/{18 → 19}/include/__stdarg___va_copy.h +0 -0
- /package/lib/clang/{18 → 19}/include/__stdarg_va_arg.h +0 -0
- /package/lib/clang/{18 → 19}/include/__stdarg_va_copy.h +0 -0
- /package/lib/clang/{18 → 19}/include/__stdarg_va_list.h +0 -0
- /package/lib/clang/{18 → 19}/include/__stddef_max_align_t.h +0 -0
- /package/lib/clang/{18 → 19}/include/__stddef_null.h +0 -0
- /package/lib/clang/{18 → 19}/include/__stddef_nullptr_t.h +0 -0
- /package/lib/clang/{18 → 19}/include/__stddef_offsetof.h +0 -0
- /package/lib/clang/{18 → 19}/include/__stddef_ptrdiff_t.h +0 -0
- /package/lib/clang/{18 → 19}/include/__stddef_rsize_t.h +0 -0
- /package/lib/clang/{18 → 19}/include/__stddef_size_t.h +0 -0
- /package/lib/clang/{18 → 19}/include/__stddef_unreachable.h +0 -0
- /package/lib/clang/{18 → 19}/include/__stddef_wchar_t.h +0 -0
- /package/lib/clang/{18 → 19}/include/__stddef_wint_t.h +0 -0
- /package/lib/clang/{18 → 19}/include/__wmmintrin_aes.h +0 -0
- /package/lib/clang/{18 → 19}/include/__wmmintrin_pclmul.h +0 -0
- /package/lib/clang/{18 → 19}/include/adcintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/adxintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/altivec.h +0 -0
- /package/lib/clang/{18 → 19}/include/ammintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/amxcomplexintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/amxfp16intrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/amxintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/arm64intr.h +0 -0
- /package/lib/clang/{18 → 19}/include/arm_bf16.h +0 -0
- /package/lib/clang/{18 → 19}/include/arm_cde.h +0 -0
- /package/lib/clang/{18 → 19}/include/arm_cmse.h +0 -0
- /package/lib/clang/{18 → 19}/include/arm_mve.h +0 -0
- /package/lib/clang/{18 → 19}/include/arm_neon_sve_bridge.h +0 -0
- /package/lib/clang/{18 → 19}/include/armintr.h +0 -0
- /package/lib/clang/{18 → 19}/include/avx2intrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/avx512bf16intrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/avx512bitalgintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/avx512bwintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/avx512cdintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/avx512dqintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/avx512fintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/avx512ifmaintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/avx512ifmavlintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/avx512vbmi2intrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/avx512vbmiintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/avx512vbmivlintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/avx512vlbf16intrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/avx512vlbitalgintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/avx512vlbwintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/avx512vlcdintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/avx512vldqintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/avx512vlfp16intrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/avx512vlintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/avx512vlvbmi2intrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/avx512vlvnniintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/avx512vlvp2intersectintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/avx512vnniintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/avx512vp2intersectintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/avx512vpopcntdqintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/avx512vpopcntdqvlintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/avxifmaintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/avxneconvertintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/avxvnniint16intrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/avxvnniint8intrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/avxvnniintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/bmi2intrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/cet.h +0 -0
- /package/lib/clang/{18 → 19}/include/cetintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/cldemoteintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/clflushoptintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/clwbintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/clzerointrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/cmpccxaddintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/crc32intrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/cuda_wrappers/bits/basic_string.h +0 -0
- /package/lib/clang/{18 → 19}/include/cuda_wrappers/bits/basic_string.tcc +0 -0
- /package/lib/clang/{18 → 19}/include/cuda_wrappers/bits/shared_ptr_base.h +0 -0
- /package/lib/clang/{18 → 19}/include/cuda_wrappers/cmath +0 -0
- /package/lib/clang/{18 → 19}/include/cuda_wrappers/complex +0 -0
- /package/lib/clang/{18 → 19}/include/cuda_wrappers/new +0 -0
- /package/lib/clang/{18 → 19}/include/enqcmdintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/f16cintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/fma4intrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/fxsrintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/gfniintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/hexagon_circ_brev_intrinsics.h +0 -0
- /package/lib/clang/{18 → 19}/include/hexagon_protos.h +0 -0
- /package/lib/clang/{18 → 19}/include/hexagon_types.h +0 -0
- /package/lib/clang/{18 → 19}/include/hlsl.h +0 -0
- /package/lib/clang/{18 → 19}/include/hresetintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/htmintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/htmxlintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/hvx_hexagon_protos.h +0 -0
- /package/lib/clang/{18 → 19}/include/invpcidintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/larchintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/lasxintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/llvm_libc_wrappers/ctype.h +0 -0
- /package/lib/clang/{18 → 19}/include/llvm_libc_wrappers/inttypes.h +0 -0
- /package/lib/clang/{18 → 19}/include/llvm_libc_wrappers/stdio.h +0 -0
- /package/lib/clang/{18 → 19}/include/llvm_libc_wrappers/stdlib.h +0 -0
- /package/lib/clang/{18 → 19}/include/llvm_libc_wrappers/string.h +0 -0
- /package/lib/clang/{18 → 19}/include/llvm_libc_wrappers/time.h +0 -0
- /package/lib/clang/{18 → 19}/include/lsxintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/lwpintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/lzcntintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/mm_malloc.h +0 -0
- /package/lib/clang/{18 → 19}/include/movdirintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/msa.h +0 -0
- /package/lib/clang/{18 → 19}/include/mwaitxintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/nmmintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/openmp_wrappers/__clang_openmp_device_functions.h +0 -0
- /package/lib/clang/{18 → 19}/include/openmp_wrappers/cmath +0 -0
- /package/lib/clang/{18 → 19}/include/openmp_wrappers/complex +0 -0
- /package/lib/clang/{18 → 19}/include/openmp_wrappers/complex.h +0 -0
- /package/lib/clang/{18 → 19}/include/openmp_wrappers/complex_cmath.h +0 -0
- /package/lib/clang/{18 → 19}/include/openmp_wrappers/math.h +0 -0
- /package/lib/clang/{18 → 19}/include/openmp_wrappers/new +0 -0
- /package/lib/clang/{18 → 19}/include/pconfigintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/pkuintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/pmmintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/popcntintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/ppc_wrappers/bmi2intrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/ppc_wrappers/bmiintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/ppc_wrappers/emmintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/ppc_wrappers/immintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/ppc_wrappers/mm_malloc.h +0 -0
- /package/lib/clang/{18 → 19}/include/ppc_wrappers/mmintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/ppc_wrappers/nmmintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/ppc_wrappers/pmmintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/ppc_wrappers/smmintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/ppc_wrappers/tmmintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/ppc_wrappers/x86gprintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/ppc_wrappers/x86intrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/ppc_wrappers/xmmintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/prfchiintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/ptwriteintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/raointintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/rdpruintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/rdseedintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/riscv_bitmanip.h +0 -0
- /package/lib/clang/{18 → 19}/include/riscv_crypto.h +0 -0
- /package/lib/clang/{18 → 19}/include/riscv_ntlh.h +0 -0
- /package/lib/clang/{18 → 19}/include/rtmintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/s390intrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/serializeintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/sgxintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/sha512intrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/shaintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/sm3intrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/sm4intrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/stdckdint.h +0 -0
- /package/lib/clang/{18 → 19}/include/tbmintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/tgmath.h +0 -0
- /package/lib/clang/{18 → 19}/include/tsxldtrkintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/uintrintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/unwind.h +0 -0
- /package/lib/clang/{18 → 19}/include/usermsrintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/vadefs.h +0 -0
- /package/lib/clang/{18 → 19}/include/vaesintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/vecintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/velintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/velintrin_approx.h +0 -0
- /package/lib/clang/{18 → 19}/include/velintrin_gen.h +0 -0
- /package/lib/clang/{18 → 19}/include/vpclmulqdqintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/waitpkgintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/wasm_simd128.h +0 -0
- /package/lib/clang/{18 → 19}/include/wbnoinvdintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/wmmintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/xopintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/xsavecintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/xsaveintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/xsaveoptintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/xsavesintrin.h +0 -0
- /package/lib/clang/{18 → 19}/include/xtestintrin.h +0 -0
|
@@ -316,6 +316,8 @@ _mm_rsqrt_ps(__m128 __a)
|
|
|
316
316
|
/// operands and returns the lesser value in the low-order bits of the
|
|
317
317
|
/// vector of [4 x float].
|
|
318
318
|
///
|
|
319
|
+
/// If either value in a comparison is NaN, returns the value from \a __b.
|
|
320
|
+
///
|
|
319
321
|
/// \headerfile <x86intrin.h>
|
|
320
322
|
///
|
|
321
323
|
/// This intrinsic corresponds to the <c> VMINSS / MINSS </c> instructions.
|
|
@@ -338,6 +340,8 @@ _mm_min_ss(__m128 __a, __m128 __b)
|
|
|
338
340
|
/// Compares two 128-bit vectors of [4 x float] and returns the lesser
|
|
339
341
|
/// of each pair of values.
|
|
340
342
|
///
|
|
343
|
+
/// If either value in a comparison is NaN, returns the value from \a __b.
|
|
344
|
+
///
|
|
341
345
|
/// \headerfile <x86intrin.h>
|
|
342
346
|
///
|
|
343
347
|
/// This intrinsic corresponds to the <c> VMINPS / MINPS </c> instructions.
|
|
@@ -358,6 +362,8 @@ _mm_min_ps(__m128 __a, __m128 __b)
|
|
|
358
362
|
/// operands and returns the greater value in the low-order bits of a 128-bit
|
|
359
363
|
/// vector of [4 x float].
|
|
360
364
|
///
|
|
365
|
+
/// If either value in a comparison is NaN, returns the value from \a __b.
|
|
366
|
+
///
|
|
361
367
|
/// \headerfile <x86intrin.h>
|
|
362
368
|
///
|
|
363
369
|
/// This intrinsic corresponds to the <c> VMAXSS / MAXSS </c> instructions.
|
|
@@ -380,6 +386,8 @@ _mm_max_ss(__m128 __a, __m128 __b)
|
|
|
380
386
|
/// Compares two 128-bit vectors of [4 x float] and returns the greater
|
|
381
387
|
/// of each pair of values.
|
|
382
388
|
///
|
|
389
|
+
/// If either value in a comparison is NaN, returns the value from \a __b.
|
|
390
|
+
///
|
|
383
391
|
/// \headerfile <x86intrin.h>
|
|
384
392
|
///
|
|
385
393
|
/// This intrinsic corresponds to the <c> VMAXPS / MAXPS </c> instructions.
|
|
@@ -474,8 +482,11 @@ _mm_xor_ps(__m128 __a, __m128 __b)
|
|
|
474
482
|
}
|
|
475
483
|
|
|
476
484
|
/// Compares two 32-bit float values in the low-order bits of both
|
|
477
|
-
/// operands for equality
|
|
485
|
+
/// operands for equality.
|
|
486
|
+
///
|
|
487
|
+
/// The comparison returns 0x0 for false, 0xFFFFFFFF for true, in the
|
|
478
488
|
/// low-order bits of a vector [4 x float].
|
|
489
|
+
/// If either value in a comparison is NaN, returns false.
|
|
479
490
|
///
|
|
480
491
|
/// \headerfile <x86intrin.h>
|
|
481
492
|
///
|
|
@@ -498,6 +509,9 @@ _mm_cmpeq_ss(__m128 __a, __m128 __b)
|
|
|
498
509
|
/// Compares each of the corresponding 32-bit float values of the
|
|
499
510
|
/// 128-bit vectors of [4 x float] for equality.
|
|
500
511
|
///
|
|
512
|
+
/// Each comparison returns 0x0 for false, 0xFFFFFFFF for true.
|
|
513
|
+
/// If either value in a comparison is NaN, returns false.
|
|
514
|
+
///
|
|
501
515
|
/// \headerfile <x86intrin.h>
|
|
502
516
|
///
|
|
503
517
|
/// This intrinsic corresponds to the <c> VCMPEQPS / CMPEQPS </c> instructions.
|
|
@@ -515,8 +529,11 @@ _mm_cmpeq_ps(__m128 __a, __m128 __b)
|
|
|
515
529
|
|
|
516
530
|
/// Compares two 32-bit float values in the low-order bits of both
|
|
517
531
|
/// operands to determine if the value in the first operand is less than the
|
|
518
|
-
/// corresponding value in the second operand
|
|
519
|
-
///
|
|
532
|
+
/// corresponding value in the second operand.
|
|
533
|
+
///
|
|
534
|
+
/// The comparison returns 0x0 for false, 0xFFFFFFFF for true, in the
|
|
535
|
+
/// low-order bits of a vector of [4 x float].
|
|
536
|
+
/// If either value in a comparison is NaN, returns false.
|
|
520
537
|
///
|
|
521
538
|
/// \headerfile <x86intrin.h>
|
|
522
539
|
///
|
|
@@ -540,6 +557,9 @@ _mm_cmplt_ss(__m128 __a, __m128 __b)
|
|
|
540
557
|
/// 128-bit vectors of [4 x float] to determine if the values in the first
|
|
541
558
|
/// operand are less than those in the second operand.
|
|
542
559
|
///
|
|
560
|
+
/// Each comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true.
|
|
561
|
+
/// If either value in a comparison is NaN, returns false.
|
|
562
|
+
///
|
|
543
563
|
/// \headerfile <x86intrin.h>
|
|
544
564
|
///
|
|
545
565
|
/// This intrinsic corresponds to the <c> VCMPLTPS / CMPLTPS </c> instructions.
|
|
@@ -557,9 +577,11 @@ _mm_cmplt_ps(__m128 __a, __m128 __b)
|
|
|
557
577
|
|
|
558
578
|
/// Compares two 32-bit float values in the low-order bits of both
|
|
559
579
|
/// operands to determine if the value in the first operand is less than or
|
|
560
|
-
/// equal to the corresponding value in the second operand
|
|
561
|
-
///
|
|
562
|
-
///
|
|
580
|
+
/// equal to the corresponding value in the second operand.
|
|
581
|
+
///
|
|
582
|
+
/// The comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true, in
|
|
583
|
+
/// the low-order bits of a vector of [4 x float].
|
|
584
|
+
/// If either value in a comparison is NaN, returns false.
|
|
563
585
|
///
|
|
564
586
|
/// \headerfile <x86intrin.h>
|
|
565
587
|
///
|
|
@@ -583,6 +605,9 @@ _mm_cmple_ss(__m128 __a, __m128 __b)
|
|
|
583
605
|
/// 128-bit vectors of [4 x float] to determine if the values in the first
|
|
584
606
|
/// operand are less than or equal to those in the second operand.
|
|
585
607
|
///
|
|
608
|
+
/// Each comparison returns 0x0 for false, 0xFFFFFFFF for true.
|
|
609
|
+
/// If either value in a comparison is NaN, returns false.
|
|
610
|
+
///
|
|
586
611
|
/// \headerfile <x86intrin.h>
|
|
587
612
|
///
|
|
588
613
|
/// This intrinsic corresponds to the <c> VCMPLEPS / CMPLEPS </c> instructions.
|
|
@@ -600,8 +625,11 @@ _mm_cmple_ps(__m128 __a, __m128 __b)
|
|
|
600
625
|
|
|
601
626
|
/// Compares two 32-bit float values in the low-order bits of both
|
|
602
627
|
/// operands to determine if the value in the first operand is greater than
|
|
603
|
-
/// the corresponding value in the second operand
|
|
604
|
-
///
|
|
628
|
+
/// the corresponding value in the second operand.
|
|
629
|
+
///
|
|
630
|
+
/// The comparison returns 0x0 for false, 0xFFFFFFFF for true, in the
|
|
631
|
+
/// low-order bits of a vector of [4 x float].
|
|
632
|
+
/// If either value in a comparison is NaN, returns false.
|
|
605
633
|
///
|
|
606
634
|
/// \headerfile <x86intrin.h>
|
|
607
635
|
///
|
|
@@ -627,6 +655,9 @@ _mm_cmpgt_ss(__m128 __a, __m128 __b)
|
|
|
627
655
|
/// 128-bit vectors of [4 x float] to determine if the values in the first
|
|
628
656
|
/// operand are greater than those in the second operand.
|
|
629
657
|
///
|
|
658
|
+
/// Each comparison returns 0x0 for false, 0xFFFFFFFF for true.
|
|
659
|
+
/// If either value in a comparison is NaN, returns false.
|
|
660
|
+
///
|
|
630
661
|
/// \headerfile <x86intrin.h>
|
|
631
662
|
///
|
|
632
663
|
/// This intrinsic corresponds to the <c> VCMPLTPS / CMPLTPS </c> instructions.
|
|
@@ -644,9 +675,11 @@ _mm_cmpgt_ps(__m128 __a, __m128 __b)
|
|
|
644
675
|
|
|
645
676
|
/// Compares two 32-bit float values in the low-order bits of both
|
|
646
677
|
/// operands to determine if the value in the first operand is greater than
|
|
647
|
-
/// or equal to the corresponding value in the second operand
|
|
648
|
-
///
|
|
649
|
-
///
|
|
678
|
+
/// or equal to the corresponding value in the second operand.
|
|
679
|
+
///
|
|
680
|
+
/// Each comparison returns 0x0 for false, 0xFFFFFFFF for true, in the
|
|
681
|
+
/// low-order bits of a vector of [4 x float].
|
|
682
|
+
/// If either value in a comparison is NaN, returns false.
|
|
650
683
|
///
|
|
651
684
|
/// \headerfile <x86intrin.h>
|
|
652
685
|
///
|
|
@@ -672,6 +705,9 @@ _mm_cmpge_ss(__m128 __a, __m128 __b)
|
|
|
672
705
|
/// 128-bit vectors of [4 x float] to determine if the values in the first
|
|
673
706
|
/// operand are greater than or equal to those in the second operand.
|
|
674
707
|
///
|
|
708
|
+
/// Each comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true.
|
|
709
|
+
/// If either value in a comparison is NaN, returns false.
|
|
710
|
+
///
|
|
675
711
|
/// \headerfile <x86intrin.h>
|
|
676
712
|
///
|
|
677
713
|
/// This intrinsic corresponds to the <c> VCMPLEPS / CMPLEPS </c> instructions.
|
|
@@ -687,9 +723,12 @@ _mm_cmpge_ps(__m128 __a, __m128 __b)
|
|
|
687
723
|
return (__m128)__builtin_ia32_cmpleps((__v4sf)__b, (__v4sf)__a);
|
|
688
724
|
}
|
|
689
725
|
|
|
690
|
-
/// Compares two 32-bit float values in the low-order bits of both
|
|
691
|
-
///
|
|
726
|
+
/// Compares two 32-bit float values in the low-order bits of both operands
|
|
727
|
+
/// for inequality.
|
|
728
|
+
///
|
|
729
|
+
/// The comparison returns 0x0 for false, 0xFFFFFFFF for true, in the
|
|
692
730
|
/// low-order bits of a vector of [4 x float].
|
|
731
|
+
/// If either value in a comparison is NaN, returns true.
|
|
693
732
|
///
|
|
694
733
|
/// \headerfile <x86intrin.h>
|
|
695
734
|
///
|
|
@@ -713,6 +752,9 @@ _mm_cmpneq_ss(__m128 __a, __m128 __b)
|
|
|
713
752
|
/// Compares each of the corresponding 32-bit float values of the
|
|
714
753
|
/// 128-bit vectors of [4 x float] for inequality.
|
|
715
754
|
///
|
|
755
|
+
/// Each comparison returns 0x0 for false, 0xFFFFFFFF for true.
|
|
756
|
+
/// If either value in a comparison is NaN, returns true.
|
|
757
|
+
///
|
|
716
758
|
/// \headerfile <x86intrin.h>
|
|
717
759
|
///
|
|
718
760
|
/// This intrinsic corresponds to the <c> VCMPNEQPS / CMPNEQPS </c>
|
|
@@ -731,8 +773,11 @@ _mm_cmpneq_ps(__m128 __a, __m128 __b)
|
|
|
731
773
|
|
|
732
774
|
/// Compares two 32-bit float values in the low-order bits of both
|
|
733
775
|
/// operands to determine if the value in the first operand is not less than
|
|
734
|
-
/// the corresponding value in the second operand
|
|
735
|
-
///
|
|
776
|
+
/// the corresponding value in the second operand.
|
|
777
|
+
///
|
|
778
|
+
/// Each comparison returns 0x0 for false, 0xFFFFFFFF for true, in the
|
|
779
|
+
/// low-order bits of a vector of [4 x float].
|
|
780
|
+
/// If either value in a comparison is NaN, returns true.
|
|
736
781
|
///
|
|
737
782
|
/// \headerfile <x86intrin.h>
|
|
738
783
|
///
|
|
@@ -757,6 +802,9 @@ _mm_cmpnlt_ss(__m128 __a, __m128 __b)
|
|
|
757
802
|
/// 128-bit vectors of [4 x float] to determine if the values in the first
|
|
758
803
|
/// operand are not less than those in the second operand.
|
|
759
804
|
///
|
|
805
|
+
/// Each comparison returns 0x0 for false, 0xFFFFFFFF for true.
|
|
806
|
+
/// If either value in a comparison is NaN, returns true.
|
|
807
|
+
///
|
|
760
808
|
/// \headerfile <x86intrin.h>
|
|
761
809
|
///
|
|
762
810
|
/// This intrinsic corresponds to the <c> VCMPNLTPS / CMPNLTPS </c>
|
|
@@ -775,9 +823,11 @@ _mm_cmpnlt_ps(__m128 __a, __m128 __b)
|
|
|
775
823
|
|
|
776
824
|
/// Compares two 32-bit float values in the low-order bits of both
|
|
777
825
|
/// operands to determine if the value in the first operand is not less than
|
|
778
|
-
/// or equal to the corresponding value in the second operand
|
|
779
|
-
///
|
|
780
|
-
///
|
|
826
|
+
/// or equal to the corresponding value in the second operand.
|
|
827
|
+
///
|
|
828
|
+
/// Each comparison returns 0x0 for false, 0xFFFFFFFF for true, in the
|
|
829
|
+
/// low-order bits of a vector of [4 x float].
|
|
830
|
+
/// If either value in a comparison is NaN, returns true.
|
|
781
831
|
///
|
|
782
832
|
/// \headerfile <x86intrin.h>
|
|
783
833
|
///
|
|
@@ -802,6 +852,9 @@ _mm_cmpnle_ss(__m128 __a, __m128 __b)
|
|
|
802
852
|
/// 128-bit vectors of [4 x float] to determine if the values in the first
|
|
803
853
|
/// operand are not less than or equal to those in the second operand.
|
|
804
854
|
///
|
|
855
|
+
/// Each comparison returns 0x0 for false, 0xFFFFFFFF for true.
|
|
856
|
+
/// If either value in a comparison is NaN, returns true.
|
|
857
|
+
///
|
|
805
858
|
/// \headerfile <x86intrin.h>
|
|
806
859
|
///
|
|
807
860
|
/// This intrinsic corresponds to the <c> VCMPNLEPS / CMPNLEPS </c>
|
|
@@ -820,9 +873,11 @@ _mm_cmpnle_ps(__m128 __a, __m128 __b)
|
|
|
820
873
|
|
|
821
874
|
/// Compares two 32-bit float values in the low-order bits of both
|
|
822
875
|
/// operands to determine if the value in the first operand is not greater
|
|
823
|
-
/// than the corresponding value in the second operand
|
|
824
|
-
///
|
|
825
|
-
///
|
|
876
|
+
/// than the corresponding value in the second operand.
|
|
877
|
+
///
|
|
878
|
+
/// Each comparison returns 0x0 for false, 0xFFFFFFFF for true, in the
|
|
879
|
+
/// low-order bits of a vector of [4 x float].
|
|
880
|
+
/// If either value in a comparison is NaN, returns true.
|
|
826
881
|
///
|
|
827
882
|
/// \headerfile <x86intrin.h>
|
|
828
883
|
///
|
|
@@ -849,6 +904,9 @@ _mm_cmpngt_ss(__m128 __a, __m128 __b)
|
|
|
849
904
|
/// 128-bit vectors of [4 x float] to determine if the values in the first
|
|
850
905
|
/// operand are not greater than those in the second operand.
|
|
851
906
|
///
|
|
907
|
+
/// Each comparison returns 0x0 for false, 0xFFFFFFFF for true.
|
|
908
|
+
/// If either value in a comparison is NaN, returns true.
|
|
909
|
+
///
|
|
852
910
|
/// \headerfile <x86intrin.h>
|
|
853
911
|
///
|
|
854
912
|
/// This intrinsic corresponds to the <c> VCMPNLTPS / CMPNLTPS </c>
|
|
@@ -867,9 +925,11 @@ _mm_cmpngt_ps(__m128 __a, __m128 __b)
|
|
|
867
925
|
|
|
868
926
|
/// Compares two 32-bit float values in the low-order bits of both
|
|
869
927
|
/// operands to determine if the value in the first operand is not greater
|
|
870
|
-
/// than or equal to the corresponding value in the second operand
|
|
871
|
-
///
|
|
872
|
-
///
|
|
928
|
+
/// than or equal to the corresponding value in the second operand.
|
|
929
|
+
///
|
|
930
|
+
/// Each comparison returns 0x0 for false, 0xFFFFFFFF for true, in the
|
|
931
|
+
/// low-order bits of a vector of [4 x float].
|
|
932
|
+
/// If either value in a comparison is NaN, returns true.
|
|
873
933
|
///
|
|
874
934
|
/// \headerfile <x86intrin.h>
|
|
875
935
|
///
|
|
@@ -896,6 +956,9 @@ _mm_cmpnge_ss(__m128 __a, __m128 __b)
|
|
|
896
956
|
/// 128-bit vectors of [4 x float] to determine if the values in the first
|
|
897
957
|
/// operand are not greater than or equal to those in the second operand.
|
|
898
958
|
///
|
|
959
|
+
/// Each comparison returns 0x0 for false, 0xFFFFFFFF for true.
|
|
960
|
+
/// If either value in a comparison is NaN, returns true.
|
|
961
|
+
///
|
|
899
962
|
/// \headerfile <x86intrin.h>
|
|
900
963
|
///
|
|
901
964
|
/// This intrinsic corresponds to the <c> VCMPNLEPS / CMPNLEPS </c>
|
|
@@ -914,9 +977,11 @@ _mm_cmpnge_ps(__m128 __a, __m128 __b)
|
|
|
914
977
|
|
|
915
978
|
/// Compares two 32-bit float values in the low-order bits of both
|
|
916
979
|
/// operands to determine if the value in the first operand is ordered with
|
|
917
|
-
/// respect to the corresponding value in the second operand
|
|
918
|
-
///
|
|
919
|
-
///
|
|
980
|
+
/// respect to the corresponding value in the second operand.
|
|
981
|
+
///
|
|
982
|
+
/// A pair of floating-point values are ordered with respect to each
|
|
983
|
+
/// other if neither value is a NaN. Each comparison returns 0x0 for false,
|
|
984
|
+
/// 0xFFFFFFFF for true.
|
|
920
985
|
///
|
|
921
986
|
/// \headerfile <x86intrin.h>
|
|
922
987
|
///
|
|
@@ -941,6 +1006,10 @@ _mm_cmpord_ss(__m128 __a, __m128 __b)
|
|
|
941
1006
|
/// 128-bit vectors of [4 x float] to determine if the values in the first
|
|
942
1007
|
/// operand are ordered with respect to those in the second operand.
|
|
943
1008
|
///
|
|
1009
|
+
/// A pair of floating-point values are ordered with respect to each
|
|
1010
|
+
/// other if neither value is a NaN. Each comparison returns 0x0 for false,
|
|
1011
|
+
/// 0xFFFFFFFF for true.
|
|
1012
|
+
///
|
|
944
1013
|
/// \headerfile <x86intrin.h>
|
|
945
1014
|
///
|
|
946
1015
|
/// This intrinsic corresponds to the <c> VCMPORDPS / CMPORDPS </c>
|
|
@@ -959,9 +1028,11 @@ _mm_cmpord_ps(__m128 __a, __m128 __b)
|
|
|
959
1028
|
|
|
960
1029
|
/// Compares two 32-bit float values in the low-order bits of both
|
|
961
1030
|
/// operands to determine if the value in the first operand is unordered
|
|
962
|
-
/// with respect to the corresponding value in the second operand
|
|
963
|
-
///
|
|
964
|
-
/// of
|
|
1031
|
+
/// with respect to the corresponding value in the second operand.
|
|
1032
|
+
///
|
|
1033
|
+
/// A pair of double-precision values are unordered with respect to each
|
|
1034
|
+
/// other if one or both values are NaN. Each comparison returns 0x0 for
|
|
1035
|
+
/// false, 0xFFFFFFFF for true.
|
|
965
1036
|
///
|
|
966
1037
|
/// \headerfile <x86intrin.h>
|
|
967
1038
|
///
|
|
@@ -986,6 +1057,10 @@ _mm_cmpunord_ss(__m128 __a, __m128 __b)
|
|
|
986
1057
|
/// 128-bit vectors of [4 x float] to determine if the values in the first
|
|
987
1058
|
/// operand are unordered with respect to those in the second operand.
|
|
988
1059
|
///
|
|
1060
|
+
/// A pair of double-precision values are unordered with respect to each
|
|
1061
|
+
/// other if one or both values are NaN. Each comparison returns 0x0 for
|
|
1062
|
+
/// false, 0xFFFFFFFFFFFFFFFF for true.
|
|
1063
|
+
///
|
|
989
1064
|
/// \headerfile <x86intrin.h>
|
|
990
1065
|
///
|
|
991
1066
|
/// This intrinsic corresponds to the <c> VCMPUNORDPS / CMPUNORDPS </c>
|
|
@@ -1003,9 +1078,10 @@ _mm_cmpunord_ps(__m128 __a, __m128 __b)
|
|
|
1003
1078
|
}
|
|
1004
1079
|
|
|
1005
1080
|
/// Compares two 32-bit float values in the low-order bits of both
|
|
1006
|
-
/// operands for equality
|
|
1081
|
+
/// operands for equality.
|
|
1007
1082
|
///
|
|
1008
|
-
///
|
|
1083
|
+
/// The comparison returns 0 for false, 1 for true. If either value in a
|
|
1084
|
+
/// comparison is NaN, returns 0.
|
|
1009
1085
|
///
|
|
1010
1086
|
/// \headerfile <x86intrin.h>
|
|
1011
1087
|
///
|
|
@@ -1018,8 +1094,7 @@ _mm_cmpunord_ps(__m128 __a, __m128 __b)
|
|
|
1018
1094
|
/// \param __b
|
|
1019
1095
|
/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
|
|
1020
1096
|
/// used in the comparison.
|
|
1021
|
-
/// \returns An integer containing the comparison results.
|
|
1022
|
-
/// two lower 32-bit values is NaN, 0 is returned.
|
|
1097
|
+
/// \returns An integer containing the comparison results.
|
|
1023
1098
|
static __inline__ int __DEFAULT_FN_ATTRS
|
|
1024
1099
|
_mm_comieq_ss(__m128 __a, __m128 __b)
|
|
1025
1100
|
{
|
|
@@ -1028,9 +1103,10 @@ _mm_comieq_ss(__m128 __a, __m128 __b)
|
|
|
1028
1103
|
|
|
1029
1104
|
/// Compares two 32-bit float values in the low-order bits of both
|
|
1030
1105
|
/// operands to determine if the first operand is less than the second
|
|
1031
|
-
/// operand
|
|
1106
|
+
/// operand.
|
|
1032
1107
|
///
|
|
1033
|
-
///
|
|
1108
|
+
/// The comparison returns 0 for false, 1 for true. If either value in a
|
|
1109
|
+
/// comparison is NaN, returns 0.
|
|
1034
1110
|
///
|
|
1035
1111
|
/// \headerfile <x86intrin.h>
|
|
1036
1112
|
///
|
|
@@ -1043,8 +1119,7 @@ _mm_comieq_ss(__m128 __a, __m128 __b)
|
|
|
1043
1119
|
/// \param __b
|
|
1044
1120
|
/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
|
|
1045
1121
|
/// used in the comparison.
|
|
1046
|
-
/// \returns An integer containing the comparison results.
|
|
1047
|
-
/// lower 32-bit values is NaN, 0 is returned.
|
|
1122
|
+
/// \returns An integer containing the comparison results.
|
|
1048
1123
|
static __inline__ int __DEFAULT_FN_ATTRS
|
|
1049
1124
|
_mm_comilt_ss(__m128 __a, __m128 __b)
|
|
1050
1125
|
{
|
|
@@ -1053,9 +1128,10 @@ _mm_comilt_ss(__m128 __a, __m128 __b)
|
|
|
1053
1128
|
|
|
1054
1129
|
/// Compares two 32-bit float values in the low-order bits of both
|
|
1055
1130
|
/// operands to determine if the first operand is less than or equal to the
|
|
1056
|
-
/// second operand
|
|
1131
|
+
/// second operand.
|
|
1057
1132
|
///
|
|
1058
|
-
///
|
|
1133
|
+
/// The comparison returns 0 for false, 1 for true. If either value in a
|
|
1134
|
+
/// comparison is NaN, returns 0.
|
|
1059
1135
|
///
|
|
1060
1136
|
/// \headerfile <x86intrin.h>
|
|
1061
1137
|
///
|
|
@@ -1067,8 +1143,7 @@ _mm_comilt_ss(__m128 __a, __m128 __b)
|
|
|
1067
1143
|
/// \param __b
|
|
1068
1144
|
/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
|
|
1069
1145
|
/// used in the comparison.
|
|
1070
|
-
/// \returns An integer containing the comparison results.
|
|
1071
|
-
/// lower 32-bit values is NaN, 0 is returned.
|
|
1146
|
+
/// \returns An integer containing the comparison results.
|
|
1072
1147
|
static __inline__ int __DEFAULT_FN_ATTRS
|
|
1073
1148
|
_mm_comile_ss(__m128 __a, __m128 __b)
|
|
1074
1149
|
{
|
|
@@ -1077,9 +1152,10 @@ _mm_comile_ss(__m128 __a, __m128 __b)
|
|
|
1077
1152
|
|
|
1078
1153
|
/// Compares two 32-bit float values in the low-order bits of both
|
|
1079
1154
|
/// operands to determine if the first operand is greater than the second
|
|
1080
|
-
/// operand
|
|
1155
|
+
/// operand.
|
|
1081
1156
|
///
|
|
1082
|
-
///
|
|
1157
|
+
/// The comparison returns 0 for false, 1 for true. If either value in a
|
|
1158
|
+
/// comparison is NaN, returns 0.
|
|
1083
1159
|
///
|
|
1084
1160
|
/// \headerfile <x86intrin.h>
|
|
1085
1161
|
///
|
|
@@ -1091,8 +1167,7 @@ _mm_comile_ss(__m128 __a, __m128 __b)
|
|
|
1091
1167
|
/// \param __b
|
|
1092
1168
|
/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
|
|
1093
1169
|
/// used in the comparison.
|
|
1094
|
-
/// \returns An integer containing the comparison results.
|
|
1095
|
-
/// two lower 32-bit values is NaN, 0 is returned.
|
|
1170
|
+
/// \returns An integer containing the comparison results.
|
|
1096
1171
|
static __inline__ int __DEFAULT_FN_ATTRS
|
|
1097
1172
|
_mm_comigt_ss(__m128 __a, __m128 __b)
|
|
1098
1173
|
{
|
|
@@ -1101,9 +1176,10 @@ _mm_comigt_ss(__m128 __a, __m128 __b)
|
|
|
1101
1176
|
|
|
1102
1177
|
/// Compares two 32-bit float values in the low-order bits of both
|
|
1103
1178
|
/// operands to determine if the first operand is greater than or equal to
|
|
1104
|
-
/// the second operand
|
|
1179
|
+
/// the second operand.
|
|
1105
1180
|
///
|
|
1106
|
-
///
|
|
1181
|
+
/// The comparison returns 0 for false, 1 for true. If either value in a
|
|
1182
|
+
/// comparison is NaN, returns 0.
|
|
1107
1183
|
///
|
|
1108
1184
|
/// \headerfile <x86intrin.h>
|
|
1109
1185
|
///
|
|
@@ -1115,8 +1191,7 @@ _mm_comigt_ss(__m128 __a, __m128 __b)
|
|
|
1115
1191
|
/// \param __b
|
|
1116
1192
|
/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
|
|
1117
1193
|
/// used in the comparison.
|
|
1118
|
-
/// \returns An integer containing the comparison results.
|
|
1119
|
-
/// lower 32-bit values is NaN, 0 is returned.
|
|
1194
|
+
/// \returns An integer containing the comparison results.
|
|
1120
1195
|
static __inline__ int __DEFAULT_FN_ATTRS
|
|
1121
1196
|
_mm_comige_ss(__m128 __a, __m128 __b)
|
|
1122
1197
|
{
|
|
@@ -1125,9 +1200,10 @@ _mm_comige_ss(__m128 __a, __m128 __b)
|
|
|
1125
1200
|
|
|
1126
1201
|
/// Compares two 32-bit float values in the low-order bits of both
|
|
1127
1202
|
/// operands to determine if the first operand is not equal to the second
|
|
1128
|
-
/// operand
|
|
1203
|
+
/// operand.
|
|
1129
1204
|
///
|
|
1130
|
-
///
|
|
1205
|
+
/// The comparison returns 0 for false, 1 for true. If either value in a
|
|
1206
|
+
/// comparison is NaN, returns 1.
|
|
1131
1207
|
///
|
|
1132
1208
|
/// \headerfile <x86intrin.h>
|
|
1133
1209
|
///
|
|
@@ -1139,8 +1215,7 @@ _mm_comige_ss(__m128 __a, __m128 __b)
|
|
|
1139
1215
|
/// \param __b
|
|
1140
1216
|
/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
|
|
1141
1217
|
/// used in the comparison.
|
|
1142
|
-
/// \returns An integer containing the comparison results.
|
|
1143
|
-
/// two lower 32-bit values is NaN, 1 is returned.
|
|
1218
|
+
/// \returns An integer containing the comparison results.
|
|
1144
1219
|
static __inline__ int __DEFAULT_FN_ATTRS
|
|
1145
1220
|
_mm_comineq_ss(__m128 __a, __m128 __b)
|
|
1146
1221
|
{
|
|
@@ -1148,10 +1223,10 @@ _mm_comineq_ss(__m128 __a, __m128 __b)
|
|
|
1148
1223
|
}
|
|
1149
1224
|
|
|
1150
1225
|
/// Performs an unordered comparison of two 32-bit float values using
|
|
1151
|
-
/// the low-order bits of both operands to determine equality
|
|
1152
|
-
/// the result of the comparison.
|
|
1226
|
+
/// the low-order bits of both operands to determine equality.
|
|
1153
1227
|
///
|
|
1154
|
-
///
|
|
1228
|
+
/// The comparison returns 0 for false, 1 for true. If either value in a
|
|
1229
|
+
/// comparison is NaN, returns 0.
|
|
1155
1230
|
///
|
|
1156
1231
|
/// \headerfile <x86intrin.h>
|
|
1157
1232
|
///
|
|
@@ -1163,8 +1238,7 @@ _mm_comineq_ss(__m128 __a, __m128 __b)
|
|
|
1163
1238
|
/// \param __b
|
|
1164
1239
|
/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
|
|
1165
1240
|
/// used in the comparison.
|
|
1166
|
-
/// \returns An integer containing the comparison results.
|
|
1167
|
-
/// lower 32-bit values is NaN, 0 is returned.
|
|
1241
|
+
/// \returns An integer containing the comparison results.
|
|
1168
1242
|
static __inline__ int __DEFAULT_FN_ATTRS
|
|
1169
1243
|
_mm_ucomieq_ss(__m128 __a, __m128 __b)
|
|
1170
1244
|
{
|
|
@@ -1173,9 +1247,10 @@ _mm_ucomieq_ss(__m128 __a, __m128 __b)
|
|
|
1173
1247
|
|
|
1174
1248
|
/// Performs an unordered comparison of two 32-bit float values using
|
|
1175
1249
|
/// the low-order bits of both operands to determine if the first operand is
|
|
1176
|
-
/// less than the second operand
|
|
1250
|
+
/// less than the second operand.
|
|
1177
1251
|
///
|
|
1178
|
-
///
|
|
1252
|
+
/// The comparison returns 0 for false, 1 for true. If either value in a
|
|
1253
|
+
/// comparison is NaN, returns 0.
|
|
1179
1254
|
///
|
|
1180
1255
|
/// \headerfile <x86intrin.h>
|
|
1181
1256
|
///
|
|
@@ -1187,8 +1262,7 @@ _mm_ucomieq_ss(__m128 __a, __m128 __b)
|
|
|
1187
1262
|
/// \param __b
|
|
1188
1263
|
/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
|
|
1189
1264
|
/// used in the comparison.
|
|
1190
|
-
/// \returns An integer containing the comparison results.
|
|
1191
|
-
/// lower 32-bit values is NaN, 0 is returned.
|
|
1265
|
+
/// \returns An integer containing the comparison results.
|
|
1192
1266
|
static __inline__ int __DEFAULT_FN_ATTRS
|
|
1193
1267
|
_mm_ucomilt_ss(__m128 __a, __m128 __b)
|
|
1194
1268
|
{
|
|
@@ -1197,10 +1271,10 @@ _mm_ucomilt_ss(__m128 __a, __m128 __b)
|
|
|
1197
1271
|
|
|
1198
1272
|
/// Performs an unordered comparison of two 32-bit float values using
|
|
1199
1273
|
/// the low-order bits of both operands to determine if the first operand is
|
|
1200
|
-
/// less than or equal to the second operand
|
|
1201
|
-
/// comparison.
|
|
1274
|
+
/// less than or equal to the second operand.
|
|
1202
1275
|
///
|
|
1203
|
-
///
|
|
1276
|
+
/// The comparison returns 0 for false, 1 for true. If either value in a
|
|
1277
|
+
/// comparison is NaN, returns 0.
|
|
1204
1278
|
///
|
|
1205
1279
|
/// \headerfile <x86intrin.h>
|
|
1206
1280
|
///
|
|
@@ -1212,8 +1286,7 @@ _mm_ucomilt_ss(__m128 __a, __m128 __b)
|
|
|
1212
1286
|
/// \param __b
|
|
1213
1287
|
/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
|
|
1214
1288
|
/// used in the comparison.
|
|
1215
|
-
/// \returns An integer containing the comparison results.
|
|
1216
|
-
/// lower 32-bit values is NaN, 0 is returned.
|
|
1289
|
+
/// \returns An integer containing the comparison results.
|
|
1217
1290
|
static __inline__ int __DEFAULT_FN_ATTRS
|
|
1218
1291
|
_mm_ucomile_ss(__m128 __a, __m128 __b)
|
|
1219
1292
|
{
|
|
@@ -1222,10 +1295,10 @@ _mm_ucomile_ss(__m128 __a, __m128 __b)
|
|
|
1222
1295
|
|
|
1223
1296
|
/// Performs an unordered comparison of two 32-bit float values using
|
|
1224
1297
|
/// the low-order bits of both operands to determine if the first operand is
|
|
1225
|
-
/// greater than the second operand
|
|
1226
|
-
/// comparison.
|
|
1298
|
+
/// greater than the second operand.
|
|
1227
1299
|
///
|
|
1228
|
-
///
|
|
1300
|
+
/// The comparison returns 0 for false, 1 for true. If either value in a
|
|
1301
|
+
/// comparison is NaN, returns 0.
|
|
1229
1302
|
///
|
|
1230
1303
|
/// \headerfile <x86intrin.h>
|
|
1231
1304
|
///
|
|
@@ -1237,8 +1310,7 @@ _mm_ucomile_ss(__m128 __a, __m128 __b)
|
|
|
1237
1310
|
/// \param __b
|
|
1238
1311
|
/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
|
|
1239
1312
|
/// used in the comparison.
|
|
1240
|
-
/// \returns An integer containing the comparison results.
|
|
1241
|
-
/// lower 32-bit values is NaN, 0 is returned.
|
|
1313
|
+
/// \returns An integer containing the comparison results.
|
|
1242
1314
|
static __inline__ int __DEFAULT_FN_ATTRS
|
|
1243
1315
|
_mm_ucomigt_ss(__m128 __a, __m128 __b)
|
|
1244
1316
|
{
|
|
@@ -1247,10 +1319,10 @@ _mm_ucomigt_ss(__m128 __a, __m128 __b)
|
|
|
1247
1319
|
|
|
1248
1320
|
/// Performs an unordered comparison of two 32-bit float values using
|
|
1249
1321
|
/// the low-order bits of both operands to determine if the first operand is
|
|
1250
|
-
/// greater than or equal to the second operand
|
|
1251
|
-
/// the comparison.
|
|
1322
|
+
/// greater than or equal to the second operand.
|
|
1252
1323
|
///
|
|
1253
|
-
///
|
|
1324
|
+
/// The comparison returns 0 for false, 1 for true. If either value in a
|
|
1325
|
+
/// comparison is NaN, returns 0.
|
|
1254
1326
|
///
|
|
1255
1327
|
/// \headerfile <x86intrin.h>
|
|
1256
1328
|
///
|
|
@@ -1262,8 +1334,7 @@ _mm_ucomigt_ss(__m128 __a, __m128 __b)
|
|
|
1262
1334
|
/// \param __b
|
|
1263
1335
|
/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
|
|
1264
1336
|
/// used in the comparison.
|
|
1265
|
-
/// \returns An integer containing the comparison results.
|
|
1266
|
-
/// lower 32-bit values is NaN, 0 is returned.
|
|
1337
|
+
/// \returns An integer containing the comparison results.
|
|
1267
1338
|
static __inline__ int __DEFAULT_FN_ATTRS
|
|
1268
1339
|
_mm_ucomige_ss(__m128 __a, __m128 __b)
|
|
1269
1340
|
{
|
|
@@ -1271,10 +1342,10 @@ _mm_ucomige_ss(__m128 __a, __m128 __b)
|
|
|
1271
1342
|
}
|
|
1272
1343
|
|
|
1273
1344
|
/// Performs an unordered comparison of two 32-bit float values using
|
|
1274
|
-
/// the low-order bits of both operands to determine inequality
|
|
1275
|
-
/// the result of the comparison.
|
|
1345
|
+
/// the low-order bits of both operands to determine inequality.
|
|
1276
1346
|
///
|
|
1277
|
-
///
|
|
1347
|
+
/// The comparison returns 0 for false, 1 for true. If either value in a
|
|
1348
|
+
/// comparison is NaN, returns 0.
|
|
1278
1349
|
///
|
|
1279
1350
|
/// \headerfile <x86intrin.h>
|
|
1280
1351
|
///
|
|
@@ -1286,8 +1357,7 @@ _mm_ucomige_ss(__m128 __a, __m128 __b)
|
|
|
1286
1357
|
/// \param __b
|
|
1287
1358
|
/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
|
|
1288
1359
|
/// used in the comparison.
|
|
1289
|
-
/// \returns An integer containing the comparison results.
|
|
1290
|
-
/// lower 32-bit values is NaN, 1 is returned.
|
|
1360
|
+
/// \returns An integer containing the comparison results.
|
|
1291
1361
|
static __inline__ int __DEFAULT_FN_ATTRS
|
|
1292
1362
|
_mm_ucomineq_ss(__m128 __a, __m128 __b)
|
|
1293
1363
|
{
|
|
@@ -1297,6 +1367,10 @@ _mm_ucomineq_ss(__m128 __a, __m128 __b)
|
|
|
1297
1367
|
/// Converts a float value contained in the lower 32 bits of a vector of
|
|
1298
1368
|
/// [4 x float] into a 32-bit integer.
|
|
1299
1369
|
///
|
|
1370
|
+
/// If the converted value does not fit in a 32-bit integer, raises a
|
|
1371
|
+
/// floating-point invalid exception. If the exception is masked, returns
|
|
1372
|
+
/// the most negative integer.
|
|
1373
|
+
///
|
|
1300
1374
|
/// \headerfile <x86intrin.h>
|
|
1301
1375
|
///
|
|
1302
1376
|
/// This intrinsic corresponds to the <c> VCVTSS2SI / CVTSS2SI </c>
|
|
@@ -1315,6 +1389,10 @@ _mm_cvtss_si32(__m128 __a)
|
|
|
1315
1389
|
/// Converts a float value contained in the lower 32 bits of a vector of
|
|
1316
1390
|
/// [4 x float] into a 32-bit integer.
|
|
1317
1391
|
///
|
|
1392
|
+
/// If the converted value does not fit in a 32-bit integer, raises a
|
|
1393
|
+
/// floating-point invalid exception. If the exception is masked, returns
|
|
1394
|
+
/// the most negative integer.
|
|
1395
|
+
///
|
|
1318
1396
|
/// \headerfile <x86intrin.h>
|
|
1319
1397
|
///
|
|
1320
1398
|
/// This intrinsic corresponds to the <c> VCVTSS2SI / CVTSS2SI </c>
|
|
@@ -1335,6 +1413,10 @@ _mm_cvt_ss2si(__m128 __a)
|
|
|
1335
1413
|
/// Converts a float value contained in the lower 32 bits of a vector of
|
|
1336
1414
|
/// [4 x float] into a 64-bit integer.
|
|
1337
1415
|
///
|
|
1416
|
+
/// If the converted value does not fit in a 32-bit integer, raises a
|
|
1417
|
+
/// floating-point invalid exception. If the exception is masked, returns
|
|
1418
|
+
/// the most negative integer.
|
|
1419
|
+
///
|
|
1338
1420
|
/// \headerfile <x86intrin.h>
|
|
1339
1421
|
///
|
|
1340
1422
|
/// This intrinsic corresponds to the <c> VCVTSS2SI / CVTSS2SI </c>
|
|
@@ -1355,6 +1437,10 @@ _mm_cvtss_si64(__m128 __a)
|
|
|
1355
1437
|
/// Converts two low-order float values in a 128-bit vector of
|
|
1356
1438
|
/// [4 x float] into a 64-bit vector of [2 x i32].
|
|
1357
1439
|
///
|
|
1440
|
+
/// If a converted value does not fit in a 32-bit integer, raises a
|
|
1441
|
+
/// floating-point invalid exception. If the exception is masked, returns
|
|
1442
|
+
/// the most negative integer.
|
|
1443
|
+
///
|
|
1358
1444
|
/// \headerfile <x86intrin.h>
|
|
1359
1445
|
///
|
|
1360
1446
|
/// This intrinsic corresponds to the <c> CVTPS2PI </c> instruction.
|
|
@@ -1371,6 +1457,10 @@ _mm_cvtps_pi32(__m128 __a)
|
|
|
1371
1457
|
/// Converts two low-order float values in a 128-bit vector of
|
|
1372
1458
|
/// [4 x float] into a 64-bit vector of [2 x i32].
|
|
1373
1459
|
///
|
|
1460
|
+
/// If a converted value does not fit in a 32-bit integer, raises a
|
|
1461
|
+
/// floating-point invalid exception. If the exception is masked, returns
|
|
1462
|
+
/// the most negative integer.
|
|
1463
|
+
///
|
|
1374
1464
|
/// \headerfile <x86intrin.h>
|
|
1375
1465
|
///
|
|
1376
1466
|
/// This intrinsic corresponds to the <c> CVTPS2PI </c> instruction.
|
|
@@ -1384,9 +1474,12 @@ _mm_cvt_ps2pi(__m128 __a)
|
|
|
1384
1474
|
return _mm_cvtps_pi32(__a);
|
|
1385
1475
|
}
|
|
1386
1476
|
|
|
1387
|
-
/// Converts
|
|
1388
|
-
///
|
|
1389
|
-
///
|
|
1477
|
+
/// Converts the lower (first) element of a vector of [4 x float] into a signed
|
|
1478
|
+
/// truncated (rounded toward zero) 32-bit integer.
|
|
1479
|
+
///
|
|
1480
|
+
/// If the converted value does not fit in a 32-bit integer, raises a
|
|
1481
|
+
/// floating-point invalid exception. If the exception is masked, returns
|
|
1482
|
+
/// the most negative integer.
|
|
1390
1483
|
///
|
|
1391
1484
|
/// \headerfile <x86intrin.h>
|
|
1392
1485
|
///
|
|
@@ -1403,9 +1496,12 @@ _mm_cvttss_si32(__m128 __a)
|
|
|
1403
1496
|
return __builtin_ia32_cvttss2si((__v4sf)__a);
|
|
1404
1497
|
}
|
|
1405
1498
|
|
|
1406
|
-
/// Converts
|
|
1407
|
-
///
|
|
1408
|
-
///
|
|
1499
|
+
/// Converts the lower (first) element of a vector of [4 x float] into a signed
|
|
1500
|
+
/// truncated (rounded toward zero) 32-bit integer.
|
|
1501
|
+
///
|
|
1502
|
+
/// If the converted value does not fit in a 32-bit integer, raises a
|
|
1503
|
+
/// floating-point invalid exception. If the exception is masked, returns
|
|
1504
|
+
/// the most negative integer.
|
|
1409
1505
|
///
|
|
1410
1506
|
/// \headerfile <x86intrin.h>
|
|
1411
1507
|
///
|
|
@@ -1423,9 +1519,12 @@ _mm_cvtt_ss2si(__m128 __a)
|
|
|
1423
1519
|
}
|
|
1424
1520
|
|
|
1425
1521
|
#ifdef __x86_64__
|
|
1426
|
-
/// Converts
|
|
1427
|
-
///
|
|
1428
|
-
///
|
|
1522
|
+
/// Converts the lower (first) element of a vector of [4 x float] into a signed
|
|
1523
|
+
/// truncated (rounded toward zero) 64-bit integer.
|
|
1524
|
+
///
|
|
1525
|
+
/// If the converted value does not fit in a 64-bit integer, raises a
|
|
1526
|
+
/// floating-point invalid exception. If the exception is masked, returns
|
|
1527
|
+
/// the most negative integer.
|
|
1429
1528
|
///
|
|
1430
1529
|
/// \headerfile <x86intrin.h>
|
|
1431
1530
|
///
|
|
@@ -1443,9 +1542,13 @@ _mm_cvttss_si64(__m128 __a)
|
|
|
1443
1542
|
}
|
|
1444
1543
|
#endif
|
|
1445
1544
|
|
|
1446
|
-
/// Converts
|
|
1447
|
-
///
|
|
1448
|
-
///
|
|
1545
|
+
/// Converts the lower (first) two elements of a 128-bit vector of [4 x float]
|
|
1546
|
+
/// into two signed truncated (rounded toward zero) 32-bit integers,
|
|
1547
|
+
/// returned in a 64-bit vector of [2 x i32].
|
|
1548
|
+
///
|
|
1549
|
+
/// If a converted value does not fit in a 32-bit integer, raises a
|
|
1550
|
+
/// floating-point invalid exception. If the exception is masked, returns
|
|
1551
|
+
/// the most negative integer.
|
|
1449
1552
|
///
|
|
1450
1553
|
/// \headerfile <x86intrin.h>
|
|
1451
1554
|
///
|
|
@@ -1461,9 +1564,13 @@ _mm_cvttps_pi32(__m128 __a)
|
|
|
1461
1564
|
return (__m64)__builtin_ia32_cvttps2pi((__v4sf)__a);
|
|
1462
1565
|
}
|
|
1463
1566
|
|
|
1464
|
-
/// Converts
|
|
1465
|
-
///
|
|
1466
|
-
///
|
|
1567
|
+
/// Converts the lower (first) two elements of a 128-bit vector of [4 x float]
|
|
1568
|
+
/// into two signed truncated (rounded toward zero) 64-bit integers,
|
|
1569
|
+
/// returned in a 64-bit vector of [2 x i32].
|
|
1570
|
+
///
|
|
1571
|
+
/// If a converted value does not fit in a 32-bit integer, raises a
|
|
1572
|
+
/// floating-point invalid exception. If the exception is masked, returns
|
|
1573
|
+
/// the most negative integer.
|
|
1467
1574
|
///
|
|
1468
1575
|
/// \headerfile <x86intrin.h>
|
|
1469
1576
|
///
|
|
@@ -1803,7 +1910,7 @@ _mm_undefined_ps(void)
|
|
|
1803
1910
|
static __inline__ __m128 __DEFAULT_FN_ATTRS
|
|
1804
1911
|
_mm_set_ss(float __w)
|
|
1805
1912
|
{
|
|
1806
|
-
return __extension__ (__m128){ __w, 0, 0, 0 };
|
|
1913
|
+
return __extension__ (__m128){ __w, 0.0f, 0.0f, 0.0f };
|
|
1807
1914
|
}
|
|
1808
1915
|
|
|
1809
1916
|
/// Constructs a 128-bit floating-point vector of [4 x float], with each
|
|
@@ -2940,6 +3047,85 @@ _mm_movemask_ps(__m128 __a)
|
|
|
2940
3047
|
return __builtin_ia32_movmskps((__v4sf)__a);
|
|
2941
3048
|
}
|
|
2942
3049
|
|
|
3050
|
+
/* Compare */
|
|
3051
|
+
#define _CMP_EQ_OQ 0x00 /* Equal (ordered, non-signaling) */
|
|
3052
|
+
#define _CMP_LT_OS 0x01 /* Less-than (ordered, signaling) */
|
|
3053
|
+
#define _CMP_LE_OS 0x02 /* Less-than-or-equal (ordered, signaling) */
|
|
3054
|
+
#define _CMP_UNORD_Q 0x03 /* Unordered (non-signaling) */
|
|
3055
|
+
#define _CMP_NEQ_UQ 0x04 /* Not-equal (unordered, non-signaling) */
|
|
3056
|
+
#define _CMP_NLT_US 0x05 /* Not-less-than (unordered, signaling) */
|
|
3057
|
+
#define _CMP_NLE_US 0x06 /* Not-less-than-or-equal (unordered, signaling) */
|
|
3058
|
+
#define _CMP_ORD_Q 0x07 /* Ordered (non-signaling) */
|
|
3059
|
+
|
|
3060
|
+
/// Compares each of the corresponding values of two 128-bit vectors of
|
|
3061
|
+
/// [4 x float], using the operation specified by the immediate integer
|
|
3062
|
+
/// operand.
|
|
3063
|
+
///
|
|
3064
|
+
/// Each comparison returns 0x0 for false, 0xFFFFFFFF for true.
|
|
3065
|
+
/// If either value in a comparison is NaN, comparisons that are ordered
|
|
3066
|
+
/// return false, and comparisons that are unordered return true.
|
|
3067
|
+
///
|
|
3068
|
+
/// \headerfile <x86intrin.h>
|
|
3069
|
+
///
|
|
3070
|
+
/// \code
|
|
3071
|
+
/// __m128 _mm_cmp_ps(__m128 a, __m128 b, const int c);
|
|
3072
|
+
/// \endcode
|
|
3073
|
+
///
|
|
3074
|
+
/// This intrinsic corresponds to the <c> (V)CMPPS </c> instruction.
|
|
3075
|
+
///
|
|
3076
|
+
/// \param a
|
|
3077
|
+
/// A 128-bit vector of [4 x float].
|
|
3078
|
+
/// \param b
|
|
3079
|
+
/// A 128-bit vector of [4 x float].
|
|
3080
|
+
/// \param c
|
|
3081
|
+
/// An immediate integer operand, with bits [4:0] specifying which comparison
|
|
3082
|
+
/// operation to use: \n
|
|
3083
|
+
/// 0x00: Equal (ordered, non-signaling) \n
|
|
3084
|
+
/// 0x01: Less-than (ordered, signaling) \n
|
|
3085
|
+
/// 0x02: Less-than-or-equal (ordered, signaling) \n
|
|
3086
|
+
/// 0x03: Unordered (non-signaling) \n
|
|
3087
|
+
/// 0x04: Not-equal (unordered, non-signaling) \n
|
|
3088
|
+
/// 0x05: Not-less-than (unordered, signaling) \n
|
|
3089
|
+
/// 0x06: Not-less-than-or-equal (unordered, signaling) \n
|
|
3090
|
+
/// 0x07: Ordered (non-signaling) \n
|
|
3091
|
+
/// \returns A 128-bit vector of [4 x float] containing the comparison results.
|
|
3092
|
+
#define _mm_cmp_ps(a, b, c) \
|
|
3093
|
+
((__m128)__builtin_ia32_cmpps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), (c)))
|
|
3094
|
+
|
|
3095
|
+
/// Compares each of the corresponding scalar values of two 128-bit
|
|
3096
|
+
/// vectors of [4 x float], using the operation specified by the immediate
|
|
3097
|
+
/// integer operand.
|
|
3098
|
+
///
|
|
3099
|
+
/// Each comparison returns 0x0 for false, 0xFFFFFFFF for true.
|
|
3100
|
+
/// If either value in a comparison is NaN, comparisons that are ordered
|
|
3101
|
+
/// return false, and comparisons that are unordered return true.
|
|
3102
|
+
///
|
|
3103
|
+
/// \headerfile <x86intrin.h>
|
|
3104
|
+
///
|
|
3105
|
+
/// \code
|
|
3106
|
+
/// __m128 _mm_cmp_ss(__m128 a, __m128 b, const int c);
|
|
3107
|
+
/// \endcode
|
|
3108
|
+
///
|
|
3109
|
+
/// This intrinsic corresponds to the <c> (V)CMPSS </c> instruction.
|
|
3110
|
+
///
|
|
3111
|
+
/// \param a
|
|
3112
|
+
/// A 128-bit vector of [4 x float].
|
|
3113
|
+
/// \param b
|
|
3114
|
+
/// A 128-bit vector of [4 x float].
|
|
3115
|
+
/// \param c
|
|
3116
|
+
/// An immediate integer operand, with bits [4:0] specifying which comparison
|
|
3117
|
+
/// operation to use: \n
|
|
3118
|
+
/// 0x00: Equal (ordered, non-signaling) \n
|
|
3119
|
+
/// 0x01: Less-than (ordered, signaling) \n
|
|
3120
|
+
/// 0x02: Less-than-or-equal (ordered, signaling) \n
|
|
3121
|
+
/// 0x03: Unordered (non-signaling) \n
|
|
3122
|
+
/// 0x04: Not-equal (unordered, non-signaling) \n
|
|
3123
|
+
/// 0x05: Not-less-than (unordered, signaling) \n
|
|
3124
|
+
/// 0x06: Not-less-than-or-equal (unordered, signaling) \n
|
|
3125
|
+
/// 0x07: Ordered (non-signaling) \n
|
|
3126
|
+
/// \returns A 128-bit vector of [4 x float] containing the comparison results.
|
|
3127
|
+
#define _mm_cmp_ss(a, b, c) \
|
|
3128
|
+
((__m128)__builtin_ia32_cmpss((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), (c)))
|
|
2943
3129
|
|
|
2944
3130
|
#define _MM_ALIGN16 __attribute__((aligned(16)))
|
|
2945
3131
|
|