Используйте переменную сеанса MySQL (5.6.13) и оператор присваивания, такой как следующий
SELECT @logmsg := CONCAT_ws(',',@logmsg,items) FROM temp_SplitFields a;
, тогда вы можете получить
test1,test11
Недавно я обновил теги wikis для SSE , AVX и x86 (и SSE2 , AVX2 ). Они охватывают много всего этого. tl; dr summary: AVX сворачивает все предыдущие версии SSE и предоставляет 3-операндовые версии этих инструкций. Также версии 256b большинства FP (AVX) и int (AVX2) insns.
Для резюме различных версий SSE см. Более подробный ответ на wikipedia или более подробный ответ knm24.
Мы надеваем «Я действительно думаю о том, что делает SSE устаревшим. Более того, подумайте об AVX как о новой и лучшей версии тех же старых инструкций SSE. Они все еще находятся в справочнике по ремонту под их именами без AVX (например, PSHUFB
, а не VPSHUFB
). Вы можете смешивать код AVX и SSE, если вы используете VZEROUPPER
, когда это необходимо, чтобы избежать производительности проблема смешивания VEX с не-VEX insns (на Intel). Таким образом, есть некоторая досада, когда приходится обращаться к библиотекам, которые могут запускать инструкции, отличные от VEX SSE, или где ваш код использует математику SSE FP, но также имеет некоторый код AVX для запуска, только если процессор поддерживает его.
Если совместимость с ЦП была не проблема, версии векторных инструкций с устаревшим SSE были бы действительно устаревшими, как сейчас MMX. AVX / AVX2 по крайней мере немного лучше во всех отношениях, если вы считаете версию 128b с кодировкой VEX insn как AVX, а не SSE. Иногда вы по-прежнему используете 128-битные регистры, потому что ваши данные поступают только в куски, большие, но чаще работающие с 256-битными регистрами, чтобы сделать тот же самый op на вдвое большем количестве данных одновременно.
SSE / AVX / x87 -FP / integer все используют одни и те же порты выполнения. Вы не можете сделать больше в параллельном порядке, смешав их. (за исключением Haswell, где один из 4 портов ALU может обрабатывать не-векторные insns, такие как GP reg ops и ветви).
Они дополняют друг друга.
Каждое новое расширение набора инструкций добавляет новые инструкции и, в конечном итоге, новую модель программирования (например, новые регистры).
Нет устарели, устаревшие инструкции почти невозможно сделать по соображениям совместимости. Однако некоторые дополнительные расширения могут отсутствовать или удаляться из более новых моделей (например, FMA4 AMD), если они не очень широко распространены. Некоторые из них носят рудиментарный характер, но все, что можно сделать с помощью FPU и MMX, например, можно сделать более эффективно с помощью SSE +.
Они не являются взаимоисключающими в том смысле, что вы можете использовать тот или иной, ведь они являются инструкциями, а не режимами работы (например, реальный vs защищенный режим). Единственный возможный «конфликт» - между MMX и FPU, поскольку они разделяют нижнюю часть одного и того же набора регистров, но имеют другую модель программирования. Новые векторные регистры выросли с 128 до 256 бит и до 512 бит, каждый раз, когда предыдущие регистры стали нижней частью новых.
Вы можете использовать их все вместе, они предлагают определенное оборудование поддержка внедрения простых операций.
Они похожи на кирпичи Lego, вас ограничивает только ваше воображение (или воображение дизайнеров).
Вот простой список этих расширений набора инструкций. Отображаются только некоторые функции, для полной ссылки см. Intel Manual Vol1 из раздела 9 - 14.
См. Также https://hjlebbink.github.io/x86doc / для оглавления руководства по тома 2 тома 2 (руководство по набору команд) со списком расширений, в котором добавлены инструкции к этой ручной записи.
lddqu
), что было лучше на Pentium 4, команде синхронизации, горизонтальной добавке / югу. pshufb
).