Lines Matching refs:intr

70 emit_intrinsic_load_ssbo(struct ir3_context *ctx, nir_intrinsic_instr *intr,
76 struct ir3_instruction *ssbo = ir3_ssbo_to_ibo(ctx, intr->src[0]);
78 byte_offset = ir3_get_src(ctx, &intr->src[1])[0];
79 offset = ir3_get_src(ctx, &intr->src[2])[0];
82 src0 = byte_offset_to_address(ctx, &intr->src[0], byte_offset);
86 ldgb->dsts[0]->wrmask = MASK(intr->num_components);
87 ldgb->cat6.iim_val = intr->num_components;
93 ir3_split_dest(b, dst, ldgb, 0, intr->num_components);
98 emit_intrinsic_store_ssbo(struct ir3_context *ctx, nir_intrinsic_instr *intr)
102 unsigned wrmask = nir_intrinsic_write_mask(intr);
105 assert(wrmask == BITFIELD_MASK(intr->num_components));
107 struct ir3_instruction *ssbo = ir3_ssbo_to_ibo(ctx, intr->src[1]);
109 byte_offset = ir3_get_src(ctx, &intr->src[2])[0];
110 offset = ir3_get_src(ctx, &intr->src[3])[0];
115 src0 = ir3_create_collect(b, ir3_get_src(ctx, &intr->src[0]), ncomp);
117 src2 = byte_offset_to_address(ctx, &intr->src[1], byte_offset);
152 emit_intrinsic_atomic_ssbo(struct ir3_context *ctx, nir_intrinsic_instr *intr)
158 struct ir3_instruction *ssbo = ir3_ssbo_to_ibo(ctx, intr->src[0]);
160 struct ir3_instruction *data = ir3_get_src(ctx, &intr->src[2])[0];
163 byte_offset_to_address(ctx, &intr->src[0], ir3_get_src(ctx, &intr->src[1])[0]);
165 struct ir3_instruction *src3 = ir3_get_src(ctx, &intr->src[3])[0];
167 switch (intr->intrinsic) {
200 struct ir3_instruction *dword_offset = ir3_get_src(ctx, &intr->src[4])[0];
280 emit_intrinsic_load_image(struct ir3_context *ctx, nir_intrinsic_instr *intr,
284 struct ir3_instruction *const *coords = ir3_get_src(ctx, &intr->src[1]);
285 struct ir3_instruction *ibo = ir3_image_to_ibo(ctx, intr->src[0]);
286 struct ir3_instruction *offset = get_image_offset(ctx, intr, coords, true);
287 unsigned ncoords = ir3_get_image_coords(intr, NULL);
289 ir3_get_num_components_for_image_format(nir_intrinsic_format(intr));
304 switch (nir_intrinsic_format(intr)) {
315 ldib->dsts[0]->wrmask = MASK(intr->num_components);
318 ldib->cat6.type = ir3_get_type_for_image_intrinsic(intr);
323 ir3_split_dest(b, dst, ldib, 0, intr->num_components);
328 emit_intrinsic_store_image(struct ir3_context *ctx, nir_intrinsic_instr *intr)
332 struct ir3_instruction *const *value = ir3_get_src(ctx, &intr->src[3]);
333 struct ir3_instruction *const *coords = ir3_get_src(ctx, &intr->src[1]);
334 struct ir3_instruction *ibo = ir3_image_to_ibo(ctx, intr->src[0]);
335 unsigned ncoords = ir3_get_image_coords(intr, NULL);
337 ir3_get_num_components_for_image_format(nir_intrinsic_format(intr));
344 offset = get_image_offset(ctx, intr, coords, true);
355 stib->cat6.type = ir3_get_type_for_image_intrinsic(intr);
365 emit_intrinsic_atomic_image(struct ir3_context *ctx, nir_intrinsic_instr *intr)
369 struct ir3_instruction *const *coords = ir3_get_src(ctx, &intr->src[1]);
370 struct ir3_instruction *image = ir3_image_to_ibo(ctx, intr->src[0]);
371 unsigned ncoords = ir3_get_image_coords(intr, NULL);
377 src0 = ir3_get_src(ctx, &intr->src[3])[0];
379 src2 = get_image_offset(ctx, intr, coords, ctx->compiler->gen == 4);
381 switch (intr->intrinsic) {
407 src0 = ir3_collect(b, ir3_get_src(ctx, &intr->src[4])[0], src0);
416 atomic->cat6.type = ir3_get_type_for_image_intrinsic(intr);
428 emit_intrinsic_atomic_global(struct ir3_context *ctx, nir_intrinsic_instr *intr)