@cpp-linter/clang-tidy-darwin-arm64 17.0.6 → 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/{17 → 19}/include/__clang_cuda_device_functions.h +2 -2
- package/lib/clang/{17 → 19}/include/__clang_cuda_intrinsics.h +1 -3
- package/lib/clang/{17 → 19}/include/__clang_cuda_libdevice_declares.h +2 -2
- package/lib/clang/{17 → 19}/include/__clang_cuda_math.h +2 -2
- package/lib/clang/{17 → 19}/include/__clang_cuda_runtime_wrapper.h +2 -2
- package/lib/clang/{17 → 19}/include/__clang_hip_math.h +192 -171
- package/lib/clang/{17 → 19}/include/__clang_hip_runtime_wrapper.h +34 -26
- package/lib/clang/19/include/__stdarg___gnuc_va_list.h +13 -0
- package/lib/clang/19/include/__stdarg___va_copy.h +12 -0
- package/lib/clang/19/include/__stdarg_header_macro.h +12 -0
- package/lib/clang/19/include/__stdarg_va_arg.h +22 -0
- package/lib/clang/19/include/__stdarg_va_copy.h +12 -0
- package/lib/clang/19/include/__stdarg_va_list.h +13 -0
- package/lib/clang/19/include/__stddef_header_macro.h +12 -0
- package/lib/clang/{17 → 19}/include/__stddef_max_align_t.h +1 -1
- package/lib/clang/19/include/__stddef_null.h +29 -0
- package/lib/clang/19/include/__stddef_nullptr_t.h +29 -0
- package/lib/clang/19/include/__stddef_offsetof.h +17 -0
- package/lib/clang/19/include/__stddef_ptrdiff_t.h +20 -0
- package/lib/clang/19/include/__stddef_rsize_t.h +20 -0
- package/lib/clang/19/include/__stddef_size_t.h +20 -0
- package/lib/clang/19/include/__stddef_unreachable.h +21 -0
- package/lib/clang/19/include/__stddef_wchar_t.h +28 -0
- package/lib/clang/19/include/__stddef_wint_t.h +15 -0
- package/lib/clang/{17/include/adxintrin.h → 19/include/adcintrin.h} +27 -94
- package/lib/clang/19/include/adxintrin.h +102 -0
- package/lib/clang/{17 → 19}/include/altivec.h +31 -12
- package/lib/clang/{17 → 19}/include/ammintrin.h +4 -4
- package/lib/clang/{17 → 19}/include/arm_acle.h +138 -32
- package/lib/clang/{17 → 19}/include/arm_fp16.h +1 -1
- package/lib/clang/{17 → 19}/include/arm_neon.h +43361 -43608
- package/lib/clang/19/include/arm_sme.h +2819 -0
- package/lib/clang/{17 → 19}/include/arm_sve.h +30202 -23615
- package/lib/clang/19/include/arm_vector_types.h +345 -0
- package/lib/clang/{17 → 19}/include/avx2intrin.h +24 -3
- package/lib/clang/{17 → 19}/include/avx512bf16intrin.h +3 -2
- package/lib/clang/{17 → 19}/include/avx512bitalgintrin.h +4 -1
- package/lib/clang/{17 → 19}/include/avx512bwintrin.h +28 -38
- package/lib/clang/{17 → 19}/include/avx512cdintrin.h +3 -1
- package/lib/clang/{17 → 19}/include/avx512dqintrin.h +4 -2
- package/lib/clang/{17 → 19}/include/avx512fintrin.h +7 -3
- package/lib/clang/{17 → 19}/include/avx512fp16intrin.h +44 -42
- package/lib/clang/{17 → 19}/include/avx512ifmaintrin.h +3 -1
- package/lib/clang/{17 → 19}/include/avx512ifmavlintrin.h +8 -2
- package/lib/clang/{17 → 19}/include/avx512vbmi2intrin.h +1 -1
- package/lib/clang/{17 → 19}/include/avx512vbmiintrin.h +3 -2
- package/lib/clang/{17 → 19}/include/avx512vbmivlintrin.h +8 -3
- package/lib/clang/{17 → 19}/include/avx512vlbf16intrin.h +8 -6
- package/lib/clang/{17 → 19}/include/avx512vlbitalgintrin.h +8 -2
- package/lib/clang/{17 → 19}/include/avx512vlbwintrin.h +8 -2
- package/lib/clang/{17 → 19}/include/avx512vlcdintrin.h +8 -3
- package/lib/clang/{17 → 19}/include/avx512vldqintrin.h +8 -2
- package/lib/clang/{17 → 19}/include/avx512vlfp16intrin.h +2 -2
- package/lib/clang/{17 → 19}/include/avx512vlintrin.h +8 -2
- package/lib/clang/{17 → 19}/include/avx512vlvbmi2intrin.h +8 -2
- package/lib/clang/{17 → 19}/include/avx512vlvnniintrin.h +8 -2
- package/lib/clang/{17 → 19}/include/avx512vlvp2intersectintrin.h +6 -4
- package/lib/clang/{17 → 19}/include/avx512vnniintrin.h +3 -2
- package/lib/clang/{17 → 19}/include/avx512vp2intersectintrin.h +3 -2
- package/lib/clang/{17 → 19}/include/avx512vpopcntdqintrin.h +3 -1
- package/lib/clang/{17 → 19}/include/avx512vpopcntdqvlintrin.h +6 -2
- package/lib/clang/{17 → 19}/include/avxintrin.h +67 -49
- package/lib/clang/{17 → 19}/include/bmiintrin.h +233 -50
- package/lib/clang/{17 → 19}/include/builtins.h +3 -0
- package/lib/clang/{17 → 19}/include/cpuid.h +23 -3
- package/lib/clang/{17 → 19}/include/cuda_wrappers/algorithm +1 -1
- package/lib/clang/{17 → 19}/include/emmintrin.h +311 -180
- package/lib/clang/{17 → 19}/include/float.h +28 -0
- package/lib/clang/{17 → 19}/include/fmaintrin.h +32 -16
- package/lib/clang/{17 → 19}/include/gfniintrin.h +23 -6
- package/lib/clang/{17 → 19}/include/hlsl/hlsl_basic_types.h +10 -3
- package/lib/clang/19/include/hlsl/hlsl_intrinsics.h +1697 -0
- package/lib/clang/19/include/ia32intrin.h +863 -0
- package/lib/clang/{17 → 19}/include/immintrin.h +149 -160
- package/lib/clang/{17 → 19}/include/intrin.h +61 -221
- package/lib/clang/19/include/intrin0.h +247 -0
- package/lib/clang/{17 → 19}/include/inttypes.h +4 -0
- package/lib/clang/{17 → 19}/include/iso646.h +4 -0
- package/lib/clang/{17 → 19}/include/keylockerintrin.h +5 -8
- package/lib/clang/{17 → 19}/include/larchintrin.h +13 -1
- package/lib/clang/19/include/lasxintrin.h +3884 -0
- package/lib/clang/{17 → 19}/include/limits.h +7 -4
- package/lib/clang/{17/include/llvm_libc_wrappers/stdio.h → 19/include/llvm_libc_wrappers/assert.h} +7 -7
- package/lib/clang/{17 → 19}/include/llvm_libc_wrappers/ctype.h +17 -0
- package/lib/clang/19/include/llvm_libc_wrappers/stdio.h +80 -0
- package/lib/clang/{17 → 19}/include/llvm_libc_wrappers/stdlib.h +4 -1
- package/lib/clang/19/include/llvm_libc_wrappers/string.h +96 -0
- package/lib/clang/{17/include/llvm_libc_wrappers/string.h → 19/include/llvm_libc_wrappers/time.h} +9 -12
- package/lib/clang/19/include/lsxintrin.h +3750 -0
- package/lib/clang/19/include/mm3dnow.h +22 -0
- package/lib/clang/{17 → 19}/include/mmintrin.h +83 -89
- package/lib/clang/19/include/module.modulemap +330 -0
- package/lib/clang/{17 → 19}/include/opencl-c-base.h +9 -0
- package/lib/clang/{17 → 19}/include/opencl-c.h +15 -0
- package/lib/clang/{17 → 19}/include/openmp_wrappers/cmath +1 -1
- package/lib/clang/{17 → 19}/include/pmmintrin.h +3 -2
- package/lib/clang/19/include/ppc_wrappers/nmmintrin.h +26 -0
- package/lib/clang/{17 → 19}/include/ppc_wrappers/smmintrin.h +35 -15
- package/lib/clang/{17 → 19}/include/prfchwintrin.h +10 -8
- package/lib/clang/19/include/ptrauth.h +330 -0
- package/lib/clang/19/include/riscv_bitmanip.h +195 -0
- package/lib/clang/19/include/riscv_crypto.h +170 -0
- package/lib/clang/{17 → 19}/include/riscv_ntlh.h +3 -5
- package/lib/clang/{17 → 19}/include/riscv_vector.h +31 -4
- package/lib/clang/19/include/sifive_vector.h +118 -0
- package/lib/clang/{17 → 19}/include/smmintrin.h +15 -15
- package/lib/clang/{17 → 19}/include/stdalign.h +6 -3
- package/lib/clang/19/include/stdarg.h +75 -0
- package/lib/clang/{17 → 19}/include/stdatomic.h +14 -6
- package/lib/clang/{17 → 19}/include/stdbool.h +5 -0
- package/lib/clang/19/include/stdckdint.h +42 -0
- package/lib/clang/19/include/stddef.h +139 -0
- package/lib/clang/{17 → 19}/include/stdint.h +24 -48
- package/lib/clang/{17 → 19}/include/stdnoreturn.h +8 -2
- package/lib/clang/{17 → 19}/include/tmmintrin.h +27 -18
- package/lib/clang/19/include/usermsrintrin.h +51 -0
- package/lib/clang/{17 → 19}/include/vaesintrin.h +4 -2
- package/lib/clang/{17 → 19}/include/varargs.h +5 -1
- package/lib/clang/{17 → 19}/include/vecintrin.h +217 -199
- package/lib/clang/{17 → 19}/include/x86gprintrin.h +10 -12
- package/lib/clang/19/include/x86intrin.h +53 -0
- package/lib/clang/{17 → 19}/include/xmmintrin.h +294 -104
- 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/17/include/arm_sme_draft_spec_subject_to_change.h +0 -642
- package/lib/clang/17/include/avx512erintrin.h +0 -271
- package/lib/clang/17/include/avx512pfintrin.h +0 -97
- package/lib/clang/17/include/hlsl/hlsl_intrinsics.h +0 -480
- package/lib/clang/17/include/ia32intrin.h +0 -441
- package/lib/clang/17/include/mm3dnow.h +0 -157
- package/lib/clang/17/include/module.modulemap +0 -164
- package/lib/clang/17/include/sifive_vector.h +0 -16
- package/lib/clang/17/include/stdarg.h +0 -51
- package/lib/clang/17/include/stddef.h +0 -133
- package/lib/clang/17/include/x86intrin.h +0 -67
- /package/lib/clang/{17 → 19}/include/__clang_cuda_builtin_vars.h +0 -0
- /package/lib/clang/{17 → 19}/include/__clang_cuda_cmath.h +0 -0
- /package/lib/clang/{17 → 19}/include/__clang_cuda_complex_builtins.h +0 -0
- /package/lib/clang/{17 → 19}/include/__clang_cuda_math_forward_declares.h +0 -0
- /package/lib/clang/{17 → 19}/include/__clang_cuda_texture_intrinsics.h +0 -0
- /package/lib/clang/{17 → 19}/include/__clang_hip_cmath.h +0 -0
- /package/lib/clang/{17 → 19}/include/__clang_hip_libdevice_declares.h +0 -0
- /package/lib/clang/{17 → 19}/include/__clang_hip_stdlib.h +0 -0
- /package/lib/clang/{17 → 19}/include/__wmmintrin_aes.h +0 -0
- /package/lib/clang/{17 → 19}/include/__wmmintrin_pclmul.h +0 -0
- /package/lib/clang/{17 → 19}/include/amxcomplexintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/amxfp16intrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/amxintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/arm64intr.h +0 -0
- /package/lib/clang/{17 → 19}/include/arm_bf16.h +0 -0
- /package/lib/clang/{17 → 19}/include/arm_cde.h +0 -0
- /package/lib/clang/{17 → 19}/include/arm_cmse.h +0 -0
- /package/lib/clang/{17 → 19}/include/arm_mve.h +0 -0
- /package/lib/clang/{17 → 19}/include/arm_neon_sve_bridge.h +0 -0
- /package/lib/clang/{17 → 19}/include/armintr.h +0 -0
- /package/lib/clang/{17 → 19}/include/avxifmaintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/avxneconvertintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/avxvnniint16intrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/avxvnniint8intrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/avxvnniintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/bmi2intrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/cet.h +0 -0
- /package/lib/clang/{17 → 19}/include/cetintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/cldemoteintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/clflushoptintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/clwbintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/clzerointrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/cmpccxaddintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/crc32intrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/cuda_wrappers/bits/basic_string.h +0 -0
- /package/lib/clang/{17 → 19}/include/cuda_wrappers/bits/basic_string.tcc +0 -0
- /package/lib/clang/{17 → 19}/include/cuda_wrappers/bits/shared_ptr_base.h +0 -0
- /package/lib/clang/{17 → 19}/include/cuda_wrappers/cmath +0 -0
- /package/lib/clang/{17 → 19}/include/cuda_wrappers/complex +0 -0
- /package/lib/clang/{17 → 19}/include/cuda_wrappers/new +0 -0
- /package/lib/clang/{17 → 19}/include/enqcmdintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/f16cintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/fma4intrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/fxsrintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/hexagon_circ_brev_intrinsics.h +0 -0
- /package/lib/clang/{17 → 19}/include/hexagon_protos.h +0 -0
- /package/lib/clang/{17 → 19}/include/hexagon_types.h +0 -0
- /package/lib/clang/{17 → 19}/include/hlsl.h +0 -0
- /package/lib/clang/{17 → 19}/include/hresetintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/htmintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/htmxlintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/hvx_hexagon_protos.h +0 -0
- /package/lib/clang/{17 → 19}/include/invpcidintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/llvm_libc_wrappers/inttypes.h +0 -0
- /package/lib/clang/{17 → 19}/include/lwpintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/lzcntintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/mm_malloc.h +0 -0
- /package/lib/clang/{17 → 19}/include/movdirintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/msa.h +0 -0
- /package/lib/clang/{17 → 19}/include/mwaitxintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/nmmintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/openmp_wrappers/__clang_openmp_device_functions.h +0 -0
- /package/lib/clang/{17 → 19}/include/openmp_wrappers/complex +0 -0
- /package/lib/clang/{17 → 19}/include/openmp_wrappers/complex.h +0 -0
- /package/lib/clang/{17 → 19}/include/openmp_wrappers/complex_cmath.h +0 -0
- /package/lib/clang/{17 → 19}/include/openmp_wrappers/math.h +0 -0
- /package/lib/clang/{17 → 19}/include/openmp_wrappers/new +0 -0
- /package/lib/clang/{17 → 19}/include/pconfigintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/pkuintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/popcntintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/ppc_wrappers/bmi2intrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/ppc_wrappers/bmiintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/ppc_wrappers/emmintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/ppc_wrappers/immintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/ppc_wrappers/mm_malloc.h +0 -0
- /package/lib/clang/{17 → 19}/include/ppc_wrappers/mmintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/ppc_wrappers/pmmintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/ppc_wrappers/tmmintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/ppc_wrappers/x86gprintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/ppc_wrappers/x86intrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/ppc_wrappers/xmmintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/prfchiintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/ptwriteintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/raointintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/rdpruintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/rdseedintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/rtmintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/s390intrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/serializeintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/sgxintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/sha512intrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/shaintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/sm3intrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/sm4intrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/tbmintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/tgmath.h +0 -0
- /package/lib/clang/{17 → 19}/include/tsxldtrkintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/uintrintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/unwind.h +0 -0
- /package/lib/clang/{17 → 19}/include/vadefs.h +0 -0
- /package/lib/clang/{17 → 19}/include/velintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/velintrin_approx.h +0 -0
- /package/lib/clang/{17 → 19}/include/velintrin_gen.h +0 -0
- /package/lib/clang/{17 → 19}/include/vpclmulqdqintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/waitpkgintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/wasm_simd128.h +0 -0
- /package/lib/clang/{17 → 19}/include/wbnoinvdintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/wmmintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/xopintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/xsavecintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/xsaveintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/xsaveoptintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/xsavesintrin.h +0 -0
- /package/lib/clang/{17 → 19}/include/xtestintrin.h +0 -0
|
@@ -32,8 +32,12 @@ 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
|
-
#define __DEFAULT_FN_ATTRS
|
|
36
|
-
|
|
35
|
+
#define __DEFAULT_FN_ATTRS \
|
|
36
|
+
__attribute__((__always_inline__, __nodebug__, __target__("sse,no-evex512"), \
|
|
37
|
+
__min_vector_width__(128)))
|
|
38
|
+
#define __DEFAULT_FN_ATTRS_MMX \
|
|
39
|
+
__attribute__((__always_inline__, __nodebug__, \
|
|
40
|
+
__target__("mmx,sse,no-evex512"), __min_vector_width__(64)))
|
|
37
41
|
|
|
38
42
|
/// Adds the 32-bit float values in the low-order bits of the operands.
|
|
39
43
|
///
|
|
@@ -312,6 +316,8 @@ _mm_rsqrt_ps(__m128 __a)
|
|
|
312
316
|
/// operands and returns the lesser value in the low-order bits of the
|
|
313
317
|
/// vector of [4 x float].
|
|
314
318
|
///
|
|
319
|
+
/// If either value in a comparison is NaN, returns the value from \a __b.
|
|
320
|
+
///
|
|
315
321
|
/// \headerfile <x86intrin.h>
|
|
316
322
|
///
|
|
317
323
|
/// This intrinsic corresponds to the <c> VMINSS / MINSS </c> instructions.
|
|
@@ -334,6 +340,8 @@ _mm_min_ss(__m128 __a, __m128 __b)
|
|
|
334
340
|
/// Compares two 128-bit vectors of [4 x float] and returns the lesser
|
|
335
341
|
/// of each pair of values.
|
|
336
342
|
///
|
|
343
|
+
/// If either value in a comparison is NaN, returns the value from \a __b.
|
|
344
|
+
///
|
|
337
345
|
/// \headerfile <x86intrin.h>
|
|
338
346
|
///
|
|
339
347
|
/// This intrinsic corresponds to the <c> VMINPS / MINPS </c> instructions.
|
|
@@ -354,6 +362,8 @@ _mm_min_ps(__m128 __a, __m128 __b)
|
|
|
354
362
|
/// operands and returns the greater value in the low-order bits of a 128-bit
|
|
355
363
|
/// vector of [4 x float].
|
|
356
364
|
///
|
|
365
|
+
/// If either value in a comparison is NaN, returns the value from \a __b.
|
|
366
|
+
///
|
|
357
367
|
/// \headerfile <x86intrin.h>
|
|
358
368
|
///
|
|
359
369
|
/// This intrinsic corresponds to the <c> VMAXSS / MAXSS </c> instructions.
|
|
@@ -376,6 +386,8 @@ _mm_max_ss(__m128 __a, __m128 __b)
|
|
|
376
386
|
/// Compares two 128-bit vectors of [4 x float] and returns the greater
|
|
377
387
|
/// of each pair of values.
|
|
378
388
|
///
|
|
389
|
+
/// If either value in a comparison is NaN, returns the value from \a __b.
|
|
390
|
+
///
|
|
379
391
|
/// \headerfile <x86intrin.h>
|
|
380
392
|
///
|
|
381
393
|
/// This intrinsic corresponds to the <c> VMAXPS / MAXPS </c> instructions.
|
|
@@ -470,8 +482,11 @@ _mm_xor_ps(__m128 __a, __m128 __b)
|
|
|
470
482
|
}
|
|
471
483
|
|
|
472
484
|
/// Compares two 32-bit float values in the low-order bits of both
|
|
473
|
-
/// operands for equality
|
|
485
|
+
/// operands for equality.
|
|
486
|
+
///
|
|
487
|
+
/// The comparison returns 0x0 for false, 0xFFFFFFFF for true, in the
|
|
474
488
|
/// low-order bits of a vector [4 x float].
|
|
489
|
+
/// If either value in a comparison is NaN, returns false.
|
|
475
490
|
///
|
|
476
491
|
/// \headerfile <x86intrin.h>
|
|
477
492
|
///
|
|
@@ -494,6 +509,9 @@ _mm_cmpeq_ss(__m128 __a, __m128 __b)
|
|
|
494
509
|
/// Compares each of the corresponding 32-bit float values of the
|
|
495
510
|
/// 128-bit vectors of [4 x float] for equality.
|
|
496
511
|
///
|
|
512
|
+
/// Each comparison returns 0x0 for false, 0xFFFFFFFF for true.
|
|
513
|
+
/// If either value in a comparison is NaN, returns false.
|
|
514
|
+
///
|
|
497
515
|
/// \headerfile <x86intrin.h>
|
|
498
516
|
///
|
|
499
517
|
/// This intrinsic corresponds to the <c> VCMPEQPS / CMPEQPS </c> instructions.
|
|
@@ -511,8 +529,11 @@ _mm_cmpeq_ps(__m128 __a, __m128 __b)
|
|
|
511
529
|
|
|
512
530
|
/// Compares two 32-bit float values in the low-order bits of both
|
|
513
531
|
/// operands to determine if the value in the first operand is less than the
|
|
514
|
-
/// corresponding value in the second operand
|
|
515
|
-
///
|
|
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.
|
|
516
537
|
///
|
|
517
538
|
/// \headerfile <x86intrin.h>
|
|
518
539
|
///
|
|
@@ -536,6 +557,9 @@ _mm_cmplt_ss(__m128 __a, __m128 __b)
|
|
|
536
557
|
/// 128-bit vectors of [4 x float] to determine if the values in the first
|
|
537
558
|
/// operand are less than those in the second operand.
|
|
538
559
|
///
|
|
560
|
+
/// Each comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true.
|
|
561
|
+
/// If either value in a comparison is NaN, returns false.
|
|
562
|
+
///
|
|
539
563
|
/// \headerfile <x86intrin.h>
|
|
540
564
|
///
|
|
541
565
|
/// This intrinsic corresponds to the <c> VCMPLTPS / CMPLTPS </c> instructions.
|
|
@@ -553,9 +577,11 @@ _mm_cmplt_ps(__m128 __a, __m128 __b)
|
|
|
553
577
|
|
|
554
578
|
/// Compares two 32-bit float values in the low-order bits of both
|
|
555
579
|
/// operands to determine if the value in the first operand is less than or
|
|
556
|
-
/// equal to the corresponding value in the second operand
|
|
557
|
-
///
|
|
558
|
-
///
|
|
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.
|
|
559
585
|
///
|
|
560
586
|
/// \headerfile <x86intrin.h>
|
|
561
587
|
///
|
|
@@ -579,6 +605,9 @@ _mm_cmple_ss(__m128 __a, __m128 __b)
|
|
|
579
605
|
/// 128-bit vectors of [4 x float] to determine if the values in the first
|
|
580
606
|
/// operand are less than or equal to those in the second operand.
|
|
581
607
|
///
|
|
608
|
+
/// Each comparison returns 0x0 for false, 0xFFFFFFFF for true.
|
|
609
|
+
/// If either value in a comparison is NaN, returns false.
|
|
610
|
+
///
|
|
582
611
|
/// \headerfile <x86intrin.h>
|
|
583
612
|
///
|
|
584
613
|
/// This intrinsic corresponds to the <c> VCMPLEPS / CMPLEPS </c> instructions.
|
|
@@ -596,8 +625,11 @@ _mm_cmple_ps(__m128 __a, __m128 __b)
|
|
|
596
625
|
|
|
597
626
|
/// Compares two 32-bit float values in the low-order bits of both
|
|
598
627
|
/// operands to determine if the value in the first operand is greater than
|
|
599
|
-
/// the corresponding value in the second operand
|
|
600
|
-
///
|
|
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.
|
|
601
633
|
///
|
|
602
634
|
/// \headerfile <x86intrin.h>
|
|
603
635
|
///
|
|
@@ -623,6 +655,9 @@ _mm_cmpgt_ss(__m128 __a, __m128 __b)
|
|
|
623
655
|
/// 128-bit vectors of [4 x float] to determine if the values in the first
|
|
624
656
|
/// operand are greater than those in the second operand.
|
|
625
657
|
///
|
|
658
|
+
/// Each comparison returns 0x0 for false, 0xFFFFFFFF for true.
|
|
659
|
+
/// If either value in a comparison is NaN, returns false.
|
|
660
|
+
///
|
|
626
661
|
/// \headerfile <x86intrin.h>
|
|
627
662
|
///
|
|
628
663
|
/// This intrinsic corresponds to the <c> VCMPLTPS / CMPLTPS </c> instructions.
|
|
@@ -640,9 +675,11 @@ _mm_cmpgt_ps(__m128 __a, __m128 __b)
|
|
|
640
675
|
|
|
641
676
|
/// Compares two 32-bit float values in the low-order bits of both
|
|
642
677
|
/// operands to determine if the value in the first operand is greater than
|
|
643
|
-
/// or equal to the corresponding value in the second operand
|
|
644
|
-
///
|
|
645
|
-
///
|
|
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.
|
|
646
683
|
///
|
|
647
684
|
/// \headerfile <x86intrin.h>
|
|
648
685
|
///
|
|
@@ -668,6 +705,9 @@ _mm_cmpge_ss(__m128 __a, __m128 __b)
|
|
|
668
705
|
/// 128-bit vectors of [4 x float] to determine if the values in the first
|
|
669
706
|
/// operand are greater than or equal to those in the second operand.
|
|
670
707
|
///
|
|
708
|
+
/// Each comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true.
|
|
709
|
+
/// If either value in a comparison is NaN, returns false.
|
|
710
|
+
///
|
|
671
711
|
/// \headerfile <x86intrin.h>
|
|
672
712
|
///
|
|
673
713
|
/// This intrinsic corresponds to the <c> VCMPLEPS / CMPLEPS </c> instructions.
|
|
@@ -683,9 +723,12 @@ _mm_cmpge_ps(__m128 __a, __m128 __b)
|
|
|
683
723
|
return (__m128)__builtin_ia32_cmpleps((__v4sf)__b, (__v4sf)__a);
|
|
684
724
|
}
|
|
685
725
|
|
|
686
|
-
/// Compares two 32-bit float values in the low-order bits of both
|
|
687
|
-
///
|
|
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
|
|
688
730
|
/// low-order bits of a vector of [4 x float].
|
|
731
|
+
/// If either value in a comparison is NaN, returns true.
|
|
689
732
|
///
|
|
690
733
|
/// \headerfile <x86intrin.h>
|
|
691
734
|
///
|
|
@@ -709,6 +752,9 @@ _mm_cmpneq_ss(__m128 __a, __m128 __b)
|
|
|
709
752
|
/// Compares each of the corresponding 32-bit float values of the
|
|
710
753
|
/// 128-bit vectors of [4 x float] for inequality.
|
|
711
754
|
///
|
|
755
|
+
/// Each comparison returns 0x0 for false, 0xFFFFFFFF for true.
|
|
756
|
+
/// If either value in a comparison is NaN, returns true.
|
|
757
|
+
///
|
|
712
758
|
/// \headerfile <x86intrin.h>
|
|
713
759
|
///
|
|
714
760
|
/// This intrinsic corresponds to the <c> VCMPNEQPS / CMPNEQPS </c>
|
|
@@ -727,8 +773,11 @@ _mm_cmpneq_ps(__m128 __a, __m128 __b)
|
|
|
727
773
|
|
|
728
774
|
/// Compares two 32-bit float values in the low-order bits of both
|
|
729
775
|
/// operands to determine if the value in the first operand is not less than
|
|
730
|
-
/// the corresponding value in the second operand
|
|
731
|
-
///
|
|
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.
|
|
732
781
|
///
|
|
733
782
|
/// \headerfile <x86intrin.h>
|
|
734
783
|
///
|
|
@@ -753,6 +802,9 @@ _mm_cmpnlt_ss(__m128 __a, __m128 __b)
|
|
|
753
802
|
/// 128-bit vectors of [4 x float] to determine if the values in the first
|
|
754
803
|
/// operand are not less than those in the second operand.
|
|
755
804
|
///
|
|
805
|
+
/// Each comparison returns 0x0 for false, 0xFFFFFFFF for true.
|
|
806
|
+
/// If either value in a comparison is NaN, returns true.
|
|
807
|
+
///
|
|
756
808
|
/// \headerfile <x86intrin.h>
|
|
757
809
|
///
|
|
758
810
|
/// This intrinsic corresponds to the <c> VCMPNLTPS / CMPNLTPS </c>
|
|
@@ -771,9 +823,11 @@ _mm_cmpnlt_ps(__m128 __a, __m128 __b)
|
|
|
771
823
|
|
|
772
824
|
/// Compares two 32-bit float values in the low-order bits of both
|
|
773
825
|
/// operands to determine if the value in the first operand is not less than
|
|
774
|
-
/// or equal to the corresponding value in the second operand
|
|
775
|
-
///
|
|
776
|
-
///
|
|
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.
|
|
777
831
|
///
|
|
778
832
|
/// \headerfile <x86intrin.h>
|
|
779
833
|
///
|
|
@@ -798,6 +852,9 @@ _mm_cmpnle_ss(__m128 __a, __m128 __b)
|
|
|
798
852
|
/// 128-bit vectors of [4 x float] to determine if the values in the first
|
|
799
853
|
/// operand are not less than or equal to those in the second operand.
|
|
800
854
|
///
|
|
855
|
+
/// Each comparison returns 0x0 for false, 0xFFFFFFFF for true.
|
|
856
|
+
/// If either value in a comparison is NaN, returns true.
|
|
857
|
+
///
|
|
801
858
|
/// \headerfile <x86intrin.h>
|
|
802
859
|
///
|
|
803
860
|
/// This intrinsic corresponds to the <c> VCMPNLEPS / CMPNLEPS </c>
|
|
@@ -816,9 +873,11 @@ _mm_cmpnle_ps(__m128 __a, __m128 __b)
|
|
|
816
873
|
|
|
817
874
|
/// Compares two 32-bit float values in the low-order bits of both
|
|
818
875
|
/// operands to determine if the value in the first operand is not greater
|
|
819
|
-
/// than the corresponding value in the second operand
|
|
820
|
-
///
|
|
821
|
-
///
|
|
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.
|
|
822
881
|
///
|
|
823
882
|
/// \headerfile <x86intrin.h>
|
|
824
883
|
///
|
|
@@ -845,6 +904,9 @@ _mm_cmpngt_ss(__m128 __a, __m128 __b)
|
|
|
845
904
|
/// 128-bit vectors of [4 x float] to determine if the values in the first
|
|
846
905
|
/// operand are not greater than those in the second operand.
|
|
847
906
|
///
|
|
907
|
+
/// Each comparison returns 0x0 for false, 0xFFFFFFFF for true.
|
|
908
|
+
/// If either value in a comparison is NaN, returns true.
|
|
909
|
+
///
|
|
848
910
|
/// \headerfile <x86intrin.h>
|
|
849
911
|
///
|
|
850
912
|
/// This intrinsic corresponds to the <c> VCMPNLTPS / CMPNLTPS </c>
|
|
@@ -863,9 +925,11 @@ _mm_cmpngt_ps(__m128 __a, __m128 __b)
|
|
|
863
925
|
|
|
864
926
|
/// Compares two 32-bit float values in the low-order bits of both
|
|
865
927
|
/// operands to determine if the value in the first operand is not greater
|
|
866
|
-
/// than or equal to the corresponding value in the second operand
|
|
867
|
-
///
|
|
868
|
-
///
|
|
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.
|
|
869
933
|
///
|
|
870
934
|
/// \headerfile <x86intrin.h>
|
|
871
935
|
///
|
|
@@ -892,6 +956,9 @@ _mm_cmpnge_ss(__m128 __a, __m128 __b)
|
|
|
892
956
|
/// 128-bit vectors of [4 x float] to determine if the values in the first
|
|
893
957
|
/// operand are not greater than or equal to those in the second operand.
|
|
894
958
|
///
|
|
959
|
+
/// Each comparison returns 0x0 for false, 0xFFFFFFFF for true.
|
|
960
|
+
/// If either value in a comparison is NaN, returns true.
|
|
961
|
+
///
|
|
895
962
|
/// \headerfile <x86intrin.h>
|
|
896
963
|
///
|
|
897
964
|
/// This intrinsic corresponds to the <c> VCMPNLEPS / CMPNLEPS </c>
|
|
@@ -910,9 +977,11 @@ _mm_cmpnge_ps(__m128 __a, __m128 __b)
|
|
|
910
977
|
|
|
911
978
|
/// Compares two 32-bit float values in the low-order bits of both
|
|
912
979
|
/// operands to determine if the value in the first operand is ordered with
|
|
913
|
-
/// respect to the corresponding value in the second operand
|
|
914
|
-
///
|
|
915
|
-
///
|
|
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.
|
|
916
985
|
///
|
|
917
986
|
/// \headerfile <x86intrin.h>
|
|
918
987
|
///
|
|
@@ -937,6 +1006,10 @@ _mm_cmpord_ss(__m128 __a, __m128 __b)
|
|
|
937
1006
|
/// 128-bit vectors of [4 x float] to determine if the values in the first
|
|
938
1007
|
/// operand are ordered with respect to those in the second operand.
|
|
939
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
|
+
///
|
|
940
1013
|
/// \headerfile <x86intrin.h>
|
|
941
1014
|
///
|
|
942
1015
|
/// This intrinsic corresponds to the <c> VCMPORDPS / CMPORDPS </c>
|
|
@@ -955,9 +1028,11 @@ _mm_cmpord_ps(__m128 __a, __m128 __b)
|
|
|
955
1028
|
|
|
956
1029
|
/// Compares two 32-bit float values in the low-order bits of both
|
|
957
1030
|
/// operands to determine if the value in the first operand is unordered
|
|
958
|
-
/// with respect to the corresponding value in the second operand
|
|
959
|
-
///
|
|
960
|
-
/// 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.
|
|
961
1036
|
///
|
|
962
1037
|
/// \headerfile <x86intrin.h>
|
|
963
1038
|
///
|
|
@@ -982,6 +1057,10 @@ _mm_cmpunord_ss(__m128 __a, __m128 __b)
|
|
|
982
1057
|
/// 128-bit vectors of [4 x float] to determine if the values in the first
|
|
983
1058
|
/// operand are unordered with respect to those in the second operand.
|
|
984
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
|
+
///
|
|
985
1064
|
/// \headerfile <x86intrin.h>
|
|
986
1065
|
///
|
|
987
1066
|
/// This intrinsic corresponds to the <c> VCMPUNORDPS / CMPUNORDPS </c>
|
|
@@ -999,9 +1078,10 @@ _mm_cmpunord_ps(__m128 __a, __m128 __b)
|
|
|
999
1078
|
}
|
|
1000
1079
|
|
|
1001
1080
|
/// Compares two 32-bit float values in the low-order bits of both
|
|
1002
|
-
/// operands for equality
|
|
1081
|
+
/// operands for equality.
|
|
1003
1082
|
///
|
|
1004
|
-
///
|
|
1083
|
+
/// The comparison returns 0 for false, 1 for true. If either value in a
|
|
1084
|
+
/// comparison is NaN, returns 0.
|
|
1005
1085
|
///
|
|
1006
1086
|
/// \headerfile <x86intrin.h>
|
|
1007
1087
|
///
|
|
@@ -1014,8 +1094,7 @@ _mm_cmpunord_ps(__m128 __a, __m128 __b)
|
|
|
1014
1094
|
/// \param __b
|
|
1015
1095
|
/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
|
|
1016
1096
|
/// used in the comparison.
|
|
1017
|
-
/// \returns An integer containing the comparison results.
|
|
1018
|
-
/// two lower 32-bit values is NaN, 0 is returned.
|
|
1097
|
+
/// \returns An integer containing the comparison results.
|
|
1019
1098
|
static __inline__ int __DEFAULT_FN_ATTRS
|
|
1020
1099
|
_mm_comieq_ss(__m128 __a, __m128 __b)
|
|
1021
1100
|
{
|
|
@@ -1024,9 +1103,10 @@ _mm_comieq_ss(__m128 __a, __m128 __b)
|
|
|
1024
1103
|
|
|
1025
1104
|
/// Compares two 32-bit float values in the low-order bits of both
|
|
1026
1105
|
/// operands to determine if the first operand is less than the second
|
|
1027
|
-
/// operand
|
|
1106
|
+
/// operand.
|
|
1028
1107
|
///
|
|
1029
|
-
///
|
|
1108
|
+
/// The comparison returns 0 for false, 1 for true. If either value in a
|
|
1109
|
+
/// comparison is NaN, returns 0.
|
|
1030
1110
|
///
|
|
1031
1111
|
/// \headerfile <x86intrin.h>
|
|
1032
1112
|
///
|
|
@@ -1039,8 +1119,7 @@ _mm_comieq_ss(__m128 __a, __m128 __b)
|
|
|
1039
1119
|
/// \param __b
|
|
1040
1120
|
/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
|
|
1041
1121
|
/// used in the comparison.
|
|
1042
|
-
/// \returns An integer containing the comparison results.
|
|
1043
|
-
/// lower 32-bit values is NaN, 0 is returned.
|
|
1122
|
+
/// \returns An integer containing the comparison results.
|
|
1044
1123
|
static __inline__ int __DEFAULT_FN_ATTRS
|
|
1045
1124
|
_mm_comilt_ss(__m128 __a, __m128 __b)
|
|
1046
1125
|
{
|
|
@@ -1049,9 +1128,10 @@ _mm_comilt_ss(__m128 __a, __m128 __b)
|
|
|
1049
1128
|
|
|
1050
1129
|
/// Compares two 32-bit float values in the low-order bits of both
|
|
1051
1130
|
/// operands to determine if the first operand is less than or equal to the
|
|
1052
|
-
/// second operand
|
|
1131
|
+
/// second operand.
|
|
1053
1132
|
///
|
|
1054
|
-
///
|
|
1133
|
+
/// The comparison returns 0 for false, 1 for true. If either value in a
|
|
1134
|
+
/// comparison is NaN, returns 0.
|
|
1055
1135
|
///
|
|
1056
1136
|
/// \headerfile <x86intrin.h>
|
|
1057
1137
|
///
|
|
@@ -1063,8 +1143,7 @@ _mm_comilt_ss(__m128 __a, __m128 __b)
|
|
|
1063
1143
|
/// \param __b
|
|
1064
1144
|
/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
|
|
1065
1145
|
/// used in the comparison.
|
|
1066
|
-
/// \returns An integer containing the comparison results.
|
|
1067
|
-
/// lower 32-bit values is NaN, 0 is returned.
|
|
1146
|
+
/// \returns An integer containing the comparison results.
|
|
1068
1147
|
static __inline__ int __DEFAULT_FN_ATTRS
|
|
1069
1148
|
_mm_comile_ss(__m128 __a, __m128 __b)
|
|
1070
1149
|
{
|
|
@@ -1073,9 +1152,10 @@ _mm_comile_ss(__m128 __a, __m128 __b)
|
|
|
1073
1152
|
|
|
1074
1153
|
/// Compares two 32-bit float values in the low-order bits of both
|
|
1075
1154
|
/// operands to determine if the first operand is greater than the second
|
|
1076
|
-
/// operand
|
|
1155
|
+
/// operand.
|
|
1077
1156
|
///
|
|
1078
|
-
///
|
|
1157
|
+
/// The comparison returns 0 for false, 1 for true. If either value in a
|
|
1158
|
+
/// comparison is NaN, returns 0.
|
|
1079
1159
|
///
|
|
1080
1160
|
/// \headerfile <x86intrin.h>
|
|
1081
1161
|
///
|
|
@@ -1087,8 +1167,7 @@ _mm_comile_ss(__m128 __a, __m128 __b)
|
|
|
1087
1167
|
/// \param __b
|
|
1088
1168
|
/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
|
|
1089
1169
|
/// used in the comparison.
|
|
1090
|
-
/// \returns An integer containing the comparison results.
|
|
1091
|
-
/// two lower 32-bit values is NaN, 0 is returned.
|
|
1170
|
+
/// \returns An integer containing the comparison results.
|
|
1092
1171
|
static __inline__ int __DEFAULT_FN_ATTRS
|
|
1093
1172
|
_mm_comigt_ss(__m128 __a, __m128 __b)
|
|
1094
1173
|
{
|
|
@@ -1097,9 +1176,10 @@ _mm_comigt_ss(__m128 __a, __m128 __b)
|
|
|
1097
1176
|
|
|
1098
1177
|
/// Compares two 32-bit float values in the low-order bits of both
|
|
1099
1178
|
/// operands to determine if the first operand is greater than or equal to
|
|
1100
|
-
/// the second operand
|
|
1179
|
+
/// the second operand.
|
|
1101
1180
|
///
|
|
1102
|
-
///
|
|
1181
|
+
/// The comparison returns 0 for false, 1 for true. If either value in a
|
|
1182
|
+
/// comparison is NaN, returns 0.
|
|
1103
1183
|
///
|
|
1104
1184
|
/// \headerfile <x86intrin.h>
|
|
1105
1185
|
///
|
|
@@ -1111,8 +1191,7 @@ _mm_comigt_ss(__m128 __a, __m128 __b)
|
|
|
1111
1191
|
/// \param __b
|
|
1112
1192
|
/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
|
|
1113
1193
|
/// used in the comparison.
|
|
1114
|
-
/// \returns An integer containing the comparison results.
|
|
1115
|
-
/// lower 32-bit values is NaN, 0 is returned.
|
|
1194
|
+
/// \returns An integer containing the comparison results.
|
|
1116
1195
|
static __inline__ int __DEFAULT_FN_ATTRS
|
|
1117
1196
|
_mm_comige_ss(__m128 __a, __m128 __b)
|
|
1118
1197
|
{
|
|
@@ -1121,9 +1200,10 @@ _mm_comige_ss(__m128 __a, __m128 __b)
|
|
|
1121
1200
|
|
|
1122
1201
|
/// Compares two 32-bit float values in the low-order bits of both
|
|
1123
1202
|
/// operands to determine if the first operand is not equal to the second
|
|
1124
|
-
/// operand
|
|
1203
|
+
/// operand.
|
|
1125
1204
|
///
|
|
1126
|
-
///
|
|
1205
|
+
/// The comparison returns 0 for false, 1 for true. If either value in a
|
|
1206
|
+
/// comparison is NaN, returns 1.
|
|
1127
1207
|
///
|
|
1128
1208
|
/// \headerfile <x86intrin.h>
|
|
1129
1209
|
///
|
|
@@ -1135,8 +1215,7 @@ _mm_comige_ss(__m128 __a, __m128 __b)
|
|
|
1135
1215
|
/// \param __b
|
|
1136
1216
|
/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
|
|
1137
1217
|
/// used in the comparison.
|
|
1138
|
-
/// \returns An integer containing the comparison results.
|
|
1139
|
-
/// two lower 32-bit values is NaN, 1 is returned.
|
|
1218
|
+
/// \returns An integer containing the comparison results.
|
|
1140
1219
|
static __inline__ int __DEFAULT_FN_ATTRS
|
|
1141
1220
|
_mm_comineq_ss(__m128 __a, __m128 __b)
|
|
1142
1221
|
{
|
|
@@ -1144,10 +1223,10 @@ _mm_comineq_ss(__m128 __a, __m128 __b)
|
|
|
1144
1223
|
}
|
|
1145
1224
|
|
|
1146
1225
|
/// Performs an unordered comparison of two 32-bit float values using
|
|
1147
|
-
/// the low-order bits of both operands to determine equality
|
|
1148
|
-
/// the result of the comparison.
|
|
1226
|
+
/// the low-order bits of both operands to determine equality.
|
|
1149
1227
|
///
|
|
1150
|
-
///
|
|
1228
|
+
/// The comparison returns 0 for false, 1 for true. If either value in a
|
|
1229
|
+
/// comparison is NaN, returns 0.
|
|
1151
1230
|
///
|
|
1152
1231
|
/// \headerfile <x86intrin.h>
|
|
1153
1232
|
///
|
|
@@ -1159,8 +1238,7 @@ _mm_comineq_ss(__m128 __a, __m128 __b)
|
|
|
1159
1238
|
/// \param __b
|
|
1160
1239
|
/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
|
|
1161
1240
|
/// used in the comparison.
|
|
1162
|
-
/// \returns An integer containing the comparison results.
|
|
1163
|
-
/// lower 32-bit values is NaN, 0 is returned.
|
|
1241
|
+
/// \returns An integer containing the comparison results.
|
|
1164
1242
|
static __inline__ int __DEFAULT_FN_ATTRS
|
|
1165
1243
|
_mm_ucomieq_ss(__m128 __a, __m128 __b)
|
|
1166
1244
|
{
|
|
@@ -1169,9 +1247,10 @@ _mm_ucomieq_ss(__m128 __a, __m128 __b)
|
|
|
1169
1247
|
|
|
1170
1248
|
/// Performs an unordered comparison of two 32-bit float values using
|
|
1171
1249
|
/// the low-order bits of both operands to determine if the first operand is
|
|
1172
|
-
/// less than the second operand
|
|
1250
|
+
/// less than the second operand.
|
|
1173
1251
|
///
|
|
1174
|
-
///
|
|
1252
|
+
/// The comparison returns 0 for false, 1 for true. If either value in a
|
|
1253
|
+
/// comparison is NaN, returns 0.
|
|
1175
1254
|
///
|
|
1176
1255
|
/// \headerfile <x86intrin.h>
|
|
1177
1256
|
///
|
|
@@ -1183,8 +1262,7 @@ _mm_ucomieq_ss(__m128 __a, __m128 __b)
|
|
|
1183
1262
|
/// \param __b
|
|
1184
1263
|
/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
|
|
1185
1264
|
/// used in the comparison.
|
|
1186
|
-
/// \returns An integer containing the comparison results.
|
|
1187
|
-
/// lower 32-bit values is NaN, 0 is returned.
|
|
1265
|
+
/// \returns An integer containing the comparison results.
|
|
1188
1266
|
static __inline__ int __DEFAULT_FN_ATTRS
|
|
1189
1267
|
_mm_ucomilt_ss(__m128 __a, __m128 __b)
|
|
1190
1268
|
{
|
|
@@ -1193,10 +1271,10 @@ _mm_ucomilt_ss(__m128 __a, __m128 __b)
|
|
|
1193
1271
|
|
|
1194
1272
|
/// Performs an unordered comparison of two 32-bit float values using
|
|
1195
1273
|
/// the low-order bits of both operands to determine if the first operand is
|
|
1196
|
-
/// less than or equal to the second operand
|
|
1197
|
-
/// comparison.
|
|
1274
|
+
/// less than or equal to the second operand.
|
|
1198
1275
|
///
|
|
1199
|
-
///
|
|
1276
|
+
/// The comparison returns 0 for false, 1 for true. If either value in a
|
|
1277
|
+
/// comparison is NaN, returns 0.
|
|
1200
1278
|
///
|
|
1201
1279
|
/// \headerfile <x86intrin.h>
|
|
1202
1280
|
///
|
|
@@ -1208,8 +1286,7 @@ _mm_ucomilt_ss(__m128 __a, __m128 __b)
|
|
|
1208
1286
|
/// \param __b
|
|
1209
1287
|
/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
|
|
1210
1288
|
/// used in the comparison.
|
|
1211
|
-
/// \returns An integer containing the comparison results.
|
|
1212
|
-
/// lower 32-bit values is NaN, 0 is returned.
|
|
1289
|
+
/// \returns An integer containing the comparison results.
|
|
1213
1290
|
static __inline__ int __DEFAULT_FN_ATTRS
|
|
1214
1291
|
_mm_ucomile_ss(__m128 __a, __m128 __b)
|
|
1215
1292
|
{
|
|
@@ -1218,10 +1295,10 @@ _mm_ucomile_ss(__m128 __a, __m128 __b)
|
|
|
1218
1295
|
|
|
1219
1296
|
/// Performs an unordered comparison of two 32-bit float values using
|
|
1220
1297
|
/// the low-order bits of both operands to determine if the first operand is
|
|
1221
|
-
/// greater than the second operand
|
|
1222
|
-
/// comparison.
|
|
1298
|
+
/// greater than the second operand.
|
|
1223
1299
|
///
|
|
1224
|
-
///
|
|
1300
|
+
/// The comparison returns 0 for false, 1 for true. If either value in a
|
|
1301
|
+
/// comparison is NaN, returns 0.
|
|
1225
1302
|
///
|
|
1226
1303
|
/// \headerfile <x86intrin.h>
|
|
1227
1304
|
///
|
|
@@ -1233,8 +1310,7 @@ _mm_ucomile_ss(__m128 __a, __m128 __b)
|
|
|
1233
1310
|
/// \param __b
|
|
1234
1311
|
/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
|
|
1235
1312
|
/// used in the comparison.
|
|
1236
|
-
/// \returns An integer containing the comparison results.
|
|
1237
|
-
/// lower 32-bit values is NaN, 0 is returned.
|
|
1313
|
+
/// \returns An integer containing the comparison results.
|
|
1238
1314
|
static __inline__ int __DEFAULT_FN_ATTRS
|
|
1239
1315
|
_mm_ucomigt_ss(__m128 __a, __m128 __b)
|
|
1240
1316
|
{
|
|
@@ -1243,10 +1319,10 @@ _mm_ucomigt_ss(__m128 __a, __m128 __b)
|
|
|
1243
1319
|
|
|
1244
1320
|
/// Performs an unordered comparison of two 32-bit float values using
|
|
1245
1321
|
/// the low-order bits of both operands to determine if the first operand is
|
|
1246
|
-
/// greater than or equal to the second operand
|
|
1247
|
-
/// the comparison.
|
|
1322
|
+
/// greater than or equal to the second operand.
|
|
1248
1323
|
///
|
|
1249
|
-
///
|
|
1324
|
+
/// The comparison returns 0 for false, 1 for true. If either value in a
|
|
1325
|
+
/// comparison is NaN, returns 0.
|
|
1250
1326
|
///
|
|
1251
1327
|
/// \headerfile <x86intrin.h>
|
|
1252
1328
|
///
|
|
@@ -1258,8 +1334,7 @@ _mm_ucomigt_ss(__m128 __a, __m128 __b)
|
|
|
1258
1334
|
/// \param __b
|
|
1259
1335
|
/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
|
|
1260
1336
|
/// used in the comparison.
|
|
1261
|
-
/// \returns An integer containing the comparison results.
|
|
1262
|
-
/// lower 32-bit values is NaN, 0 is returned.
|
|
1337
|
+
/// \returns An integer containing the comparison results.
|
|
1263
1338
|
static __inline__ int __DEFAULT_FN_ATTRS
|
|
1264
1339
|
_mm_ucomige_ss(__m128 __a, __m128 __b)
|
|
1265
1340
|
{
|
|
@@ -1267,10 +1342,10 @@ _mm_ucomige_ss(__m128 __a, __m128 __b)
|
|
|
1267
1342
|
}
|
|
1268
1343
|
|
|
1269
1344
|
/// Performs an unordered comparison of two 32-bit float values using
|
|
1270
|
-
/// the low-order bits of both operands to determine inequality
|
|
1271
|
-
/// the result of the comparison.
|
|
1345
|
+
/// the low-order bits of both operands to determine inequality.
|
|
1272
1346
|
///
|
|
1273
|
-
///
|
|
1347
|
+
/// The comparison returns 0 for false, 1 for true. If either value in a
|
|
1348
|
+
/// comparison is NaN, returns 0.
|
|
1274
1349
|
///
|
|
1275
1350
|
/// \headerfile <x86intrin.h>
|
|
1276
1351
|
///
|
|
@@ -1282,8 +1357,7 @@ _mm_ucomige_ss(__m128 __a, __m128 __b)
|
|
|
1282
1357
|
/// \param __b
|
|
1283
1358
|
/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
|
|
1284
1359
|
/// used in the comparison.
|
|
1285
|
-
/// \returns An integer containing the comparison results.
|
|
1286
|
-
/// lower 32-bit values is NaN, 1 is returned.
|
|
1360
|
+
/// \returns An integer containing the comparison results.
|
|
1287
1361
|
static __inline__ int __DEFAULT_FN_ATTRS
|
|
1288
1362
|
_mm_ucomineq_ss(__m128 __a, __m128 __b)
|
|
1289
1363
|
{
|
|
@@ -1293,6 +1367,10 @@ _mm_ucomineq_ss(__m128 __a, __m128 __b)
|
|
|
1293
1367
|
/// Converts a float value contained in the lower 32 bits of a vector of
|
|
1294
1368
|
/// [4 x float] into a 32-bit integer.
|
|
1295
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
|
+
///
|
|
1296
1374
|
/// \headerfile <x86intrin.h>
|
|
1297
1375
|
///
|
|
1298
1376
|
/// This intrinsic corresponds to the <c> VCVTSS2SI / CVTSS2SI </c>
|
|
@@ -1311,6 +1389,10 @@ _mm_cvtss_si32(__m128 __a)
|
|
|
1311
1389
|
/// Converts a float value contained in the lower 32 bits of a vector of
|
|
1312
1390
|
/// [4 x float] into a 32-bit integer.
|
|
1313
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
|
+
///
|
|
1314
1396
|
/// \headerfile <x86intrin.h>
|
|
1315
1397
|
///
|
|
1316
1398
|
/// This intrinsic corresponds to the <c> VCVTSS2SI / CVTSS2SI </c>
|
|
@@ -1331,6 +1413,10 @@ _mm_cvt_ss2si(__m128 __a)
|
|
|
1331
1413
|
/// Converts a float value contained in the lower 32 bits of a vector of
|
|
1332
1414
|
/// [4 x float] into a 64-bit integer.
|
|
1333
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
|
+
///
|
|
1334
1420
|
/// \headerfile <x86intrin.h>
|
|
1335
1421
|
///
|
|
1336
1422
|
/// This intrinsic corresponds to the <c> VCVTSS2SI / CVTSS2SI </c>
|
|
@@ -1351,6 +1437,10 @@ _mm_cvtss_si64(__m128 __a)
|
|
|
1351
1437
|
/// Converts two low-order float values in a 128-bit vector of
|
|
1352
1438
|
/// [4 x float] into a 64-bit vector of [2 x i32].
|
|
1353
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
|
+
///
|
|
1354
1444
|
/// \headerfile <x86intrin.h>
|
|
1355
1445
|
///
|
|
1356
1446
|
/// This intrinsic corresponds to the <c> CVTPS2PI </c> instruction.
|
|
@@ -1367,6 +1457,10 @@ _mm_cvtps_pi32(__m128 __a)
|
|
|
1367
1457
|
/// Converts two low-order float values in a 128-bit vector of
|
|
1368
1458
|
/// [4 x float] into a 64-bit vector of [2 x i32].
|
|
1369
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
|
+
///
|
|
1370
1464
|
/// \headerfile <x86intrin.h>
|
|
1371
1465
|
///
|
|
1372
1466
|
/// This intrinsic corresponds to the <c> CVTPS2PI </c> instruction.
|
|
@@ -1380,9 +1474,12 @@ _mm_cvt_ps2pi(__m128 __a)
|
|
|
1380
1474
|
return _mm_cvtps_pi32(__a);
|
|
1381
1475
|
}
|
|
1382
1476
|
|
|
1383
|
-
/// Converts
|
|
1384
|
-
///
|
|
1385
|
-
///
|
|
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.
|
|
1386
1483
|
///
|
|
1387
1484
|
/// \headerfile <x86intrin.h>
|
|
1388
1485
|
///
|
|
@@ -1399,9 +1496,12 @@ _mm_cvttss_si32(__m128 __a)
|
|
|
1399
1496
|
return __builtin_ia32_cvttss2si((__v4sf)__a);
|
|
1400
1497
|
}
|
|
1401
1498
|
|
|
1402
|
-
/// Converts
|
|
1403
|
-
///
|
|
1404
|
-
///
|
|
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.
|
|
1405
1505
|
///
|
|
1406
1506
|
/// \headerfile <x86intrin.h>
|
|
1407
1507
|
///
|
|
@@ -1419,9 +1519,12 @@ _mm_cvtt_ss2si(__m128 __a)
|
|
|
1419
1519
|
}
|
|
1420
1520
|
|
|
1421
1521
|
#ifdef __x86_64__
|
|
1422
|
-
/// Converts
|
|
1423
|
-
///
|
|
1424
|
-
///
|
|
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.
|
|
1425
1528
|
///
|
|
1426
1529
|
/// \headerfile <x86intrin.h>
|
|
1427
1530
|
///
|
|
@@ -1439,9 +1542,13 @@ _mm_cvttss_si64(__m128 __a)
|
|
|
1439
1542
|
}
|
|
1440
1543
|
#endif
|
|
1441
1544
|
|
|
1442
|
-
/// Converts
|
|
1443
|
-
///
|
|
1444
|
-
///
|
|
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.
|
|
1445
1552
|
///
|
|
1446
1553
|
/// \headerfile <x86intrin.h>
|
|
1447
1554
|
///
|
|
@@ -1457,9 +1564,13 @@ _mm_cvttps_pi32(__m128 __a)
|
|
|
1457
1564
|
return (__m64)__builtin_ia32_cvttps2pi((__v4sf)__a);
|
|
1458
1565
|
}
|
|
1459
1566
|
|
|
1460
|
-
/// Converts
|
|
1461
|
-
///
|
|
1462
|
-
///
|
|
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.
|
|
1463
1574
|
///
|
|
1464
1575
|
/// \headerfile <x86intrin.h>
|
|
1465
1576
|
///
|
|
@@ -1799,7 +1910,7 @@ _mm_undefined_ps(void)
|
|
|
1799
1910
|
static __inline__ __m128 __DEFAULT_FN_ATTRS
|
|
1800
1911
|
_mm_set_ss(float __w)
|
|
1801
1912
|
{
|
|
1802
|
-
return __extension__ (__m128){ __w, 0, 0, 0 };
|
|
1913
|
+
return __extension__ (__m128){ __w, 0.0f, 0.0f, 0.0f };
|
|
1803
1914
|
}
|
|
1804
1915
|
|
|
1805
1916
|
/// Constructs a 128-bit floating-point vector of [4 x float], with each
|
|
@@ -2121,9 +2232,9 @@ _mm_storer_ps(float *__p, __m128 __a)
|
|
|
2121
2232
|
/// \param __a
|
|
2122
2233
|
/// A 64-bit integer containing the value to be stored.
|
|
2123
2234
|
static __inline__ void __DEFAULT_FN_ATTRS_MMX
|
|
2124
|
-
_mm_stream_pi(
|
|
2235
|
+
_mm_stream_pi(void *__p, __m64 __a)
|
|
2125
2236
|
{
|
|
2126
|
-
__builtin_ia32_movntq(__p, __a);
|
|
2237
|
+
__builtin_ia32_movntq((__m64 *)__p, __a);
|
|
2127
2238
|
}
|
|
2128
2239
|
|
|
2129
2240
|
/// Moves packed float values from a 128-bit vector of [4 x float] to a
|
|
@@ -2140,7 +2251,7 @@ _mm_stream_pi(__m64 *__p, __m64 __a)
|
|
|
2140
2251
|
/// \param __a
|
|
2141
2252
|
/// A 128-bit vector of [4 x float] containing the values to be moved.
|
|
2142
2253
|
static __inline__ void __DEFAULT_FN_ATTRS
|
|
2143
|
-
_mm_stream_ps(
|
|
2254
|
+
_mm_stream_ps(void *__p, __m128 __a)
|
|
2144
2255
|
{
|
|
2145
2256
|
__builtin_nontemporal_store((__v4sf)__a, (__v4sf*)__p);
|
|
2146
2257
|
}
|
|
@@ -2936,6 +3047,85 @@ _mm_movemask_ps(__m128 __a)
|
|
|
2936
3047
|
return __builtin_ia32_movmskps((__v4sf)__a);
|
|
2937
3048
|
}
|
|
2938
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)))
|
|
2939
3129
|
|
|
2940
3130
|
#define _MM_ALIGN16 __attribute__((aligned(16)))
|
|
2941
3131
|
|