about summary refs log tree commit diff
path: root/tests/codegen/float
AgeCommit message (Collapse)AuthorLines
2025-04-04Expose algebraic floating point intrinsicsCalder Coalson-0/+149
2025-02-18x86-sse2 ABI: use SSE registers for floats and SIMDRalf Jung-41/+84
2025-01-28Fix tests/codegen/float/f128Alisa Sireneva-1/+30
2024-11-14Always inline functions signatures containing `f16` or `f128`Trevor Gross-0/+29
There are a handful of tier 2 and tier 3 targets that cause a LLVM crash or linker error when generating code that contains `f16` or `f128`. The cranelift backend also does not support these types. To work around this, every function in `std` or `core` that contains these types must be marked `#[inline]` in order to avoid sending any code to the backend unless specifically requested. However, this is inconvenient and easy to forget. Introduce a check for these types in the frontend that automatically inlines any function signatures that take or return `f16` or `f128`. Note that this is not a perfect fix because it does not account for the types being passed by reference or as members of aggregate types, but this is sufficient for what is currently needed in the standard library. Fixes: https://github.com/rust-lang/rust/issues/133035 Closes: https://github.com/rust-lang/rust/pull/133037
2024-10-20x86-32 float return for 'Rust' ABI: treat all float types consistentlyRalf Jung-24/+31
2024-10-12Update tests for 32bit targetsbjorn3-34/+98
2024-07-12Adjust tests for x86 "Rust" ABI changesbeetrees-4/+18
2024-05-16Fix assertion when attempting to convert `f16` and `f128` with `as`Trevor Gross-3/+393
These types are currently rejected for `as` casts by the compiler. Remove this incorrect check and add codegen tests for all conversions involving these types.
2024-04-10Add basic library support for `f16` and `f128`Trevor Gross-0/+258
Implement basic operation traits that get lowered to intrinsics. This includes codegen tests for implemented operations.