[llvm] [Offload][Conformance] Add exhaustive tests for half-precision math functions (PR #155112)

Leandro Lacerda via llvm-commits llvm-commits at lists.llvm.org
Sat Aug 23 10:02:56 PDT 2025


leandrolcampos wrote:

**Exhaustive Test Results for Half-Precision Math Functions**

<table>
  <thead>
    <tr>
      <th rowspan="2" align="left">Function</th>
      <th rowspan="2" align="center">ULP Tolerance</th>
      <th colspan="4" align="center">Max ULP Distance</th>
    </tr>
    <tr>
      <th align="center">llvm-libm<br>(AMDGPU)</th>
      <th align="center">llvm-libm<br>(CUDA)</th>
      <th align="center">cuda-math<br>(CUDA)</th>
      <th align="center">hip-math<br>(AMDGPU)</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td align="left">acosf16</td>
      <td align="center">2</td>
      <td align="center"></td>
      <td align="center">1</td>
      <td align="center"></td>
      <td align="center"></td>
    </tr>
    <tr>
      <td align="left">acoshf16</td>
      <td align="center">2</td>
      <td align="center"></td>
      <td align="center">0</td>
      <td align="center"></td>
      <td align="center"></td>
    </tr>
    <tr>
      <td align="left">acospif16</td>
      <td align="center">2</td>
      <td align="center"></td>
      <td align="center">0</td>
      <td align="center"></td>
      <td align="center"></td>
    </tr>
    <tr>
      <td align="left">asinf16</td>
      <td align="center">2</td>
      <td align="center"></td>
      <td align="center">0</td>
      <td align="center"></td>
      <td align="center"></td>
    </tr>
    <tr>
      <td align="left">asinhf16</td>
      <td align="center">2</td>
      <td align="center"></td>
      <td align="center">1</td>
      <td align="center"></td>
      <td align="center"></td>
    </tr>
    <tr>
      <td align="left">atanf16</td>
      <td align="center">2</td>
      <td align="center"></td>
      <td align="center">1</td>
      <td align="center"></td>
      <td align="center"></td>
    </tr>
    <tr>
      <td align="left">atanhf16</td>
      <td align="center">2</td>
      <td align="center"></td>
      <td align="center">0</td>
      <td align="center"></td>
      <td align="center"></td>
    </tr>
    <tr>
      <td align="left">cosf16</td>
      <td align="center">2</td>
      <td align="center"></td>
      <td align="center">1</td>
      <td align="center"></td>
      <td align="center"></td>
    </tr>
    <tr>
      <td align="left">coshf16</td>
      <td align="center">2</td>
      <td align="center"></td>
      <td align="center">0</td>
      <td align="center"></td>
      <td align="center"></td>
    </tr>
    <tr>
      <td align="left">cospif16</td>
      <td align="center">2</td>
      <td align="center"></td>
      <td align="center">0</td>
      <td align="center"></td>
      <td align="center"></td>
    </tr>
    <tr>
      <td align="left">expf16</td>
      <td align="center">2</td>
      <td align="center"></td>
      <td align="center">1</td>
      <td align="center"></td>
      <td align="center"></td>
    </tr>
    <tr>
      <td align="left">exp10f16</td>
      <td align="center">2</td>
      <td align="center"></td>
      <td align="center">1</td>
      <td align="center"></td>
      <td align="center"></td>
    </tr>
    <tr>
      <td align="left">exp2f16</td>
      <td align="center">2</td>
      <td align="center"></td>
      <td align="center">1</td>
      <td align="center"></td>
      <td align="center"></td>
    </tr>
    <tr>
      <td align="left">expm1f16</td>
      <td align="center">2</td>
      <td align="center"></td>
      <td align="center">1</td>
      <td align="center"></td>
      <td align="center"></td>
    </tr>
    <tr>
      <td align="left">hypotf16</td>
      <td align="center">2</td>
      <td align="center"></td>
      <td align="center">0</td>
      <td align="center"></td>
      <td align="center"></td>
    </tr>
    <tr>
      <td align="left">logf16</td>
      <td align="center">2</td>
      <td align="center"></td>
      <td align="center">1</td>
      <td align="center"></td>
      <td align="center"></td>
    </tr>
    <tr>
      <td align="left">log10f16</td>
      <td align="center">2</td>
      <td align="center"></td>
      <td align="center">1</td>
      <td align="center"></td>
      <td align="center"></td>
    </tr>
    <tr>
      <td align="left">log2f16</td>
      <td align="center">2</td>
      <td align="center"></td>
      <td align="center">1</td>
      <td align="center"></td>
      <td align="center"></td>
    </tr>
    <tr>
      <td align="left">sinf16</td>
      <td align="center">2</td>
      <td align="center"></td>
      <td align="center">1</td>
      <td align="center"></td>
      <td align="center"></td>
    </tr>
    <tr>
      <td align="left">sinhf16</td>
      <td align="center">2</td>
      <td align="center"></td>
      <td align="center">1</td>
      <td align="center"></td>
      <td align="center"></td>
    </tr>
    <tr>
      <td align="left">sinpif16</td>
      <td align="center">2</td>
      <td align="center"></td>
      <td align="center">0</td>
      <td align="center"></td>
      <td align="center"></td>
    </tr>
    <tr>
      <td align="left">tanf16</td>
      <td align="center">2</td>
      <td align="center"></td>
      <td align="center">1</td>
      <td align="center"></td>
      <td align="center"></td>
    </tr>
    <tr>
      <td align="left">tanhf16</td>
      <td align="center">2</td>
      <td align="center"></td>
      <td align="center">0</td>
      <td align="center"></td>
      <td align="center"></td>
    </tr>
    <tr>
      <td align="left">tanpif16</td>
      <td align="center">2</td>
      <td align="center"></td>
      <td align="center">1</td>
      <td align="center"></td>
      <td align="center"></td>
    </tr>
  </tbody>
</table>

* ULP (Units in the Last Place) tolerances are based on _The Khronos Group, The OpenCL C Specification v3.0.19, Sec. 7.4, Table 69, Khronos Registry [July 10, 2025]_.
* The AMD GPU used for testing is the _gfx1030_.
* The NVIDIA GPU used for testing is the _NVIDIA GeForce RTX 4070 Laptop GPU_.

https://github.com/llvm/llvm-project/pull/155112


More information about the llvm-commits mailing list