std::experimental::simd<T,Abi>::operator==,!=,<,<=,>,>=
来自cppreference.com
< cpp | experimental | simd | simd
friend simd_mask operator==( const simd& lhs, const simd& rhs ) noexcept; |
(1) | (并行 TS v2) |
friend simd_mask operator!=( const simd& lhs, const simd& rhs ) noexcept; |
(2) | (并行 TS v2) |
friend simd_mask operator<( const simd& lhs, const simd& rhs ) noexcept; |
(3) | (并行 TS v2) |
friend simd_mask operator<=( const simd& lhs, const simd& rhs ) noexcept; |
(4) | (并行 TS v2) |
friend simd_mask operator>( const simd& lhs, const simd& rhs ) noexcept; |
(5) | (并行 TS v2) |
friend simd_mask operator>=( const simd& lhs, const simd& rhs ) noexcept; |
(6) | (并行 TS v2) |
逐元素对操作数的每个对应元素运用给定的比较。
返回一个 simd_mask,使得对于范围 [
0,
size()
)
中的所有 i,第 i 个元素等于:
1) lhs[i] == rhs[i]。
2) lhs[i] != rhs[i]。
3) lhs[i] < rhs[i]。
4) lhs[i] <= rhs[i]。
5) lhs[i] > rhs[i]。
6) lhs[i] >= rhs[i]。
参数
lhs | - | 左操作数 |
rhs | - | 右操作数 |
示例
运行此代码
#include <cassert> #include <iostream> #include <initializer_list> #include <iterator> #include <experimental/simd> namespace stdx = std::experimental; int main() { using V = stdx::fixed_size_simd<int, 4>; using M = stdx::fixed_size_simd_mask<int, 4>; auto assert_equivalence = [](M&& x, std::initializer_list<int>&& y) { for (decltype(M::size()) i{}; i != M::size(); ++i) assert(x[i] == std::cbegin(y)[i]); }; V a{2}, b, c{3}; b[0] = 1, b[1] = 2, b[2] = 3, b[3] = 4; // a == {2, 2, 2, 2} // b == {1, 2, 3, 4} // c == {3, 3, 3, 3} assert_equivalence(a == a, {1, 1, 1, 1}); assert_equivalence(a == b, {0, 1, 0, 0}); assert_equivalence(b == c, {0, 0, 1, 0}); assert_equivalence(a == c, {0, 0, 0, 0}); assert_equivalence(a != a, {0, 0, 0, 0}); assert_equivalence(a != b, {1, 0, 1, 1}); assert_equivalence(b != c, {1, 1, 0, 1}); assert_equivalence(a != c, {1, 1, 1, 1}); assert_equivalence(a < a, {0, 0, 0, 0}); assert_equivalence(a < b, {0, 0, 1, 1}); assert_equivalence(b < c, {1, 1, 0, 0}); assert_equivalence(a < c, {1, 1, 1, 1}); }
参阅
(并行 TS v2) |
归约 simd_mask 为 bool (函数模板) |
(并行 TS v2) |
归约 simd_mask 为 true 值的数量 (函数模板) |
(并行 TS v2) |
归约 simd_mask 为其首个或最末 true 值的索引 (函数模板) |
(并行 TS v2) |
元素类型为 bool 的数据并行类型 (类模板) |