rust/compiler/rustc_codegen_llvm/src
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
..
back Remove SelfProfilerRef from CodegenContext 2026-02-12 12:44:14 +00:00
builder Split ol mapper into more specific to/kernel/from mapper and move init_all_rtls into global ctor 2026-02-07 17:34:39 -08:00
coverageinfo Temporarily re-export assert_matches! to reduce stabilization churn 2026-01-19 18:26:53 +11:00
debuginfo Rollup merge of #152440 - him2him2:fix-typos-compiler, r=Kivooeo,Kobzol 2026-02-13 13:35:02 +01:00
llvm Auto merge of #151065 - nagisa:add-preserve-none-abi, r=petrochenkov 2026-01-25 02:49:32 +00:00
abi.rs abi: add a rust-preserve-none calling convention 2026-01-24 19:23:17 +02:00
allocator.rs Remove -Zoom=panic 2025-11-28 19:30:39 +00:00
asm.rs move escape_symbol_name to cg_ssa 2026-02-13 20:31:18 +08:00
attributes.rs remove redundant backchain attribute in codegen 2026-02-12 09:58:25 +01:00
base.rs Update test and verify that tgt_(un)register_lib have the right type 2026-01-04 06:58:31 -08:00
builder.rs Rollup merge of #150893 - ZuseZ4:move-un-register-lib, r=oli-obk 2026-01-28 19:03:51 +11:00
callee.rs rustc_target: introduce Env 2025-11-11 18:34:47 -05:00
common.rs move initialization of omp/ol runtimes into global_ctor/dtor 2026-01-20 20:06:08 -05:00
consts.rs Fix dso_local for external statics with linkage 2025-12-29 19:26:34 +00:00
context.rs Rollup merge of #151429 - s390x, r=durin42 2026-01-20 19:46:32 -05:00
declare.rs refactor: Remove LLVMRustInsertPrivateGlobal and define_private_global 2025-10-08 21:59:48 +02:00
errors.rs Rename inline_fluent! to msg! 2026-02-14 13:47:52 +01:00
intrinsic.rs implement carryless_mul 2026-02-14 21:23:30 +01:00
lib.rs implement carryless_mul 2026-02-14 21:23:30 +01:00
llvm_util.rs Don't use evex512 with LLVM 22 2026-01-20 14:47:09 +01:00
macros.rs use declarative macro for #[derive(TryFromU32)] 2025-10-06 14:54:38 +00:00
mono_item.rs Set hidden visibility for compiler-builtins statics too. 2026-02-04 13:54:32 +01:00
type_.rs Remove inherent methods from llvm::TypeKind 2025-12-19 12:32:49 +11:00
type_of.rs codegen: implement repr(scalable) 2025-12-16 11:00:12 +00:00
typetree.rs remove llvm_enzyme and enzyme fallbacks from most places, enable the autodiff frontend on nightly 2025-12-19 11:02:57 -08:00
va_arg.rs c-variadic: implement va_arg for wasm64 2026-02-14 00:51:10 +01:00
value.rs Consistently import llvm::Type and llvm::Value 2025-10-06 13:09:16 +11:00