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

    <tr>
        <th>Summary</th>
        <td>
            Missed optimization: Canonicalize scalarized vector fcmp + select back to vector operations
        </td>
    </tr>

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

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

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

<pre>
    ```
define <2 x float> @src(ptr %arg0, ptr %arg1) {
  %v0 = load <2 x float>, ptr %arg1, align 4
  %v1 = load <2 x float>, ptr %arg0, align 4
  %v2 = extractelement <2 x float> %v0, i64 0
 %v3 = extractelement <2 x float> %v1, i64 0
  %v4 = fcmp olt <2 x float> %v0, %v1
  %v5 = extractelement <2 x i1> %v4, i64 0
  %v6 = select i1 %v5, float %v3, float %v2
  %v7 = extractelement <2 x float> %v0, i64 1
  %v8 = extractelement <2 x float> %v1, i64 1
  %v9 = fcmp olt float %v7, %v8
 %v10 = select i1 %v9, float %v8, float %v7
  %v11 = insertelement <2 x float> poison, float %v6, i64 0
  %v12 = insertelement <2 x float> %v11, float %v10, i64 1
  ret <2 x float> %v12
}

define <2 x float> @tgt(ptr %arg0, ptr %arg1) {
  %v0 = load <2 x float>, ptr %arg1, align 4
  %v1 = load <2 x float>, ptr %arg0, align 4
  %v4 = fcmp olt <2 x float> %v0, %v1
 %res = select <2 x i1> %v4, <2 x float> %v1, <2 x float> %v0
  ret <2 x float> %res
}
```
godbolt: https://godbolt.org/z/es6zPaeoK
alive2: https://alive2.llvm.org/ce/z/wTN0Sk

Pattern found in: https://github.com/dtcxzyw/llvm-opt-benchmark/blob/main/bench/pbrt-v4/optimized/lightsamplers.ll
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzUlU1v-jgQxj_N5GIV2ZM3OORA6eayL_pLu1_AcSbBWyeObENbPv0qCZRSKGqPKyEk2_xm5nlmjKX3uu2JCkgfIX2K5C5srSv-IMtTnkWVrd8KyPjxw9c1NbonBvEG2StrjJUB4t8YJNw7BbgcgmOAqXQtB9yw81IArhjkj8DXbNzacwbxEzNW1p-jXYEbJo1ue5a8w-KbML8F4wTTa3BSBTLUUR-uFY0ljrTOEjYqn3bi76LiAp22koltVDcwa-4knPETld7JqMUJTK7TZRPoyZAKTIs52PizKeOs5nKJ72z-Y4fOBS9_bNGZXV1adC4tPxmzPHVC8Bv6VpeClpfL_Dw-8_zo3pP7ssbBam_7yxDZtc8CvxFrTnoZS3wyz9EX3NgXyJ_G73sXMLThf3IBf3wTAFNH_mPDb9-AL8fsdoo7rjvyZ9c__P-1tq6sCRCv2TaEwUO8BiwBy-PBwroWsDwAluSzwy9J9nfga2n0nvCamvcXxuy7I6noiL_88xf_-3lu-i8ZArmeNXbX10z3N9LrsN1VC2U7wLIO6vXw9gJYjoEf7BAeKurVtpPuGbCsjK0Ay07qflyNJ4DlULnwMNpY2iHoTh-oHgPodhu87AZDzi-MieoirlfxSkZUiDyPheApYrQtRF01cSYa2VQrpRRKFE2MeYZVnmWqSiNdIMeMx4JzTJDjol7xupEpT1MlBMoYEk6d1ObdjUh7v6NCLNM045GRFRk_vVOIPb2w6RQQx2fLFZPSatd6SLjRPvhzmKCDoeJP7T3V7ChOBm0nGzeyt71W0ugDMa-kkW6UzvakgnXzkAI-nuaukuqZBXs6tgO5KZSPds4Ud3oyVnNqyODsv6QCYDlp8IDlUeS-wP8CAAD__2rVMJU">