首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SIMD Intrinsics和指针

SIMD Intrinsics和指针
EN

Stack Overflow用户
提问于 2012-11-16 20:39:36
回答 1查看 998关注 0票数 1

我读到的所有关于将C/C++内部类型用于MMX和SSE等SIMD功能的文章都表明,您应该将这些类型用作不透明类型,而不是直接引用内部。

但是,当我查看许多示例时,它们的工作方式是获取(显式对齐的)指向原始数据的指针,并在执行工作之前将它们重新解释为指向内部类型的指针。但是,通过使用指向内部类型的指针,特别是在将其他数据作为这些类型的别名时,您是否违反了该规则?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-16 21:00:33

你似乎已经发现,大多数例子都很糟糕。

引用SSE类型的“内部”实际上是相当安全的(只要它可以编译),而且在实践中,您可以在内存中将它们别名为内存中的“普通”数据类型,很多人这样做是因为它使代码更易于编写和使用。

但它很大程度上破坏了使用SIMD的意义。它阻止了许多优化,这意味着编译器必须不断地存储/加载SIMD数据类型,而不仅仅是将它们保存在SIMD寄存器中。

你可以这样做,但你不应该这样做。正如你已经发现的,许多人将“应该”读作“随意做这件事”。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13416754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档