[llvm] [InstCombine] Allow folding cross-lane operations into PHIs/selects (PR #164388)

Benjamin Maxwell via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 21 03:35:43 PDT 2025


================
@@ -132,7 +132,7 @@ define float @test_select_frexp_fast_math_select(float %x, i1 %cond) {
 ; CHECK-SAME: float [[X:%.*]], i1 [[COND:%.*]]) {
 ; CHECK-NEXT:    [[FREXP1:%.*]] = call { float, i32 } @llvm.frexp.f32.i32(float [[X]])
 ; CHECK-NEXT:    [[MANTISSA:%.*]] = extractvalue { float, i32 } [[FREXP1]], 0
-; CHECK-NEXT:    [[SELECT_FREXP:%.*]] = select nnan ninf nsz i1 [[COND]], float 5.000000e-01, float [[MANTISSA]]
+; CHECK-NEXT:    [[SELECT_FREXP:%.*]] = select i1 [[COND]], float 5.000000e-01, float [[MANTISSA]]
----------------
MacDue wrote:

The FMFs end up getting dropped here as this was previously handled by `foldFrexpOfSelect`, but now the more general `FoldOpIntoSelect` handles it first. 

https://github.com/llvm/llvm-project/pull/164388


More information about the llvm-commits mailing list