Skip to content

Commit 8b50984

Browse files
committed
Introduce [parallel.simd.mask.copy]
1 parent 6be998f commit 8b50984

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

data_parallel_types.html

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2572,6 +2572,55 @@ <h1><ins><code>simd_mask</code> constructors</ins></h1>
25722572
</cxx-remarks>
25732573
</cxx-function>
25742574
</cxx-section>
2575+
2576+
<cxx-section id="parallel.simd.mask.copy">
2577+
<h1><ins><code>simd_mask</code> copy functions</ins></h1>
2578+
2579+
<cxx-function>
2580+
<cxx-signature><ins>template&lt;class Flags&gt; void copy_from(const value_type* mem, Flags);</ins></cxx-signature>
2581+
2582+
<cxx-requires>
2583+
<ins>
2584+
If the template parameter <code>Flags</code> is <code>vector_aligned_tag</code>, <code>mem</code> shall point to storage aligned by <code>memory_alignment_v&lt;simd_mask&gt;</code>. If the template parameter <code>Flags</code> is <code>overaligned_tag&lt;N&gt;</code>, <code>mem</code> shall point to storage aligned by <code>N</code>. If the template parameter <code>Flags</code> is <code>element_aligned_tag</code>, <code>mem</code> shall point to storage aligned by <code>alignof(U)</code>. <code>[mem, mem + size())</code> is a valid range.
2585+
</ins>
2586+
</cxx-requires>
2587+
2588+
<cxx-effects>
2589+
<ins>
2590+
Replaces the elements of the <code>simd_mask</code> object such that the <em>i</em>-th element is replaced with <code>mem[i]</code> for all <code>i</code> &#8714; <code>[0, size())</code>.
2591+
2592+
</ins>
2593+
</cxx-effects>
2594+
2595+
<cxx-remarks>
2596+
<ins>
2597+
This function shall not participate in overload resolution unless <code>is_simd_flag_type_v&lt;Flags&gt;</code> is <code>true</code>.
2598+
</ins>
2599+
</cxx-remarks>
2600+
</cxx-function>
2601+
2602+
<cxx-function>
2603+
<cxx-signature><ins>template&lt;class Flags&gt; void copy_to(value_type* mem, Flags);</ins></cxx-signature>
2604+
2605+
<cxx-requires>
2606+
<ins>
2607+
If the template parameter <code>Flags</code> is <code>vector_aligned_tag</code>, <code>mem</code> shall point to storage aligned by <code>memory_alignment_v&lt;simd_mask&gt;</code>. If the template parameter <code>Flags</code> is <code>overaligned_tag&lt;N&gt;</code>, <code>mem</code> shall point to storage aligned by <code>N</code>. If the template parameter <code>Flags</code> is <code>element_aligned_tag</code>, <code>mem</code> shall point to storage aligned by <code>alignof(U)</code>. <code>[mem, mem + size())</code> is a valid range.
2608+
</ins>
2609+
</cxx-requires>
2610+
2611+
<cxx-effects>
2612+
<ins>
2613+
Copies all <code>simd_mask</code> elements as if <code>mem[i] = operator[](i)</code> for all <code>i</code> &#8714; <code>[0, size())</code>.
2614+
</ins>
2615+
</cxx-effects>
2616+
2617+
<cxx-remarks>
2618+
<ins>
2619+
This function shall not participate in overload resolution unless <code>is_simd_flag_type_v&lt;Flags&gt;</code> is <code>true</code>.
2620+
</ins>
2621+
</cxx-remarks>
2622+
</cxx-function>
2623+
</cxx-section>
25752624
</cxx-section>
25762625
</cxx-section>
25772626
</cxx-clause>

0 commit comments

Comments
 (0)