SIMD и динамическое распределение памяти [дубликаты]

Possible Duplicate:
SSE, intrinsics, and alignment

Я новичок в программировании SIMD, поэтому, пожалуйста, извините, если я задаю очевидный вопрос.

Я немного поэкспериментировал и дошел до того, что хочу сохранить значение SIMD в динамически распределенной структуре.

Вот код:

struct SimdTest
{
    __m128      m_simdVal;

    void setZero()
    {
        __m128 tmp = _mm_setzero_ps(); 
        m_simdVal = tmp; // <<--- CRASH ---
    }
};

TEST( Plane, dynamicallyAllocatedPlane )
{
    SimdTest* test = new SimdTest();

    test->setZero();

    delete test;
}

При выполнении метода, помеченного комментарием CRASH, происходит сбой кода со следующим исключением:

Unhandled exception at 0x775315de in test-core.exe: 0xC0000005: Access violation reading location 0x00000000

Может кто-нибудь объяснить, почему прерывается операция присваивания и как SIMD-содержащие объекты распределяются динамически, чтобы они нормально работали?

Мне нужно добавить, что если я статически создаю экземпляр объекта SimdTest и вызываю метод setZero, все работает нормально.

Спасибо, Паксас

Ответы на вопрос(2)

Ваш ответ на вопрос