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

    <tr>
        <th>Summary</th>
        <td>
            [Reassociate] 
        </td>
    </tr>

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

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

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

<pre>
    * test: https://gcc.godbolt.org/z/jnjn3P9s5
```
int mul1(int a, int b, int c, int d, int e, int f) {
  return a*b*c*c*d*e*f;
}

int mul2(int a, int b, int c, int d, int e, int f) {
  int tmp1 = a * b * c;
  int tmp2 = d * e * f;
  return tmp1 * tmp2;
}
```

* gcc:
```
mul2(int, int, int, int, int, int):
        mul     w0, w0, w1
        mul     w3, w3, w4
        mul     w0, w0, w2
        mul w3, w3, w5
        mul     w0, w0, w3
        ret
```

* llvm:
```
mul2(int, int, int, int, int, int): // @mul2(int, int, int, int, int, int)
        mul     w8, w1, w0
 mul     w8, w8, w2
        mul     w8, w8, w3
        mul     w8, w8, w4
        mul     w0, w8, w5
        ret
```

* For the test `mul2`,  we already split the long chain mul into 2 chains because some machine may be have multi-units for mul instruction, but the clang still geneate **a single chain** of mul with register dependence.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysVNuOozAM_RrzYk0FptweeGC24nm1fxCCgYxCqEiY0ezXrwh0rp3LSlO1jpucHNsniYW1qjfMJSS3kJwCsbhhmsv7ru26oJnaxxKoQsfWQVzh4NzZQlwB1UB1L-Whn9pm0u4wzT1Q_ReovjN3Jv5d2ATCE4QVpOH-9X-VcTguOgLKV1cA_cLVaS6OvDjtxeGL0wEVCNntxoQ4s1tms3JUDVAl918LVDFQ1UG8QyE77c7LHOgncljn3HiOEOITClzFaryVT9GfQORBrV9mb7sXoL2ajWzVfDzTlQpey7lbqrCXcj2Ya6DnWvcqPh-KJx7cP-Oi_fgQrqDdRh9gYr-62eM3eOg95hVH8g2O-DVmZveFWlrfjz8oF24PAuEY_vfu69Xlu8ZbjRvmzWL-kXzvMPE3MJ8fVX7tKL6WuZ5mdAP7_oGQbuKknhIfGIWeWbSPaM9aOQ_Uk-lRDkIZn4EybkLaJiw2LMViGe00Mo5CDsqs4yM2jIO453WLUzeLUc5iN807hXXzIp2azBq2WbZAUgvTo3VKa-zZsHD-RQJVAq0yveYt6jaHU7ddTOUGnLlX1vGMLZ_ZtGwkH4K2jNsiLkTAZZSFcXQsooyCoWwTjjijJM2TLqciTbumTVKWR3EMWyqyQJUUUhwRRWGeFDEdkiTPqE2yIkqbJC8kHEMehdKH9c6ufTZQ1i5cZmkUJ4EWDWvruzeR4Qf0i0C0NvO5XPfcNEtv4RhqZZ19ZnHKad_2_7CwdpJKOIbkhMEy6_JNo1duWJqDnEag2j-dbbg5z9MdSwdU-7AWqPZp_QsAAP__osi9FQ">