@@ -28,21 +28,28 @@ extern "C" {}
28
28
mod intrinsics {
29
29
/* f16 operations */
30
30
31
+ #[ cfg( f16_enabled) ]
31
32
pub fn extendhfsf ( x : f16 ) -> f32 {
32
33
x as f32
33
34
}
34
35
36
+ #[ cfg( f16_enabled) ]
35
37
pub fn extendhfdf ( x : f16 ) -> f64 {
36
38
x as f64
37
39
}
38
40
39
- #[ cfg( not( any( target_arch = "powerpc" , target_arch = "powerpc64" ) ) ) ]
41
+ #[ cfg( all(
42
+ f16_enabled,
43
+ f128_enabled,
44
+ not( any( target_arch = "powerpc" , target_arch = "powerpc64" ) )
45
+ ) ) ]
40
46
pub fn extendhftf ( x : f16 ) -> f128 {
41
47
x as f128
42
48
}
43
49
44
50
/* f32 operations */
45
51
52
+ #[ cfg( f16_enabled) ]
46
53
pub fn truncsfhf ( x : f32 ) -> f16 {
47
54
x as f16
48
55
}
@@ -52,6 +59,7 @@ mod intrinsics {
52
59
x as f64
53
60
}
54
61
62
+ #[ cfg( f128_enabled) ]
55
63
pub fn extendsftf ( x : f32 ) -> f128 {
56
64
x as f128
57
65
}
@@ -191,73 +199,104 @@ mod intrinsics {
191
199
192
200
/* f128 operations */
193
201
194
- #[ cfg( not( any( target_arch = "powerpc" , target_arch = "powerpc64" ) ) ) ]
202
+ #[ cfg( all(
203
+ f16_enabled,
204
+ f128_enabled,
205
+ not( any( target_arch = "powerpc" , target_arch = "powerpc64" ) )
206
+ ) ) ]
195
207
pub fn trunctfhf ( x : f128 ) -> f16 {
196
208
x as f16
197
209
}
198
210
211
+ #[ cfg( f128_enabled) ]
199
212
pub fn trunctfsf ( x : f128 ) -> f32 {
200
213
x as f32
201
214
}
202
215
216
+ #[ cfg( f128_enabled) ]
203
217
pub fn trunctfdf ( x : f128 ) -> f64 {
204
218
x as f64
205
219
}
206
220
207
- #[ cfg( not( any( target_arch = "powerpc" , target_arch = "powerpc64" ) ) ) ]
221
+ #[ cfg( all(
222
+ f128_enabled,
223
+ not( any( target_arch = "powerpc" , target_arch = "powerpc64" ) )
224
+ ) ) ]
208
225
pub fn fixtfsi ( x : f128 ) -> i32 {
209
226
x as i32
210
227
}
211
228
212
- #[ cfg( not( any( target_arch = "powerpc" , target_arch = "powerpc64" ) ) ) ]
229
+ #[ cfg( all(
230
+ f128_enabled,
231
+ not( any( target_arch = "powerpc" , target_arch = "powerpc64" ) )
232
+ ) ) ]
213
233
pub fn fixtfdi ( x : f128 ) -> i64 {
214
234
x as i64
215
235
}
216
236
217
- #[ cfg( not( any( target_arch = "powerpc" , target_arch = "powerpc64" ) ) ) ]
237
+ #[ cfg( all(
238
+ f128_enabled,
239
+ not( any( target_arch = "powerpc" , target_arch = "powerpc64" ) )
240
+ ) ) ]
218
241
pub fn fixtfti ( x : f128 ) -> i128 {
219
242
x as i128
220
243
}
221
244
222
- #[ cfg( not( any( target_arch = "powerpc" , target_arch = "powerpc64" ) ) ) ]
245
+ #[ cfg( all(
246
+ f128_enabled,
247
+ not( any( target_arch = "powerpc" , target_arch = "powerpc64" ) )
248
+ ) ) ]
223
249
pub fn fixunstfsi ( x : f128 ) -> u32 {
224
250
x as u32
225
251
}
226
252
227
- #[ cfg( not( any( target_arch = "powerpc" , target_arch = "powerpc64" ) ) ) ]
253
+ #[ cfg( all(
254
+ f128_enabled,
255
+ not( any( target_arch = "powerpc" , target_arch = "powerpc64" ) )
256
+ ) ) ]
228
257
pub fn fixunstfdi ( x : f128 ) -> u64 {
229
258
x as u64
230
259
}
231
260
232
- #[ cfg( not( any( target_arch = "powerpc" , target_arch = "powerpc64" ) ) ) ]
261
+ #[ cfg( all(
262
+ f128_enabled,
263
+ not( any( target_arch = "powerpc" , target_arch = "powerpc64" ) )
264
+ ) ) ]
233
265
pub fn fixunstfti ( x : f128 ) -> u128 {
234
266
x as u128
235
267
}
236
268
269
+ #[ cfg( f128_enabled) ]
237
270
pub fn addtf ( a : f128 , b : f128 ) -> f128 {
238
271
a + b
239
272
}
240
273
274
+ #[ cfg( f128_enabled) ]
241
275
pub fn eqtf ( a : f128 , b : f128 ) -> bool {
242
276
a == b
243
277
}
244
278
279
+ #[ cfg( f128_enabled) ]
245
280
pub fn gttf ( a : f128 , b : f128 ) -> bool {
246
281
a > b
247
282
}
248
283
284
+ #[ cfg( f128_enabled) ]
249
285
pub fn lttf ( a : f128 , b : f128 ) -> bool {
250
286
a < b
251
287
}
252
288
289
+ #[ cfg( f128_enabled) ]
253
290
pub fn multf ( a : f128 , b : f128 ) -> f128 {
254
291
a * b
255
292
}
256
293
294
+ #[ cfg( f128_enabled) ]
257
295
pub fn divtf ( a : f128 , b : f128 ) -> f128 {
258
296
a / b
259
297
}
260
298
299
+ #[ cfg( f128_enabled) ]
261
300
pub fn subtf ( a : f128 , b : f128 ) -> f128 {
262
301
a - b
263
302
}
@@ -274,6 +313,7 @@ mod intrinsics {
274
313
x as f64
275
314
}
276
315
316
+ #[ cfg( f128_enabled) ]
277
317
pub fn floatsitf ( x : i32 ) -> f128 {
278
318
x as f128
279
319
}
@@ -298,6 +338,7 @@ mod intrinsics {
298
338
x as f64
299
339
}
300
340
341
+ #[ cfg( f128_enabled) ]
301
342
pub fn floatditf ( x : i64 ) -> f128 {
302
343
x as f128
303
344
}
@@ -330,6 +371,7 @@ mod intrinsics {
330
371
x as f64
331
372
}
332
373
374
+ #[ cfg( f128_enabled) ]
333
375
pub fn floattitf ( x : i128 ) -> f128 {
334
376
x as f128
335
377
}
@@ -358,6 +400,7 @@ mod intrinsics {
358
400
x as f64
359
401
}
360
402
403
+ #[ cfg( f128_enabled) ]
361
404
pub fn floatunsitf ( x : u32 ) -> f128 {
362
405
x as f128
363
406
}
@@ -382,6 +425,7 @@ mod intrinsics {
382
425
x as f64
383
426
}
384
427
428
+ #[ cfg( f128_enabled) ]
385
429
pub fn floatunditf ( x : u64 ) -> f128 {
386
430
x as f128
387
431
}
@@ -405,6 +449,7 @@ mod intrinsics {
405
449
x as f64
406
450
}
407
451
452
+ #[ cfg( f128_enabled) ]
408
453
pub fn floatuntitf ( x : u128 ) -> f128 {
409
454
x as f128
410
455
}
@@ -440,6 +485,7 @@ fn run() {
440
485
441
486
// FIXME(f16_f128): some PPC f128 <-> int conversion functions have the wrong names
442
487
488
+ #[ cfg( f128_enabled) ]
443
489
bb ( addtf ( bb ( 2. ) , bb ( 2. ) ) ) ;
444
490
bb ( aeabi_d2f ( bb ( 2. ) ) ) ;
445
491
bb ( aeabi_d2i ( bb ( 2. ) ) ) ;
@@ -482,54 +528,98 @@ fn run() {
482
528
bb ( aeabi_uldivmod ( bb ( 2 ) , bb ( 3 ) ) ) ;
483
529
bb ( ashlti3 ( bb ( 2 ) , bb ( 2 ) ) ) ;
484
530
bb ( ashrti3 ( bb ( 2 ) , bb ( 2 ) ) ) ;
531
+ #[ cfg( f128_enabled) ]
485
532
bb ( divtf ( bb ( 2. ) , bb ( 2. ) ) ) ;
486
533
bb ( divti3 ( bb ( 2 ) , bb ( 2 ) ) ) ;
534
+ #[ cfg( f128_enabled) ]
487
535
bb ( eqtf ( bb ( 2. ) , bb ( 2. ) ) ) ;
536
+ #[ cfg( f16_enabled) ]
488
537
bb ( extendhfdf ( bb ( 2. ) ) ) ;
538
+ #[ cfg( f16_enabled) ]
489
539
bb ( extendhfsf ( bb ( 2. ) ) ) ;
490
- #[ cfg( not( any( target_arch = "powerpc" , target_arch = "powerpc64" ) ) ) ]
540
+ #[ cfg( all(
541
+ f16_enabled,
542
+ f128_enabled,
543
+ not( any( target_arch = "powerpc" , target_arch = "powerpc64" ) )
544
+ ) ) ]
491
545
bb ( extendhftf ( bb ( 2. ) ) ) ;
546
+ #[ cfg( f128_enabled) ]
492
547
bb ( extendsftf ( bb ( 2. ) ) ) ;
493
548
bb ( fixdfti ( bb ( 2. ) ) ) ;
494
549
bb ( fixsfti ( bb ( 2. ) ) ) ;
495
- #[ cfg( not( any( target_arch = "powerpc" , target_arch = "powerpc64" ) ) ) ]
550
+ #[ cfg( all(
551
+ f128_enabled,
552
+ not( any( target_arch = "powerpc" , target_arch = "powerpc64" ) )
553
+ ) ) ]
496
554
bb ( fixtfdi ( bb ( 2. ) ) ) ;
497
- #[ cfg( not( any( target_arch = "powerpc" , target_arch = "powerpc64" ) ) ) ]
555
+ #[ cfg( all(
556
+ f128_enabled,
557
+ not( any( target_arch = "powerpc" , target_arch = "powerpc64" ) )
558
+ ) ) ]
498
559
bb ( fixtfsi ( bb ( 2. ) ) ) ;
499
- #[ cfg( not( any( target_arch = "powerpc" , target_arch = "powerpc64" ) ) ) ]
560
+ #[ cfg( all(
561
+ f128_enabled,
562
+ not( any( target_arch = "powerpc" , target_arch = "powerpc64" ) )
563
+ ) ) ]
500
564
bb ( fixtfti ( bb ( 2. ) ) ) ;
501
565
bb ( fixunsdfti ( bb ( 2. ) ) ) ;
502
566
bb ( fixunssfti ( bb ( 2. ) ) ) ;
503
- #[ cfg( not( any( target_arch = "powerpc" , target_arch = "powerpc64" ) ) ) ]
567
+ #[ cfg( all(
568
+ f128_enabled,
569
+ not( any( target_arch = "powerpc" , target_arch = "powerpc64" ) )
570
+ ) ) ]
504
571
bb ( fixunstfdi ( bb ( 2. ) ) ) ;
505
- #[ cfg( not( any( target_arch = "powerpc" , target_arch = "powerpc64" ) ) ) ]
572
+ #[ cfg( all(
573
+ f128_enabled,
574
+ not( any( target_arch = "powerpc" , target_arch = "powerpc64" ) )
575
+ ) ) ]
506
576
bb ( fixunstfsi ( bb ( 2. ) ) ) ;
507
- #[ cfg( not( any( target_arch = "powerpc" , target_arch = "powerpc64" ) ) ) ]
577
+ #[ cfg( all(
578
+ f128_enabled,
579
+ not( any( target_arch = "powerpc" , target_arch = "powerpc64" ) )
580
+ ) ) ]
508
581
bb ( fixunstfti ( bb ( 2. ) ) ) ;
582
+ #[ cfg( f128_enabled) ]
509
583
bb ( floatditf ( bb ( 2 ) ) ) ;
584
+ #[ cfg( f128_enabled) ]
510
585
bb ( floatsitf ( bb ( 2 ) ) ) ;
511
586
bb ( floattidf ( bb ( 2 ) ) ) ;
512
587
bb ( floattisf ( bb ( 2 ) ) ) ;
588
+ #[ cfg( f128_enabled) ]
513
589
bb ( floattitf ( bb ( 2 ) ) ) ;
590
+ #[ cfg( f128_enabled) ]
514
591
bb ( floatunditf ( bb ( 2 ) ) ) ;
592
+ #[ cfg( f128_enabled) ]
515
593
bb ( floatunsitf ( bb ( 2 ) ) ) ;
516
594
bb ( floatuntidf ( bb ( 2 ) ) ) ;
517
595
bb ( floatuntisf ( bb ( 2 ) ) ) ;
596
+ #[ cfg( f128_enabled) ]
518
597
bb ( floatuntitf ( bb ( 2 ) ) ) ;
598
+ #[ cfg( f128_enabled) ]
519
599
bb ( gttf ( bb ( 2. ) , bb ( 2. ) ) ) ;
520
600
bb ( lshrti3 ( bb ( 2 ) , bb ( 2 ) ) ) ;
601
+ #[ cfg( f128_enabled) ]
521
602
bb ( lttf ( bb ( 2. ) , bb ( 2. ) ) ) ;
522
603
bb ( moddi3 ( bb ( 2 ) , bb ( 3 ) ) ) ;
523
604
bb ( modti3 ( bb ( 2 ) , bb ( 2 ) ) ) ;
524
605
bb ( mulodi4 ( bb ( 2 ) , bb ( 3 ) ) ) ;
525
606
bb ( muloti4 ( bb ( 2 ) , bb ( 2 ) ) ) ;
607
+ #[ cfg( f128_enabled) ]
526
608
bb ( multf ( bb ( 2. ) , bb ( 2. ) ) ) ;
527
609
bb ( multi3 ( bb ( 2 ) , bb ( 2 ) ) ) ;
610
+ #[ cfg( f128_enabled) ]
528
611
bb ( subtf ( bb ( 2. ) , bb ( 2. ) ) ) ;
612
+ #[ cfg( f16_enabled) ]
529
613
bb ( truncsfhf ( bb ( 2. ) ) ) ;
614
+ #[ cfg( f128_enabled) ]
530
615
bb ( trunctfdf ( bb ( 2. ) ) ) ;
531
- #[ cfg( not( any( target_arch = "powerpc" , target_arch = "powerpc64" ) ) ) ]
616
+ #[ cfg( all(
617
+ f16_enabled,
618
+ f128_enabled,
619
+ not( any( target_arch = "powerpc" , target_arch = "powerpc64" ) )
620
+ ) ) ]
532
621
bb ( trunctfhf ( bb ( 2. ) ) ) ;
622
+ #[ cfg( f128_enabled) ]
533
623
bb ( trunctfsf ( bb ( 2. ) ) ) ;
534
624
bb ( udivti3 ( bb ( 2 ) , bb ( 2 ) ) ) ;
535
625
bb ( umoddi3 ( bb ( 2 ) , bb ( 3 ) ) ) ;
0 commit comments