<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">