Skip to content

Commit 2b5570b

Browse files
Rollup merge of rust-lang#137318 - bjorn3:cg_clif_abi_workaround, r=workingjubilee
Workaround Cranelift not yet properly supporting vectors smaller than 128bit While it would technically be possible to workaround this in cg_clif, it quickly becomes very messy and would likely cause correctness issues. Working around it in rustc instead is much simper and won't have any negative impact for code running on stable as vectors smaller than 128bit can only be made on nightly using core::simd or #[repr(simd)].
2 parents 9a0e823 + 18c210c commit 2b5570b

File tree

1 file changed

+3
-1
lines changed
  • compiler/rustc_target/src/callconv

1 file changed

+3
-1
lines changed

compiler/rustc_target/src/callconv/mod.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -736,7 +736,9 @@ impl<'a, Ty> FnAbi<'a, Ty> {
736736
// to 128-bit-sized vectors.
737737
"x86" if spec.rustc_abi == Some(RustcAbi::X86Sse2) => arg.layout.size.bits() <= 128,
738738
"x86_64" if spec.rustc_abi != Some(RustcAbi::X86Softfloat) => {
739-
arg.layout.size.bits() <= 128
739+
// FIXME once https://github.com/bytecodealliance/wasmtime/issues/10254 is fixed
740+
// accept vectors up to 128bit rather than vectors of exactly 128bit.
741+
arg.layout.size.bits() == 128
740742
}
741743
// So far, we haven't implemented this logic for any other target.
742744
_ => false,

0 commit comments

Comments
 (0)