<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJylVE2PmzAQ_TVwGQURky8OHDYbVUovlareK2MP4K6xU9skm_31HUySZaWtVKkSIR7zZuaN34Paymv1o1MeetV2Abh2yOUVaoRGaZQJe4Z6CHAEY4MSKCF0CCceAjoDysQwoA8gVdN4sE1SPCX5IcmfuhBOfozYF7ocnhVefKb1uc-sa2nrsFyWxaac0NNdYqMMgioYJKvcO5GwXQzY-nWkcltfE1ZCst1PSRC3ckiKA3AjZ6BnWM4gfUT0g34g8hESa99QDsP9YX_jtT38nWBow78T_Kl9HRkENxjxQEKwoOY0fQR51CiIzPKROyv_aJV_Qtx_SvyjGlyrM7K5GALp9ka_r7vXt6abp36jgW1DSluP4Ds7aDn6Q3BjjRJcU9MdnpHs0MCFEEPt8feAJugriM6OWTSjsOaMLtymr7l4GXd77l8ofw-iP9GZZTC1PAY6AOw9DEarF6RCoeOBqidsK-HCTYglyasBJ0UNHL_fzTp6kvyGzhO5ydfE1yBK8i8hhZXYEl8qwc9WSQK3Dr1X1vjsRqAZywZ10ldlWqivwMcJfKDW8fDvBOPgvXVILQyZQyjqOR_X3qRc2GZxr-CzVFaFLIuSp3ygg3WVs4FmcSPZdHC6-qhXq0I31JmwPQWjare_xcnZX1ScQuX9gJ4W62Kz26Zdtap3Ba9lI9ZFnq-EaPg2L6UoEQssSsZSzWvUvkrW-4QxgxeIJWidrA_p_zNQFcsZXTn1ypeMZWKbr5py12xKxldis6IXCHuu9MOGqatiyXpoPT3Uyof3D0bKSaCWRIyEiWFQQcfgSIf6bPuaXkzaf_elepu8QeJpe1nUaqZGGslWkekfZbiNsQ>53687</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [InstCombine] canonicalize mul by low-bit to select
        </td>
    </tr>

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

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

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

<pre>
    This might already be filed, but I noticed the pattern in the test diffs of:
https://reviews.llvm.org/D119369

define i32 @src(i32 %x, i32 %y) {
  %y0 = and i32 %y, 1
  %m = mul i32 %y0, %x
  ret i32 %m
}

define i32 @tgt(i32 %x, i32 %y) {
  %y_lsb = trunc i32 %y to i1
  %s = select i1 %y_lsb, i32 %x, i32 0
  ret i32 %s
}

https://alive2.llvm.org/ce/z/J8xzfh

One of those should be canonical (even if we subsequently choose to convert trunc back to mask + cmp). 
It seems unlikely that we'd want to create mul in IR, but the reversal might be needed in codegen to avoid regressions.
If multiplying by a constant, it seems even more beneficial to convert to select-of-constants.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyNVE2PmzAQ_TVwGSUCk4Rw4LC7UaX0UqnqvfLHAO4aO7VNstlf3wGSlJW2UiUw_ngz88bvJcKpa_2j0wF63XYRuPHI1RUEQqMNqoS9gBgiHMG6qCUqiB3CiceI3oK20zJiiKB00wRwTVI8JdkhyZ66GE9hXLEv9Hg8a7yEtTHnfu18S1uHPK-KXTWj51Fhoy2CLhgkmyx4mbD9tGDbt5HKbX5NWAVJ-TwHwbSVQVIcgFu1AL1AvoD0E6IfzAORjZAp9w3lMd4P-xuv8vBvgrGN_0_wpwliYhD9YOUDCdGBXtIMEyigQUlk8kfsIv2jVPYJ8fAp8Y9qcKPPyJZiSKThnd6v-7f3pluGfqOGXUNKu4AQOjcYNfpDcuusltxQ0T2ekezQwIUQgwj4e0AbzRVk58Yo6lE6e0Yfb90LLl_H3Z6HV4p_Btmf6M7WMJc8RroA7AMM1uhXpESx45GyJ6xUcOE2TinJqxFnRS0cv9_NOnqS_IY-ELnZ18TXIiryLyGlU9gSX0rBz04rArceQ9DOhvWNQDOmjfpkrtq2IK7Axw5CpNLT5d8JTo33ziOVsGQOqanmsl13k3LlmtU9Q1inqi5UVVQ8jToarJPt85HOXlwvyF_J9vD3evX73CJxMO6yEnqRNB28qT9K2-rYDWItXU-LUeDbZ3Xy7heF0FKHMGCgybbY7cu0q7esxExiKQomqqpURb4VTS73-a6QuOMqNVygCSPLhDGLF5hS0JyYprpmGaMnq2jMGVvLMts01b7ZVYxv5G5DvxTsuTYPv6W-niiJoQ10aHSIf_8ZUk5KtKTWVI7y84Gs52vvIqntRznTqXw90f8DVfB32w">