Lines Matching defs:atomic

110  * SSBO atomic intrinsics
112 * All of the SSBO atomic memory operations read a value from memory,
120 * 1: The offset into the SSBO buffer of the variable that the atomic
122 * 2: The data parameter to the atomic function (i.e. the value to add
130 struct ir3_instruction *atomic, *ssbo, *src0, *src1, *src2, *byte_offset,
156 atomic = ir3_ATOMIC_ADD_G(b, ssbo, 0, src0, 0, src1, 0, src2, 0);
159 atomic = ir3_ATOMIC_MIN_G(b, ssbo, 0, src0, 0, src1, 0, src2, 0);
163 atomic = ir3_ATOMIC_MIN_G(b, ssbo, 0, src0, 0, src1, 0, src2, 0);
166 atomic = ir3_ATOMIC_MAX_G(b, ssbo, 0, src0, 0, src1, 0, src2, 0);
170 atomic = ir3_ATOMIC_MAX_G(b, ssbo, 0, src0, 0, src1, 0, src2, 0);
173 atomic = ir3_ATOMIC_AND_G(b, ssbo, 0, src0, 0, src1, 0, src2, 0);
176 atomic = ir3_ATOMIC_OR_G(b, ssbo, 0, src0, 0, src1, 0, src2, 0);
179 atomic = ir3_ATOMIC_XOR_G(b, ssbo, 0, src0, 0, src1, 0, src2, 0);
182 atomic = ir3_ATOMIC_XCHG_G(b, ssbo, 0, src0, 0, src1, 0, src2, 0);
191 atomic = ir3_ATOMIC_CMPXCHG_G(b, ssbo, 0, src0, 0, src1, 0, src2, 0);
197 atomic->cat6.iim_val = 1;
198 atomic->cat6.d = 4;
199 atomic->cat6.type = type;
200 atomic->barrier_class = IR3_BARRIER_BUFFER_W;
201 atomic->barrier_conflict = IR3_BARRIER_BUFFER_R | IR3_BARRIER_BUFFER_W;
204 array_insert(b, b->keeps, atomic);
206 return atomic;
299 struct ir3_instruction *atomic, *image, *src0, *src1, *src2;
317 atomic = ir3_ATOMIC_ADD_G(b, image, 0, src0, 0, src1, 0, src2, 0);
320 atomic = ir3_ATOMIC_MIN_G(b, image, 0, src0, 0, src1, 0, src2, 0);
323 atomic = ir3_ATOMIC_MAX_G(b, image, 0, src0, 0, src1, 0, src2, 0);
326 atomic = ir3_ATOMIC_AND_G(b, image, 0, src0, 0, src1, 0, src2, 0);
329 atomic = ir3_ATOMIC_OR_G(b, image, 0, src0, 0, src1, 0, src2, 0);
332 atomic = ir3_ATOMIC_XOR_G(b, image, 0, src0, 0, src1, 0, src2, 0);
335 atomic = ir3_ATOMIC_XCHG_G(b, image, 0, src0, 0, src1, 0, src2, 0);
343 atomic = ir3_ATOMIC_CMPXCHG_G(b, image, 0, src0, 0, src1, 0, src2, 0);
349 atomic->cat6.iim_val = 1;
350 atomic->cat6.d = ncoords;
351 atomic->cat6.type = ir3_get_image_type(var);
352 atomic->cat6.typed = true;
353 atomic->barrier_class = IR3_BARRIER_IMAGE_W;
354 atomic->barrier_conflict = IR3_BARRIER_IMAGE_R | IR3_BARRIER_IMAGE_W;
357 array_insert(b, b->keeps, atomic);
359 return atomic;