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

    <tr>
        <th>Summary</th>
        <td>
            [X86] Optimize umax(X,1) vector cases
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            backend:X86
      </td>
    </tr>

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

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

<pre>
    Branched from #60374

https://alive2.llvm.org/ce/z/7j6G_X

```ll
define <4 x i32> @src(<4 x i32> %X) {
  %add = umax <4 x i32> %X, { 1, 1, 1, 1 }
  ret <4 x i32> %add
}
=>
define <4 x i32> @tgt(<4 x i32> %X) {
  %F = freeze <4 x i32> %X
  %cmp = icmp eq <4 x i32> %F, { 0, 0, 0, 0 }
  %ext = sext <4 x i1> %cmp to <4 x i32>
  %res = sub <4 x i32> %F, %ext
  ret <4 x i32> %res
}
Transformation seems to be correct!
```

```asm
src:                                    # @src
        movdqa  .LCPI0_0(%rip), %xmm1
        pxor    %xmm0, %xmm1
        pcmpgtd .LCPI0_1(%rip), %xmm1
        pand    %xmm1, %xmm0
        paddd   %xmm1, %xmm0
        pcmpeqd %xmm1, %xmm1
 psubd   %xmm1, %xmm0
        retq
tgt: # @tgt
        pxor    %xmm1, %xmm1
        pcmpeqd %xmm0, %xmm1
        psubd   %xmm1, %xmm0
        retq
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUVF9v2j4U_TQ3L1aRfZ0_8JAHWpqfftqkTdse-lY5sQF3cRJsB7F--skJFAotYhEy5nLO8fHlcoRzetUolUNyD8kiEr1ftzb_8eWnNm0Tla38k99b0VRrJcnStoYA8pTyLAa6ADof17X3nQM-BywAC1HrrcJJXW_NpLUrwKJSgMUrYJG9pP89P51SIaXjq67HglRL3SgC_CEmO6I5An8kEFNnK8DpWRmTJ8AZgex-JJNQElIS4AvSG7E71xkID4FAWNicLASyxUHFKn_JFFLuPR-AwBfAH6_79it_o-9icL20Sr1e6ATCEVmZbsDqsFGbS3BxuCQNm5Pl9JKAidr5QciNm1GF7UWCuG_fi59wrXIjty8_MzAccLWnVrmznv6yonHL1hrhddsQp5RxwUapSNVaqyoPyM5m58OBEs6MlTA5fE5ueAD5YdT2psfHtFu5EYRMvj58_58-0_CDYmJ1BzjbX3RnDHtP6natHUXDl_RzXGW6lZcHcXabuGjkUZwdcfQcJ6W8BVeZTm3kJe5wbuf68hYhq_xmrITB5_NDT8OnK-354MQPnV1p4z8bfJuUSOZczvhMRCpnaTZlOOVpEq3zSi4xFZzFZZZhmjA-zegsmfFSsbisZjLSOVLklNOUTeOUJpMkLRXGjCWxXFLGM4ipMkLXb2kYaed6lacMMYlqUaraDdmLWIrqt2ok8PnTNAXEEMc2D7y7sl85iGmtnXdHJa99PQR3wCcL8q3z2uhXNQQf4DQkHQsxs1WVby2phFMu6m2dv8_rlfbrvpxUrQEsgvr-7a6z7cvwfysG0w6wGHz_DQAA__-6G5sO">