RE: [wwwdocs] gcc-17: Create porting_to.html and document the AVX10.2 scalar SAT CVT rename

"Hu, Lin1" <[email protected]>
Newsgroups gmane.comp.gcc.patches
Message-ID <PH3PPF801A91A7DD6DF89DE2A161926020AA6DE2@PH3PPF801A91A7D.namprd11.prod.outlook.com>
Kindly ping.

> -----Original Message-----
> From: Hu, Lin1 <[email protected]>
> Sent: Monday, August 3, 2026 4:48 PM
> To: [email protected]
> Cc: [email protected]; [email protected]; [email protected];
> [email protected]; Liu, Hongtao <[email protected]>; [email protected]
> Subject: [wwwdocs] gcc-17: Create porting_to.html and document the AVX10.2
> scalar SAT CVT rename
> 
> Hi,
> 
> This follows up on the PR126581 discussion [1].
> 
> r16-9456 renamed the AVX10.2 scalar saturating conversion intrinsics from the
> _ep[i|u]{32,64} suffix to _[i|u]{32,64}.  The old names are kept on the release
> branches but are gone in GCC 17, so document what to use instead.
> 
> Ok for wwwdocs?
> 
> [1] https://gcc.gnu.org/pipermail/gcc-patches/2026-August/726127.html
> 
> BRs,
> Lin
> 
> ---
>  htdocs/gcc-17/changes.html    | 15 ++++--
>  htdocs/gcc-17/porting_to.html | 98 +++++++++++++++++++++++++++++++++++
>  2 files changed, 110 insertions(+), 3 deletions(-)  create mode 100644
> htdocs/gcc-17/porting_to.html
> 
> diff --git a/htdocs/gcc-17/changes.html b/htdocs/gcc-17/changes.html index
> 3c3a24bb..9ae53b86 100644
> --- a/htdocs/gcc-17/changes.html
> +++ b/htdocs/gcc-17/changes.html
> @@ -17,11 +17,9 @@
>  <p>
>  This page is a "brief" summary of some of the huge number of improvements  in
> GCC 17.
> -<!--
>  You may also want to check out our
>  <a href="porting_to.html">Porting to GCC 17</a> page and the  <a
> href="../onlinedocs/index.html#current">full GCC documentation</a>.
> --->
>  </p>
> 
>  <p>Note: GCC 17 has not been released yet, so this document is @@ -186,7
> +184,18 @@ for general information.</p>
>    </li>
>  </ul>
> 
> -<!-- <h3 id="x86">IA-32/x86-64</h3> -->
> +<h3 id="x86">IA-32/x86-64</h3>
> +
> +<ul>
> +  <li>The AVX10.2 scalar saturating conversion intrinsics have been renamed
> +    from the <code>_ep[i|u]{32,64}</code> suffix, which denotes packed
> +    elements, to <code>_[i|u]{32,64}</code>, with <code>_si{32,64}</code>
> +    aliases for the signed variants.  The old names were never accepted by
> +    other x86 compilers.  See the
> +    <a href="porting_to.html#x86_avx10_2_scalar_satcvt">porting guide</a>
> +    for the list of affected intrinsics.
> +  </li>
> +</ul>
> 
>  <!-- <h3 id="mips">MIPS</h3> -->
> 
> diff --git a/htdocs/gcc-17/porting_to.html b/htdocs/gcc-17/porting_to.html new
> file mode 100644 index 00000000..4a65fd52
> --- /dev/null
> +++ b/htdocs/gcc-17/porting_to.html
> @@ -0,0 +1,98 @@
> +<!DOCTYPE html>
> +<html lang="en">
> +
> +<head>
> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
> +<title>Porting to GCC 17</title> <link rel="stylesheet" type="text/css"
> +href="https://gcc.gnu.org/gcc.css">
> +</head>
> +
> +<body>
> +<h1>Porting to GCC 17</h1>
> +
> +<p>
> +The GCC 17 release series differs from previous GCC releases in <a
> +href="changes.html">a number of ways</a>. Some of these are a result of
> +bug fixing, and some old behaviors have been intentionally changed to
> +support new standards, or relaxed in standards-conforming ways to
> +facilitate compilation or run-time performance.
> +</p>
> +
> +<p>
> +Some of these changes are user visible and can cause grief when porting
> +to GCC&nbsp;17. This document is an effort to identify common issues
> +and provide solutions. Let us know if you have suggestions for improvements!
> +</p>
> +
> +<h2 id="x86">IA-32/x86-64 issues</h2>
> +
> +<h3 id="x86_avx10_2_scalar_satcvt">Renamed AVX10.2 scalar saturating
> +conversion intrinsics</h3>
> +
> +<p>The AVX10.2 scalar saturating conversion intrinsics were originally
> +named with an <code>_ep[i|u]{32,64}</code> suffix.  That suffix denotes
> +packed elements, whereas these intrinsics convert a single scalar value
> +and return a scalar integer, so the names did not follow the convention
> +used by scalar conversion intrinsics since AVX-512F.  The old names
> +were never accepted by other x86 compilers.  GCC 17 renames them to use
> +the <code>_[i|u]{32,64}</code> suffix, with <code>_si{32,64}</code>
> +aliases for the signed variants:</p>
> +
> +<table>
> +  <tr>
> +    <th>Removed in GCC 17</th>  <th>Use instead</th>
> +  </tr>
> +  <tr>
> +    <td><code>_mm_cvtts_sd_epi32</code></td>
> +<td><code>_mm_cvtts_sd_i32</code>, <code>_mm_cvtts_sd_si32</code></td>
> +  </tr>
> +  <tr>
> +    <td><code>_mm_cvtts_sd_epu32</code></td>
> +<td><code>_mm_cvtts_sd_u32</code></td>
> +  </tr>
> +  <tr>
> +    <td><code>_mm_cvtts_ss_epi32</code></td>
> +<td><code>_mm_cvtts_ss_i32</code>, <code>_mm_cvtts_ss_si32</code></td>
> +  </tr>
> +  <tr>
> +    <td><code>_mm_cvtts_ss_epu32</code></td>
> +<td><code>_mm_cvtts_ss_u32</code></td>
> +  </tr>
> +  <tr>
> +    <td><code>_mm_cvtts_roundsd_epi32</code></td>
> +<td><code>_mm_cvtts_roundsd_i32</code>,
> +<code>_mm_cvtts_roundsd_si32</code></td>
> +  </tr>
> +  <tr>
> +    <td><code>_mm_cvtts_roundsd_epu32</code></td>
> +<td><code>_mm_cvtts_roundsd_u32</code></td>
> +  </tr>
> +  <tr>
> +    <td><code>_mm_cvtts_roundss_epi32</code></td>
> +<td><code>_mm_cvtts_roundss_i32</code>,
> +<code>_mm_cvtts_roundss_si32</code></td>
> +  </tr>
> +  <tr>
> +    <td><code>_mm_cvtts_roundss_epu32</code></td>
> +<td><code>_mm_cvtts_roundss_u32</code></td>
> +  </tr>
> +  <tr>
> +    <td><code>_mm_cvtts_sd_epi64</code></td>
> +<td><code>_mm_cvtts_sd_i64</code>, <code>_mm_cvtts_sd_si64</code></td>
> +  </tr>
> +  <tr>
> +    <td><code>_mm_cvtts_sd_epu64</code></td>
> +<td><code>_mm_cvtts_sd_u64</code></td>
> +  </tr>
> +  <tr>
> +    <td><code>_mm_cvtts_ss_epi64</code></td>
> +<td><code>_mm_cvtts_ss_i64</code>, <code>_mm_cvtts_ss_si64</code></td>
> +  </tr>
> +  <tr>
> +    <td><code>_mm_cvtts_ss_epu64</code></td>
> +<td><code>_mm_cvtts_ss_u64</code></td>
> +  </tr>
> +  <tr>
> +    <td><code>_mm_cvtts_roundsd_epi64</code></td>
> +<td><code>_mm_cvtts_roundsd_i64</code>,
> +<code>_mm_cvtts_roundsd_si64</code></td>
> +  </tr>
> +  <tr>
> +    <td><code>_mm_cvtts_roundsd_epu64</code></td>
> +<td><code>_mm_cvtts_roundsd_u64</code></td>
> +  </tr>
> +  <tr>
> +    <td><code>_mm_cvtts_roundss_epi64</code></td>
> +<td><code>_mm_cvtts_roundss_i64</code>,
> +<code>_mm_cvtts_roundss_si64</code></td>
> +  </tr>
> +  <tr>
> +    <td><code>_mm_cvtts_roundss_epu64</code></td>
> +<td><code>_mm_cvtts_roundss_u64</code></td>
> +  </tr>
> +</table>
> +
> +<p>The old names are still accepted on the GCC 15 and GCC 16 release
> +branches, so code can be updated before switching to GCC 17.</p>
> +
> +</body>
> +</html>
> --
> 2.31.1
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.