Size: a a a

2020 November 01

АР

Андрей Руссков... in pro.cxx
нет, там сначала выравнивание, потом копирование по 64 бита, потом еще выравнивание
источник

АР

Андрей Руссков... in pro.cxx
но я хочу найти simd версии
источник

CD

Constantine Drozdov in pro.cxx
magras
Я не согласен. Какой бит я должен флипнуть чтобы превратить 1 в -1?
А можно источник, что sign bit / знаковый бит это именно указание знака битом?
источник

I

Ioann_V in pro.cxx
Андрей Руссков
но я хочу найти simd версии
источник

I

Ioann_V in pro.cxx
более того, я тестировал SIMD версию против того, что в статье. На интелах новых, нетбучных получалось, что SIMD на 10% быстрее, а на AMD zen2 вровень
источник

CD

Constantine Drozdov in pro.cxx
magras
Я не согласен. Какой бит я должен флипнуть чтобы превратить 1 в -1?
то есть я делаю блиц-проверки, и, скажем, автор текста статьи википедии про overflow flag так не считает

In computer processors, the overflow flag (sometimes called V flag) is usually a single bit in a system status register used to indicate when an arithmetic overflow has occurred in an operation, indicating that the signed two's-complement result would not fit in the number of bits used for the operation (the ALU width).  [...]

[...] The overflow flag is thus set when the most significant bit (here considered the sign bit) is changed by adding two numbers with the same sign
источник

АР

Андрей Руссков... in pro.cxx
Ioann_V
более того, я тестировал SIMD версию против того, что в статье. На интелах новых, нетбучных получалось, что SIMD на 10% быстрее, а на AMD zen2 вровень
круто, на интелах 10900k быстрее, на 5950 быстрее, а диктуют процы десятилетней давности )
источник

АР

Андрей Руссков... in pro.cxx
точнее, те, о которых можно предполагать только что у них есть sse2
источник

АР

Андрей Руссков... in pro.cxx
и то в режиме сборки x64
источник

АР

Андрей Руссков... in pro.cxx
ну, потому что у x64 всегда есть sse2
источник

CD

Constantine Drozdov in pro.cxx
точно, rep mov, а rep stos это про null terimated string
источник

CD

Constantine Drozdov in pro.cxx
хех, хорошо
The existence of code written by people who should never have been allowed to touch a keyboard cannot be allowed to prevent a correct implementation
источник

m

magras in pro.cxx
Constantine Drozdov
А можно источник, что sign bit / знаковый бит это именно указание знака битом?
Я бы сказал что старший бит two's compliment - это признак позволяющий установить что число отрицательно. Я бы отделил этот кейс, так как есть signed magnitude representation, в которой есть sign bit в явном виде. Two's compliment - это по сути диапазон [0, 2^n-1] где вторую половину отрезали с сдвинули влево на 2^n. Да, так совпало что старший бит показывает знак числа, но он его не определяет.

В прочем на вики статья про sign bit говорит в том числе и о two's compliment, так что вероятно я не прав.
источник

エパ

エクシー パンテリーブ-先生... in pro.cxx
Там gas надеюсь?
источник

АР

Андрей Руссков... in pro.cxx
Constantine Drozdov
хех, хорошо
The existence of code written by people who should never have been allowed to touch a keyboard cannot be allowed to prevent a correct implementation
не ну он прав. Он конечно в своей манере подает это так, что максимально трудно согласиться, но он все еще прав
источник

VF

Vlad Faust in pro.cxx
Подскажите, пожалуйста, как ремувнуть объект с топа стэка без вызова его деструктора?

auto instance = std::move(_instances.top());
_instances.pop(); // Would call the destructor :(
return instance;
источник

TW

Tony Werner in pro.cxx
А нельзя сделать стек указателей?
источник

NP

Nikita Provotorov in pro.cxx
Vlad Faust
Подскажите, пожалуйста, как ремувнуть объект с топа стэка без вызова его деструктора?

auto instance = std::move(_instances.top());
_instances.pop(); // Would call the destructor :(
return instance;
а точно не xy проблема?
источник

VF

Vlad Faust in pro.cxx
Ну, у меня тут дженерик пул. Стэк и так в хипе, зачем мне и инстансы в хип совать
источник

NP

Nikita Provotorov in pro.cxx
Vlad Faust
Подскажите, пожалуйста, как ремувнуть объект с топа стэка без вызова его деструктора?

auto instance = std::move(_instances.top());
_instances.pop(); // Would call the destructor :(
return instance;
можно написать прозрачный type-erasure враппер который не будет вызывать деструктор
источник