Skip to content

Commit 457efcd

Browse files
heihertgross35
authored andcommitted
Add f128
1 parent f57f954 commit 457efcd

File tree

1 file changed

+84
-12
lines changed

1 file changed

+84
-12
lines changed

examples/intrinsics.rs

Lines changed: 84 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ mod intrinsics {
4040

4141
#[cfg(all(
4242
f16_enabled,
43+
f128_enabled,
4344
not(any(target_arch = "powerpc", target_arch = "powerpc64"))
4445
))]
4546
pub fn extendhftf(x: f16) -> f128 {
@@ -58,6 +59,7 @@ mod intrinsics {
5859
x as f64
5960
}
6061

62+
#[cfg(f128_enabled)]
6163
pub fn extendsftf(x: f32) -> f128 {
6264
x as f128
6365
}
@@ -199,74 +201,102 @@ mod intrinsics {
199201

200202
#[cfg(all(
201203
f16_enabled,
204+
f128_enabled,
202205
not(any(target_arch = "powerpc", target_arch = "powerpc64"))
203206
))]
204207
pub fn trunctfhf(x: f128) -> f16 {
205208
x as f16
206209
}
207210

211+
#[cfg(f128_enabled)]
208212
pub fn trunctfsf(x: f128) -> f32 {
209213
x as f32
210214
}
211215

216+
#[cfg(f128_enabled)]
212217
pub fn trunctfdf(x: f128) -> f64 {
213218
x as f64
214219
}
215220

216-
#[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+
))]
217225
pub fn fixtfsi(x: f128) -> i32 {
218226
x as i32
219227
}
220228

221-
#[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+
))]
222233
pub fn fixtfdi(x: f128) -> i64 {
223234
x as i64
224235
}
225236

226-
#[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+
))]
227241
pub fn fixtfti(x: f128) -> i128 {
228242
x as i128
229243
}
230244

231-
#[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+
))]
232249
pub fn fixunstfsi(x: f128) -> u32 {
233250
x as u32
234251
}
235252

236-
#[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+
))]
237257
pub fn fixunstfdi(x: f128) -> u64 {
238258
x as u64
239259
}
240260

241-
#[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+
))]
242265
pub fn fixunstfti(x: f128) -> u128 {
243266
x as u128
244267
}
245268

269+
#[cfg(f128_enabled)]
246270
pub fn addtf(a: f128, b: f128) -> f128 {
247271
a + b
248272
}
249273

274+
#[cfg(f128_enabled)]
250275
pub fn eqtf(a: f128, b: f128) -> bool {
251276
a == b
252277
}
253278

279+
#[cfg(f128_enabled)]
254280
pub fn gttf(a: f128, b: f128) -> bool {
255281
a > b
256282
}
257283

284+
#[cfg(f128_enabled)]
258285
pub fn lttf(a: f128, b: f128) -> bool {
259286
a < b
260287
}
261288

289+
#[cfg(f128_enabled)]
262290
pub fn multf(a: f128, b: f128) -> f128 {
263291
a * b
264292
}
265293

294+
#[cfg(f128_enabled)]
266295
pub fn divtf(a: f128, b: f128) -> f128 {
267296
a / b
268297
}
269298

299+
#[cfg(f128_enabled)]
270300
pub fn subtf(a: f128, b: f128) -> f128 {
271301
a - b
272302
}
@@ -283,6 +313,7 @@ mod intrinsics {
283313
x as f64
284314
}
285315

316+
#[cfg(f128_enabled)]
286317
pub fn floatsitf(x: i32) -> f128 {
287318
x as f128
288319
}
@@ -307,6 +338,7 @@ mod intrinsics {
307338
x as f64
308339
}
309340

341+
#[cfg(f128_enabled)]
310342
pub fn floatditf(x: i64) -> f128 {
311343
x as f128
312344
}
@@ -339,6 +371,7 @@ mod intrinsics {
339371
x as f64
340372
}
341373

374+
#[cfg(f128_enabled)]
342375
pub fn floattitf(x: i128) -> f128 {
343376
x as f128
344377
}
@@ -367,6 +400,7 @@ mod intrinsics {
367400
x as f64
368401
}
369402

403+
#[cfg(f128_enabled)]
370404
pub fn floatunsitf(x: u32) -> f128 {
371405
x as f128
372406
}
@@ -391,6 +425,7 @@ mod intrinsics {
391425
x as f64
392426
}
393427

428+
#[cfg(f128_enabled)]
394429
pub fn floatunditf(x: u64) -> f128 {
395430
x as f128
396431
}
@@ -414,6 +449,7 @@ mod intrinsics {
414449
x as f64
415450
}
416451

452+
#[cfg(f128_enabled)]
417453
pub fn floatuntitf(x: u128) -> f128 {
418454
x as f128
419455
}
@@ -449,6 +485,7 @@ fn run() {
449485

450486
// FIXME(f16_f128): some PPC f128 <-> int conversion functions have the wrong names
451487

488+
#[cfg(f128_enabled)]
452489
bb(addtf(bb(2.), bb(2.)));
453490
bb(aeabi_d2f(bb(2.)));
454491
bb(aeabi_d2i(bb(2.)));
@@ -491,63 +528,98 @@ fn run() {
491528
bb(aeabi_uldivmod(bb(2), bb(3)));
492529
bb(ashlti3(bb(2), bb(2)));
493530
bb(ashrti3(bb(2), bb(2)));
531+
#[cfg(f128_enabled)]
494532
bb(divtf(bb(2.), bb(2.)));
495533
bb(divti3(bb(2), bb(2)));
534+
#[cfg(f128_enabled)]
496535
bb(eqtf(bb(2.), bb(2.)));
497536
#[cfg(f16_enabled)]
498537
bb(extendhfdf(bb(2.)));
499538
#[cfg(f16_enabled)]
500539
bb(extendhfsf(bb(2.)));
501540
#[cfg(all(
502541
f16_enabled,
542+
f128_enabled,
503543
not(any(target_arch = "powerpc", target_arch = "powerpc64"))
504544
))]
505545
bb(extendhftf(bb(2.)));
546+
#[cfg(f128_enabled)]
506547
bb(extendsftf(bb(2.)));
507548
bb(fixdfti(bb(2.)));
508549
bb(fixsfti(bb(2.)));
509-
#[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+
))]
510554
bb(fixtfdi(bb(2.)));
511-
#[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+
))]
512559
bb(fixtfsi(bb(2.)));
513-
#[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+
))]
514564
bb(fixtfti(bb(2.)));
515565
bb(fixunsdfti(bb(2.)));
516566
bb(fixunssfti(bb(2.)));
517-
#[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+
))]
518571
bb(fixunstfdi(bb(2.)));
519-
#[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+
))]
520576
bb(fixunstfsi(bb(2.)));
521-
#[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+
))]
522581
bb(fixunstfti(bb(2.)));
582+
#[cfg(f128_enabled)]
523583
bb(floatditf(bb(2)));
584+
#[cfg(f128_enabled)]
524585
bb(floatsitf(bb(2)));
525586
bb(floattidf(bb(2)));
526587
bb(floattisf(bb(2)));
588+
#[cfg(f128_enabled)]
527589
bb(floattitf(bb(2)));
590+
#[cfg(f128_enabled)]
528591
bb(floatunditf(bb(2)));
592+
#[cfg(f128_enabled)]
529593
bb(floatunsitf(bb(2)));
530594
bb(floatuntidf(bb(2)));
531595
bb(floatuntisf(bb(2)));
596+
#[cfg(f128_enabled)]
532597
bb(floatuntitf(bb(2)));
598+
#[cfg(f128_enabled)]
533599
bb(gttf(bb(2.), bb(2.)));
534600
bb(lshrti3(bb(2), bb(2)));
601+
#[cfg(f128_enabled)]
535602
bb(lttf(bb(2.), bb(2.)));
536603
bb(moddi3(bb(2), bb(3)));
537604
bb(modti3(bb(2), bb(2)));
538605
bb(mulodi4(bb(2), bb(3)));
539606
bb(muloti4(bb(2), bb(2)));
607+
#[cfg(f128_enabled)]
540608
bb(multf(bb(2.), bb(2.)));
541609
bb(multi3(bb(2), bb(2)));
610+
#[cfg(f128_enabled)]
542611
bb(subtf(bb(2.), bb(2.)));
543612
#[cfg(f16_enabled)]
544613
bb(truncsfhf(bb(2.)));
614+
#[cfg(f128_enabled)]
545615
bb(trunctfdf(bb(2.)));
546616
#[cfg(all(
547617
f16_enabled,
618+
f128_enabled,
548619
not(any(target_arch = "powerpc", target_arch = "powerpc64"))
549620
))]
550621
bb(trunctfhf(bb(2.)));
622+
#[cfg(f128_enabled)]
551623
bb(trunctfsf(bb(2.)));
552624
bb(udivti3(bb(2), bb(2)));
553625
bb(umoddi3(bb(2), bb(3)));

0 commit comments

Comments
 (0)