• Home
  • Raw
  • Download

Lines Matching refs:intr

42 emit_intrinsic_load_ssbo(struct ir3_context *ctx, nir_intrinsic_instr *intr,  in emit_intrinsic_load_ssbo()  argument
49 offset = ir3_get_src(ctx, &intr->src[2])[0]; in emit_intrinsic_load_ssbo()
51 ldib = ir3_LDIB(b, ir3_ssbo_to_ibo(ctx, intr->src[0]), 0, offset, 0); in emit_intrinsic_load_ssbo()
52 ldib->dsts[0]->wrmask = MASK(intr->num_components); in emit_intrinsic_load_ssbo()
53 ldib->cat6.iim_val = intr->num_components; in emit_intrinsic_load_ssbo()
55 ldib->cat6.type = intr->dest.ssa.bit_size == 16 ? TYPE_U16 : TYPE_U32; in emit_intrinsic_load_ssbo()
58 ir3_handle_bindless_cat6(ldib, intr->src[0]); in emit_intrinsic_load_ssbo()
59 ir3_handle_nonuniform(ldib, intr); in emit_intrinsic_load_ssbo()
61 ir3_split_dest(b, dst, ldib, 0, intr->num_components); in emit_intrinsic_load_ssbo()
66 emit_intrinsic_store_ssbo(struct ir3_context *ctx, nir_intrinsic_instr *intr) in emit_intrinsic_store_ssbo() argument
70 unsigned wrmask = nir_intrinsic_write_mask(intr); in emit_intrinsic_store_ssbo()
73 assert(wrmask == BITFIELD_MASK(intr->num_components)); in emit_intrinsic_store_ssbo()
77 val = ir3_create_collect(b, ir3_get_src(ctx, &intr->src[0]), ncomp); in emit_intrinsic_store_ssbo()
78 offset = ir3_get_src(ctx, &intr->src[3])[0]; in emit_intrinsic_store_ssbo()
80 stib = ir3_STIB(b, ir3_ssbo_to_ibo(ctx, intr->src[1]), 0, offset, 0, val, 0); in emit_intrinsic_store_ssbo()
83 stib->cat6.type = intr->src[0].ssa->bit_size == 16 ? TYPE_U16 : TYPE_U32; in emit_intrinsic_store_ssbo()
86 ir3_handle_bindless_cat6(stib, intr->src[1]); in emit_intrinsic_store_ssbo()
87 ir3_handle_nonuniform(stib, intr); in emit_intrinsic_store_ssbo()
110 emit_intrinsic_atomic_ssbo(struct ir3_context *ctx, nir_intrinsic_instr *intr) in emit_intrinsic_atomic_ssbo() argument
116 ibo = ir3_ssbo_to_ibo(ctx, intr->src[0]); in emit_intrinsic_atomic_ssbo()
118 data = ir3_get_src(ctx, &intr->src[2])[0]; in emit_intrinsic_atomic_ssbo()
136 if (intr->intrinsic == nir_intrinsic_ssbo_atomic_comp_swap_ir3) { in emit_intrinsic_atomic_ssbo()
137 src0 = ir3_get_src(ctx, &intr->src[4])[0]; in emit_intrinsic_atomic_ssbo()
138 struct ir3_instruction *compare = ir3_get_src(ctx, &intr->src[3])[0]; in emit_intrinsic_atomic_ssbo()
141 src0 = ir3_get_src(ctx, &intr->src[3])[0]; in emit_intrinsic_atomic_ssbo()
145 switch (intr->intrinsic) { in emit_intrinsic_atomic_ssbo()
187 ir3_handle_bindless_cat6(atomic, intr->src[0]); in emit_intrinsic_atomic_ssbo()
201 emit_intrinsic_load_image(struct ir3_context *ctx, nir_intrinsic_instr *intr, in emit_intrinsic_load_image() argument
206 struct ir3_instruction *const *coords = ir3_get_src(ctx, &intr->src[1]); in emit_intrinsic_load_image()
207 unsigned ncoords = ir3_get_image_coords(intr, NULL); in emit_intrinsic_load_image()
209 ldib = ir3_LDIB(b, ir3_image_to_ibo(ctx, intr->src[0]), 0, in emit_intrinsic_load_image()
211 ldib->dsts[0]->wrmask = MASK(intr->num_components); in emit_intrinsic_load_image()
212 ldib->cat6.iim_val = intr->num_components; in emit_intrinsic_load_image()
214 ldib->cat6.type = ir3_get_type_for_image_intrinsic(intr); in emit_intrinsic_load_image()
218 ir3_handle_bindless_cat6(ldib, intr->src[0]); in emit_intrinsic_load_image()
219 ir3_handle_nonuniform(ldib, intr); in emit_intrinsic_load_image()
221 ir3_split_dest(b, dst, ldib, 0, intr->num_components); in emit_intrinsic_load_image()
226 emit_intrinsic_store_image(struct ir3_context *ctx, nir_intrinsic_instr *intr) in emit_intrinsic_store_image() argument
230 struct ir3_instruction *const *value = ir3_get_src(ctx, &intr->src[3]); in emit_intrinsic_store_image()
231 struct ir3_instruction *const *coords = ir3_get_src(ctx, &intr->src[1]); in emit_intrinsic_store_image()
232 unsigned ncoords = ir3_get_image_coords(intr, NULL); in emit_intrinsic_store_image()
233 enum pipe_format format = nir_intrinsic_format(intr); in emit_intrinsic_store_image()
238 stib = ir3_STIB(b, ir3_image_to_ibo(ctx, intr->src[0]), 0, in emit_intrinsic_store_image()
243 stib->cat6.type = ir3_get_type_for_image_intrinsic(intr); in emit_intrinsic_store_image()
247 ir3_handle_bindless_cat6(stib, intr->src[0]); in emit_intrinsic_store_image()
248 ir3_handle_nonuniform(stib, intr); in emit_intrinsic_store_image()
255 emit_intrinsic_atomic_image(struct ir3_context *ctx, nir_intrinsic_instr *intr) in emit_intrinsic_atomic_image() argument
259 struct ir3_instruction *const *coords = ir3_get_src(ctx, &intr->src[1]); in emit_intrinsic_atomic_image()
260 struct ir3_instruction *value = ir3_get_src(ctx, &intr->src[3])[0]; in emit_intrinsic_atomic_image()
261 unsigned ncoords = ir3_get_image_coords(intr, NULL); in emit_intrinsic_atomic_image()
263 ibo = ir3_image_to_ibo(ctx, intr->src[0]); in emit_intrinsic_atomic_image()
280 if (intr->intrinsic == nir_intrinsic_image_atomic_comp_swap || in emit_intrinsic_atomic_image()
281 intr->intrinsic == nir_intrinsic_bindless_image_atomic_comp_swap) { in emit_intrinsic_atomic_image()
282 struct ir3_instruction *compare = ir3_get_src(ctx, &intr->src[4])[0]; in emit_intrinsic_atomic_image()
288 switch (intr->intrinsic) { in emit_intrinsic_atomic_image()
331 atomic->cat6.type = ir3_get_type_for_image_intrinsic(intr); in emit_intrinsic_atomic_image()
335 ir3_handle_bindless_cat6(atomic, intr->src[0]); in emit_intrinsic_atomic_image()
348 emit_intrinsic_image_size(struct ir3_context *ctx, nir_intrinsic_instr *intr, in emit_intrinsic_image_size() argument
352 struct ir3_instruction *ibo = ir3_image_to_ibo(ctx, intr->src[0]); in emit_intrinsic_image_size()
355 resinfo->cat6.d = intr->num_components; in emit_intrinsic_image_size()
359 compile_assert(ctx, intr->num_components <= 3); in emit_intrinsic_image_size()
361 ir3_handle_bindless_cat6(resinfo, intr->src[0]); in emit_intrinsic_image_size()
362 ir3_handle_nonuniform(resinfo, intr); in emit_intrinsic_image_size()
364 ir3_split_dest(b, dst, resinfo, 0, intr->num_components); in emit_intrinsic_image_size()
369 nir_intrinsic_instr *intr, in emit_intrinsic_load_global_ir3() argument
373 unsigned dest_components = nir_intrinsic_dest_components(intr); in emit_intrinsic_load_global_ir3()
376 addr = ir3_collect(b, ir3_get_src(ctx, &intr->src[0])[0], in emit_intrinsic_load_global_ir3()
377 ir3_get_src(ctx, &intr->src[0])[1]); in emit_intrinsic_load_global_ir3()
379 offset = ir3_get_src(ctx, &intr->src[1])[0]; in emit_intrinsic_load_global_ir3()
395 nir_intrinsic_instr *intr) in emit_intrinsic_store_global_ir3() argument
399 unsigned ncomp = nir_intrinsic_src_components(intr, 0); in emit_intrinsic_store_global_ir3()
401 addr = ir3_collect(b, ir3_get_src(ctx, &intr->src[1])[0], in emit_intrinsic_store_global_ir3()
402 ir3_get_src(ctx, &intr->src[1])[1]); in emit_intrinsic_store_global_ir3()
404 offset = ir3_get_src(ctx, &intr->src[2])[0]; in emit_intrinsic_store_global_ir3()
406 value = ir3_create_collect(b, ir3_get_src(ctx, &intr->src[0]), ncomp); in emit_intrinsic_store_global_ir3()