Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.07.2014, 09:54   #1
AlexVI
Пользователь
 
Регистрация: 25.11.2006
Сообщений: 40
По умолчанию intrinsics функция __m64 _mm_xor_si64(...)

ВОПРОС 1 _ реализую функцию но что-то не ТАК !!!

Код:
__m64 reg1, reg2;
reg1.m64_i32[0] = 0x00000000; reg1.m64_i32[1] = 0x00000000;
reg2.m64_i32[0] = 0x00000000; reg2.m64_i32[1] = 0x00000000;

for(j=0; j<20; j++)
{
   reg2.m64_i32[0] = InBufCW[j];// InBufCW[j] - это unsigned char 0x00 0xFF
   reg1 = _mm_xor_si64 (reg1, reg2);
}

if(reg1.m64_i32[0] == 0x000000FF) all_zero = 0;
Вопрос ТАкой что не так. И если большой цикл оно вылетает ПОЧЕМУ ?

ВОПРОС 2 дополнительно проверил все равно вылетает даже если записать так

Код:
__m64 reg1;

for(j=0; j<20; j++)
{
   reg1 = _mm_setzero_si64();
}

Последний раз редактировалось AlexVI; 22.07.2014 в 10:32.
AlexVI вне форума Ответить с цитированием
Старый 22.07.2014, 10:54   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Что значит "вылетает"?
waleri вне форума Ответить с цитированием
Старый 22.07.2014, 11:10   #3
AlexVI
Пользователь
 
Регистрация: 25.11.2006
Сообщений: 40
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Что значит "вылетает"?
программа считает синдром. Без верхних записей все нормально. Как только ставлю просто испытать цикл (вопрос 2) немного считало данных и останавливается как будто где то что то переполняется ???
AlexVI вне форума Ответить с цитированием
Старый 22.07.2014, 11:25   #4
AlexVI
Пользователь
 
Регистрация: 25.11.2006
Сообщений: 40
По умолчанию

только проверил работает в debuge(виснет в конце работы) если компилю release все работает но виснет в конце нормально ИНТЕРЕСНО ?

еще есть warning !!! no EMMS instruction before call
заголовочный файл у меня подключен mmintrin.h

Последний раз редактировалось AlexVI; 22.07.2014 в 12:13.
AlexVI вне форума Ответить с цитированием
Старый 22.07.2014, 13:21   #5
AlexVI
Пользователь
 
Регистрация: 25.11.2006
Сообщений: 40
По умолчанию

после создания переменной __m64 и их использования необходимо высвободить ее командой void _mm_empty(void)
AlexVI вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция. Gtnz8 Помощь студентам 14 12.08.2012 00:40
Функция. ХреновыйПрогер Общие вопросы C/C++ 3 23.11.2010 00:00
SSE intrinsics C++ qpharm Общие вопросы C/C++ 1 13.11.2009 12:57
Функция Lemo Помощь студентам 1 02.12.2008 00:24
одна функция потока, а другая функция - член класса запускающего этот поток Дмитрий_Ч Общие вопросы C/C++ 2 27.09.2007 08:50