[llvm] [InstCombine] Fold redundant FP clamp selects; relax min-max-pattern bailout in visitFCmp (PR #173452)

Yingwei Zheng via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 25 06:57:53 PST 2025


dtcxzyw wrote:

> INSTCOMBINE ITERATION #1 on test_select_fcmp_sitofp_max
ADD:   ret float %sel
ADD:   %sel = select i1 %cmp, float -1.280000e+02, float %f
ADD:   %cmp = fcmp ole float %f, -1.280000e+02
ADD:   %f = sitofp i8 %x to float
IC: Visiting:   %f = sitofp i8 %x to float
IC: Visiting:   %cmp = fcmp ole float %f, -1.280000e+02
IC: Old =   %cmp = fcmp ole float %f, -1.280000e+02
    New =   <badref> = icmp sle i8 %x, -128
ADD:   %cmp = icmp sle i8 %x, -128
IC: ERASE   %1 = fcmp ole float %f, -1.280000e+02
ADD DEFERRED:   %f = sitofp i8 %x to float
ADD DEFERRED:   %sel = select i1 %cmp, float -1.280000e+02, float %f
ADD:   %f = sitofp i8 %x to float
IC: Visiting:   %f = sitofp i8 %x to float
IC: Visiting:   %cmp = icmp sle i8 %x, -128
IC: Old =   %cmp = icmp sle i8 %x, -128
    New =   <badref> = icmp slt i8 %x, -127
ADD:   %cmp = icmp slt i8 %x, -127
IC: ERASE   %1 = icmp sle i8 %x, -128
IC: Visiting:   %cmp = icmp slt i8 %x, -127
IC: Old =   %cmp = icmp slt i8 %x, -127
    New =   <badref> = icmp eq i8 %x, -128
ADD:   %cmp = icmp eq i8 %x, -128
IC: ERASE   %1 = icmp slt i8 %x, -127
IC: Visiting:   %cmp = icmp eq i8 %x, -128
IC: Visiting:   %sel = select i1 %cmp, float -1.280000e+02, float %f
IC: Replacing   %sel = select i1 %cmp, float -1.280000e+02, float %f
    with   %f = sitofp i8 %x to float

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


More information about the llvm-commits mailing list