<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Compiler Bugs (use different registers) in Intel® oneAPI DPC++/C++ Compiler</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Compiler-Bugs-use-different-registers/m-p/1607575#M3878</link>
    <description>&lt;P&gt;&lt;SPAN&gt;ICC has been deprecated and removed from our oneAPI Base Toolkit since later versions in 2023. Please migrate to using ICX compiler instead.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Tue, 18 Jun 2024 06:03:34 GMT</pubDate>
    <dc:creator>Alex_Y_Intel</dc:creator>
    <dc:date>2024-06-18T06:03:34Z</dc:date>
    <item>
      <title>Compiler Bugs (use different registers)</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Compiler-Bugs-use-different-registers/m-p/1606087#M3856</link>
      <description>&lt;P&gt;I discovered that ICC 2021.10.0 sometimes overlooks memory size directives.&lt;/P&gt;&lt;P&gt;I found that ICC incorrectly checks memory size for 11 opcodes when compiling x64 or x86 binaries.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The buggy code contains 11 opcodes.&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;TABLE border="1" width="100%"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="100%"&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt; bug&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;int&lt;/SPAN&gt;&lt;SPAN&gt; num&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt; &lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;__asm__&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;".intel_syntax noprefix\n"&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;"cldemote ZMMWORD PTR [1]\n"&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;"clflush ZMMWORD PTR [1]\n"&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;"clflushopt ZMMWORD PTR [1]\n"&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;"clwb ZMMWORD PTR [1]\n"&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;"invlpg ZMMWORD PTR [1]\n"&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;"prefetch ZMMWORD PTR [1]\n"&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;"prefetchw ZMMWORD PTR [1]\n"&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;"prefetcht0 ZMMWORD PTR [1]\n"&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;"prefetcht1 ZMMWORD PTR [1]\n"&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;"prefetcht2 ZMMWORD PTR [1]\n"&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;"prefetchwt1 ZMMWORD PTR [1]\n"&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Compiled Code&lt;/P&gt;&lt;TABLE border="1" width="100%"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="100%"&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;bug:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;push&lt;/SPAN&gt; &lt;SPAN&gt;rbp&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;mov&lt;/SPAN&gt; &lt;SPAN&gt;rbp&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;rsp&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;sub&lt;/SPAN&gt; &lt;SPAN&gt;rsp&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;0x10&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;mov&lt;/SPAN&gt; &lt;SPAN&gt;DWORD&lt;/SPAN&gt; &lt;SPAN&gt;PTR&lt;/SPAN&gt; &lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;rbp&lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt;0x10&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;edi&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;cldemote&lt;/SPAN&gt; &lt;SPAN&gt;BYTE&lt;/SPAN&gt; &lt;SPAN&gt;PTR&lt;/SPAN&gt; &lt;SPAN&gt;ds&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;0x1&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;clflush&lt;/SPAN&gt; &lt;SPAN&gt;BYTE&lt;/SPAN&gt; &lt;SPAN&gt;PTR&lt;/SPAN&gt; &lt;SPAN&gt;ds&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;0x1&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;clflushopt&lt;/SPAN&gt; &lt;SPAN&gt;BYTE&lt;/SPAN&gt; &lt;SPAN&gt;PTR&lt;/SPAN&gt; &lt;SPAN&gt;ds&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;0x1&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;clwb&lt;/SPAN&gt; &lt;SPAN&gt;BYTE&lt;/SPAN&gt; &lt;SPAN&gt;PTR&lt;/SPAN&gt; &lt;SPAN&gt;ds&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;0x1&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;invlpg&lt;/SPAN&gt; &lt;SPAN&gt;BYTE&lt;/SPAN&gt; &lt;SPAN&gt;PTR&lt;/SPAN&gt; &lt;SPAN&gt;ds&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;0x1&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;prefetch&lt;/SPAN&gt; &lt;SPAN&gt;BYTE&lt;/SPAN&gt; &lt;SPAN&gt;PTR&lt;/SPAN&gt; &lt;SPAN&gt;ds&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;0x1&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;prefetchw&lt;/SPAN&gt; &lt;SPAN&gt;BYTE&lt;/SPAN&gt; &lt;SPAN&gt;PTR&lt;/SPAN&gt; &lt;SPAN&gt;ds&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;0x1&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;prefetcht0&lt;/SPAN&gt; &lt;SPAN&gt;BYTE&lt;/SPAN&gt; &lt;SPAN&gt;PTR&lt;/SPAN&gt; &lt;SPAN&gt;ds&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;0x1&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;prefetcht1&lt;/SPAN&gt; &lt;SPAN&gt;BYTE&lt;/SPAN&gt; &lt;SPAN&gt;PTR&lt;/SPAN&gt; &lt;SPAN&gt;ds&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;0x1&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;prefetcht2&lt;/SPAN&gt; &lt;SPAN&gt;BYTE&lt;/SPAN&gt; &lt;SPAN&gt;PTR&lt;/SPAN&gt; &lt;SPAN&gt;ds&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;0x1&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;prefetchwt1&lt;/SPAN&gt; &lt;SPAN&gt;BYTE&lt;/SPAN&gt; &lt;SPAN&gt;PTR&lt;/SPAN&gt; &lt;SPAN&gt;ds&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;0x1&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;leave&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;ret&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You can replay the bug through the godbolt.&lt;/P&gt;&lt;P&gt;&lt;A href="https://godbolt.org/z/7Ka8na468" target="_blank" rel="noopener"&gt;https://godbolt.org/z/7Ka8na468&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 12 Jun 2024 09:57:47 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Compiler-Bugs-use-different-registers/m-p/1606087#M3856</guid>
      <dc:creator>hyungseok</dc:creator>
      <dc:date>2024-06-12T09:57:47Z</dc:date>
    </item>
    <item>
      <title>Re: Compiler Bugs (use different registers)</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Compiler-Bugs-use-different-registers/m-p/1607575#M3878</link>
      <description>&lt;P&gt;&lt;SPAN&gt;ICC has been deprecated and removed from our oneAPI Base Toolkit since later versions in 2023. Please migrate to using ICX compiler instead.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 18 Jun 2024 06:03:34 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-DPC-C-Compiler/Compiler-Bugs-use-different-registers/m-p/1607575#M3878</guid>
      <dc:creator>Alex_Y_Intel</dc:creator>
      <dc:date>2024-06-18T06:03:34Z</dc:date>
    </item>
  </channel>
</rss>

