SIMD module

operator==

procedure2 overloadsSource

Compares lane by lane: each lane of the result is 1 where the lane of a is equal to the lane of b, else 0. The result has the lane type, not bool; pass it to get_mask to get one bit per lane.

Example↗
a := set(4, cast(s32) 3);
b := a;
b.data[2] = 9;
same := a == b;
assert(same.data[0] == 1 && same.data[2] == 0);
assert(get_mask(a < b) == 4);
assert(get_mask(a == cast(s32) 3) == 15);

For float lanes a NaN is unequal to everything, itself included.

operator== :: (a: $T/SIMD_Array, b: T) -> T

Parameters

b: T

Returns

T
operator== :: (a: $T/SIMD_Array, factor: a.type) -> T

Compares every lane with factor: each lane of the result is 1 where the lane is equal to factor, else 0. The result has the lane type, not bool; pass it to get_mask to get one bit per lane.

Parameters

factor: a.type

Returns

T
Example↗
a := set(4, cast(s32) 3);
assert(get_mask(a == cast(s32) 3) == 15);

See also