Lines Matching refs:store
290 /* The number of components to store depends on the number of bytes. */
347 * extra complexity to store >= 32 bit components.
360 * store. If a component is skipped by the write mask, do a smaller
361 * sub-store
374 nir_intrinsic_instr *store;
379 /* If we have 16 bits or less to store we need to place them
391 store = nir_intrinsic_instr_create(b->shader,
393 store->src[0] = nir_src_for_ssa(vec32);
394 store->src[1] = nir_src_for_ssa(nir_inot(b, mask));
395 store->src[2] = nir_src_for_ssa(buffer);
396 store->src[3] = nir_src_for_ssa(local_offset);
398 store = nir_intrinsic_instr_create(b->shader,
400 store->src[0] = nir_src_for_ssa(vec32);
401 store->src[1] = nir_src_for_ssa(buffer);
402 store->src[2] = nir_src_for_ssa(local_offset);
404 nir_intrinsic_set_align(store, 4, 0);
407 /* The number of components to store depends on the number of bits. */
408 store->num_components = DIV_ROUND_UP(substore_num_bits, 32);
409 nir_builder_instr_insert(b, &store->instr);
413 if (nir_intrinsic_has_write_mask(store))
414 nir_intrinsic_set_write_mask(store, (1 << store->num_components) - 1);
499 nir_intrinsic_instr *store =
502 store->src[0] = nir_src_for_ssa(nir_channel(b, vec32, i));
503 store->src[1] = nir_src_for_ssa(nir_iadd(b, index, nir_imm_int(b, i)));
504 store->num_components = 1;
505 nir_builder_instr_insert(b, &store->instr);
515 /* If we have 16 bits or less to store we need to place them correctly in
569 /* For each 4byte chunk (or smaller) we generate a 32bit scalar store.