Skip to content

Commit a381482

Browse files
authored
Don't distinguish between i586/i686 (#301)
This was historically done as the contents of the `i686` module wouldn't actually compile on i586 for various reasons. I believe I've tracked this down to #300 where LLVM refuses to compile a function using the `x86_mmx` type without actually enabling the `mmx` feature (sort of reasonably so!). This commit will now compile in both the `i586` and `i686` modules of this crate into the `i586-unknown-linux-gnu` target, and the relevant functions now also enable the `mmx` feature if they're using the `__m64` type. I believe this is uncovering a more widespread problem where the `__m64` isn't usable outside the context of `mmx`-enabled functions. The i686 and x86_64 targets have this feature enabled by default which is why it's worked there, but they're not enabled for the i586 target. We'll probably want to consider this when stabilizing!
1 parent 896531d commit a381482

File tree

5 files changed

+157
-161
lines changed

5 files changed

+157
-161
lines changed

coresimd/src/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
simd_ffi, target_feature, cfg_target_feature, i128_type, asm,
1616
const_atomic_usize_new, stmt_expr_attributes, core_intrinsics,
1717
crate_in_paths)]
18-
#![cfg_attr(test, feature(proc_macro, test, repr_align, attr_literals))]
18+
#![cfg_attr(test, feature(proc_macro, test, attr_literals))]
1919
#![cfg_attr(feature = "cargo-clippy",
2020
allow(inline_always, too_many_arguments, cast_sign_loss,
2121
cast_lossless, cast_possible_wrap,

0 commit comments

Comments
 (0)