<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Mar 15, 2018 at 4:41 PM, Hal Finkel via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div text="#000000" bgcolor="#FFFFFF"><div><div class="h5">
    <p><br>
    </p>
    <div class="m_-7778141929440463774moz-cite-prefix">On 03/15/2018 10:04 AM, Guillaume
      Chatelet via llvm-dev wrote:<br>
    </div>
    <blockquote type="cite">
      
      <div dir="ltr"><span id="m_-7778141929440463774gmail-m_-3389961447841594895m_-971815685618268078inbox-inbox-docs-internal-guid-1c394e3d-2a21-a2b0-ec96-98e1318e8606" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">
          <div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial"><span><span style="font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">[You can find an easier to read and more complete version of this RFC <a href="https://docs.google.com/document/d/1QidaJMJUyQdRrFKD66vE1_N55whe0coQ3h1GpFzz27M/edit?ts=5aaa84ee#" style="color:rgb(17,85,204)" target="_blank">here</a>.]</span></span></div>
          <br>
        </span>
        <p dir="ltr" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:justify"><span style="font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">
</span></p>
        <p dir="ltr" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:justify"><span style="font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">Knowing instruction scheduling properties (latency, uops) is the basis for all scheduling work done by LLVM.</span></p>
        <br style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">
        <p dir="ltr" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:justify"><span style="font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">Unfortunately, vendors usually release only partial (and sometimes incorrect) information.  Updating the information is painful and requires careful guesswork and analysis. As a result, scheduling information is incomplete for most X86 models (</span><a href="https://bugs.llvm.org/show_bug.cgi?id=32325" style="color:rgb(17,85,204);text-decoration-line:none" target="_blank"><span style="font-size:11pt;font-family:Arial;color:rgb(17,85,204);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;text-decoration-line:underline;vertical-align:baseline;white-space:pre-wrap">this bug</span></a><span style="font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"> tracks some of these issues). The goal of the tool presented here is to automatically (in)validate the TableDef scheduling models. In the long run we envision automatic generation of the models.</span></p>
        <br style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">
        <p dir="ltr" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:justify"><span style="font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">At Google, we have developed a tool that, given an instruction mnemonic, uses the data in `</span><span style="font-size:11pt;font-family:Consolas;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">MCInstrInfo</span><span style="font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">` to generate a code snippet that makes execution as serial (resp. as parallel) as possible so that we can measure the latency (resp. uop decomposition) of the instruction. The code snippet is jitted and executed on the host subtarget. The time taken (resp. resource usage) is measured using hardware performance counters. More details can be found in the ‘implementation’ section of the RFC.</span></p>
        <br style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">
        <p dir="ltr" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:justify"><span style="font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">For people familiar with the work of Agner Fog, this is essentially an automation of the process of building the code snippets using instruction descriptions from LLVM. </span></p>
        <span id="m_-7778141929440463774gmail-m_-3389961447841594895m_-971815685618268078inbox-inbox-docs-internal-guid-1c394e3d-2a21-e904-346a-6decad13442d" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">
          <h1 dir="ltr" style="line-height:1.38;margin-top:20pt;margin-bottom:6pt"><span style="font-size:20pt;font-family:Arial;background-color:transparent;font-weight:400;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">Results</span></h1>
          <ul style="margin-top:0pt;margin-bottom:0pt">
            <li dir="ltr" style="margin-left:15px;list-style-type:disc;font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">Solving </span><a href="https://bugs.llvm.org/show_bug.cgi?id=36084" style="color:rgb(17,85,204);text-decoration-line:none" target="_blank"><span style="font-size:11pt;color:rgb(17,85,204);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;text-decoration-line:underline;vertical-align:baseline;white-space:pre-wrap">this bug</span></a><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"> (sandybridge):</span></p></li>
          </ul>
          <div dir="ltr" style="margin-left:0pt">
            <table style="border:none;border-collapse:collapse">
              <colgroup><col width="682"></colgroup><tbody>
                <tr style="height:0pt">
                  <td style="font-family:arial,sans-serif;margin:0px;border-width:1pt;border-style:solid;border-color:rgb(0,0,0);vertical-align:top;padding:5pt">
                    <p dir="ltr" style="line-height:1.2;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;background-color:transparent;font-weight:700;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">> llvm-exegesis -opcode-name IMUL16rri8 -benchmark-mode latency</font></span></p>
                    <p dir="ltr" style="line-height:1.2;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">---</font></span></p>
                    <p dir="ltr" style="line-height:1.2;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">asm_template:    </font></span></p>
                    <p dir="ltr" style="line-height:1.2;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">  name:            latency IMUL16rri8</font></span></p>
                    <p dir="ltr" style="line-height:1.2;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">cpu_name:        sandybridge</font></span></p>
                    <p dir="ltr" style="line-height:1.2;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">llvm_triple:     x86_64-grtev4-linux-gnu</font></span></p>
                    <p dir="ltr" style="line-height:1.2;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">num_repetitions: 10000</font></span></p>
                    <p dir="ltr" style="line-height:1.2;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">measurements:    </font></span></p>
                    <p dir="ltr" style="line-height:1.2;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">  - { key: latency, value: 4.0115, debug_string: '' }</font></span></p>
                    <p dir="ltr" style="line-height:1.2;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">error:           ''</font></span></p>
                    <p dir="ltr" style="line-height:1.2;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">...</font></span></p>
                  </td>
                </tr>
              </tbody>
            </table>
          </div>
          <br>
          <div dir="ltr" style="margin-left:0pt">
            <table style="border:none;border-collapse:collapse">
              <colgroup><col width="683"></colgroup><tbody>
                <tr style="height:0pt">
                  <td style="font-family:arial,sans-serif;margin:0px;border-width:1pt;border-style:solid;border-color:rgb(0,0,0);vertical-align:top;padding:5pt">
                    <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;background-color:transparent;font-weight:700;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">> llvm-exegesis -opcode-name IMUL16rri8 -benchmark-mode uops</font></span></p>
                    <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">---</font></span></p>
                    <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">asm_template:    </font></span></p>
                    <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">  name:            uops IMUL16rri8</font></span></p>
                    <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">cpu_name:        sandybridge</font></span></p>
                    <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">llvm_triple:     x86_64-grtev4-linux-gnu</font></span></p>
                    <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">num_repetitions: 10000</font></span></p>
                    <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">measurements:    </font></span></p>
                    <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">  - { key: '2', value: 0.5232, debug_string: SBPort0 }</font></span></p>
                    <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">  - { key: '3', value: 1.0039, debug_string: SBPort1 }</font></span></p>
                    <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">  - { key: '4', value: 0.0024, debug_string: SBPort4 }</font></span></p>
                    <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">  - { key: '5', value: 0.3693, debug_string: SBPort5 }</font></span></p>
                    <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">error:           ''</font></span></p>
                    <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">...</font></span></p>
                  </td>
                </tr>
              </tbody>
            </table>
          </div>
          <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;margin-left:36pt"><span style="font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">Running both these commands took ~.2 seconds including printing.</span></p>
          <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;margin-left:36pt"><span style="font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">
</span></p>
          <br>
          <ul style="margin-top:0pt;margin-bottom:0pt">
            <li dir="ltr" style="margin-left:15px;list-style-type:disc;font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><a href="https://docs.google.com/spreadsheets/d/11_vFQRpiPHQ3zLcx8cVYYCqR5N5PCa4IvMyKHwF7Op4/edit?usp=sharing" style="color:rgb(17,85,204);text-decoration-line:none" target="_blank"><span style="font-size:11pt;color:rgb(17,85,204);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;text-decoration-line:underline;vertical-align:baseline;white-space:pre-wrap">List of measured latencies</span></a><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"> for sandybridge, haswell and skylake processors including diffs with LLVM latencies. Excerpt:</span></p></li>
          </ul>
          <br>
          <div dir="ltr" style="margin-left:0pt">
            <table style="border:none;border-collapse:collapse">
              <colgroup><col width="97"><col width="97"><col width="97"><col width="97"><col width="97"><col width="97"><col width="97"></colgroup><tbody>
                <tr style="height:15pt">
                  <td style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt"><br>
                  </td>
                  <td colspan="2" style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                    <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:center"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-weight:700;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">sandybridge</span></p>
                  </td>
                  <td colspan="2" style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                    <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:center"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-weight:700;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">haswell</span></p>
                  </td>
                  <td colspan="2" style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                    <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:center"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-weight:700;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">skylake</span></p>
                  </td>
                </tr>
                <tr style="height:15pt">
                  <td style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                    <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-weight:700;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">mnemonic</span></p>
                  </td>
                  <td style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                    <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:center"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-weight:700;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">llvm-exegesis</span></p>
                  </td>
                  <td style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                    <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:center"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-weight:700;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">TD file</span></p>
                  </td>
                  <td style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                    <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:center"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-weight:700;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">llvm-exegesis</span></p>
                  </td>
                  <td style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                    <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:center"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-weight:700;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">TD file</span></p>
                  </td>
                  <td style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                    <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:center"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-weight:700;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">llvm-exegesis</span></p>
                  </td>
                  <td style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                    <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:center"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-weight:700;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">TD file</span></p>
                  </td>
                </tr>
                <tr style="height:15pt">
                  <td style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                    <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">SHR32r1</span></p>
                  </td>
                  <td style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                    <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:right"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">1.01</span></p>
                  </td>
                  <td style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                    <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:right"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">1.00</span></p>
                  </td>
                  <td style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                    <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:right"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">1.00</span></p>
                  </td>
                  <td style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                    <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:right"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">1.00</span></p>
                  </td>
                  <td style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                    <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:right"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">1.01</span></p>
                  </td>
                  <td style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                    <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:right"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">1.00</span></p>
                  </td>
                </tr>
                <tr style="height:15pt">
                  <td style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                    <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">IMUL16rri</span></p>
                  </td>
                  <td style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                    <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:right"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">4.02</span></p>
                  </td>
                  <td style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                    <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:right"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">3.00</span></p>
                  </td>
                  <td style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                    <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:right"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">4.01</span></p>
                  </td>
                  <td style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                    <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:right"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">3.00</span></p>
                  </td>
                  <td style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                    <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:right"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">4.01</span></p>
                  </td>
                  <td style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                    <p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:right"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">3.00</span></p>
                  </td>
                </tr>
              </tbody>
            </table>
          </div>
          <br>
          <ul style="margin-top:0pt;margin-bottom:0pt">
            <li dir="ltr" style="margin-left:15px;list-style-type:disc;font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">Some instructions have different </span><span style="font-size:11pt;background-color:transparent;font-weight:700;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">implementations</span><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"> depending on which registers are assigned. This is well known for cases like `</span><span style="font-size:11pt;font-family:Consolas;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">xor eax, eax`</span><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"> and `</span><span style="font-size:11pt;font-family:Consolas;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">xor eax, ebx`</span><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">, which emits no uops in the first case (this happens during register renaming, see Agner Fog’s “Register Allocation and Renaming”, in </span><a href="http://www.agner.org/optimize/microarchitecture.pdf" style="color:rgb(17,85,204);text-decoration-line:none" target="_blank"><span style="font-size:11pt;color:rgb(17,85,204);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;text-decoration-line:underline;vertical-align:baseline;white-space:pre-wrap">microarchitecture.pdf</span></a><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">). But we found out that this can go further. For example, </span><span style="font-size:11pt;font-family:Consolas;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">SHLD64rri8</span><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"> takes one cycle and runs on P06 in the </span><span style="font-size:11pt;font-family:Consolas;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">`shld rax, rax, 0x1`</span><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"> case, but takes 3 cycles and runs on P1 in the </span><span style="font-size:11pt;font-family:Consolas;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">`shld rbx, rax, 0x1`</span><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"> case. To the best of our knowledge, this has not yet been described.</span></p></li>
          </ul>
        </span></div>
    </blockquote>
    <br></div></div>
    This is great!<span class=""><br>
    <br>
    <blockquote type="cite">
      <div dir="ltr"><span id="m_-7778141929440463774gmail-m_-3389961447841594895m_-971815685618268078inbox-inbox-docs-internal-guid-1c394e3d-2a21-e904-346a-6decad13442d" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">
          <h1 dir="ltr" style="line-height:1.38;margin-top:20pt;margin-bottom:6pt"><span style="font-size:20pt;font-family:Arial;background-color:transparent;font-weight:400;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">Future Work</span></h1>
          <ul style="margin-top:0pt;margin-bottom:0pt">
            <li dir="ltr" style="margin-left:15px;list-style-type:disc;font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">[easy] Fix Intel Scheduling Models.</span></p></li>
            <li dir="ltr" style="margin-left:15px;list-style-type:disc;font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">[easy] Extend to memory operands.</span></p></li>
            <li dir="ltr" style="margin-left:15px;list-style-type:disc;font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">[easy] Make the tool work reliably for x87 instructions.</span></p></li>
            <li dir="ltr" style="margin-left:15px;list-style-type:disc;font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">[medium] A tool that automatically create patches to TD files.</span></p></li>
            <li dir="ltr" style="margin-left:15px;list-style-type:disc;font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">[medium] Measure the effect of immediate/register values: Some instructions have performance characteristics that depends on the values it operates on. We should explore the value space (0, 1, ~1, 2^{8,16,32,64}, inf, nan, denorm...).</span></p></li>
            <li dir="ltr" style="margin-left:15px;list-style-type:disc;font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">[medium] Measure the effect of changing registers on instruction </span><span style="font-size:11pt;background-color:transparent;font-style:italic;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">implementation</span><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"> (see </span><a href="https://docs.google.com/document/d/1QidaJMJUyQdRrFKD66vE1_N55whe0coQ3h1GpFzz27M/edit?ts=5aaa84ee#bookmark=kix.q6a0imw9qn1n" style="color:rgb(17,85,204);text-decoration-line:none" target="_blank"><span style="font-size:11pt;color:rgb(17,85,204);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;text-decoration-line:underline;vertical-align:baseline;white-space:pre-wrap">results section</span></a><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"> above). Model this in LLVM TD schema.</span></p></li>
            <li dir="ltr" style="margin-left:15px;list-style-type:disc;font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">[hard] Make the tool work for instruction that have side effects (e.g. PUSH/POP, JMP, ...). This might involve extending the TD schema with information on how to setup measurements for specific instructions.</span></p></li>
            <li dir="ltr" style="margin-left:15px;list-style-type:disc;font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">[??] Make the tool work for other CPUs. This mainly depends on the presence of performance counters.</span></p></li>
          </ul>
          <h1 dir="ltr" style="line-height:1.38;margin-top:20pt;margin-bottom:6pt"><span style="font-size:20pt;font-family:Arial;background-color:transparent;font-weight:400;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">Open Questions</span></h1>
          <span style="font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">We depend on </span><a href="http://perfmon2.sourceforge.net/docs_v4.html" style="color:rgb(17,85,204);text-decoration-line:none" target="_blank"><span style="font-size:11pt;font-family:Arial;color:rgb(17,85,204);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;text-decoration-line:underline;vertical-align:baseline;white-space:pre-wrap">libpfm</span></a><span style="font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">. How do we handle the dependency ?</span></span><br class="m_-7778141929440463774gmail-m_-3389961447841594895m_-971815685618268078inbox-inbox-Apple-interchange-newline" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">
      </div>
    </blockquote>
    <br></span>
    Are there options that you have in mind? It's an external
    MIT-licensed dependency. Wouldn't CMake just detect it when it's
    available?<br></div></blockquote><div><br></div><div>That's what we've done for now (see <a href="https://reviews.llvm.org/differential/changeset/?ref=1002469&whitespace=ignore-most">code here</a>). We're not sure what the policy is wrt external deps. Right now if the tool is enabled and libpfm is not on the system, we die with an error message. The other options would be to disable the tool in that case (I'm not sure how to do that). Opinions ?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div text="#000000" bgcolor="#FFFFFF">
    <br>
     -Hal<br>
    <br>
    <blockquote type="cite"><span class="">
      <div dir="ltr">
        <div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><span><span style="font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">
</span></span></div>
        <div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><span><span style="font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">--</span></span></div>
        <div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-size:11pt;font-family:Arial;vertical-align:baseline;white-space:pre-wrap">Guillaume Chatelet (</span><a href="mailto:gchatelet@google.com" style="color:rgb(17,85,204);text-decoration-line:none" target="_blank"><span style="font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;text-decoration-line:underline;vertical-align:baseline;white-space:pre-wrap">gchatelet@google.com</span></a><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-size:11pt;font-family:Arial;vertical-align:baseline;white-space:pre-wrap">), Clement Courbet (</span><a href="mailto:courbet@google.com" style="color:rgb(17,85,204);text-decoration-line:none" target="_blank"><span style="font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;text-decoration-line:underline;vertical-align:baseline;white-space:pre-wrap">courbet@google.com</span></a><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-size:11pt;font-family:Arial;vertical-align:baseline;white-space:pre-wrap">) for the Google Compiler Research Team</span></div>
        <br>
      </div>
      <br>
      <fieldset class="m_-7778141929440463774mimeAttachmentHeader"></fieldset>
      <br>
      </span><pre>______________________________<wbr>_________________
LLVM Developers mailing list
<a class="m_-7778141929440463774moz-txt-link-abbreviated" href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>
<a class="m_-7778141929440463774moz-txt-link-freetext" href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-dev</a><span class="HOEnZb"><font color="#888888">
</font></span></pre><span class="HOEnZb"><font color="#888888">
    </font></span></blockquote><span class="HOEnZb"><font color="#888888">
    <br>
    <pre class="m_-7778141929440463774moz-signature" cols="72">-- 
Hal Finkel
Lead, Compiler Technology and Programming Languages
Leadership Computing Facility
Argonne National Laboratory</pre>
  </font></span></div>

<br>______________________________<wbr>_________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-dev</a><br>
<br></blockquote></div><br></div></div>