From Jason Turner

[simd.mask.cond]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp67d9jvz_/{from.md → to.md} +34 -0
tmp/tmp67d9jvz_/{from.md → to.md} RENAMED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #### Exposition-only conditional operators <a id="simd.mask.cond">[[simd.mask.cond]]</a>
2
+
3
+ ``` cpp
4
+ friend constexpr basic_mask simd-select-impl(
5
+ const basic_mask& mask, const basic_mask& a, const basic_mask& b) noexcept;
6
+ ```
7
+
8
+ *Returns:* A `basic_mask` object where the iᵗʰ element equals
9
+ `mask[`i`] ? a[`i`] : b[`i`]` for all i in the range of \[`0`,
10
+ `size()`).
11
+
12
+ ``` cpp
13
+ friend constexpr basic_mask
14
+ simd-select-impl(const basic_mask& mask, same_as<bool> auto a, same_as<bool> auto b) noexcept;
15
+ ```
16
+
17
+ *Returns:* A `basic_mask` object where the iᵗʰ element equals
18
+ `mask[`i`] ? a : b` for all i in the range of \[`0`, `size()`).
19
+
20
+ ``` cpp
21
+ template<class T0, class T1>
22
+ friend constexpr vec<see below, size()>
23
+ simd-select-impl(const basic_mask& mask, const T0& a, const T1& b) noexcept;
24
+ ```
25
+
26
+ *Constraints:*
27
+
28
+ - `same_as<T0, T1>` is `true`,
29
+ - `T0` is a vectorizable type, and
30
+ - `sizeof(T0) == Bytes`.
31
+
32
+ *Returns:* A `vec<T0, size()>` object where the iᵗʰ element equals
33
+ `mask[`i`] ? a : b` for all i in the range of \[`0`, `size()`).
34
+