llvm-project
62fd85fe - [HLSL] Add `InterlockedExchange` function and resource methods (#222161)

Commit
17 days ago
[HLSL] Add `InterlockedExchange` function and resource methods (#222161) This PR adds the `InterlockedExchange` standalone function and resource methods. The operation lowers to `atomicrmw xchg`. `InterlockedExchange` is the first interlocked operation that reports the previous value. It takes that value through an `original_value` reference parameter, so this PR adds a `RequiresOriginalValue` flag to `HLSLBuiltinTypeDeclBuilder` and a matching overload shape to `HLSLExternalSemaSource`. The later compare operations reuse both. The float overload of `InterlockedExchange` follows in a separate PR in this stack. This PR covers the integer overloads alone, so it links https://github.com/llvm/llvm-project/issues/99129 without closing it. Assisted by: Github Copilot
Author
Parents
Loading