<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/55986>55986</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            The FP16C intrinsics shall be included in emmintrin.h
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          ackelcn
      </td>
    </tr>
</table>

<pre>
    Intel Intrinsics Guide introduces that the FP16C intrinsics are defined in emmintrin.h:
https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#othertechs=FP16C&expand=1711&ig_expand=2133
__m128 _mm_cvtph_ps (__m128i a)
Synopsis
__m128 _mm_cvtph_ps (__m128i a)
#include <emmintrin.h>
Instruction: vcvtph2ps xmm, xmm
CPUID Flags: FP16C

However, clang defines them in immintrin.h:
#if !defined(_MSC_VER) || __has_feature(modules) || defined(__F16C__)
#include <f16cintrin.h>
#endif

It is strange when programmers read the intel manual, but cannot find them in the said .h file. Indeed, I notice that some programmers have to workaround this issue:
https://github.com/jack603047588/meigen/commit/5c642950a5d0232ebdfa6b460b4515e6e2b8828d

  #if defined(EIGEN_COMP_CLANG)
  #if EIGEN_COMP_CLANG
    // Workaround for clang: The FP16C intrinsics for clang are included by
    // immintrin.h, as opposed to emmintrin.h as suggested by Intel:
    // https://software.intel.com/sites/landingpage/IntrinsicsGuide/#othertechs=FP16C&expand=1711

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyVVNuOnDgQ_Rr6xUoLTEPDAw-zPZdtaZMdbbK7j8jYBTgxdgub7pm_37IhfdFMoqyEDHYVVadOHVdjxGu11w4UwXWU2kpuydMkBRCJB0ZMHCxxPXO4AHl8TvJdsCyubAQioJUaBB4TGIbZuO6j9C6K76P4rnfuYP2OPuJzOp3W0idcczPgnhvcaDdbcJ0sLqBxEYb770uyD53HFY4EvKx7N6iIpgZxjQ54jznuA76I5vByYFrgQbJNEtzLrj4f0SRNZ2R1PSS0IPUw1PzoDn19sCSixXwsCYtoOTt-ftXmYKX9n78hOqm5mpDMKN3dcPMwe-y1dePEnTQaGSLHEI9ivJcBydmFV3DcPf-9vyePinWeyrkPS5Kw_m5OcITR_8MV093SFN86GHxn5Dud8fhahJ4sHfRFfPy8q_95-AtrINF2hw-p657ZugXmphHZLwYUhQJ75XH1e_2IwOr6BxS0Sc7fcIAuoIVsr8vZOyItQW6wFCCnHjQ5jKYb2TDAaMkITAQ9BiWRgemJKV97MznCmdbGEYQkztV7X8ukIOseDQrWKHcBHvKO7Am6Sw6zyq0Z4CZXz45oMuRkxm9sNFOIiuCktRP8QOSddP3ULAr_yvi3PE7jzTYrCtwPILsgcDQP0is_4_mGllnMMhHTlEIjWpY3mzxuNlmSQQ60KQpaiGuGCJm7d-H-Yf_08Kne_fnxud79cffp6dyD765vHBart3vU5N9Lia0ZZyF5tX157-afPcIMWJosSPP6Juy19JBvZok5HIxFZ6T16lZ4i526DqwLgUgYTGeKryLesm1N604I4mauWOm8RvHGoLZ0d2CdnxyXIfe0zJJfmyABwEpUqSjTkq2cdAqqd2mxPVOKNFeM3I7F1TSq6idqUer4_fUBZfgVuFdIEJsvJ8vKIl_1VVrkrOQxi7dxlhdFuYGkyfOmhCylSVbwlWINKFtF2W8RpRpOi14pjbL7laxoTGmcJ0mcpttNui55k4u4bNs0ERwgjjYxDEyqtcexNmO3GqsAqZlwAG1iJa2zFyOzVnYaIKTD-GxyvRkrFD4orlchdRWg_wcCgAoB">