Skip to content

Commit 17914c8

Browse files
authored
Rollup merge of #100528 - tux3:riscv-bitmanip-features, r=davidtwco
Support 1st group of RISC-V Bitmanip backend target features These target features use the same names as LLVM and `is_riscv_feature_detected!`, they are: - zba (address generation instructions) - zbb (basic bit manipulation) - zbc (carry-less multiplication) - zbs (single-bit manipulation) The extension is frozen and ratified, and I don't think we should expect LLVM to change those feature names in the future. For reference, the specification for the B extension can be found here: https://github.com/riscv/riscv-bitmanip/releases/download/1.0.0/bitmanip-1.0.0-38-g865e7a7.pdf) On my current project, I see a 7.6% reduction in binary size with these features on, so I have some incentive to try to silence the "unknown feature" warning from `-Ctarget-feature` =)
2 parents a1fdea2 + be8fd0e commit 17914c8

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

Diff for: compiler/rustc_codegen_ssa/src/target_features.rs

+4
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,10 @@ const RISCV_ALLOWED_FEATURES: &[(&str, Option<Symbol>)] = &[
227227
("zhinxmin", Some(sym::riscv_target_feature)),
228228
("zfh", Some(sym::riscv_target_feature)),
229229
("zfhmin", Some(sym::riscv_target_feature)),
230+
("zba", Some(sym::riscv_target_feature)),
231+
("zbb", Some(sym::riscv_target_feature)),
232+
("zbc", Some(sym::riscv_target_feature)),
233+
("zbs", Some(sym::riscv_target_feature)),
230234
("zbkb", Some(sym::riscv_target_feature)),
231235
("zbkc", Some(sym::riscv_target_feature)),
232236
("zbkx", Some(sym::riscv_target_feature)),

0 commit comments

Comments
 (0)