gpt4 book ai didi

x86 - _mm_sfence 内在指令和 SFENCE 指令之间有什么关系?

转载 作者:行者123 更新时间:2023-12-01 01:24:25 27 4
gpt4 key购买 nike

我正在试验非时态指令,并且已经熟悉普通加载/存储的栅栏是如何操作的。

Intel 定义了与非时间操作相关的内在函数 _mm_sfence,手册将其定义为:

Guarantees that every preceding store is globally visible before any subsequent store.

我对这个操作有一些疑问。

  1. 这只是插入一条 SFENCE 指令吗?如果不是,这意味着什么?
  2. 如果这不仅仅是一个 SFENCE,那么 SFENCE 指令是否也包含非临时存储的排序保证?

最佳答案

_mm_sfence 内在函数做了两件事:

  • 插入 SFENCE 指令。
  • 根据编译器的不同,它会插入一个编译器写屏障,这样编译器就不会根据程序顺序对内部函数中的任何内存写入进行重新排序。 GCC、MSVC 和 ICC 就是这种情况。虽然不确定 Clang,但很可能它也会这样做。

关于x86 - _mm_sfence 内在指令和 SFENCE 指令之间有什么关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51251186/

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