Skip to content

Commit a2791cb

Browse files
committed
[TTI] Treat *l (long double) and *f128 (_Float128) libcalls the same
As noted in the preexisting FIXME above this hunk, the logic in this function is not always accurate. However, the logic for `long double` and `_Float128` should be approximately the same for these functions (almost everything requiring a libcall), so it makes sense to treat them the same. This is meant to reduce churn in cases where `*l` and `*f128` lowerings call to the same symbol so can be used interchangeably.
1 parent 9de657a commit a2791cb

File tree

1 file changed

+19
-18
lines changed

1 file changed

+19
-18
lines changed

llvm/include/llvm/Analysis/TargetTransformInfoImpl.h

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -189,27 +189,28 @@ class TargetTransformInfoImplBase {
189189

190190
// These will all likely lower to a single selection DAG node.
191191
// clang-format off
192-
if (Name == "copysign" || Name == "copysignf" || Name == "copysignl" ||
193-
Name == "fabs" || Name == "fabsf" || Name == "fabsl" ||
194-
Name == "fmin" || Name == "fminf" || Name == "fminl" ||
195-
Name == "fmax" || Name == "fmaxf" || Name == "fmaxl" ||
196-
Name == "sin" || Name == "sinf" || Name == "sinl" ||
197-
Name == "cos" || Name == "cosf" || Name == "cosl" ||
198-
Name == "tan" || Name == "tanf" || Name == "tanl" ||
199-
Name == "asin" || Name == "asinf" || Name == "asinl" ||
200-
Name == "acos" || Name == "acosf" || Name == "acosl" ||
201-
Name == "atan" || Name == "atanf" || Name == "atanl" ||
202-
Name == "atan2" || Name == "atan2f" || Name == "atan2l"||
203-
Name == "sinh" || Name == "sinhf" || Name == "sinhl" ||
204-
Name == "cosh" || Name == "coshf" || Name == "coshl" ||
205-
Name == "tanh" || Name == "tanhf" || Name == "tanhl" ||
206-
Name == "sqrt" || Name == "sqrtf" || Name == "sqrtl" ||
207-
Name == "exp10" || Name == "exp10l" || Name == "exp10f")
192+
if (Name == "copysign" || Name == "copysignf" || Name == "copysignl" || Name == "copysignl128" ||
193+
Name == "fabs" || Name == "fabsf" || Name == "fabsl" || Name == "fabsl128" ||
194+
Name == "fmin" || Name == "fminf" || Name == "fminl" || Name == "fminl128" ||
195+
Name == "fmax" || Name == "fmaxf" || Name == "fmaxl" || Name == "fmaxl128" ||
196+
Name == "sin" || Name == "sinf" || Name == "sinl" || Name == "sinl128" ||
197+
Name == "cos" || Name == "cosf" || Name == "cosl" || Name == "cosl128" ||
198+
Name == "tan" || Name == "tanf" || Name == "tanl" || Name == "tanl128" ||
199+
Name == "asin" || Name == "asinf" || Name == "asinl" || Name == "asinl128" ||
200+
Name == "acos" || Name == "acosf" || Name == "acosl" || Name == "acosl128" ||
201+
Name == "atan" || Name == "atanf" || Name == "atanl" || Name == "atanl128" ||
202+
Name == "atan2" || Name == "atan2f" || Name == "atan2l"|| Name == "atan2128l"||
203+
Name == "sinh" || Name == "sinhf" || Name == "sinhl" || Name == "sinhl128" ||
204+
Name == "cosh" || Name == "coshf" || Name == "coshl" || Name == "coshl128" ||
205+
Name == "tanh" || Name == "tanhf" || Name == "tanhl" || Name == "tanhl128" ||
206+
Name == "sqrt" || Name == "sqrtf" || Name == "sqrtl" || Name == "sqrtl128" ||
207+
Name == "exp10" || Name == "exp10f" || Name == "exp10l"|| Name == "exp10f128")
208208
return false;
209209
// clang-format on
210210
// These are all likely to be optimized into something smaller.
211-
if (Name == "pow" || Name == "powf" || Name == "powl" || Name == "exp2" ||
212-
Name == "exp2l" || Name == "exp2f" || Name == "floor" ||
211+
if (Name == "pow" || Name == "powf" || Name == "powl" ||
212+
Name == "powf128" || Name == "exp2" || Name == "exp2f" ||
213+
Name == "exp2l" || Name == "powf128" || Name == "floor" ||
213214
Name == "floorf" || Name == "ceil" || Name == "round" ||
214215
Name == "ffs" || Name == "ffsl" || Name == "abs" || Name == "labs" ||
215216
Name == "llabs")

0 commit comments

Comments
 (0)