Skip to content

Commit 655f5c8

Browse files
committed
[IR] Change fp128 lowering to use f128 functions by default
Switch from emitting long double functions to using `f128`-specific functions. Fixes #44744.
1 parent dafb3a3 commit 655f5c8

File tree

4 files changed

+103
-126
lines changed

4 files changed

+103
-126
lines changed

llvm/include/llvm/IR/RuntimeLibcalls.def

Lines changed: 49 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -113,12 +113,12 @@ HANDLE_LIBCALL(DIV_PPCF128, "__gcc_qdiv")
113113
HANDLE_LIBCALL(REM_F32, "fmodf")
114114
HANDLE_LIBCALL(REM_F64, "fmod")
115115
HANDLE_LIBCALL(REM_F80, "fmodl")
116-
HANDLE_LIBCALL(REM_F128, "fmodl")
116+
HANDLE_LIBCALL(REM_F128, "fmodf128")
117117
HANDLE_LIBCALL(REM_PPCF128, "fmodl")
118118
HANDLE_LIBCALL(FMA_F32, "fmaf")
119119
HANDLE_LIBCALL(FMA_F64, "fma")
120120
HANDLE_LIBCALL(FMA_F80, "fmal")
121-
HANDLE_LIBCALL(FMA_F128, "fmal")
121+
HANDLE_LIBCALL(FMA_F128, "fmaf128")
122122
HANDLE_LIBCALL(FMA_PPCF128, "fmal")
123123
HANDLE_LIBCALL(POWI_F32, "__powisf2")
124124
HANDLE_LIBCALL(POWI_F64, "__powidf2")
@@ -128,117 +128,117 @@ HANDLE_LIBCALL(POWI_PPCF128, "__powitf2")
128128
HANDLE_LIBCALL(SQRT_F32, "sqrtf")
129129
HANDLE_LIBCALL(SQRT_F64, "sqrt")
130130
HANDLE_LIBCALL(SQRT_F80, "sqrtl")
131-
HANDLE_LIBCALL(SQRT_F128, "sqrtl")
131+
HANDLE_LIBCALL(SQRT_F128, "sqrtf128")
132132
HANDLE_LIBCALL(SQRT_PPCF128, "sqrtl")
133133
HANDLE_LIBCALL(CBRT_F32, "cbrtf")
134134
HANDLE_LIBCALL(CBRT_F64, "cbrt")
135135
HANDLE_LIBCALL(CBRT_F80, "cbrtl")
136-
HANDLE_LIBCALL(CBRT_F128, "cbrtl")
136+
HANDLE_LIBCALL(CBRT_F128, "cbrtf128")
137137
HANDLE_LIBCALL(CBRT_PPCF128, "cbrtl")
138138
HANDLE_LIBCALL(LOG_F32, "logf")
139139
HANDLE_LIBCALL(LOG_F64, "log")
140140
HANDLE_LIBCALL(LOG_F80, "logl")
141-
HANDLE_LIBCALL(LOG_F128, "logl")
141+
HANDLE_LIBCALL(LOG_F128, "logf128")
142142
HANDLE_LIBCALL(LOG_PPCF128, "logl")
143143
HANDLE_LIBCALL(LOG_FINITE_F32, "__logf_finite")
144144
HANDLE_LIBCALL(LOG_FINITE_F64, "__log_finite")
145145
HANDLE_LIBCALL(LOG_FINITE_F80, "__logl_finite")
146-
HANDLE_LIBCALL(LOG_FINITE_F128, "__logl_finite")
146+
HANDLE_LIBCALL(LOG_FINITE_F128, "__logf128_finite")
147147
HANDLE_LIBCALL(LOG_FINITE_PPCF128, "__logl_finite")
148148
HANDLE_LIBCALL(LOG2_F32, "log2f")
149149
HANDLE_LIBCALL(LOG2_F64, "log2")
150150
HANDLE_LIBCALL(LOG2_F80, "log2l")
151-
HANDLE_LIBCALL(LOG2_F128, "log2l")
151+
HANDLE_LIBCALL(LOG2_F128, "log2f128")
152152
HANDLE_LIBCALL(LOG2_PPCF128, "log2l")
153153
HANDLE_LIBCALL(LOG2_FINITE_F32, "__log2f_finite")
154154
HANDLE_LIBCALL(LOG2_FINITE_F64, "__log2_finite")
155155
HANDLE_LIBCALL(LOG2_FINITE_F80, "__log2l_finite")
156-
HANDLE_LIBCALL(LOG2_FINITE_F128, "__log2l_finite")
156+
HANDLE_LIBCALL(LOG2_FINITE_F128, "__log2f128_finite")
157157
HANDLE_LIBCALL(LOG2_FINITE_PPCF128, "__log2l_finite")
158158
HANDLE_LIBCALL(LOG10_F32, "log10f")
159159
HANDLE_LIBCALL(LOG10_F64, "log10")
160160
HANDLE_LIBCALL(LOG10_F80, "log10l")
161-
HANDLE_LIBCALL(LOG10_F128, "log10l")
161+
HANDLE_LIBCALL(LOG10_F128, "log10f128")
162162
HANDLE_LIBCALL(LOG10_PPCF128, "log10l")
163163
HANDLE_LIBCALL(LOG10_FINITE_F32, "__log10f_finite")
164164
HANDLE_LIBCALL(LOG10_FINITE_F64, "__log10_finite")
165165
HANDLE_LIBCALL(LOG10_FINITE_F80, "__log10l_finite")
166-
HANDLE_LIBCALL(LOG10_FINITE_F128, "__log10l_finite")
166+
HANDLE_LIBCALL(LOG10_FINITE_F128, "__log10f128_finite")
167167
HANDLE_LIBCALL(LOG10_FINITE_PPCF128, "__log10l_finite")
168168
HANDLE_LIBCALL(EXP_F32, "expf")
169169
HANDLE_LIBCALL(EXP_F64, "exp")
170170
HANDLE_LIBCALL(EXP_F80, "expl")
171-
HANDLE_LIBCALL(EXP_F128, "expl")
171+
HANDLE_LIBCALL(EXP_F128, "expf128")
172172
HANDLE_LIBCALL(EXP_PPCF128, "expl")
173173
HANDLE_LIBCALL(EXP_FINITE_F32, "__expf_finite")
174174
HANDLE_LIBCALL(EXP_FINITE_F64, "__exp_finite")
175175
HANDLE_LIBCALL(EXP_FINITE_F80, "__expl_finite")
176-
HANDLE_LIBCALL(EXP_FINITE_F128, "__expl_finite")
176+
HANDLE_LIBCALL(EXP_FINITE_F128, "__expf128_finite")
177177
HANDLE_LIBCALL(EXP_FINITE_PPCF128, "__expl_finite")
178178
HANDLE_LIBCALL(EXP2_F32, "exp2f")
179179
HANDLE_LIBCALL(EXP2_F64, "exp2")
180180
HANDLE_LIBCALL(EXP2_F80, "exp2l")
181-
HANDLE_LIBCALL(EXP2_F128, "exp2l")
181+
HANDLE_LIBCALL(EXP2_F128, "exp2f128")
182182
HANDLE_LIBCALL(EXP2_PPCF128, "exp2l")
183183
HANDLE_LIBCALL(EXP2_FINITE_F32, "__exp2f_finite")
184184
HANDLE_LIBCALL(EXP2_FINITE_F64, "__exp2_finite")
185185
HANDLE_LIBCALL(EXP2_FINITE_F80, "__exp2l_finite")
186-
HANDLE_LIBCALL(EXP2_FINITE_F128, "__exp2l_finite")
186+
HANDLE_LIBCALL(EXP2_FINITE_F128, "__exp2f128_finite")
187187
HANDLE_LIBCALL(EXP2_FINITE_PPCF128, "__exp2l_finite")
188188
HANDLE_LIBCALL(EXP10_F32, "exp10f")
189189
HANDLE_LIBCALL(EXP10_F64, "exp10")
190190
HANDLE_LIBCALL(EXP10_F80, "exp10l")
191-
HANDLE_LIBCALL(EXP10_F128, "exp10l")
191+
HANDLE_LIBCALL(EXP10_F128, "exp10f128")
192192
HANDLE_LIBCALL(EXP10_PPCF128, "exp10l")
193193
HANDLE_LIBCALL(SIN_F32, "sinf")
194194
HANDLE_LIBCALL(SIN_F64, "sin")
195195
HANDLE_LIBCALL(SIN_F80, "sinl")
196-
HANDLE_LIBCALL(SIN_F128, "sinl")
196+
HANDLE_LIBCALL(SIN_F128, "sinf128")
197197
HANDLE_LIBCALL(SIN_PPCF128, "sinl")
198198
HANDLE_LIBCALL(COS_F32, "cosf")
199199
HANDLE_LIBCALL(COS_F64, "cos")
200200
HANDLE_LIBCALL(COS_F80, "cosl")
201-
HANDLE_LIBCALL(COS_F128, "cosl")
201+
HANDLE_LIBCALL(COS_F128, "cosf128")
202202
HANDLE_LIBCALL(COS_PPCF128, "cosl")
203203
HANDLE_LIBCALL(TAN_F32, "tanf")
204204
HANDLE_LIBCALL(TAN_F64, "tan")
205205
HANDLE_LIBCALL(TAN_F80, "tanl")
206-
HANDLE_LIBCALL(TAN_F128,"tanl")
206+
HANDLE_LIBCALL(TAN_F128,"tanf128")
207207
HANDLE_LIBCALL(TAN_PPCF128, "tanl")
208208
HANDLE_LIBCALL(SINH_F32, "sinhf")
209209
HANDLE_LIBCALL(SINH_F64, "sinh")
210210
HANDLE_LIBCALL(SINH_F80, "sinhl")
211-
HANDLE_LIBCALL(SINH_F128, "sinhl")
211+
HANDLE_LIBCALL(SINH_F128, "sinhf128")
212212
HANDLE_LIBCALL(SINH_PPCF128, "sinhl")
213213
HANDLE_LIBCALL(COSH_F32, "coshf")
214214
HANDLE_LIBCALL(COSH_F64, "cosh")
215215
HANDLE_LIBCALL(COSH_F80, "coshl")
216-
HANDLE_LIBCALL(COSH_F128, "coshl")
216+
HANDLE_LIBCALL(COSH_F128, "coshf128")
217217
HANDLE_LIBCALL(COSH_PPCF128, "coshl")
218218
HANDLE_LIBCALL(TANH_F32, "tanhf")
219219
HANDLE_LIBCALL(TANH_F64, "tanh")
220220
HANDLE_LIBCALL(TANH_F80, "tanhl")
221-
HANDLE_LIBCALL(TANH_F128,"tanhl")
221+
HANDLE_LIBCALL(TANH_F128,"tanhf128")
222222
HANDLE_LIBCALL(TANH_PPCF128, "tanhl")
223223
HANDLE_LIBCALL(ASIN_F32, "asinf")
224224
HANDLE_LIBCALL(ASIN_F64, "asin")
225225
HANDLE_LIBCALL(ASIN_F80, "asinl")
226-
HANDLE_LIBCALL(ASIN_F128, "asinl")
226+
HANDLE_LIBCALL(ASIN_F128, "asinf128")
227227
HANDLE_LIBCALL(ASIN_PPCF128, "asinl")
228228
HANDLE_LIBCALL(ACOS_F32, "acosf")
229229
HANDLE_LIBCALL(ACOS_F64, "acos")
230230
HANDLE_LIBCALL(ACOS_F80, "acosl")
231-
HANDLE_LIBCALL(ACOS_F128, "acosl")
231+
HANDLE_LIBCALL(ACOS_F128, "acosf128")
232232
HANDLE_LIBCALL(ACOS_PPCF128, "acosl")
233233
HANDLE_LIBCALL(ATAN_F32, "atanf")
234234
HANDLE_LIBCALL(ATAN_F64, "atan")
235235
HANDLE_LIBCALL(ATAN_F80, "atanl")
236-
HANDLE_LIBCALL(ATAN_F128,"atanl")
236+
HANDLE_LIBCALL(ATAN_F128,"atanf128")
237237
HANDLE_LIBCALL(ATAN_PPCF128, "atanl")
238238
HANDLE_LIBCALL(ATAN2_F32, "atan2f")
239239
HANDLE_LIBCALL(ATAN2_F64, "atan2")
240240
HANDLE_LIBCALL(ATAN2_F80, "atan2l")
241-
HANDLE_LIBCALL(ATAN2_F128,"atan2l")
241+
HANDLE_LIBCALL(ATAN2_F128,"atan2f128")
242242
HANDLE_LIBCALL(ATAN2_PPCF128, "atan2l")
243243
HANDLE_LIBCALL(SINCOS_F32, nullptr)
244244
HANDLE_LIBCALL(SINCOS_F64, nullptr)
@@ -250,122 +250,122 @@ HANDLE_LIBCALL(SINCOS_STRET_F64, nullptr)
250250
HANDLE_LIBCALL(POW_F32, "powf")
251251
HANDLE_LIBCALL(POW_F64, "pow")
252252
HANDLE_LIBCALL(POW_F80, "powl")
253-
HANDLE_LIBCALL(POW_F128, "powl")
253+
HANDLE_LIBCALL(POW_F128, "powf128")
254254
HANDLE_LIBCALL(POW_PPCF128, "powl")
255255
HANDLE_LIBCALL(POW_FINITE_F32, "__powf_finite")
256256
HANDLE_LIBCALL(POW_FINITE_F64, "__pow_finite")
257257
HANDLE_LIBCALL(POW_FINITE_F80, "__powl_finite")
258-
HANDLE_LIBCALL(POW_FINITE_F128, "__powl_finite")
258+
HANDLE_LIBCALL(POW_FINITE_F128, "__powf128_finite")
259259
HANDLE_LIBCALL(POW_FINITE_PPCF128, "__powl_finite")
260260
HANDLE_LIBCALL(CEIL_F32, "ceilf")
261261
HANDLE_LIBCALL(CEIL_F64, "ceil")
262262
HANDLE_LIBCALL(CEIL_F80, "ceill")
263-
HANDLE_LIBCALL(CEIL_F128, "ceill")
263+
HANDLE_LIBCALL(CEIL_F128, "ceilf128")
264264
HANDLE_LIBCALL(CEIL_PPCF128, "ceill")
265265
HANDLE_LIBCALL(TRUNC_F32, "truncf")
266266
HANDLE_LIBCALL(TRUNC_F64, "trunc")
267267
HANDLE_LIBCALL(TRUNC_F80, "truncl")
268-
HANDLE_LIBCALL(TRUNC_F128, "truncl")
268+
HANDLE_LIBCALL(TRUNC_F128, "truncf128")
269269
HANDLE_LIBCALL(TRUNC_PPCF128, "truncl")
270270
HANDLE_LIBCALL(RINT_F32, "rintf")
271271
HANDLE_LIBCALL(RINT_F64, "rint")
272272
HANDLE_LIBCALL(RINT_F80, "rintl")
273-
HANDLE_LIBCALL(RINT_F128, "rintl")
273+
HANDLE_LIBCALL(RINT_F128, "rintf128")
274274
HANDLE_LIBCALL(RINT_PPCF128, "rintl")
275275
HANDLE_LIBCALL(NEARBYINT_F32, "nearbyintf")
276276
HANDLE_LIBCALL(NEARBYINT_F64, "nearbyint")
277277
HANDLE_LIBCALL(NEARBYINT_F80, "nearbyintl")
278-
HANDLE_LIBCALL(NEARBYINT_F128, "nearbyintl")
278+
HANDLE_LIBCALL(NEARBYINT_F128, "nearbyintf128")
279279
HANDLE_LIBCALL(NEARBYINT_PPCF128, "nearbyintl")
280280
HANDLE_LIBCALL(ROUND_F32, "roundf")
281281
HANDLE_LIBCALL(ROUND_F64, "round")
282282
HANDLE_LIBCALL(ROUND_F80, "roundl")
283-
HANDLE_LIBCALL(ROUND_F128, "roundl")
283+
HANDLE_LIBCALL(ROUND_F128, "roundf128")
284284
HANDLE_LIBCALL(ROUND_PPCF128, "roundl")
285285
HANDLE_LIBCALL(ROUNDEVEN_F32, "roundevenf")
286286
HANDLE_LIBCALL(ROUNDEVEN_F64, "roundeven")
287287
HANDLE_LIBCALL(ROUNDEVEN_F80, "roundevenl")
288-
HANDLE_LIBCALL(ROUNDEVEN_F128, "roundevenl")
288+
HANDLE_LIBCALL(ROUNDEVEN_F128, "roundevenf128")
289289
HANDLE_LIBCALL(ROUNDEVEN_PPCF128, "roundevenl")
290290
HANDLE_LIBCALL(FLOOR_F32, "floorf")
291291
HANDLE_LIBCALL(FLOOR_F64, "floor")
292292
HANDLE_LIBCALL(FLOOR_F80, "floorl")
293-
HANDLE_LIBCALL(FLOOR_F128, "floorl")
293+
HANDLE_LIBCALL(FLOOR_F128, "floorf128")
294294
HANDLE_LIBCALL(FLOOR_PPCF128, "floorl")
295295
HANDLE_LIBCALL(COPYSIGN_F32, "copysignf")
296296
HANDLE_LIBCALL(COPYSIGN_F64, "copysign")
297297
HANDLE_LIBCALL(COPYSIGN_F80, "copysignl")
298-
HANDLE_LIBCALL(COPYSIGN_F128, "copysignl")
298+
HANDLE_LIBCALL(COPYSIGN_F128, "copysignf128")
299299
HANDLE_LIBCALL(COPYSIGN_PPCF128, "copysignl")
300300
HANDLE_LIBCALL(FMIN_F32, "fminf")
301301
HANDLE_LIBCALL(FMIN_F64, "fmin")
302302
HANDLE_LIBCALL(FMIN_F80, "fminl")
303-
HANDLE_LIBCALL(FMIN_F128, "fminl")
303+
HANDLE_LIBCALL(FMIN_F128, "fminf128")
304304
HANDLE_LIBCALL(FMIN_PPCF128, "fminl")
305305
HANDLE_LIBCALL(FMAX_F32, "fmaxf")
306306
HANDLE_LIBCALL(FMAX_F64, "fmax")
307307
HANDLE_LIBCALL(FMAX_F80, "fmaxl")
308-
HANDLE_LIBCALL(FMAX_F128, "fmaxl")
308+
HANDLE_LIBCALL(FMAX_F128, "fmaxf128")
309309
HANDLE_LIBCALL(FMAX_PPCF128, "fmaxl")
310310
HANDLE_LIBCALL(FMINIMUM_F32, "fminimumf")
311311
HANDLE_LIBCALL(FMINIMUM_F64, "fminimum")
312312
HANDLE_LIBCALL(FMINIMUM_F80, "fminimuml")
313-
HANDLE_LIBCALL(FMINIMUM_F128, "fminimuml")
313+
HANDLE_LIBCALL(FMINIMUM_F128, "fminimumf128")
314314
HANDLE_LIBCALL(FMINIMUM_PPCF128, "fminimuml")
315315
HANDLE_LIBCALL(FMAXIMUM_F32, "fmaximumf")
316316
HANDLE_LIBCALL(FMAXIMUM_F64, "fmaximum")
317317
HANDLE_LIBCALL(FMAXIMUM_F80, "fmaximuml")
318-
HANDLE_LIBCALL(FMAXIMUM_F128, "fmaximuml")
318+
HANDLE_LIBCALL(FMAXIMUM_F128, "fmaximumf128")
319319
HANDLE_LIBCALL(FMAXIMUM_PPCF128, "fmaximum_numl")
320320
HANDLE_LIBCALL(FMINIMUMNUM_F32, "fminimum_numf")
321321
HANDLE_LIBCALL(FMINIMUMNUM_F64, "fminimum_num")
322322
HANDLE_LIBCALL(FMINIMUMNUM_F80, "fminimum_numl")
323-
HANDLE_LIBCALL(FMINIMUMNUM_F128, "fminimum_numl")
323+
HANDLE_LIBCALL(FMINIMUMNUM_F128, "fminimum_numf128")
324324
HANDLE_LIBCALL(FMINIMUMNUM_PPCF128, "fminimum_numl")
325325
HANDLE_LIBCALL(FMAXIMUMNUM_F32, "fmaximum_numf")
326326
HANDLE_LIBCALL(FMAXIMUMNUM_F64, "fmaximum_num")
327327
HANDLE_LIBCALL(FMAXIMUMNUM_F80, "fmaximum_numl")
328-
HANDLE_LIBCALL(FMAXIMUMNUM_F128, "fmaximum_numl")
328+
HANDLE_LIBCALL(FMAXIMUMNUM_F128, "fmaximum_numf128")
329329
HANDLE_LIBCALL(FMAXIMUMNUM_PPCF128, "fmaximum_numl")
330330
HANDLE_LIBCALL(LROUND_F32, "lroundf")
331331
HANDLE_LIBCALL(LROUND_F64, "lround")
332332
HANDLE_LIBCALL(LROUND_F80, "lroundl")
333-
HANDLE_LIBCALL(LROUND_F128, "lroundl")
333+
HANDLE_LIBCALL(LROUND_F128, "lroundf128")
334334
HANDLE_LIBCALL(LROUND_PPCF128, "lroundl")
335335
HANDLE_LIBCALL(LLROUND_F32, "llroundf")
336336
HANDLE_LIBCALL(LLROUND_F64, "llround")
337337
HANDLE_LIBCALL(LLROUND_F80, "llroundl")
338-
HANDLE_LIBCALL(LLROUND_F128, "llroundl")
338+
HANDLE_LIBCALL(LLROUND_F128, "llroundf128")
339339
HANDLE_LIBCALL(LLROUND_PPCF128, "llroundl")
340340
HANDLE_LIBCALL(LRINT_F32, "lrintf")
341341
HANDLE_LIBCALL(LRINT_F64, "lrint")
342342
HANDLE_LIBCALL(LRINT_F80, "lrintl")
343-
HANDLE_LIBCALL(LRINT_F128, "lrintl")
343+
HANDLE_LIBCALL(LRINT_F128, "lrintf128")
344344
HANDLE_LIBCALL(LRINT_PPCF128, "lrintl")
345345
HANDLE_LIBCALL(LLRINT_F32, "llrintf")
346346
HANDLE_LIBCALL(LLRINT_F64, "llrint")
347347
HANDLE_LIBCALL(LLRINT_F80, "llrintl")
348-
HANDLE_LIBCALL(LLRINT_F128, "llrintl")
348+
HANDLE_LIBCALL(LLRINT_F128, "llrintf128")
349349
HANDLE_LIBCALL(LLRINT_PPCF128, "llrintl")
350350
HANDLE_LIBCALL(LDEXP_F32, "ldexpf")
351351
HANDLE_LIBCALL(LDEXP_F64, "ldexp")
352352
HANDLE_LIBCALL(LDEXP_F80, "ldexpl")
353-
HANDLE_LIBCALL(LDEXP_F128, "ldexpl")
353+
HANDLE_LIBCALL(LDEXP_F128, "ldexpf128")
354354
HANDLE_LIBCALL(LDEXP_PPCF128, "ldexpl")
355355
HANDLE_LIBCALL(FREXP_F32, "frexpf")
356356
HANDLE_LIBCALL(FREXP_F64, "frexp")
357357
HANDLE_LIBCALL(FREXP_F80, "frexpl")
358-
HANDLE_LIBCALL(FREXP_F128, "frexpl")
358+
HANDLE_LIBCALL(FREXP_F128, "frexpf128")
359359
HANDLE_LIBCALL(FREXP_PPCF128, "frexpl")
360360
HANDLE_LIBCALL(SINCOSPI_F32, "sincospif")
361361
HANDLE_LIBCALL(SINCOSPI_F64, "sincospi")
362362
HANDLE_LIBCALL(SINCOSPI_F80, "sincospil")
363-
HANDLE_LIBCALL(SINCOSPI_F128, "sincospil")
363+
HANDLE_LIBCALL(SINCOSPI_F128, "sincospif128")
364364
HANDLE_LIBCALL(SINCOSPI_PPCF128, "sincospil")
365365
HANDLE_LIBCALL(MODF_F32, "modff")
366366
HANDLE_LIBCALL(MODF_F64, "modf")
367367
HANDLE_LIBCALL(MODF_F80, "modfl")
368-
HANDLE_LIBCALL(MODF_F128, "modfl")
368+
HANDLE_LIBCALL(MODF_F128, "modff128")
369369
HANDLE_LIBCALL(MODF_PPCF128, "modfl")
370370

371371
// Floating point environment

0 commit comments

Comments
 (0)