rust/compiler/rustc_hir_analysis
Jacob Pratt f065c9dab1
Rollup merge of #152132 - folkertdev:carryless-mul, r=Mark-Simulacrum
implement `carryless_mul`

tracking issue: https://github.com/rust-lang/rust/issues/152080
ACP: https://github.com/rust-lang/libs-team/issues/738

This defers to LLVM's `llvm.clmul` when available, and otherwise falls back to a method from the `polyval` crate ([link](https://github.com/RustCrypto/universal-hashes/blob/master/polyval/src/field_element/soft/soft64.rs)).

Some things are missing, which I think we can defer:

- the ACP has some discussion about additional methods, but I'm not sure exactly what is wanted or how to implement it efficiently
- the SIMD intrinsic is not yet `const` (I think I ran into a bootstrapping issue). That is fine for now, I think in `stdarch` we can't really use this intrinsic at the moment, we'd only want the scalar version to replace some riscv intrinsics.
- the SIMD intrinsic is not implemented for the gcc and cranelift backends. That should be reasonably straightforward once we have a const eval implementation though.
2026-02-14 23:17:31 -05:00
..
src Rollup merge of #152132 - folkertdev:carryless-mul, r=Mark-Simulacrum 2026-02-14 23:17:31 -05:00
Cargo.toml Convert to inline diagnostics in rustc_hir_analysis 2026-02-06 10:05:35 +01:00
README.md Update links in compiler/rustc_hir_analysis/README.md for type checking 2025-12-26 16:34:49 +09:00

For high-level intro to how type checking works in rustc, see the hir typeck chapter of the rustc dev guide.