blob: c2ed537dac712a7e17c0c86b4b068b96ffc7ba1f [file] [log] [blame]
struct atomic_compare_exchange_result_i32 {
int old_value;
bool exchanged;
};
static bool tint_discarded = false;
RWByteAddressBuffer S : register(u0);
struct tint_symbol_1 {
float4 value : SV_Target0;
};
atomic_compare_exchange_result_i32 SatomicCompareExchangeWeak(uint offset, int compare, int value) {
atomic_compare_exchange_result_i32 result=(atomic_compare_exchange_result_i32)0;
S.InterlockedCompareExchange(offset, compare, value, result.old_value);
result.exchanged = result.old_value == compare;
return result;
}
float4 main_inner() {
if (false) {
tint_discarded = true;
}
atomic_compare_exchange_result_i32 tint_symbol_2 = (atomic_compare_exchange_result_i32)0;
if (!(tint_discarded)) {
tint_symbol_2 = SatomicCompareExchangeWeak(0u, 0, 1);
}
const atomic_compare_exchange_result_i32 tint_symbol = tint_symbol_2;
const int old_value = tint_symbol.old_value;
return float4((float(old_value)).xxxx);
}
tint_symbol_1 main() {
const float4 inner_result = main_inner();
tint_symbol_1 wrapper_result = (tint_symbol_1)0;
wrapper_result.value = inner_result;
if (tint_discarded) {
discard;
}
return wrapper_result;
}