OpenCL 3.1 Specifications v3.1.1 (#183)

* OpenCL 3.1 Specifications v3.1.1

* update index dates
diff --git a/index.php b/index.php
index 2e174b1..2faeac0 100644
--- a/index.php
+++ b/index.php
@@ -33,15 +33,15 @@
 <li> OpenCL API Specification
      (<a href="specs/unified/html/OpenCL_API.html">HTML</a>)
      (<a href="specs/unified/pdf/OpenCL_API.pdf">PDF</a>)
-     (May 5, 2026). </li>
+     (May 22, 2026). </li>
 <li> OpenCL C Language Specification
      (<a href="specs/unified/html/OpenCL_C.html">HTML</a>)
      (<a href="specs/unified/pdf/OpenCL_C.pdf">PDF</a>)
-     (May 5, 2026). </li>
+     (May 22, 2026). </li>
 <li> OpenCL SPIR-V Environment Specification
      (<a href="specs/unified/html/OpenCL_Env.html">HTML</a>)
      (<a href="specs/unified/pdf/OpenCL_Env.pdf">PDF</a>)
-     (May 5, 2026). </li>
+     (May 22, 2026). </li>
 <li> <a href="specs/unified/refpages/man/html/">
      OpenCL Reference Pages.</a> </li>
 <li> <a href="https://www.khronos.org/files/opencl30-reference-guide.pdf" rel="external">
diff --git a/specs/unified/html/OpenCL_API.html b/specs/unified/html/OpenCL_API.html
index 3714b3f..39d431e 100644
--- a/specs/unified/html/OpenCL_API.html
+++ b/specs/unified/html/OpenCL_API.html
@@ -926,9 +926,9 @@
 <h1>The OpenCL<sup>&#8482;</sup> Specification</h1>
 <div class="details">
 <span id="author" class="author">Khronos<sup>&#174;</sup> OpenCL Working Group</span><br>
-<span id="revnumber">version v3.1.0,</span>
-<span id="revdate">Tue, 05 May 2026 04:00:00 +0000</span>
-<br><span id="revremark">from git branch: main commit: 9fff1a87a975972517f5d878b50f6063dc1b731b</span>
+<span id="revnumber">version v3.1.1,</span>
+<span id="revdate">Fri, 22 May 2026 12:00:00 +0000</span>
+<br><span id="revremark">from git branch: main commit: 9f68efb5d80e77a4e437c5b8ee67d581666d044c</span>
 </div>
 <div id="toc" class="toc2">
 <div id="toctitle">Table of Contents</div>
@@ -5398,17 +5398,6 @@
 wait-for-events function on <strong>E</strong> (e.g. the <a href="#clWaitForEvents"><strong>clWaitForEvents</strong></a> function
 called from a host thread), then <strong>E</strong> global-synchronizes-with that
 wait-for-events function call.</p>
-<div class="ulist">
-<ul>
-<li>
-<p>Additionally, for OpenCL 3.1 and newer, <strong>E</strong> global-synchronizes-with an
-API call <strong>X</strong> that observes that the status of <strong>E</strong> is complete.
-For example, if a host thread queries the execution status of <strong>E</strong> using
-<a href="#clGetEventInfo"><strong>clGetEventInfo</strong></a>, and the execution status is <a href="#CL_COMPLETE"><code>CL_COMPLETE</code></a>, then <strong>E</strong>
-global-synchronizes-with that call to <a href="#clGetEventInfo"><strong>clGetEventInfo</strong></a>.</p>
-</li>
-</ul>
-</div>
 </li>
 <li>
 <p>If commands <strong>C</strong> and <strong>C1</strong> are enqueued in that sequence onto an in-order
@@ -33785,14 +33774,25 @@
 </tr>
 </tbody>
 </table>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
 <div class="paragraph">
-<p>Prior to OpenCL 3.1, using <a href="#clGetEventInfo"><strong>clGetEventInfo</strong></a> to determine if a command identified
-by <em>event</em> has finished execution (i.e. whether
-<a href="#CL_EVENT_COMMAND_EXECUTION_STATUS"><code>CL_EVENT_<wbr>COMMAND_<wbr>EXECUTION_<wbr>STATUS</code></a> returns <a href="#CL_COMPLETE"><code>CL_COMPLETE</code></a>) is not a
-synchronization point.
-For OpenCL 3.1 and newer, if a call to <a href="#clGetEventInfo"><strong>clGetEventInfo</strong></a> to determine the
-execution status of a command identified by <em>event</em> returns <a href="#CL_COMPLETE"><code>CL_COMPLETE</code></a>, then
-the call to <a href="#clGetEventInfo"><strong>clGetEventInfo</strong></a> is a synchronization point.</p>
+<p>Calling <a href="#clGetEventInfo"><strong>clGetEventInfo</strong></a> with <a href="#CL_EVENT_COMMAND_EXECUTION_STATUS"><code>CL_EVENT_<wbr>COMMAND_<wbr>EXECUTION_<wbr>STATUS</code></a> is intended to
+be a lightweight query, therefore it is not a host synchronization point.
+This means that <em>event</em> does not global-synchronize-with the call to
+<a href="#clGetEventInfo"><strong>clGetEventInfo</strong></a>, even if the returned execution status is <a href="#CL_COMPLETE"><code>CL_COMPLETE</code></a>.
+When a host synchronization point is needed, call a function that waits on the
+event instead, such as <a href="#clWaitForEvents"><strong>clWaitForEvents</strong></a>.
+Refer to the <a href="#memory-consistency-model">memory consistency model</a> for details.</p>
+</div>
+</td>
+</tr>
+</table>
 </div>
 <div class="paragraph">
 <p><a href="#clGetEventInfo"><strong>clGetEventInfo</strong></a> returns <a href="#CL_SUCCESS"><code>CL_SUCCESS</code></a> if the function is executed
@@ -44338,6 +44338,16 @@
 </li>
 </ul>
 </div>
+<div class="paragraph">
+<p>Changes from <strong>v3.1.0</strong> to <strong>v3.1.1</strong>:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Reverted the change where observing that an event is <a href="#CL_COMPLETE"><code>CL_COMPLETE</code></a> is a synchronization point due to possible performance regressions, see internal issue 386 and <a href="https://github.com/KhronosGroup/OpenCL-Docs/pull/1558">#1558</a>.</p>
+</li>
+</ul>
+</div>
 </div>
 </div>
 </div>
diff --git a/specs/unified/html/OpenCL_C.html b/specs/unified/html/OpenCL_C.html
index 16765ef..420a840 100644
--- a/specs/unified/html/OpenCL_C.html
+++ b/specs/unified/html/OpenCL_C.html
@@ -926,9 +926,9 @@
 <h1>The OpenCL<sup>&#8482;</sup> C Specification</h1>
 <div class="details">
 <span id="author" class="author">Khronos<sup>&#174;</sup> OpenCL Working Group</span><br>
-<span id="revnumber">version v3.1.0,</span>
-<span id="revdate">Tue, 05 May 2026 04:00:00 +0000</span>
-<br><span id="revremark">from git branch: main commit: 9fff1a87a975972517f5d878b50f6063dc1b731b</span>
+<span id="revnumber">version v3.1.1,</span>
+<span id="revdate">Fri, 22 May 2026 12:00:00 +0000</span>
+<br><span id="revremark">from git branch: main commit: 9f68efb5d80e77a4e437c5b8ee67d581666d044c</span>
 </div>
 <div id="toc" class="toc2">
 <div id="toctitle">Table of Contents</div>
@@ -2651,10 +2651,6 @@
 <td class="tableblock halign-left valign-top"><p class="tableblock">A boolean vector.</p></td>
 </tr>
 <tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><code>half<em>n</em></code></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">A 16-bit floating-point vector.</p></td>
-</tr>
-<tr>
 <td class="tableblock halign-left valign-top"><p class="tableblock"><code>quad</code>, <code>quad<em>n</em></code></p></td>
 <td class="tableblock halign-left valign-top"><p class="tableblock">A 128-bit floating-point scalar and vector.</p></td>
 </tr>
@@ -3842,7 +3838,7 @@
 operands if the source operands are vector types.
 Vector source operands of type <code>char<em>n</em></code> and <code>uchar<em>n</em></code> return a
 <code>char<em>n</em></code> result; vector source operands of type
-<code>_half<em>n</em></code> <sup class="footnote">[<a id="_footnoteref_24" class="footnote" href="#_footnotedef_24" title="View footnote.">24</a>]</sup>,
+<code>half<em>n</em></code> <sup class="footnote">[<a id="_footnoteref_24" class="footnote" href="#_footnotedef_24" title="View footnote.">24</a>]</sup>,
 <code>short<em>n</em></code> and
 <code>ushort<em>n</em></code> return a <code>short<em>n</em></code> result; vector source operands of type
 <code>int<em>n</em></code>, <code>uint<em>n</em></code> and <code>float<em>n</em></code> return an <code>int<em>n</em></code> result; vector
@@ -3901,7 +3897,7 @@
 operands if the source operands are vector types.
 Vector source operands of type <code>char<em>n</em></code> and <code>uchar<em>n</em></code> return a
 <code>char<em>n</em></code> result; vector source operands of type
-<code>_half<em>n</em></code> <sup class="footnote">[<a id="_footnoteref_26" class="footnote" href="#_footnotedef_26" title="View footnote.">26</a>]</sup>,
+<code>half<em>n</em></code> <sup class="footnote">[<a id="_footnoteref_26" class="footnote" href="#_footnotedef_26" title="View footnote.">26</a>]</sup>,
 <code>short<em>n</em></code> and
 <code>ushort<em>n</em></code> return a <code>short<em>n</em></code> result; vector source operands of type
 <code>int<em>n</em></code>, <code>uint<em>n</em></code> and <code>float<em>n</em></code> return an <code>int<em>n</em></code> result; vector
@@ -3938,7 +3934,7 @@
 The scalar type is then widened to a vector that has the same number of
 components as the vector operand.
 The operation is done component-wise resulting in the same size vector.
-Vector source operands of type <code>_half<em>n</em></code> <sup class="footnote">[<a id="_footnoteref_27" class="footnote" href="#_footnotedef_27" title="View footnote.">27</a>]</sup>
+Vector source operands of type <code>half<em>n</em></code> <sup class="footnote">[<a id="_footnoteref_27" class="footnote" href="#_footnotedef_27" title="View footnote.">27</a>]</sup>
 return a <code>short<em>n</em></code> result.</p>
 </div>
 </div>
@@ -3973,7 +3969,7 @@
 operands if the source operands are vector types.
 Vector source operands of type <code>char<em>n</em></code> and <code>uchar<em>n</em></code> return a
 <code>char<em>n</em></code> result; vector source operands of type
-<code>_half<em>n</em></code> <sup class="footnote">[<a id="_footnoteref_28" class="footnote" href="#_footnotedef_28" title="View footnote.">28</a>]</sup>,
+<code>half<em>n</em></code> <sup class="footnote">[<a id="_footnoteref_28" class="footnote" href="#_footnotedef_28" title="View footnote.">28</a>]</sup>,
 <code>short<em>n</em></code> and
 <code>ushort<em>n</em></code> return a <code>short<em>n</em></code> result; vector source operands of type
 <code>int<em>n</em></code>, <code>uint<em>n</em></code> and <code>float<em>n</em></code> return an <code>int<em>n</em></code> result; vector
@@ -4004,7 +4000,7 @@
 operands if the source operands are vector types.
 Vector source operands of type <code>char<em>n</em></code> and <code>uchar<em>n</em></code> return a
 <code>char<em>n</em></code> result; vector source operands of type
-<code>_half<em>n</em></code> <sup class="footnote">[<a id="_footnoteref_29" class="footnote" href="#_footnotedef_29" title="View footnote.">29</a>]</sup>,
+<code>half<em>n</em></code> <sup class="footnote">[<a id="_footnoteref_29" class="footnote" href="#_footnotedef_29" title="View footnote.">29</a>]</sup>,
 <code>short<em>n</em></code> and
 <code>ushort<em>n</em></code> return a <code>short<em>n</em></code> result; vector source operands of type
 <code>int<em>n</em></code>, <code>uint<em>n</em></code> and <code>float<em>n</em></code> return an <code>int<em>n</em></code> result; vector
@@ -7313,7 +7309,7 @@
       implementing the uniform region of the global range.</p>
 <p class="tableblock">      Valid values of <em>dimindx</em> are 0 to <strong>get_work_dim</strong>() - 1.
       For other values of <em>dimindx</em>, <strong>get_enqueued_local_size</strong>() returns 1.</p>
-<p class="tableblock">      <a href="#unified-spec">Requires</a> support for OpenCL 2.0 or newer.</p></td>
+<p class="tableblock">      <a href="#unified-spec">Requires</a> support for OpenCL C 2.0 or newer.</p></td>
 </tr>
 <tr>
 <td class="tableblock halign-left valign-top"><p class="tableblock">size_t <strong>get_local_id</strong>(uint <em>dimindx</em>)</p></td>
@@ -7356,7 +7352,7 @@
       <strong>get_global_offset</strong>(2)) * <strong>get_global_size</strong>(1) * <strong>get_global_size</strong>(0))
       +  ((<strong>get_global_id</strong>(1) - <strong>get_global_offset</strong>(1)) * <strong>get_global_size</strong>(0))
       +  (<strong>get_global_id</strong>(0) - <strong>get_global_offset</strong>(0)).</p>
-<p class="tableblock">      <a href="#unified-spec">Requires</a> support for OpenCL 2.0 or newer.</p></td>
+<p class="tableblock">      <a href="#unified-spec">Requires</a> support for OpenCL C 2.0 or newer.</p></td>
 </tr>
 <tr>
 <td class="tableblock halign-left valign-top"><p class="tableblock">size_t <strong>get_local_linear_id</strong>()</p></td>
@@ -7368,7 +7364,7 @@
 <p class="tableblock">      For 3D work-groups, it is computed as</p>
 <p class="tableblock">      (<strong>get_local_id</strong>(2) * <strong>get_local_size</strong>(1) * <strong>get_local_size</strong>(0)) + 
       (<strong>get_local_id</strong>(1) * <strong>get_local_size</strong>(0)) +  <strong>get_local_id</strong>(0).</p>
-<p class="tableblock">      <a href="#unified-spec">Requires</a> support for OpenCL 2.0 or newer.</p></td>
+<p class="tableblock">      <a href="#unified-spec">Requires</a> support for OpenCL C 2.0 or newer.</p></td>
 </tr>
 </tbody>
 </table>
@@ -8966,7 +8962,7 @@
 <td class="tableblock halign-left valign-top"><p class="tableblock">Returns the count of trailing 0-bits in <em>x</em>.
       If <em>x</em> is 0, returns the size in bits of the type of <em>x</em> or component
       type of <em>x</em>, if <em>x</em> is a vector.</p>
-<p class="tableblock">      <a href="#unified-spec">Requires</a> support for OpenCL 2.0 or newer.</p></td>
+<p class="tableblock">      <a href="#unified-spec">Requires</a> support for OpenCL C 2.0 or newer.</p></td>
 </tr>
 <tr>
 <td class="tableblock halign-left valign-top"><p class="tableblock">uint <strong>dot</strong>(uchar4 a, uchar4 b)<br>
@@ -9979,15 +9975,17 @@
 <td class="tableblock halign-left valign-top"><p class="tableblock">int <strong>any</strong>(igentype <em>x</em>)</p>
 <p class="tableblock">Scalar inputs to <strong>any</strong> are <a href="#unified-spec">deprecated by</a> OpenCL C version
 3.0.</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Returns 1 if the most significant bit of <em>x</em> (for scalar inputs) or
-      any component of <em>x</em> (for vector inputs) is set; otherwise returns 0.</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Returns 1 if the most significant bit of <em>x</em> is set for scalar inputs, or
+      if the most significant bit is set for any component of <em>x</em> for vector
+      inputs; otherwise returns 0.</p></td>
 </tr>
 <tr>
 <td class="tableblock halign-left valign-top"><p class="tableblock">int <strong>all</strong>(igentype <em>x</em>)</p>
 <p class="tableblock">Scalar inputs to <strong>all</strong> are <a href="#unified-spec">deprecated by</a> OpenCL C version
 3.0.</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Returns 1 if the most significant bit of <em>x</em> (for scalar inputs) or
-      all components of <em>x</em> (for vector inputs) is set; otherwise returns 0.</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Returns 1 if the most significant bit of <em>x</em> is set for scalar inputs, or
+      if the most significant bit is set for all components of <em>x</em> for vector
+      inputs; otherwise returns 0.</p></td>
 </tr>
 <tr>
 <td class="tableblock halign-left valign-top"></td>
@@ -11089,7 +11087,7 @@
 <i class="fa icon-important" title="Important"></i>
 </td>
 <td class="content">
-The C11 style atomic functions in this sub-section <a href="#unified-spec">require</a> support for OpenCL 2.0 or newer.  However, this statement does not
+The C11 style atomic functions in this sub-section <a href="#unified-spec">require</a> support for OpenCL C 2.0 or newer.  However, this statement does not
 apply to the <a href="#atomic-legacy">"OpenCL C 1.x Legacy Atomics"</a> descriptions at
 the end of this sub-section.
 </td>
@@ -24912,6 +24910,29 @@
 </li>
 </ul>
 </div>
+<div class="paragraph">
+<p>Changes from <strong>v3.1.0</strong> to <strong>v3.1.1</strong>:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Clarified that the version requirements in this OpenCL C spec are for the OpenCL C language version, not the OpenCL device or platform version, see <a href="https://github.com/KhronosGroup/OpenCL-Docs/pull/1557">#1557</a>.</p>
+</li>
+<li>
+<p>Clarified the description of the <code>andy</code> and <code>all</code> functions, see <a href="https://github.com/KhronosGroup/OpenCL-Docs/pull/1561">#1561</a>.</p>
+</li>
+<li>
+<p><code>cl_khr_<wbr>fp16</code></p>
+<div class="ulist">
+<ul>
+<li>
+<p>Clarified that the <code>halfn</code> vector data type is not a reserved data type when the extension is supported, see <a href="https://github.com/KhronosGroup/OpenCL-Docs/pull/1548">#1548</a>.</p>
+</li>
+</ul>
+</div>
+</li>
+</ul>
+</div>
 </div>
 </div>
 </div>
diff --git a/specs/unified/html/OpenCL_Env.html b/specs/unified/html/OpenCL_Env.html
index 2fe19b6..174ffc7 100644
--- a/specs/unified/html/OpenCL_Env.html
+++ b/specs/unified/html/OpenCL_Env.html
@@ -891,9 +891,9 @@
 <h1>The OpenCL<sup>&#8482;</sup> SPIR-V Environment Specification</h1>
 <div class="details">
 <span id="author" class="author">Khronos<sup>&#174;</sup> OpenCL Working Group</span><br>
-<span id="revnumber">version v3.1.0,</span>
-<span id="revdate">Tue, 05 May 2026 04:00:00 +0000</span>
-<br><span id="revremark">from git branch: main commit: 9fff1a87a975972517f5d878b50f6063dc1b731b</span>
+<span id="revnumber">version v3.1.1,</span>
+<span id="revdate">Fri, 22 May 2026 12:00:00 +0000</span>
+<br><span id="revremark">from git branch: main commit: 9f68efb5d80e77a4e437c5b8ee67d581666d044c</span>
 </div>
 <div id="toc" class="toc2">
 <div id="toctitle">Table of Contents</div>
diff --git a/specs/unified/pdf/OpenCL_API.pdf b/specs/unified/pdf/OpenCL_API.pdf
index c85ef43..550894e 100644
--- a/specs/unified/pdf/OpenCL_API.pdf
+++ b/specs/unified/pdf/OpenCL_API.pdf
Binary files differ
diff --git a/specs/unified/pdf/OpenCL_C.pdf b/specs/unified/pdf/OpenCL_C.pdf
index 7b4587a..e7dde2b 100644
--- a/specs/unified/pdf/OpenCL_C.pdf
+++ b/specs/unified/pdf/OpenCL_C.pdf
Binary files differ
diff --git a/specs/unified/pdf/OpenCL_Env.pdf b/specs/unified/pdf/OpenCL_Env.pdf
index 8fed30a..cd8e635 100644
--- a/specs/unified/pdf/OpenCL_Env.pdf
+++ b/specs/unified/pdf/OpenCL_Env.pdf
Binary files differ