Lines Matching defs:arr

218       struct ir3_array *arr = ir3_get_array(ctx, reg);
219 unsigned num_components = arr->r->num_components;
230 compile_assert(ctx, n < arr->length);
231 value[i] = ir3_create_array_load(ctx, arr, n, addr);
271 struct ir3_array *arr = ir3_get_array(ctx, reg);
281 compile_assert(ctx, n < arr->length);
284 ir3_create_array_store(ctx, arr, n, ctx->last_dst[i], addr);
301 ir3_create_collect(struct ir3_block *block, struct ir3_instruction *const *arr,
309 unsigned flags = dest_flags(arr[0]);
314 struct ir3_instruction *elem = arr[i];
533 struct ir3_array *arr = rzalloc(ctx, struct ir3_array);
534 arr->id = ++ctx->num_arrays;
542 arr->length = reg->num_components * MAX2(1, reg->num_array_elems);
543 compile_assert(ctx, arr->length > 0);
544 arr->r = reg;
545 arr->half = reg->bit_size <= 16;
548 arr->half = false;
549 list_addtail(&arr->node, &ctx->ir->array_list);
555 foreach_array (arr, &ctx->ir->array_list) {
556 if (arr->r == reg)
557 return arr;
565 ir3_create_array_load(struct ir3_context *ctx, struct ir3_array *arr, int n,
574 if (arr->half) {
588 src->def = (arr->last_write && arr->last_write->instr->block == block)
589 ? arr->last_write
591 src->size = arr->length;
592 src->array.id = arr->id;
604 ir3_create_array_store(struct ir3_context *ctx, struct ir3_array *arr, int n,
626 dst->size = arr->length;
627 dst->array.id = arr->id;
631 if (arr->last_write && arr->last_write->instr->block == src->block)
632 ir3_reg_set_last_array(src, dst, arr->last_write);
634 arr->last_write = dst;
642 if (arr->half) {
656 dst->size = arr->length;
657 dst->array.id = arr->id;
662 if (arr->last_write && arr->last_write->instr->block == block)
663 ir3_reg_set_last_array(mov, dst, arr->last_write);
668 arr->last_write = dst;