Open
Description
Per the conversation on Zulip in t-compiler and project-portable-simd, we are going to find Cranelift landing a direct challenge to our landing in std
, because the last one in is a rotten egg has to implement support for the other... but while we could "race" them, it seems integration might require a total redesign anyways. So, collaboration! But we need to
- Figure out what Cranelift needs from us
- Figure out what we need from Cranelift
- Figure out what additional consequences landing
std::simd
has for Cranelift support - Figure out what additional consequences landing Cranelift support has for
std::simd
- Solve all that
I hope most if not all of the operations used by portable simd could use (newly introduced)
simd_*
platform intrinsics that are architecture and vector size independent. This would allow easy emulation of them implemented once per operation.
This has led to some immediate questions:
- What exactly are "platform-intrinsics" supposed to be? Our current understanding is that they're LLVM ops... but Cranelift isn't LLVM, obviously. So...
- What changes about them when moving from LLVM to Cranelift?
- What does this do for SIMD FFI?
- Can we find a way around the SIMD FFI question?
Metadata
Metadata
Assignees
Labels
Area: LLVMRust's other codegen backend, coming Soon™Area: SIMD. Put this on tracking issues to help with cross-repo issue organizationCategory: a feature request, i.e. not implemented / a PROngoing issue with checkboxes for partial progress and suchCall for participation. Experience needed: Hard.`#![feature(simd_ffi)]`