Необработанное исключение в вызове API _mm_extract_si64 с использованием VS 2017 - PullRequest
0 голосов
/ 24 июня 2018

Используя версию Visual C ++ 2017, следующий пример кода (как указано в https://msdn.microsoft.com/en-us/library/bb384811.aspx) выполняется с необработанным исключением.

// Compile this sample with: /EHsc  
#include <iostream>  
#include <intrin.h>  
using namespace std;  

union {  
    __m128i m;  
    unsigned __int64 ui64[2];  
} source, descriptor, result1, result2, result3;  

int  
main()  
{  
    source.ui64[0] =     0xfedcba9876543210ll;  
    descriptor.ui64[0] = 0x0000000000000b1bll;  

    result1.m = _mm_extract_si64 (source.m, descriptor.m);  // here unhandled-exception occurs
    result2.m = _mm_extracti_si64(source.m, 27, 11);  
    result3.ui64[0] = (source.ui64[0] >> 11) & 0x7ffffff;  

    cout << hex << "result1 = 0x" << result1.ui64[0] << endl;  
    cout << "result2 = 0x" << result2.ui64[0] << endl;  
    cout << "result3 = 0x" << result3.ui64[0] << endl;  
}

Я запускаю его с использованием VS 2017 в Windows 7 Ultimateи процессор Intel Core i3 4030U.Что здесь не так?Как решить?Пожалуйста, предложите.

...