---
# System prepended metadata

title: Portable SIMD 2020-10-12 Meeting
tags: [Minutes, Portable SIMD]

---

# Portable SIMD 2020-10-12 Meeting

###### tags: `Portable SIMD` `Minutes`

[Last Week] | [This Week's Chat] | [Next Week]

[Last Week]: https://hackmd.io/koVzlGQ0QsWqn1iwLf-Wyg?view
[This Week's Chat]:  https://rust-lang.zulipchat.com/#narrow/stream/257879-project-portable-simd/topic/2020-10-12.20meeting
[Next Week]: https://hackmd.io/WEZ4bI7wTk2VbYbVhKaM1Q?view

## Agenda

From 15:00z-07:00 to 15:30z-07:00

0. Meeting times. Would we like to move it back to be easier for Europe / East US timezones?
0. Is there anything we want to raise at the Libs meeting later this week?
0. Temporarily disabling RISCV in CI?
0. It's time to paint a bikeshed! https://github.com/rust-lang/stdsimd/issues/36

## Resolved

0. If it's an improvement we can move it to 12:30:00Z-07:00:00.
1. Not much to say, apparently! Aside from "we can't release to nightly due to a compiler bug, lol."
2. We are definitely disabling RISCV for now, but this blocks us adding the crate to nightly.
3. OPINIONS! "Minimize bloat on the f32x4 (etc.) type please, the masks are fine." Also apparently horizontal ops are really bad.

## Summary

### Compiler bug on RISCV

- We've hit an issue with [broken LLVM intrinsics with SIMD FFI on riscv64gc](https://github.com/rust-lang/rust/issues/77866). It's a compiler bug.
- We can't ship on `nightly` until it's fixed. It's raised a few questions:
    - How do we deal with compiler bugs that are bound to pop up on various platforms?
    - What is our plan for getting `stdsimd` in the mainline?

For how we deal with compiler bugs:

- Raise them as ICEs as normal
- For RISCV since it's pretty much the whole target that doesn't work we'll just exclude it for now until the ICE is fixed up
- Once the source is part of `rust-lang/rust` these kinds of issues should be caught

For our plan for getting `stdsimd` in the mainline:

- Let users depend on it directly as a Git dependency for now
- Release on `crates.io`
- Submodule it in to `rust-lang/rust` as an unstable API
