nir/intrinsics: Add more atomic_counter ops
v2: Delete some stray debug code notice by Iago. v3: Massive rebase on new ir_function_signature::intrinsic_id mechanism. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Iago Toral Quiroga <itoral@igalia.com> [v1] Acked-by: Ilia Mirkin <imirkin@alum.mit.edu>
This commit is contained in:
@@ -141,10 +141,24 @@ INTRINSIC(set_vertex_count, 1, ARR(1), false, 0, 0, 0, xx, xx, xx, 0)
|
||||
#define ATOMIC(name, flags) \
|
||||
INTRINSIC(name##_var, 0, ARR(0), true, 1, 1, 0, xx, xx, xx, flags) \
|
||||
INTRINSIC(name, 1, ARR(1), true, 1, 0, 1, BASE, xx, xx, flags)
|
||||
#define ATOMIC2(name) \
|
||||
INTRINSIC(name##_var, 1, ARR(1), true, 1, 1, 0, xx, xx, xx, 0) \
|
||||
INTRINSIC(name, 2, ARR(1, 1), true, 1, 0, 1, BASE, xx, xx, 0)
|
||||
#define ATOMIC3(name) \
|
||||
INTRINSIC(name##_var, 2, ARR(1, 1), true, 1, 1, 0, xx, xx, xx, 0) \
|
||||
INTRINSIC(name, 3, ARR(1, 1, 1), true, 1, 0, 1, BASE, xx, xx, 0)
|
||||
|
||||
ATOMIC(atomic_counter_inc, 0)
|
||||
ATOMIC(atomic_counter_dec, 0)
|
||||
ATOMIC(atomic_counter_read, NIR_INTRINSIC_CAN_ELIMINATE)
|
||||
ATOMIC2(atomic_counter_add)
|
||||
ATOMIC2(atomic_counter_min)
|
||||
ATOMIC2(atomic_counter_max)
|
||||
ATOMIC2(atomic_counter_and)
|
||||
ATOMIC2(atomic_counter_or)
|
||||
ATOMIC2(atomic_counter_xor)
|
||||
ATOMIC2(atomic_counter_exchange)
|
||||
ATOMIC3(atomic_counter_comp_swap)
|
||||
|
||||
/*
|
||||
* Image load, store and atomic intrinsics.
|
||||
|
Reference in New Issue
Block a user