gpt4 book ai didi

c++ - 在我的C++ Builder应用程序中包括xmmintrin.h的问题

转载 作者:行者123 更新时间:2023-12-02 10:11:52 25 4
gpt4 key购买 nike

我正在尝试编写一些SIMD代码(在C++ Builder 10.1 Berlin中),但是E2257中出现了mmintrin.h错误(xmmintrin.h包含了该错误,应该将其包含在SIMD中)。有很多相同的错误,因此bcc32似乎无法处理这些 header 中的语法。
例如,所有包含__atribute__的行似乎都会导致此错误:

typedef long long __m64 __attribute__((__vector_size__(8)));
在我看来,这似乎是C++ builder的错误,但我不确定,老实说,我对 __atribute__不熟悉(这似乎不是C++关键字,因此我认为它要么是功能/宏或语言扩展)。
更新:由于C++ Builder 10.1 Berlin可以使用Clang( bcc32c而不是旧的编译器 bcc32),所以我也尝试了一下,这有助于消除所有 E2257错误。不幸的是,我现在得到了一个ICE([bcc32c错误] FillObj.cpp(1):ICE:内部编译器错误:C0000005 @ 27287E3D)。罪魁祸首是此行 _mm_storeu_ps(&a[i], xmm0 );注释掉此行会使代码编译。这段代码只是一个例子,但足以重现问题。
#include <xmmintrin.h>

void SumValues(float * a, float * b, unsigned len){

__m128 xmm0, xmm1;
//for this simple example , it's assumed len is divisible by
for(int i=0; i<len; i += 4){

xmm0 = _mm_loadu_ps( &a[i] );
xmm1 = _mm_loadu_ps( &b[i] );

xmm0 = _mm_add_ps(xmm0, xmm1);

_mm_storeu_ps( &a[i], xmm0 );//this line is causing the ICE described above

}
}
正如我在评论中所说,这在Qt(使用MinGw 5.5.0)中很好用。关于Clang编译器,我不确定是哪个版本,但是由于它必须支持所有VCL东西,因此我认为它不是标准的clang编译器。

最佳答案

我在IDE中使用了10.4 Sydney 64位Windows C++编译器,您的示例为我编译并执行。

void SumValues(float * a, float * b, unsigned len){
__m128 xmm0, xmm1;
//for this simple example , it's assumed len is divisible by
for(int i=0; i<len; i += 4){

xmm0 = _mm_loadu_ps( &a[i] );
xmm1 = _mm_loadu_ps( &b[i] );
xmm0 = _mm_add_ps(xmm0, xmm1);
_mm_storeu_ps( &a[i], xmm0 );//this line is causing the ICE described above
}
}

__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
//
float myA[4],myB[4];
myA[0] = 0.0;
myA[1] = 1.0;
myA[2] = 2.0;
myA[3] = 3.0;
myB[0] = 0.0;
myB[1] = 1.0;
myB[2] = 2.0;
myB[3] = 3.0;
SumValues(myA,myB,4);
Button1->Caption = FloatToStr(myA[2]);
}

关于c++ - 在我的C++ Builder应用程序中包括xmmintrin.h的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63197855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com