172 похожих чатов

Есть ли какие-нибудь нормальные способы инициализировать __m256i в static переменных?

Всякие _mm256_setr_* - не const (хотя под капотом вызывают методы из std simd которые const)

Если вдруг способ через union A { data: [u64; 4], vec: __m256i, } подходит под определение нормальный, то есть ли какие-нибудь гарантии что layout будет одинаковый?

26 ответов

33 просмотра

once_cell крейт в помощь

Ramtaic Natcher
once_cell крейт в помощь

А вообще simd модуль из стандартной библиотеки имеет такие методы https://doc.rust-lang.org/std/simd/struct.Simd.html#method.from_array

Ivan-Kalinin Автор вопроса
Ivan-Kalinin Автор вопроса
Пух
Вна нем есть m256?

Да, https://doc.rust-lang.org/core/arch/x86_64/index.html

Ivan-Kalinin Автор вопроса
Пух
__m256i(0,0,0,0)

Поля этого типа - приватные

Ivan Kalinin
Сорян, забыл упомянуть - нужен stable 🌚

Вообще я рекомендую юзать найтли с нестабильными фичам, если не критично

Ivan Kalinin
Поля этого типа - приватные

Здорово они это придумали

Ivan Kalinin
Поля этого типа - приватные

mem::transmute из массива в помощь

Ramtaic Natcher
mem::transmute из массива в помощь

Надо смотреть гарантии репра

Пух
Надо смотреть гарантии репра

Это же mm256i, он и в Африке mm256i

Ramtaic Natcher
Это же mm256i, он и в Африке mm256i

А массив он и в Африке массив)

Ivan-Kalinin Автор вопроса
Ramtaic Natcher
mem::transmute из массива в помощь

Как раз вторая часть вопроса была про одинаковость выравнивания. Вообще конечно дурка что вроде бы нужна какая-то штука, её кто-то сделал и пропал - поэтому оно теперь несколько лет unstable

Ivan Kalinin
Как раз вторая часть вопроса была про одинаковость...

Трансмут копирует, поэтому думаю выровняет

Пух
Он нооп же

Ну выравнивание думаю он заметить должен

Ramtaic Natcher
Ну выравнивание думаю он заметить должен

Компайлтаймошибку разве что кинет, и то не факт

Пух
Компайлтаймошибку разве что кинет, и то не факт

Ну типа блин, он же кидает ошибку на разность размеров структур, камон

Пух
Он нооп же

он семантически два мува же?

Max Силинг
он семантически два мува же?

в процессе которых выравнивание исправится, если не по указателю

Max Силинг
в процессе которых выравнивание исправится, если н...

> Because transmute is a by-value operation, alignment of the transmuted values themselves is not a concern да

Max Силинг
> Because transmute is a by-value operation, align...

Трансмьют слишком уж безопасный

Traveller Kolsky
Трансмьют слишком уж безопасный

Мы тут вчера опшн от репр транспарента боялись сделать, а тут ваще безбашенные люди пошли

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта