Lines Matching defs:src
258 I->src[i] = chan[i];
295 bi_half(bi_src_index(&intr->src[0]), false));
310 bi_index offset = bi_src_index(&intr->src[0]);
312 unsigned sz = nir_src_bit_size(intr->src[0]);
388 bi_index *src,
439 bi_index idx = bi_src_index(&instr->src[0]);
485 nir_src *src = nir_get_io_offset_src(intr);
486 assert(nir_src_is_const(*src) && "assumes immediate offset");
488 return bi_varying_base_bytes(ctx, intr) + (nir_src_as_uint(*src) * 16);
507 nir_intrinsic_instr *parent = nir_src_as_intrinsic(instr->src[0]);
592 bi_make_vec16_to(bi_builder *b, bi_index dst, bi_index *src,
603 bi_index w0 = bi_extract(b, src[i], chan >> 1);
604 bi_index w1 = next ? bi_extract(b, src[i + 1], nextc >> 1) : bi_zero();
622 bi_index *src,
631 srcs[i] = bi_extract(b, src[i], channel ? channel[i] : 0);
635 bi_make_vec16_to(b, dst, src, channel, count);
638 bi_extract(b, src[0], channel[0] >> 2),
830 atest->src[2] = bi_fau(BIR_FAU_ATEST_PARAM, false);
851 bi_index src0 = bi_src_index(&instr->src[0]);
873 bi_index rgba = bi_src_index(&instr->src[0]);
880 if (nir_src_num_components(instr->src[0]) < 4)
890 z = bi_src_index(&instr->src[2]);
893 s = bi_src_index(&instr->src[3]);
903 bi_index color = bi_src_index(&instr->src[0]);
904 bi_index color2 = dual ? bi_src_index(&instr->src[4]) : bi_null();
920 nir_src_num_components(instr->src[0]),
1007 bi_index data = bi_src_index(&instr->src[0]);
1027 collect->src[w] = split->dest[w];
1060 bi_store(b, nr * nir_src_bit_size(instr->src[0]),
1099 kernel_input ? bi_zero() : bi_src_index(&instr->src[0]));
1107 nir_src *offset = &instr->src[0];
1129 bi_addr_high(bi_builder *b, nir_src *src)
1131 return (nir_src_bit_size(*src) == 64) ?
1132 bi_extract(b, bi_src_index(src), 1) : bi_zero();
1170 bi_index addr_lo = bi_extract(b, bi_src_index(&instr->src[0]), 0);
1171 bi_index addr_hi = bi_addr_high(b, &instr->src[0]);
1187 bi_index addr_lo = bi_extract(b, bi_src_index(&instr->src[1]), 0);
1188 bi_index addr_hi = bi_addr_high(b, &instr->src[1]);
1192 bi_store(b, instr->num_components * nir_src_bit_size(instr->src[0]),
1193 bi_src_index(&instr->src[0]),
1383 nir_src src = instr->src[0];
1384 bi_index index = bi_src_index(&src);
1393 else if (nir_src_is_const(src))
1394 return bi_imm_u32(nir_src_as_uint(src) + offset);
1407 bi_index coords = bi_src_index(&instr->src[1]);
1417 if (b->shader->arch >= 9 && nir_src_is_const(instr->src[0])) {
1419 nir_src_as_uint(instr->src[0]));
1448 bi_index coords = bi_src_index(&instr->src[1]);
1453 if (b->shader->arch >= 9 && nir_src_is_const(instr->src[0])) {
1455 nir_src_as_uint(instr->src[0]));
1480 bi_st_cvt(b, bi_src_index(&instr->src[3]), a[0], a[1], a[2],
1522 bi_index src[4] = {};
1525 src[i] = bi_fadd_f32(b,
1531 src[2 + i] = bi_ld_var_special(b, bi_zero(),
1539 bi_make_vec_to(b, bi_dest_index(&instr->dest), src, NULL, 4, 32);
1670 assert(nir_src_bit_size(instr->src[1]) == 32);
1672 bi_index addr = bi_src_index(&instr->src[0]);
1683 bi_emit_atomic_i32_to(b, dst, addr, bi_src_index(&instr->src[1]),
1697 assert(nir_src_bit_size(instr->src[3]) == 32);
1701 bi_src_index(&instr->src[3]),
1714 assert(nir_src_bit_size(instr->src[1]) == 32);
1717 bi_src_index(&instr->src[0]),
1718 bi_src_index(&instr->src[1]),
1733 bi_emit_axchg_to(b, dst, bi_src_index(&instr->src[0]),
1734 &instr->src[1], BI_SEG_NONE);
1740 &instr->src[3], BI_SEG_NONE);
1745 bi_emit_axchg_to(b, dst, bi_src_index(&instr->src[0]),
1746 &instr->src[1], BI_SEG_WLS);
1751 bi_emit_acmpxchg_to(b, dst, bi_src_index(&instr->src[0]),
1752 &instr->src[1], &instr->src[2], BI_SEG_NONE);
1758 &instr->src[3], &instr->src[4], BI_SEG_NONE);
1763 bi_emit_acmpxchg_to(b, dst, bi_src_index(&instr->src[0]),
1764 &instr->src[1], &instr->src[2], BI_SEG_WLS);
1777 bi_discard_b32(b, bi_src_index(&instr->src[0]));
1940 bi_alu_src_index(bi_builder *b, nir_alu_src src, unsigned comps)
1943 assert(!(src.negate || src.abs));
1945 unsigned bitsize = nir_src_bit_size(src.src);
1956 unsigned new_offset = (src.swizzle[i] >> subword_shift);
1964 bi_index idx = bi_extract(b, bi_src_index(&src.src), offset);
1973 unsigned c0 = src.swizzle[0] & 1;
1974 unsigned c1 = (comps > 1) ? src.swizzle[1] & 1 : c0;
1979 assert(src.swizzle[0] < 4 && "8-bit vectors not supported");
1980 idx.swizzle = BI_SWIZZLE_B0000 + src.swizzle[0];
2261 bi_nir_is_replicated(nir_alu_src *src)
2263 for (unsigned i = 1; i < nir_src_num_components(src->src); ++i) {
2264 if (src->swizzle[0] == src->swizzle[i])
2278 unsigned src_sz = srcs > 0 ? nir_src_bit_size(instr->src[0].src) : 0;
2300 srcs > 0 ? bi_src_index(&instr->src[0].src) : bi_null(),
2301 srcs > 1 ? bi_src_index(&instr->src[1].src) : bi_null(),
2302 srcs > 2 ? bi_src_index(&instr->src[2].src) : bi_null(),
2303 srcs > 3 ? bi_src_index(&instr->src[3].src) : bi_null(),
2307 instr->src[0].swizzle[0],
2308 instr->src[1].swizzle[0],
2309 srcs > 2 ? instr->src[2].swizzle[0] : 0,
2310 srcs > 3 ? instr->src[3].swizzle[0] : 0,
2325 bi_index vec = bi_src_index(&instr->src[0].src);
2326 unsigned chan = instr->src[0].swizzle[0];
2333 bi_mov_i32_to(b, dst, bi_extract(b, bi_src_index(&instr->src[0].src), 0));
2337 bi_mov_i32_to(b, dst, bi_extract(b, bi_src_index(&instr->src[0].src), 1));
2342 bi_extract(b, bi_src_index(&instr->src[0].src), instr->src[0].swizzle[0]),
2343 bi_extract(b, bi_src_index(&instr->src[1].src), instr->src[1].swizzle[0]));
2348 bi_extract(b, bi_src_index(&instr->src[0].src), 0),
2349 bi_extract(b, bi_src_index(&instr->src[0].src), 1));
2353 bi_index src = bi_src_index(&instr->src[0].src);
2356 bi_mkvec_v2i16_to(b, dst, bi_half(bi_extract(b, src, 0), false),
2357 bi_half(bi_extract(b, src, 1), false));
2362 bi_index src = bi_src_index(&instr->src[0].src);
2365 bi_mkvec_v4i8_to(b, dst, bi_byte(bi_extract(b, src, 0), 0),
2366 bi_byte(bi_extract(b, src, 1), 0),
2367 bi_byte(bi_extract(b, src, 2), 0),
2368 bi_byte(bi_extract(b, src, 3), 0));
2373 bi_index idx = bi_src_index(&instr->src[0].src);
2377 comps > 0 ? instr->src[0].swizzle[0] : 0,
2378 comps > 1 ? instr->src[0].swizzle[1] : 0,
2379 comps > 2 ? instr->src[0].swizzle[2] : 0,
2380 comps > 3 ? instr->src[0].swizzle[3] : 0,
2388 assert(nir_src_num_components(instr->src[0].src) == 2);
2391 bi_index idx = bi_src_index(&instr->src[0].src);
2395 instr->src[0].swizzle[0],
2396 instr->src[0].swizzle[1]
2407 bi_index idx = bi_src_index(&instr->src[0].src);
2408 bi_index s0 = bi_extract(b, idx, instr->src[0].swizzle[0]);
2410 bi_extract(b, idx, instr->src[0].swizzle[1]) : s0;
2433 bi_index idx = bi_src_index(&instr->src[0].src);
2434 bi_index s0 = bi_extract(b, idx, instr->src[0].swizzle[0]);
2435 bi_index s1 = bi_extract(b, idx, instr->src[0].swizzle[1]);
2452 nir_alu_src *src = &instr->src[0];
2453 bi_index idx = bi_src_index(&src->src);
2454 bi_index s0 = bi_extract(b, idx, src->swizzle[0]);
2455 bi_index s1 = bi_extract(b, idx, src->swizzle[1]);
2457 bi_index t = (src->swizzle[0] == src->swizzle[1]) ?
2474 bi_index idx = bi_src_index(&instr->src[0].src);
2479 chan[i] = instr->src[0].swizzle[i] * factor;
2502 bi_index idx = bi_src_index(&instr->src[0].src);
2503 bi_index s0 = bi_extract(b, idx, instr->src[0].swizzle[0]);
2504 bi_index s1 = bi_alu_src_index(b, instr->src[1], comps);
2505 bi_index s2 = bi_alu_src_index(b, instr->src[2], comps);
2507 if (!bi_nir_is_replicated(&instr->src[0])) {
2509 bi_half(bi_extract(b, idx, instr->src[0].swizzle[1]), false));
2520 bi_index s0 = srcs > 0 ? bi_alu_src_index(b, instr->src[0], comps) : bi_null();
2521 bi_index s1 = srcs > 1 ? bi_alu_src_index(b, instr->src[1], comps) : bi_null();
2522 bi_index s2 = srcs > 2 ? bi_alu_src_index(b, instr->src[2], comps) : bi_null();
3174 (!nir_src_is_const(instr->src[offs_idx].src) ||
3175 nir_src_as_uint(instr->src[offs_idx].src) != 0)) {
3176 unsigned nr = nir_src_num_components(instr->src[offs_idx].src);
3177 bi_index idx = bi_src_index(&instr->src[offs_idx].src);
3187 (!nir_src_is_const(instr->src[ms_idx].src) ||
3188 nir_src_as_uint(instr->src[ms_idx].src) != 0)) {
3190 bi_src_index(&instr->src[ms_idx].src), dest,
3214 (!nir_src_is_const(instr->src[offs_idx].src) ||
3215 nir_src_as_uint(instr->src[offs_idx].src) != 0)) {
3216 unsigned nr = nir_src_num_components(instr->src[offs_idx].src);
3217 bi_index idx = bi_src_index(&instr->src[offs_idx].src);
3236 (!nir_src_is_const(instr->src[ms_idx].src) ||
3237 nir_src_as_uint(instr->src[ms_idx].src) != 0)) {
3239 bi_src_index(&instr->src[ms_idx].src));
3244 (!nir_src_is_const(instr->src[lod_idx].src) ||
3245 nir_src_as_uint(instr->src[lod_idx].src) != 0) &&
3248 bi_src_index(&instr->src[lod_idx].src), dest,
3415 bi_index index = bi_src_index(&instr->src[i].src);
3416 unsigned sz = nir_src_bit_size(instr->src[i].src);
3417 unsigned components = nir_src_num_components(instr->src[i].src);
3421 switch (instr->src[i].src_type) {
3449 nir_src_is_const(instr->src[i].src) &&
3450 nir_src_as_uint(instr->src[i].src) == 0) {
3511 unreachable("Unhandled src type in texc emit");
3622 bi_index index = bi_src_index(&instr->src[i].src);
3623 unsigned sz = nir_src_bit_size(instr->src[i].src);
3624 unsigned components = nir_src_num_components(instr->src[i].src);
3626 switch (instr->src[i].src_type) {
3655 if (nir_src_is_const(instr->src[i].src) &&
3656 nir_src_as_uint(instr->src[i].src) == 0) {
3695 unreachable("Unhandled src type in tex emit");
3771 bi_index coords = bi_src_index(&instr->src[coord_idx].src);
3823 if (instr->src[i].src_type != nir_tex_src_lod &&
3824 instr->src[i].src_type != nir_tex_src_coord)
3837 nir_src lod = instr->src[lod_idx].src;
4399 nir_ssa_def *in = intr->src[0].ssa;
4419 nir_instr_rewrite_src_ssa(instr, &intr->src[0], replicated);
4582 if (nir_src_bit_size(intr->src[0]) != 8)
4591 nir_ssa_def *cast = nir_convert_to_bit_size(b, intr->src[0].ssa, type, 16);
4594 nir_instr_rewrite_src_ssa(&intr->instr, &intr->src[0], cast);
4612 nir_load_output(b, intr->num_components, 16, intr->src[0].ssa,
4643 if (ins->op == BI_OPCODE_MOV_I32 && bi_is_equiv(ins->dest[0], ins->src[0]))
4672 nir_ssa_def *value = intr->src[0].ssa;
4681 nir_ssa_def *prev_ssa = prev->src[0].ssa;
4695 nir_instr_rewrite_src_ssa(instr, &intr->src[0],
4800 nir_src src = tex->src[coord_idx].src;
4801 assert(src.is_ssa);
4803 nir_ssa_scalar x = nir_ssa_scalar_resolved(src.ssa, 0);
4804 nir_ssa_scalar y = nir_ssa_scalar_resolved(src.ssa, 1);