Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
f09c19a
Introduce perma-unstable `wasm-c-abi` flag
daxpedda Feb 27, 2024
9e2c658
Remove `TargetOptions::default_adjusted_cabi`
daxpedda Dec 13, 2023
d9a8903
force exhaustion in iter::ArrayChunks::into_remainder
krtab Apr 3, 2024
19821ad
Properly handle emojis as literal prefix in macros
estebank Apr 10, 2024
857f5dd
Don't inline integer literals when out of range
tstsrt Apr 14, 2024
757f5bb
Fix formatting
tstsrt Apr 14, 2024
38c4885
Add more test cases
tstsrt Apr 14, 2024
4c8d210
Improve semantics of int_ty_max functions
tstsrt Apr 14, 2024
86a5765
Add an opt-in to store incoming edges in `VecGraph` + some docs
WaffleLapkin Apr 15, 2024
7d2cb3d
Make `graph::DepthFirstSearch` accept `G` by value
WaffleLapkin Apr 15, 2024
fa134b5
Add `graph::depth_first_search_as_undirected`
WaffleLapkin Apr 15, 2024
f68529f
Use raw-dylib for Windows futex APIs
ChrisDenton Apr 16, 2024
5b024d6
Cranelift: Revert raw-dylib for Windows futex APIs
ChrisDenton Apr 16, 2024
cc12a1b
Fix negating `f16` and `f128` constants
beetrees Apr 18, 2024
ed8f351
Fix ICE when there is a non-Unicode entry in the incremental crate di…
beetrees Apr 18, 2024
3e63398
when suggesting RUST_BACKTRACE=1, add a special note for Miri's env v…
RalfJung Apr 18, 2024
523fe2b
Add tests for predecessor-aware `VecGraph` mode
WaffleLapkin Apr 18, 2024
2fac1ae
Rollup merge of #117919 - daxpedda:wasm-c-abi, r=wesleywiser
workingjubilee Apr 18, 2024
1298318
Rollup merge of #123406 - krtab:fix_remainder_iterchunk, r=scottmcm
workingjubilee Apr 18, 2024
ffd7eee
Rollup merge of #123752 - estebank:emoji-prefix, r=wesleywiser
workingjubilee Apr 18, 2024
de21620
Rollup merge of #123935 - tstsrt:fix-115423, r=oli-obk
workingjubilee Apr 18, 2024
3766781
Rollup merge of #123980 - WaffleLapkin:graph-average-refactor, r=wesl…
workingjubilee Apr 18, 2024
656fd2a
Rollup merge of #124019 - ChrisDenton:futex-raw-dylib, r=joboet
workingjubilee Apr 18, 2024
29541ca
Rollup merge of #124110 - beetrees:neg-f16-f128, r=compiler-errors
workingjubilee Apr 18, 2024
0744cb0
Rollup merge of #124112 - beetrees:incremental-os-str, r=Nadrieril
workingjubilee Apr 18, 2024
ea1b92d
Rollup merge of #124116 - RalfJung:miri-rust-backtrace, r=Nilstrieb
workingjubilee Apr 18, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Fix negating f16 and f128 constants
  • Loading branch information
beetrees committed Apr 18, 2024
commit cc12a1b5119b003132a16e83c19642bb6584f2df
16 changes: 14 additions & 2 deletions compiler/rustc_mir_build/src/build/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1023,7 +1023,13 @@ pub(crate) fn parse_float_into_scalar(
let num = num.as_str();
match float_ty {
// FIXME(f16_f128): When available, compare to the library parser as with `f32` and `f64`
ty::FloatTy::F16 => num.parse::<Half>().ok().map(Scalar::from_f16),
ty::FloatTy::F16 => {
let mut f = num.parse::<Half>().ok()?;
if neg {
f = -f;
}
Some(Scalar::from_f16(f))
}
ty::FloatTy::F32 => {
let Ok(rust_f) = num.parse::<f32>() else { return None };
let mut f = num
Expand Down Expand Up @@ -1071,7 +1077,13 @@ pub(crate) fn parse_float_into_scalar(
Some(Scalar::from_f64(f))
}
// FIXME(f16_f128): When available, compare to the library parser as with `f32` and `f64`
ty::FloatTy::F128 => num.parse::<Quad>().ok().map(Scalar::from_f128),
ty::FloatTy::F128 => {
let mut f = num.parse::<Quad>().ok()?;
if neg {
f = -f;
}
Some(Scalar::from_f128(f))
}
}
}

Expand Down
16 changes: 16 additions & 0 deletions tests/ui/numbers-arithmetic/f16-f128-lit.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
//@ run-pass

#![feature(f16)]
#![feature(f128)]

fn main() {
assert_eq!(0.0_f16.to_bits(), 0x0000);
assert_eq!((-0.0_f16).to_bits(), 0x8000);
assert_eq!(10.0_f16.to_bits(), 0x4900);
assert_eq!((-10.0_f16).to_bits(), 0xC900);

assert_eq!(0.0_f128.to_bits(), 0x0000_0000_0000_0000_0000_0000_0000_0000);
assert_eq!((-0.0_f128).to_bits(), 0x8000_0000_0000_0000_0000_0000_0000_0000);
assert_eq!(10.0_f128.to_bits(), 0x4002_4000_0000_0000_0000_0000_0000_0000);
assert_eq!((-10.0_f128).to_bits(), 0xC002_4000_0000_0000_0000_0000_0000_0000);
}