我的动机是,我想告诉编译器我的float * U数组是64字节对齐,以便编译器可以进行矢量化。
如果使用英特尔编译器,我可以使用__assume_aligned(U,64);我用google搜索并发现如果我想使用GCC做同样的事情,我必须定义另一个浮点数* U_tmp = __ builtin_assume_aligned(U,64) ,并使用U_tmp。但是,当它与GCC进行编译时,编译器会报告这一点 “错误:'__ builtin_assume_aligned'未在此范围内声明” 我不知道是否遗漏了一些包含此GCC内置函数的库或头文件。
答案 0 :(得分:1)
这应该是开箱即用的,没有任何额外的标题。但是,这只是添加到GCC 4.7,也许你的编译器比那个更老?