Lines Matching defs:atomic
99 * SSBO atomic intrinsics
101 * All of the SSBO atomic memory operations read a value from memory,
109 * 1: The byte offset into the SSBO buffer of the variable that the atomic
111 * 2: The data parameter to the atomic function (i.e. the value to add
124 struct ir3_instruction *atomic;
138 atomic = ir3_ATOMIC_ADD_G(b, ssbo, 0, data, 0, src3, 0, byte_offset, 0);
141 atomic = ir3_ATOMIC_MIN_G(b, ssbo, 0, data, 0, src3, 0, byte_offset, 0);
145 atomic = ir3_ATOMIC_MIN_G(b, ssbo, 0, data, 0, src3, 0, byte_offset, 0);
148 atomic = ir3_ATOMIC_MAX_G(b, ssbo, 0, data, 0, src3, 0, byte_offset, 0);
152 atomic = ir3_ATOMIC_MAX_G(b, ssbo, 0, data, 0, src3, 0, byte_offset, 0);
155 atomic = ir3_ATOMIC_AND_G(b, ssbo, 0, data, 0, src3, 0, byte_offset, 0);
158 atomic = ir3_ATOMIC_OR_G(b, ssbo, 0, data, 0, src3, 0, byte_offset, 0);
161 atomic = ir3_ATOMIC_XOR_G(b, ssbo, 0, data, 0, src3, 0, byte_offset, 0);
164 atomic = ir3_ATOMIC_XCHG_G(b, ssbo, 0, data, 0, src3, 0, byte_offset, 0);
170 atomic = ir3_ATOMIC_CMPXCHG_G(b, ssbo, 0, data, 0, dword_offset, 0,
177 atomic->cat6.iim_val = 1;
178 atomic->cat6.d = 4;
179 atomic->cat6.type = type;
180 atomic->barrier_class = IR3_BARRIER_BUFFER_W;
181 atomic->barrier_conflict = IR3_BARRIER_BUFFER_R | IR3_BARRIER_BUFFER_W;
184 array_insert(b, b->keeps, atomic);
186 return atomic;
299 struct ir3_instruction *atomic, *src0, *src1, *src2;
314 atomic = ir3_ATOMIC_ADD_G(b, image, 0, src0, 0, src1, 0, src2, 0);
318 atomic = ir3_ATOMIC_MIN_G(b, image, 0, src0, 0, src1, 0, src2, 0);
322 atomic = ir3_ATOMIC_MAX_G(b, image, 0, src0, 0, src1, 0, src2, 0);
325 atomic = ir3_ATOMIC_AND_G(b, image, 0, src0, 0, src1, 0, src2, 0);
328 atomic = ir3_ATOMIC_OR_G(b, image, 0, src0, 0, src1, 0, src2, 0);
331 atomic = ir3_ATOMIC_XOR_G(b, image, 0, src0, 0, src1, 0, src2, 0);
334 atomic = ir3_ATOMIC_XCHG_G(b, image, 0, src0, 0, src1, 0, src2, 0);
339 atomic = ir3_ATOMIC_CMPXCHG_G(b, image, 0, src0, 0, src1, 0, src2, 0);
345 atomic->cat6.iim_val = 1;
346 atomic->cat6.d = ncoords;
347 atomic->cat6.type = ir3_get_type_for_image_intrinsic(intr);
348 atomic->cat6.typed = true;
349 atomic->barrier_class = IR3_BARRIER_IMAGE_W;
350 atomic->barrier_conflict = IR3_BARRIER_IMAGE_R | IR3_BARRIER_IMAGE_W;
353 array_insert(b, b->keeps, atomic);
355 return atomic;