13
13
; We test on x86 and x64 which have 80-bit ld, as well as aarch64 (ld == f128),
14
14
; riscv32 (ld == f64), and s380x (ld == f128 with different alignment from
15
15
; x64/aarch64 f128).
16
- ;
17
- ; FIXME: these emit calls to long double functions but should emit f128 calls
18
16
19
17
define fp128 @test_cbrtf128 (fp128 %a ) {
20
18
; CHECK-LABEL: test_cbrtf128:
@@ -33,9 +31,9 @@ declare fp128 @llvm.cbrt.f128(fp128)
33
31
34
32
define fp128 @test_ceilf128 (fp128 %a ) {
35
33
; CHECK-LABEL: test_ceilf128:
36
- ; CHECK-AARCH64: b ceilf128
37
- ; CHECK-RISCV32: call ceilf128 @plt
38
- ; CHECK-S390X: brasl {{%.*}} ceilf128 @PLT
34
+ ; CHECK-AARCH64: b ceill
35
+ ; CHECK-RISCV32: call ceill @plt
36
+ ; CHECK-S390X: brasl {{%.*}} ceill @PLT
39
37
; CHECK-X64: jmp ceilf128@PLT
40
38
; CHECK-X86: calll ceilf128
41
39
start:
@@ -138,9 +136,9 @@ declare fp128 @llvm.copysign.f128(fp128, fp128)
138
136
139
137
define fp128 @test_cosf128 (fp128 %a ) {
140
138
; CHECK-LABEL: test_cosf128:
141
- ; CHECK-AARCH64: b cosf128
142
- ; CHECK-RISCV32: call cosf128 @plt
143
- ; CHECK-S390X: brasl {{%.*}} cosf128 @PLT
139
+ ; CHECK-AARCH64: b cosl
140
+ ; CHECK-RISCV32: call cosl @plt
141
+ ; CHECK-S390X: brasl {{%.*}} cosl @PLT
144
142
; CHECK-X64: jmp cosf128@PLT
145
143
; CHECK-X86: calll cosf128
146
144
start:
@@ -153,9 +151,9 @@ declare fp128 @llvm.cos.f128(fp128)
153
151
154
152
define fp128 @test_exp2f128 (fp128 %a ) {
155
153
; CHECK-LABEL: test_exp2f128:
156
- ; CHECK-AARCH64: b exp2f128
157
- ; CHECK-RISCV32: call exp2f128 @plt
158
- ; CHECK-S390X: brasl {{%.*}} exp2f128 @PLT
154
+ ; CHECK-AARCH64: b exp2l
155
+ ; CHECK-RISCV32: call exp2l @plt
156
+ ; CHECK-S390X: brasl {{%.*}} exp2l @PLT
159
157
; CHECK-X64: jmp exp2f128@PLT
160
158
; CHECK-X86: calll exp2f128
161
159
start:
@@ -183,9 +181,9 @@ declare fp128 @llvm.__exp2f128_finite.f128(fp128)
183
181
184
182
define fp128 @test_expf128 (fp128 %a ) {
185
183
; CHECK-LABEL: test_expf128:
186
- ; CHECK-AARCH64: b expf128
187
- ; CHECK-RISCV32: call expf128 @plt
188
- ; CHECK-S390X: brasl {{%.*}} expf128 @PLT
184
+ ; CHECK-AARCH64: b expl
185
+ ; CHECK-RISCV32: call expl @plt
186
+ ; CHECK-S390X: brasl {{%.*}} expl @PLT
189
187
; CHECK-X64: jmp expf128@PLT
190
188
; CHECK-X86: calll expf128
191
189
start:
@@ -213,9 +211,9 @@ declare fp128 @llvm.__expf128_finite.f128(fp128)
213
211
214
212
define fp128 @test_floorf128 (fp128 %a ) {
215
213
; CHECK-LABEL: test_floorf128:
216
- ; CHECK-AARCH64: b floorf128
217
- ; CHECK-RISCV32: call floorf128 @plt
218
- ; CHECK-S390X: brasl {{%.*}} floorf128 @PLT
214
+ ; CHECK-AARCH64: b floorl
215
+ ; CHECK-RISCV32: call floorl @plt
216
+ ; CHECK-S390X: brasl {{%.*}} floorl @PLT
219
217
; CHECK-X64: jmp floorf128@PLT
220
218
; CHECK-X86: calll floorf128
221
219
start:
@@ -228,9 +226,9 @@ declare fp128 @llvm.floor.f128(fp128)
228
226
229
227
define fp128 @test_fmaf128 (fp128 %a , fp128 %b , fp128 %c ) {
230
228
; CHECK-LABEL: test_fmaf128:
231
- ; CHECK-AARCH64: b fmaf128
232
- ; CHECK-RISCV32: call fmaf128 @plt
233
- ; CHECK-S390X: brasl {{%.*}} fmaf128 @PLT
229
+ ; CHECK-AARCH64: b fmal
230
+ ; CHECK-RISCV32: call fmal @plt
231
+ ; CHECK-S390X: brasl {{%.*}} fmal @PLT
234
232
; CHECK-X64: jmp fmaf128@PLT
235
233
; CHECK-X86: calll fmaf128
236
234
start:
@@ -288,9 +286,9 @@ declare fp128 @llvm.fmod.f128(fp128, fp128)
288
286
289
287
define { fp128 , i32 } @test_frexpf128 (fp128 %a ) {
290
288
; CHECK-LABEL: test_frexpf128:
291
- ; CHECK-AARCH64: bl frexpf128
292
- ; CHECK-RISCV32: call frexpf128 @plt
293
- ; CHECK-S390X: brasl {{%.*}} frexpf128 @PLT
289
+ ; CHECK-AARCH64: bl frexpl
290
+ ; CHECK-RISCV32: call frexpl @plt
291
+ ; CHECK-S390X: brasl {{%.*}} frexpl @PLT
294
292
; CHECK-X64: callq frexpf128@PLT
295
293
; CHECK-X86: calll frexpf128
296
294
start:
@@ -303,9 +301,9 @@ declare { fp128, i32 } @llvm.frexp.f128(fp128)
303
301
304
302
define fp128 @test_ldexpf128 (fp128 %a , i32 %b ) {
305
303
; CHECK-LABEL: test_ldexpf128:
306
- ; CHECK-AARCH64: b ldexpf128
307
- ; CHECK-RISCV32: call ldexpf128 @plt
308
- ; CHECK-S390X: brasl {{%.*}} ldexpf128 @PLT
304
+ ; CHECK-AARCH64: b ldexpl
305
+ ; CHECK-RISCV32: call ldexpl @plt
306
+ ; CHECK-S390X: brasl {{%.*}} ldexpl @PLT
309
307
; CHECK-X64: jmp ldexpf128@PLT
310
308
; CHECK-X86: calll ldexpf128
311
309
start:
@@ -318,9 +316,9 @@ declare fp128 @llvm.ldexp.f128(fp128, i32)
318
316
319
317
define i64 @test_llrintf128 (fp128 %a ) {
320
318
; CHECK-LABEL: test_llrintf128:
321
- ; CHECK-AARCH64: b llrintf128
322
- ; CHECK-RISCV32: call llrintf128 @plt
323
- ; CHECK-S390X: brasl {{%.*}} llrintf128 @PLT
319
+ ; CHECK-AARCH64: b llrintl
320
+ ; CHECK-RISCV32: call llrintl @plt
321
+ ; CHECK-S390X: brasl {{%.*}} llrintl @PLT
324
322
; CHECK-X64: jmp llrintf128@PLT
325
323
; CHECK-X86: calll llrintf128
326
324
start:
@@ -333,9 +331,9 @@ declare i64 @llvm.llrint.f128(fp128)
333
331
334
332
define i64 @test_llroundf128 (fp128 %a ) {
335
333
; CHECK-LABEL: test_llroundf128:
336
- ; CHECK-AARCH64: b llroundf128
337
- ; CHECK-RISCV32: call llroundf128 @plt
338
- ; CHECK-S390X: brasl {{%.*}} llroundf128 @PLT
334
+ ; CHECK-AARCH64: b llroundl
335
+ ; CHECK-RISCV32: call llroundl @plt
336
+ ; CHECK-S390X: brasl {{%.*}} llroundl @PLT
339
337
; CHECK-X64: jmp llroundf128@PLT
340
338
; CHECK-X86: calll llroundf128
341
339
start:
@@ -348,9 +346,9 @@ declare i64 @llvm.llround.i64.f128(fp128)
348
346
349
347
define fp128 @test_log10f128 (fp128 %a ) {
350
348
; CHECK-LABEL: test_log10f128:
351
- ; CHECK-AARCH64: b log10f128
352
- ; CHECK-RISCV32: call log10f128 @plt
353
- ; CHECK-S390X: brasl {{%.*}} log10f128 @PLT
349
+ ; CHECK-AARCH64: b log10l
350
+ ; CHECK-RISCV32: call log10l @plt
351
+ ; CHECK-S390X: brasl {{%.*}} log10l @PLT
354
352
; CHECK-X64: jmp log10f128@PLT
355
353
; CHECK-X86: calll log10f128
356
354
start:
@@ -378,9 +376,9 @@ declare fp128 @llvm.__log10f128_finite.f128(fp128)
378
376
379
377
define fp128 @test_log2f128 (fp128 %a ) {
380
378
; CHECK-LABEL: test_log2f128:
381
- ; CHECK-AARCH64: b log2f128
382
- ; CHECK-RISCV32: call log2f128 @plt
383
- ; CHECK-S390X: brasl {{%.*}} log2f128 @PLT
379
+ ; CHECK-AARCH64: b log2l
380
+ ; CHECK-RISCV32: call log2l @plt
381
+ ; CHECK-S390X: brasl {{%.*}} log2l @PLT
384
382
; CHECK-X64: jmp log2f128@PLT
385
383
; CHECK-X86: calll log2f128
386
384
start:
@@ -408,9 +406,9 @@ declare fp128 @llvm.__log2f128_finite.f128(fp128)
408
406
409
407
define fp128 @test_logf128 (fp128 %a ) {
410
408
; CHECK-LABEL: test_logf128:
411
- ; CHECK-AARCH64: b logf128
412
- ; CHECK-RISCV32: call logf128 @plt
413
- ; CHECK-S390X: brasl {{%.*}} logf128 @PLT
409
+ ; CHECK-AARCH64: b logl
410
+ ; CHECK-RISCV32: call logl @plt
411
+ ; CHECK-S390X: brasl {{%.*}} logl @PLT
414
412
; CHECK-X64: jmp logf128@PLT
415
413
; CHECK-X86: calll logf128
416
414
start:
@@ -438,9 +436,9 @@ declare fp128 @llvm.__logf128_finite.f128(fp128)
438
436
439
437
define i64 @test_lrintf128 (fp128 %a ) {
440
438
; CHECK-LABEL: test_lrintf128:
441
- ; CHECK-AARCH64: b lrintf128
442
- ; CHECK-RISCV32: call lrintf128 @plt
443
- ; CHECK-S390X: brasl {{%.*}} lrintf128 @PLT
439
+ ; CHECK-AARCH64: b lrintl
440
+ ; CHECK-RISCV32: call lrintl @plt
441
+ ; CHECK-S390X: brasl {{%.*}} lrintl @PLT
444
442
; CHECK-X64: jmp lrintf128@PLT
445
443
; CHECK-X86: calll lrintf128
446
444
start:
@@ -453,9 +451,9 @@ declare i64 @llvm.lrint.f128(fp128)
453
451
454
452
define i64 @test_lroundf128 (fp128 %a ) {
455
453
; CHECK-LABEL: test_lroundf128:
456
- ; CHECK-AARCH64: b lroundf128
457
- ; CHECK-RISCV32: call lroundf128 @plt
458
- ; CHECK-S390X: brasl {{%.*}} lroundf128 @PLT
454
+ ; CHECK-AARCH64: b lroundl
455
+ ; CHECK-RISCV32: call lroundl @plt
456
+ ; CHECK-S390X: brasl {{%.*}} lroundl @PLT
459
457
; CHECK-X64: jmp lroundf128@PLT
460
458
; CHECK-X86: calll lroundf128
461
459
start:
@@ -468,9 +466,9 @@ declare i64 @llvm.lround.i64.f128(fp128)
468
466
469
467
define fp128 @test_nearbyintf128 (fp128 %a ) {
470
468
; CHECK-LABEL: test_nearbyintf128:
471
- ; CHECK-AARCH64: b nearbyintf128
472
- ; CHECK-RISCV32: call nearbyintf128 @plt
473
- ; CHECK-S390X: brasl {{%.*}} nearbyintf128 @PLT
469
+ ; CHECK-AARCH64: b nearbyintl
470
+ ; CHECK-RISCV32: call nearbyintl @plt
471
+ ; CHECK-S390X: brasl {{%.*}} nearbyintl @PLT
474
472
; CHECK-X64: jmp nearbyintf128@PLT
475
473
; CHECK-X86: calll nearbyintf128
476
474
start:
@@ -483,9 +481,9 @@ declare fp128 @llvm.nearbyint.f128(fp128)
483
481
484
482
define fp128 @test_powf128 (fp128 %a , fp128 %b ) {
485
483
; CHECK-LABEL: test_powf128:
486
- ; CHECK-AARCH64: b powf128
487
- ; CHECK-RISCV32: call powf128 @plt
488
- ; CHECK-S390X: brasl {{%.*}} powf128 @PLT
484
+ ; CHECK-AARCH64: b powl
485
+ ; CHECK-RISCV32: call powl @plt
486
+ ; CHECK-S390X: brasl {{%.*}} powl @PLT
489
487
; CHECK-X64: jmp powf128@PLT
490
488
; CHECK-X86: calll powf128
491
489
start:
@@ -513,8 +511,8 @@ declare fp128 @llvm.__powf128_finite.f128(fp128, fp128)
513
511
514
512
define fp128 @test_rintf128 (fp128 %a ) {
515
513
; CHECK-LABEL: test_rintf128:
516
- ; CHECK-AARCH64: b rintf128
517
- ; CHECK-RISCV32: call rintf128 @plt
514
+ ; CHECK-AARCH64: b rintl
515
+ ; CHECK-RISCV32: call rintl @plt
518
516
;
519
517
; CHECK-S390X-LABEL: test_rintf128:
520
518
; CHECK-S390X: # %bb.0: # %start
@@ -537,9 +535,9 @@ declare fp128 @llvm.rint.f128(fp128)
537
535
538
536
define fp128 @test_roundevenf128 (fp128 %a ) {
539
537
; CHECK-LABEL: test_roundevenf128:
540
- ; CHECK-AARCH64: b roundevenf128
541
- ; CHECK-RISCV32: call roundevenf128 @plt
542
- ; CHECK-S390X: brasl {{%.*}} roundevenf128 @PLT
538
+ ; CHECK-AARCH64: b roundevenl
539
+ ; CHECK-RISCV32: call roundevenl @plt
540
+ ; CHECK-S390X: brasl {{%.*}} roundevenl @PLT
543
541
; CHECK-X64: jmp roundevenf128@PLT
544
542
; CHECK-X86: calll roundevenf128
545
543
start:
@@ -552,9 +550,9 @@ declare fp128 @llvm.roundeven.f128(fp128)
552
550
553
551
define fp128 @test_roundf128 (fp128 %a ) {
554
552
; CHECK-LABEL: test_roundf128:
555
- ; CHECK-AARCH64: b roundf128
556
- ; CHECK-RISCV32: call roundf128 @plt
557
- ; CHECK-S390X: brasl {{%.*}} roundf128 @PLT
553
+ ; CHECK-AARCH64: b roundl
554
+ ; CHECK-RISCV32: call roundl @plt
555
+ ; CHECK-S390X: brasl {{%.*}} roundl @PLT
558
556
; CHECK-X64: jmp roundf128@PLT
559
557
; CHECK-X86: calll roundf128
560
558
start:
@@ -567,9 +565,9 @@ declare fp128 @llvm.round.f128(fp128)
567
565
568
566
define fp128 @test_sinf128 (fp128 %a ) {
569
567
; CHECK-LABEL: test_sinf128:
570
- ; CHECK-AARCH64: b sinf128
571
- ; CHECK-RISCV32: call sinf128 @plt
572
- ; CHECK-S390X: brasl {{%.*}} sinf128 @PLT
568
+ ; CHECK-AARCH64: b sinl
569
+ ; CHECK-RISCV32: call sinl @plt
570
+ ; CHECK-S390X: brasl {{%.*}} sinl @PLT
573
571
; CHECK-X64: jmp sinf128@PLT
574
572
; CHECK-X86: calll sinf128
575
573
start:
@@ -582,8 +580,8 @@ declare fp128 @llvm.sin.f128(fp128)
582
580
583
581
define fp128 @test_sqrtf128 (fp128 %a ) {
584
582
; CHECK-LABEL: test_sqrtf128:
585
- ; CHECK-AARCH64: b sqrtf128
586
- ; CHECK-RISCV32: call sqrtf128 @plt
583
+ ; CHECK-AARCH64: b sqrtl
584
+ ; CHECK-RISCV32: call sqrtl @plt
587
585
; CHECK-S390X: sqxbr {{%.*}} {{%.*}}
588
586
; CHECK-X64: jmp sqrtf128@PLT
589
587
; CHECK-X86: calll sqrtf128
@@ -597,9 +595,9 @@ declare fp128 @llvm.sqrt.f128(fp128)
597
595
598
596
define fp128 @test_truncf128 (fp128 %a ) {
599
597
; CHECK-LABEL: test_truncf128:
600
- ; CHECK-AARCH64: b truncf128
601
- ; CHECK-RISCV32: call truncf128 @plt
602
- ; CHECK-S390X: brasl {{%.*}} truncf128 @PLT
598
+ ; CHECK-AARCH64: b truncl
599
+ ; CHECK-RISCV32: call truncl @plt
600
+ ; CHECK-S390X: brasl {{%.*}} truncl @PLT
603
601
; CHECK-X64: jmp truncf128@PLT
604
602
; CHECK-X86: calll truncf128
605
603
start:
0 commit comments