rust-lang / rust-lang/rustc_codegen_cranelift

"llvm.x86.pclmulqdq.256 is not yet supported" in crc32fast

Open
#1,699 7 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

A-core-arch C-enhancement
Dominant language
Rust
Stars
2.1k
Forks
157
Avg merge
1d 19h
Merged PRs (30d)
3

Description

This is a strange one, because it only popped up recently on rustc nightly with cranelift.

(To be clear, I am not the developer of his library, just an indirect user of it via flate2.)

The offending line pointed to by the backtrace seems to be here.

rustc 1.100.0-nightly (17fd5b8a3 2026-08-28)

Error with relevant backtrace:

thread 'main' (1056342) panicked at /rustc/17fd5b8a37b6667b6cc137f3cc35f09759768a3b/library/core/src/panicking.rs:225:5:
llvm.x86.pclmulqdq.256 is not yet supported.
stack backtrace:
   0: __rustc::rust_begin_unwind
             at /rustc/17fd5b8a37b6667b6cc137f3cc35f09759768a3b/library/std/src/panicking.rs:676:5
   1: core::panicking::panic_nounwind_fmt::runtime
             at /rustc/17fd5b8a37b6667b6cc137f3cc35f09759768a3b/library/core/src/panicking.rs:122:22
   2: core::panicking::panic_nounwind_fmt
             at /rustc/17fd5b8a37b6667b6cc137f3cc35f09759768a3b/library/core/src/intrinsics/mod.rs:2641:9
   3: core::panicking::panic_nounwind
             at /rustc/17fd5b8a37b6667b6cc137f3cc35f09759768a3b/library/core/src/panicking.rs:225:5
   4: core::core_arch::x86::vpclmulqdq::_mm256_clmulepi64_epi128::<0>
             at /rustc/17fd5b8a37b6667b6cc137f3cc35f09759768a3b/library/core/src/../../stdarch/crates/core_arch/src/x86/vpclmulqdq.rs:60:14
   5: crc32fast::specialized::pclmulqdq::reduce256
             at /home/emblemparade/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crc32fast-1.5.1/src/specialized/pclmulqdq.rs:427:14
   6: crc32fast::specialized::pclmulqdq::calculate_avx2
             at /home/emblemparade/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crc32fast-1.5.1/src/specialized/pclmulqdq.rs:224:14
   7: crc32fast::specialized::pclmulqdq::calculate_avx512
             at /home/emblemparade/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crc32fast-1.5.1/src/specialized/pclmulqdq.rs:261:16
   8: <crc32fast::specialized::pclmulqdq::State>::update
             at /home/emblemparade/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crc32fast-1.5.1/src/specialized/pclmulqdq.rs:101:33
   9: <crc32fast::Hasher>::update
             at /home/emblemparade/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crc32fast-1.5.1/src/lib.rs:129:50
  10: <flate2::crc::inner::Crc>::update
             at /home/emblemparade/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/flate2-1.1.10/src/crc.rs:71:13
  11: <flate2::crc::Crc>::update
             at /home/emblemparade/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/flate2-1.1.10/src/crc.rs:31:9
...

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the reported call path in crc32fast's src/specialized/pclmulqdq.rs, especially reduce256 at line 427, and the Rust core_arch intrinsic _mm256_clmulepi64_epi128 shown in the backtrace. Reproduce the failure with rustc nightly and Cranelift, then verify that the crc32fast path no longer panics on llvm.x86.pclmulqdq.256.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
compilers
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.