The following table shows how to create and initialize F32vec objects with the Fvec classes.
Example | Intrinsic | Returns |
---|---|---|
Constructor Declaration | ||
F64vec2 A;
F32vec4 B; F32vec1 C; |
N/A | N/A |
__m128 Object Initialization | ||
F64vec2 A(__m128d mm);
F32vec4 B(__m128 mm); F32vec1 C(__m128 mm); |
N/A | N/A |
Double Initialization | ||
/* Initializes two doubles. */ F64vec2 A(double d0, double d1); F64vec2 A = F64vec2(double d0, double d1); |
_mm_set_pd | A0 := d0; A1 := d1; |
F64vec2 A(double d0);
/* Initializes both return values with the same double precision value */. |
_mm_set1_pd | A0 := d0; A1 := d0; |
Float Initialization | ||
F32vec4 A(float f3, float f2, float f1, float f0); F32vec4 A = F32vec4(float f3, float f2, float f1, float f0); |
_mm_set_ps | A0 := f0; A1 := f1; A2 := f2; A3 := f3; |
F32vec4 A(float f0);
/* Initializes all return values with the same floating point value. */ |
_mm_set1_ps | A0 := f0; A1 := f0; A2 := f0; A3 := f0; |
F32vec4 A(double d0);
/* Initialize all return values with the same double-precision value. */ |
_mm_set1_ps(d) | A0 := d0; A1 := d0; A2 := d0; A3 := d0; |
F32vec1 A(double d0);
/* Initializes the lowest value of A with d0 and the other values with 0.*/ |
_mm_set_ss(d) | A0 := d0; A1 := 0; A2 := 0; A3 := 0; |
F32vec1 B(float f0);
/* Initializes the lowest value of B with f0 and the other values with 0.*/ |
_mm_set_ss | B0 := f0; B1 := 0; B2 := 0; B3 := 0; |
F32vec1 B(int I); /* Initializes the lowest value of B with f0, other values are undefined.*/ |
_mm_cvtsi32_ss | B0 := f0; B1 := {} B2 := {} B3 := {} |