|
@@ -148,41 +148,41 @@ $type1 [[rn]] fwidth(in float_like<> x);
|
|
|
void [[]] GroupMemoryBarrier() : syncsharedmemory;
|
|
|
void [[]] GroupMemoryBarrierWithGroupSync() : syncgroupandsharedmemory;
|
|
|
// 64-bit integers interlocks
|
|
|
-void [[]] InterlockedAdd(in int64_only result, in u64 value);
|
|
|
-void [[]] InterlockedAdd(in int64_only result, in u64 value, out any_int64 original) : interlockedadd_immediate;
|
|
|
-void [[unsigned_op=InterlockedUMin,overload=0]] InterlockedMin(in int64_only result, in any_int64 value) : interlockedmin;
|
|
|
-void [[unsigned_op=InterlockedUMin,overload=0]] InterlockedMin(in int64_only result, in any_int64 value, out any_int64 original) : interlockedmin_immediate;
|
|
|
-void [[unsigned_op=InterlockedUMax,overload=0]] InterlockedMax(in int64_only result, in any_int64 value) : interlockedmax;
|
|
|
-void [[unsigned_op=InterlockedUMax,overload=0]] InterlockedMax(in int64_only result, in any_int64 value, out any_int64 original) : interlockedmax_immediate;
|
|
|
-void [[]] InterlockedAnd(in int64_only result, in u64 value);
|
|
|
-void [[]] InterlockedAnd(in int64_only result, in u64 value, out any_int64 original) : interlockedand_immediate;
|
|
|
-void [[]] InterlockedOr(in int64_only result, in u64 value);
|
|
|
-void [[]] InterlockedOr(in int64_only result, in u64 value, out any_int64 original) : interlockedor_immediate;
|
|
|
-void [[]] InterlockedXor(in int64_only result, in u64 value);
|
|
|
-void [[]] InterlockedXor(in int64_only result, in u64 value, out any_int64 original) : interlockedxor_immediate;
|
|
|
-void [[]] InterlockedCompareStore(in int64_only result, in u64 compare, in u64 value);
|
|
|
-void [[]] InterlockedExchange(in int64_only result, in any_int64 value, out any_int64 original);
|
|
|
-void [[]] InterlockedCompareExchange(in int64_only result, in u64 compare, in u64 value, out any_int64 original);
|
|
|
+void [[]] InterlockedAdd(ref int64_only result, in u64 value);
|
|
|
+void [[]] InterlockedAdd(ref int64_only result, in u64 value, out any_int64 original) : interlockedadd_immediate;
|
|
|
+void [[unsigned_op=InterlockedUMin,overload=0]] InterlockedMin(ref int64_only result, in any_int64 value) : interlockedmin;
|
|
|
+void [[unsigned_op=InterlockedUMin,overload=0]] InterlockedMin(ref int64_only result, in any_int64 value, out any_int64 original) : interlockedmin_immediate;
|
|
|
+void [[unsigned_op=InterlockedUMax,overload=0]] InterlockedMax(ref int64_only result, in any_int64 value) : interlockedmax;
|
|
|
+void [[unsigned_op=InterlockedUMax,overload=0]] InterlockedMax(ref int64_only result, in any_int64 value, out any_int64 original) : interlockedmax_immediate;
|
|
|
+void [[]] InterlockedAnd(ref int64_only result, in u64 value);
|
|
|
+void [[]] InterlockedAnd(ref int64_only result, in u64 value, out any_int64 original) : interlockedand_immediate;
|
|
|
+void [[]] InterlockedOr(ref int64_only result, in u64 value);
|
|
|
+void [[]] InterlockedOr(ref int64_only result, in u64 value, out any_int64 original) : interlockedor_immediate;
|
|
|
+void [[]] InterlockedXor(ref int64_only result, in u64 value);
|
|
|
+void [[]] InterlockedXor(ref int64_only result, in u64 value, out any_int64 original) : interlockedxor_immediate;
|
|
|
+void [[]] InterlockedCompareStore(ref int64_only result, in u64 compare, in u64 value);
|
|
|
+void [[]] InterlockedExchange(ref int64_only result, in any_int64 value, out any_int64 original);
|
|
|
+void [[]] InterlockedCompareExchange(ref int64_only result, in u64 compare, in u64 value, out any_int64 original);
|
|
|
// floating point interlocks
|
|
|
-void [[]] InterlockedExchange(in float32_only result, in float value, out float original);
|
|
|
-void [[]] InterlockedCompareStoreFloatBitwise(in float32_only result, in float compare, in float value);
|
|
|
-void [[]] InterlockedCompareExchangeFloatBitwise(in float32_only result, in float compare, in float value, out float original);
|
|
|
+void [[]] InterlockedExchange(ref float32_only result, in float value, out float original);
|
|
|
+void [[]] InterlockedCompareStoreFloatBitwise(ref float32_only result, in float compare, in float value);
|
|
|
+void [[]] InterlockedCompareExchangeFloatBitwise(ref float32_only result, in float compare, in float value, out float original);
|
|
|
// 32-bit integer interlocks
|
|
|
-void [[]] InterlockedAdd(in int32_only result, in uint value);
|
|
|
-void [[]] InterlockedAdd(in int32_only result, in uint value, out any_int32 original) : interlockedadd_immediate;
|
|
|
-void [[unsigned_op=InterlockedUMin,overload=0]] InterlockedMin(in int32_only result, in any_int32 value) : interlockedmin;
|
|
|
-void [[unsigned_op=InterlockedUMin,overload=0]] InterlockedMin(in int32_only result, in any_int32 value, out any_int32 original) : interlockedmin_immediate;
|
|
|
-void [[unsigned_op=InterlockedUMax,overload=0]] InterlockedMax(in int32_only result, in any_int32 value) : interlockedmax;
|
|
|
-void [[unsigned_op=InterlockedUMax,overload=0]] InterlockedMax(in int32_only result, in any_int32 value, out any_int32 original) : interlockedmax_immediate;
|
|
|
-void [[]] InterlockedAnd(in int32_only result, in uint value);
|
|
|
-void [[]] InterlockedAnd(in int32_only result, in uint value, out any_int32 original) : interlockedand_immediate;
|
|
|
-void [[]] InterlockedOr(in int32_only result, in uint value);
|
|
|
-void [[]] InterlockedOr(in int32_only result, in uint value, out any_int32 original) : interlockedor_immediate;
|
|
|
-void [[]] InterlockedXor(in int32_only result, in uint value);
|
|
|
-void [[]] InterlockedXor(in int32_only result, in uint value, out any_int32 original) : interlockedxor_immediate;
|
|
|
-void [[]] InterlockedCompareStore(in int32_only result, in uint compare, in uint value);
|
|
|
-void [[]] InterlockedExchange(in int32_only result, in uint value, out any_int32 original);
|
|
|
-void [[]] InterlockedCompareExchange(in int32_only result, in uint compare, in uint value, out any_int32 original);
|
|
|
+void [[]] InterlockedAdd(ref int32_only result, in uint value);
|
|
|
+void [[]] InterlockedAdd(ref int32_only result, in uint value, out any_int32 original) : interlockedadd_immediate;
|
|
|
+void [[unsigned_op=InterlockedUMin,overload=0]] InterlockedMin(ref int32_only result, in any_int32 value) : interlockedmin;
|
|
|
+void [[unsigned_op=InterlockedUMin,overload=0]] InterlockedMin(ref int32_only result, in any_int32 value, out any_int32 original) : interlockedmin_immediate;
|
|
|
+void [[unsigned_op=InterlockedUMax,overload=0]] InterlockedMax(ref int32_only result, in any_int32 value) : interlockedmax;
|
|
|
+void [[unsigned_op=InterlockedUMax,overload=0]] InterlockedMax(ref int32_only result, in any_int32 value, out any_int32 original) : interlockedmax_immediate;
|
|
|
+void [[]] InterlockedAnd(ref int32_only result, in uint value);
|
|
|
+void [[]] InterlockedAnd(ref int32_only result, in uint value, out any_int32 original) : interlockedand_immediate;
|
|
|
+void [[]] InterlockedOr(ref int32_only result, in uint value);
|
|
|
+void [[]] InterlockedOr(ref int32_only result, in uint value, out any_int32 original) : interlockedor_immediate;
|
|
|
+void [[]] InterlockedXor(ref int32_only result, in uint value);
|
|
|
+void [[]] InterlockedXor(ref int32_only result, in uint value, out any_int32 original) : interlockedxor_immediate;
|
|
|
+void [[]] InterlockedCompareStore(ref int32_only result, in uint compare, in uint value);
|
|
|
+void [[]] InterlockedExchange(ref int32_only result, in uint value, out any_int32 original);
|
|
|
+void [[]] InterlockedCompareExchange(ref int32_only result, in uint compare, in uint value, out any_int32 original);
|
|
|
$match<1, 0> bool<> [[rn]] isfinite(in float<> x);
|
|
|
$match<1, 0> bool<> [[rn]] isinf(in float<> x);
|
|
|
$match<1, 0> bool<> [[rn]] isnan(in float<> x);
|