[llvm] [SDAG] Remove most non-canonical libcall handing (PR #171288)

Ulrich Weigand via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 9 02:16:48 PST 2025


================
@@ -2,33 +2,21 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z14 | FileCheck %s
 
-declare double @fmax(double, double)
 declare double @llvm.maxnum.f64(double, double)
 declare <2 x double> @llvm.maxnum.v2f64(<2 x double>, <2 x double>)
 declare double @llvm.maximum.f64(double, double)
 declare <2 x double> @llvm.maximum.v2f64(<2 x double>, <2 x double>)
 
-declare float @fmaxf(float, float)
 declare float @llvm.maxnum.f32(float, float)
 declare <4 x float> @llvm.maxnum.v4f32(<4 x float>, <4 x float>)
 declare float @llvm.maximum.f32(float, float)
 declare <4 x float> @llvm.maximum.v4f32(<4 x float>, <4 x float>)
 
 declare half @llvm.maxnum.f16(half, half)
 
-declare fp128 @fmaxl(fp128, fp128)
 declare fp128 @llvm.maxnum.f128(fp128, fp128)
 declare fp128 @llvm.maximum.f128(fp128, fp128)
 
-; Test the fmax library function.
-define double @f1(double %dummy, double %val1, double %val2) {
----------------
uweigand wrote:

Oh, so this means `fmax` is not actually handled at all anymore?  I thought we'd still get the same codegen, just the handling is now done earlier?   Where does the translation from the library call to the intrinsic happen now, and why don't we see it in this test?

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


More information about the llvm-commits mailing list