Lines Matching refs:intr
39 emit_intrinsic_load_ssbo(struct ir3_context *ctx, nir_intrinsic_instr *intr, in emit_intrinsic_load_ssbo() argument
45 struct ir3_instruction *ssbo = ir3_ssbo_to_ibo(ctx, intr->src[0]); in emit_intrinsic_load_ssbo()
47 byte_offset = ir3_get_src(ctx, &intr->src[1])[0]; in emit_intrinsic_load_ssbo()
48 offset = ir3_get_src(ctx, &intr->src[2])[0]; in emit_intrinsic_load_ssbo()
55 ldgb->dsts[0]->wrmask = MASK(intr->num_components); in emit_intrinsic_load_ssbo()
56 ldgb->cat6.iim_val = intr->num_components; in emit_intrinsic_load_ssbo()
62 ir3_split_dest(b, dst, ldgb, 0, intr->num_components); in emit_intrinsic_load_ssbo()
67 emit_intrinsic_store_ssbo(struct ir3_context *ctx, nir_intrinsic_instr *intr) in emit_intrinsic_store_ssbo() argument
71 unsigned wrmask = nir_intrinsic_write_mask(intr); in emit_intrinsic_store_ssbo()
74 assert(wrmask == BITFIELD_MASK(intr->num_components)); in emit_intrinsic_store_ssbo()
76 struct ir3_instruction *ssbo = ir3_ssbo_to_ibo(ctx, intr->src[1]); in emit_intrinsic_store_ssbo()
78 byte_offset = ir3_get_src(ctx, &intr->src[2])[0]; in emit_intrinsic_store_ssbo()
79 offset = ir3_get_src(ctx, &intr->src[3])[0]; in emit_intrinsic_store_ssbo()
84 src0 = ir3_create_collect(b, ir3_get_src(ctx, &intr->src[0]), ncomp); in emit_intrinsic_store_ssbo()
121 emit_intrinsic_atomic_ssbo(struct ir3_context *ctx, nir_intrinsic_instr *intr) in emit_intrinsic_atomic_ssbo() argument
127 struct ir3_instruction *ssbo = ir3_ssbo_to_ibo(ctx, intr->src[0]); in emit_intrinsic_atomic_ssbo()
129 struct ir3_instruction *data = ir3_get_src(ctx, &intr->src[2])[0]; in emit_intrinsic_atomic_ssbo()
132 ir3_collect(b, ir3_get_src(ctx, &intr->src[1])[0], create_immed(b, 0)); in emit_intrinsic_atomic_ssbo()
134 struct ir3_instruction *src3 = ir3_get_src(ctx, &intr->src[3])[0]; in emit_intrinsic_atomic_ssbo()
136 switch (intr->intrinsic) { in emit_intrinsic_atomic_ssbo()
169 struct ir3_instruction *dword_offset = ir3_get_src(ctx, &intr->src[4])[0]; in emit_intrinsic_atomic_ssbo()
233 emit_intrinsic_load_image(struct ir3_context *ctx, nir_intrinsic_instr *intr, in emit_intrinsic_load_image() argument
237 struct ir3_instruction *const *coords = ir3_get_src(ctx, &intr->src[1]); in emit_intrinsic_load_image()
238 struct ir3_instruction *ibo = ir3_image_to_ibo(ctx, intr->src[0]); in emit_intrinsic_load_image()
239 struct ir3_instruction *offset = get_image_offset(ctx, intr, coords, true); in emit_intrinsic_load_image()
240 unsigned ncoords = ir3_get_image_coords(intr, NULL); in emit_intrinsic_load_image()
242 ir3_get_num_components_for_image_format(nir_intrinsic_format(intr)); in emit_intrinsic_load_image()
246 ldib->dsts[0]->wrmask = MASK(intr->num_components); in emit_intrinsic_load_image()
249 ldib->cat6.type = ir3_get_type_for_image_intrinsic(intr); in emit_intrinsic_load_image()
254 ir3_split_dest(b, dst, ldib, 0, intr->num_components); in emit_intrinsic_load_image()
259 emit_intrinsic_store_image(struct ir3_context *ctx, nir_intrinsic_instr *intr) in emit_intrinsic_store_image() argument
263 struct ir3_instruction *const *value = ir3_get_src(ctx, &intr->src[3]); in emit_intrinsic_store_image()
264 struct ir3_instruction *const *coords = ir3_get_src(ctx, &intr->src[1]); in emit_intrinsic_store_image()
265 struct ir3_instruction *ibo = ir3_image_to_ibo(ctx, intr->src[0]); in emit_intrinsic_store_image()
266 unsigned ncoords = ir3_get_image_coords(intr, NULL); in emit_intrinsic_store_image()
268 ir3_get_num_components_for_image_format(nir_intrinsic_format(intr)); in emit_intrinsic_store_image()
275 offset = get_image_offset(ctx, intr, coords, true); in emit_intrinsic_store_image()
286 stib->cat6.type = ir3_get_type_for_image_intrinsic(intr); in emit_intrinsic_store_image()
296 emit_intrinsic_atomic_image(struct ir3_context *ctx, nir_intrinsic_instr *intr) in emit_intrinsic_atomic_image() argument
300 struct ir3_instruction *const *coords = ir3_get_src(ctx, &intr->src[1]); in emit_intrinsic_atomic_image()
301 struct ir3_instruction *image = ir3_image_to_ibo(ctx, intr->src[0]); in emit_intrinsic_atomic_image()
302 unsigned ncoords = ir3_get_image_coords(intr, NULL); in emit_intrinsic_atomic_image()
308 src0 = ir3_get_src(ctx, &intr->src[3])[0]; in emit_intrinsic_atomic_image()
310 src2 = get_image_offset(ctx, intr, coords, false); in emit_intrinsic_atomic_image()
312 switch (intr->intrinsic) { in emit_intrinsic_atomic_image()
338 src0 = ir3_collect(b, ir3_get_src(ctx, &intr->src[4])[0], src0); in emit_intrinsic_atomic_image()
347 atomic->cat6.type = ir3_get_type_for_image_intrinsic(intr); in emit_intrinsic_atomic_image()