インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
アトミックな読み取り-変更-書き込み操作を実行します。このトピックは、インテル® グラフィックス・テクノロジーをターゲットとする場合にのみ適用されます。
int _gfx_atomic_write_i32(__GfxAtomicOpType op_type, int* ptr, unsigned int offset, int src0, int src1);
op_type |
操作の種類。以下に示す列挙型 __GfxAtomicOpType のいずれかの値でなければなりません。old_dst は、操作の前の ptr+offset にあるメモリー値を表します。
|
||||||||||||||||||||||||||||
ptr |
デスティネーションのベースポインター |
||||||||||||||||||||||||||||
offset |
アトミックな読み取り-変更-書き込み操作が行われる、ベースポインターからのオフセット。オフセットは、デスティネーション値の要素型のサイズです。 |
||||||||||||||||||||||||||||
src0 |
1 つ目のソース。GFX_ATOMIC_INC と GFX_ATOMIC_DEC では無視されます。 |
||||||||||||||||||||||||||||
src1 |
2 つ目のソース。GFX_ATOMIC_CMPXCHG を除くすべての操作で無視されます。 |
この関数は、op_type で指定されたアトミックな読み取り-変更-書き込み操作を実行します。ベースポインター ptr とベースポインターからのオフセット offset により、操作を実行するメモリーアドレスを指定します。
最大で 2 つのソース (src0 と src1) とデスティネーションの以前の値 old_dst を使用して、デスティネーションの新しい値を計算します。各引数の使用法は、op_type で指定される操作に依存します。
この関数は、ベクトルループの配列表記のようなベクトル・コンテキストで使用できます。その場合、組込み関数はコンパイラーによってベクトル化され、複数のメモリー位置に対する操作が並列に実行されます。そのようなケースでは、ptr はベクトルループのすべての反復で同じ値であると仮定されます。ベクトルループの異なる反復によるこの関数の呼び出しは、同じメモリー位置 (つまり、同じオフセット値) を指すことができます。その場合、ハードウェアによって操作が正しくシリアル化されます。
書き込み操作の前のメモリー位置の値