Lines Matching refs:atomic

130  * SSBO atomic intrinsics
132 * All of the SSBO atomic memory operations read a value from memory,
140 * 1: The byte offset into the SSBO buffer of the variable that the atomic
142 * 2: The data parameter to the atomic function (i.e. the value to add
155 struct ir3_instruction *atomic;
169 atomic = ir3_ATOMIC_S_ADD(b, ssbo, 0, data, 0, src3, 0, byte_offset, 0);
172 atomic = ir3_ATOMIC_S_MIN(b, ssbo, 0, data, 0, src3, 0, byte_offset, 0);
176 atomic = ir3_ATOMIC_S_MIN(b, ssbo, 0, data, 0, src3, 0, byte_offset, 0);
179 atomic = ir3_ATOMIC_S_MAX(b, ssbo, 0, data, 0, src3, 0, byte_offset, 0);
183 atomic = ir3_ATOMIC_S_MAX(b, ssbo, 0, data, 0, src3, 0, byte_offset, 0);
186 atomic = ir3_ATOMIC_S_AND(b, ssbo, 0, data, 0, src3, 0, byte_offset, 0);
189 atomic = ir3_ATOMIC_S_OR(b, ssbo, 0, data, 0, src3, 0, byte_offset, 0);
192 atomic = ir3_ATOMIC_S_XOR(b, ssbo, 0, data, 0, src3, 0, byte_offset, 0);
195 atomic = ir3_ATOMIC_S_XCHG(b, ssbo, 0, data, 0, src3, 0, byte_offset, 0);
201 atomic = ir3_ATOMIC_S_CMPXCHG(b, ssbo, 0, data, 0, dword_offset, 0,
208 atomic->cat6.iim_val = 1;
209 atomic->cat6.d = 4;
210 atomic->cat6.type = type;
211 atomic->barrier_class = IR3_BARRIER_BUFFER_W;
212 atomic->barrier_conflict = IR3_BARRIER_BUFFER_R | IR3_BARRIER_BUFFER_W;
215 array_insert(b, b->keeps, atomic);
217 return atomic;
368 struct ir3_instruction *atomic, *src0, *src1, *src2;
383 atomic = ir3_ATOMIC_S_ADD(b, image, 0, src0, 0, src1, 0, src2, 0);
387 atomic = ir3_ATOMIC_S_MIN(b, image, 0, src0, 0, src1, 0, src2, 0);
391 atomic = ir3_ATOMIC_S_MAX(b, image, 0, src0, 0, src1, 0, src2, 0);
394 atomic = ir3_ATOMIC_S_AND(b, image, 0, src0, 0, src1, 0, src2, 0);
397 atomic = ir3_ATOMIC_S_OR(b, image, 0, src0, 0, src1, 0, src2, 0);
400 atomic = ir3_ATOMIC_S_XOR(b, image, 0, src0, 0, src1, 0, src2, 0);
403 atomic = ir3_ATOMIC_S_XCHG(b, image, 0, src0, 0, src1, 0, src2, 0);
408 atomic = ir3_ATOMIC_S_CMPXCHG(b, image, 0, src0, 0, src1, 0, src2, 0);
414 atomic->cat6.iim_val = 1;
415 atomic->cat6.d = ncoords;
416 atomic->cat6.type = ir3_get_type_for_image_intrinsic(intr);
417 atomic->cat6.typed = ctx->compiler->gen == 5;
418 atomic->barrier_class = IR3_BARRIER_IMAGE_W;
419 atomic->barrier_conflict = IR3_BARRIER_IMAGE_R | IR3_BARRIER_IMAGE_W;
422 array_insert(b, b->keeps, atomic);
424 return atomic;
430 unreachable("Global atomic are unimplemented on A5xx");