Intel® C++ Compiler

Logical Operators

The following table lists the logical operators of the Fvec classes and generic syntax. The logical operators for F32vec1 classes use only the lower 32 bits.

Fvec Logical Operators Return Value Mapping

Compare Operators

The operators described in this section compare the single precision floating-point values of A and B. Comparison between objects of any Fvec class return the same class being compared.

The following table lists the compare operators for the Fvec classes.

Cacheability Support Operators

Stores (non-temporal) the two double-precision, floating-point values of A. Requires a 16-byte aligned address.

void store_nta(double *p, F64vec2 A);
Corresponding intrinsic: _mm_stream_pd

Stores (non-temporal) the four single-precision, floating-point values of A. Requires a 16-byte aligned address.

Debug Operations

The debug operations do not map to any compiler intrinsics for MMX™ technology or Intel® Streaming SIMD Extensions . They are provided for debugging programs only. Use of these operations may result in loss of performance, so you should not use them outside of debugging.

Load and Store Operators

Loads two, double-precision floating-point values, copying them into the two, floating-point values of A. No assumption is made for alignment.

void loadu(F64vec2 A, double *p)
Corresponding intrinsic: _mm_loadu_pd

Stores the two, double-precision floating-point values of A. No assumption is made for alignment.

Unpack Operators

Selects and interleaves the lower, double-precision floating-point values from A and B.

F64vec2 R = unpack_low(F64vec2 A, F64vec2 B);
Corresponding intrinsic: _mm_unpacklo_pd(a, b)

Selects and interleaves the higher, double-precision floating-point values from A and B.

Move Mask Operators

Creates a 2-bit mask from the most significant bits of the two, double-precision floating-point values of A, as follows:

int i = move_mask(F64vec2 A)
i := sign(a1)<<1 | sign(a0)<<0
Corresponding intrinsic: _mm_movemask_pd

Classes Quick Reference

This appendix contains tables listing operators to perform various SIMD operations, corresponding intrinsics to perform those operations, and the classes that implement those operations. The classes listed here belong to the Intel® C++ Class Libraries for SIMD Operations.

In the following tables,

Subscribe to Intel® C++ Compiler