Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
greenEkatherine
0 / 0 / 0
Регистрация: 01.06.2013
Сообщений: 9
#1

Intrinsic функция для определения количества единиц в блоке - C++

06.08.2014, 18:37. Просмотров 483. Ответов 5
Метки нет (Все метки)

Есть блок, скажем типа __m256 и между всеми его байтами нужно выполнить xor. Или, что аналогично, посмотреть, четно ли количество единиц в этом блоке. Есть ли готовые intrinsic функции для этого? Пока не придумала ничего оптимальнее, чем выгружать значения из блока __m256 в обычный вектор и уже там средствами c++ считать количество единиц.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.08.2014, 18:37     Intrinsic функция для определения количества единиц в блоке
Посмотрите здесь:

C++ Функция для определения минимального элемента вектора
оставить программу для определения сложности предложения. Под сложностью понимать сумму количества слов и разделительных знаков C++
C++ Функция для определения% содержания символа в строке
2. Составить программу для определения количества трехзначных чисел, кратных заданному числу C++
C++ Функция для определения знака перед числом
C++ Рекурсивная функция для определения палиндромов
C++ Опишите рекурсивную функцию number без параметров для определения количества элементов файла
C++ Написать программу для перевода единиц измерения количества информации
Написать функцию для определения количества цифровых символов в заданной текстовой строке C++
C++ Подскажите функцию для нахождения количества единиц в битовом массиве
C++ Функция для определения текущей даты и времени
Определения количества единиц в числе C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DrOffset
6864 / 4075 / 928
Регистрация: 30.01.2014
Сообщений: 6,870
06.08.2014, 20:06     Intrinsic функция для определения количества единиц в блоке #2
Цитата Сообщение от greenEkatherine Посмотреть сообщение
Есть ли готовые intrinsic функции для этого?
Компилятор-то какой?

Добавлено через 20 минут
На всякий случай оставлю здесь эту ссылку.
Если вдруг компилятор какой-то другой, то можно самому написать требуемую функцию через PXOR.
Но в ICC, GCC последних версий должно работать: _mm256_xor_si256 (см. ссылку). Насчет Visual Studio не уверен.
greenEkatherine
0 / 0 / 0
Регистрация: 01.06.2013
Сообщений: 9
06.08.2014, 20:37  [ТС]     Intrinsic функция для определения количества единиц в блоке #3
Компилятор gcc.

Проблема в том, что я использую эту функцию, но после нее остается вектор, который тоже надо xor-рить. То есть в конце нужно получить 0 или 1. Как быть в таком случае?
DrOffset
6864 / 4075 / 928
Регистрация: 30.01.2014
Сообщений: 6,870
06.08.2014, 20:54     Intrinsic функция для определения количества единиц в блоке #4
Цитата Сообщение от greenEkatherine Посмотреть сообщение
То есть в конце нужно получить 0 или 1.
Так XOR нужен не побитовый, а логический?

Добавлено через 8 минут
Или нужно поксорить биты между собой в одном __m256?
greenEkatherine
0 / 0 / 0
Регистрация: 01.06.2013
Сообщений: 9
07.08.2014, 07:08  [ТС]     Intrinsic функция для определения количества единиц в блоке #5
Поксорить биты между собой.
castaway
Эксперт С++
4880 / 3016 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
07.08.2014, 07:15     Intrinsic функция для определения количества единиц в блоке #6
Таких инструкций нет. Делай вручную.
Yandex
Объявления
07.08.2014, 07:15     Intrinsic функция для определения количества единиц в блоке
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru