Lines Matching defs:tmp
178 dst = bld.tmp(src.regClass());
315 pre_shift_dst = (increment || multiply || post_shift) ? bld.tmp(v1) : dst;
322 increment_dst = (post_shift || multiply) ? bld.tmp(v1) : dst;
328 multiply_dst = post_shift ? bld.tmp(v1) : dst;
375 Temp dst = bld.tmp(dst_rc);
422 Temp tmp_dst = bld.tmp(RegClass::get(RegType::vgpr, 2 * num_components));
484 Temp tmp =
486 select = bld.tmp(s1);
487 shift = bld.sop2(aco_opcode::s_lshl_b32, bld.def(s1), bld.scc(Definition(select)), tmp,
494 Temp tmp = dst.size() == 2 ? dst : bld.tmp(s2);
495 bld.sop2(aco_opcode::s_lshr_b64, Definition(tmp), bld.def(s1, scc), vec, shift);
496 if (tmp == dst)
499 emit_extract_vector(ctx, tmp, 0, dst);
501 Temp lo = bld.tmp(s2), hi;
504 hi = bld.tmp(s1);
507 hi = bld.tmp(s2);
515 Temp mid = bld.tmp(s1);
529 Temp tmp[4] = {vec, vec, vec, vec};
532 tmp[0] = bld.tmp(v1), tmp[1] = bld.tmp(v1), tmp[2] = bld.tmp(v1), tmp[3] = bld.tmp(v1);
533 bld.pseudo(aco_opcode::p_split_vector, Definition(tmp[0]), Definition(tmp[1]),
534 Definition(tmp[2]), Definition(tmp[3]), vec);
536 tmp[0] = bld.tmp(v1), tmp[1] = bld.tmp(v1), tmp[2] = bld.tmp(v1);
537 bld.pseudo(aco_opcode::p_split_vector, Definition(tmp[0]), Definition(tmp[1]),
538 Definition(tmp[2]), vec);
540 tmp[0] = bld.tmp(v1), tmp[1] = bld.tmp(v1), tmp[2] = tmp[1];
541 bld.pseudo(aco_opcode::p_split_vector, Definition(tmp[0]), Definition(tmp[1]), vec);
544 tmp[i] = bld.vop3(aco_opcode::v_alignbyte_b32, bld.def(v1), tmp[i + 1], tmp[i], offset);
546 vec = tmp[0];
548 vec = bld.pseudo(aco_opcode::p_create_vector, bld.def(v2), tmp[0], tmp[1]);
596 Temp tmp = get_ssa_temp(ctx, def);
597 if (tmp.bytes() != rc.bytes())
598 return emit_extract_vector(ctx, tmp, 0, rc);
600 return tmp;
608 dst = bld.tmp(bld.lm);
622 dst = bld.tmp(s1);
650 dst = bld.tmp(src.type(), DIV_ROUND_UP(dst_bits, 32u));
652 dst = bld.tmp(RegClass(RegType::vgpr, dst_bits / 8u).as_subdword());
666 Temp tmp = dst;
668 tmp = src_bits == 32 ? src : bld.tmp(src.type(), 1);
670 if (tmp == src) {
673 bld.pseudo(aco_opcode::p_extract, Definition(tmp), bld.def(s1, scc), src, Operand::zero(),
677 bld.pseudo(aco_opcode::p_extract, Definition(tmp), src, Operand::zero(), Operand::c32(src_bits),
684 bld.sop2(aco_opcode::s_ashr_i32, bld.def(s1), bld.def(s1, scc), tmp, Operand::c32(31u));
685 bld.pseudo(aco_opcode::p_create_vector, Definition(dst), tmp, high);
687 Temp high = bld.vop2(aco_opcode::v_ashrrev_i32, bld.def(v1), Operand::c32(31u), tmp);
688 bld.pseudo(aco_opcode::p_create_vector, Definition(dst), tmp, high);
690 bld.pseudo(aco_opcode::p_create_vector, Definition(dst), tmp, Operand::zero());
717 Temp tmp = dst.regClass() == s2 ? bld.tmp(s1) : dst;
720 bld.copy(Definition(tmp), vec);
722 bld.pseudo(aco_opcode::p_extract, Definition(tmp), bld.def(s1, scc), Operand(vec),
727 convert_int(ctx, bld, tmp, 32, 64, mode == sgpr_extract_sext, dst);
793 Temp tmp = get_ssa_temp(ctx, src.src.ssa);
794 if (tmp.size() == 1)
795 return tmp;
801 if (tmp.bytes() >= (dword + 1) * 4) {
803 auto it = ctx->allocated_vec.find(tmp.id());
811 return emit_extract_vector(ctx, tmp, dword, v1);
815 assert(tmp.regClass() == v6b && dword == 1);
816 return emit_extract_vector(ctx, tmp, dword * 2, v2b);
901 Temp tmp = bld.vop2(opc, bld.def(v1), op[0], op[1]);
902 bld.vop2(aco_opcode::v_mul_f32, Definition(dst), Operand::c32(0x3f800000u), tmp);
926 Temp src00 = bld.tmp(src0.type(), 1);
927 Temp src01 = bld.tmp(src0.type(), 1);
929 Temp src10 = bld.tmp(v1);
930 Temp src11 = bld.tmp(v1);
955 Temp tmp;
957 tmp = bld.vop3(op, bld.def(dst.regClass()), src[0], src[1], src[2]);
959 tmp = bld.vop3(op, bld.def(dst.regClass()), src[0], src[1]);
961 bld.vop2(aco_opcode::v_mul_f32, Definition(dst), Operand::c32(0x3f800000u), tmp);
963 bld.vop3(aco_opcode::v_mul_f64, Definition(dst), Operand::c64(0x3FF0000000000000), tmp);
1142 Temp then_lo = bld.tmp(v1), then_hi = bld.tmp(v1);
1144 Temp else_lo = bld.tmp(v1), else_hi = bld.tmp(v1);
1264 Temp val_lo = bld.tmp(v1), val_hi = bld.tmp(v1);
1277 Temp fract_mask_lo = bld.tmp(v1), fract_mask_hi = bld.tmp(v1);
1281 Temp fract_lo = bld.tmp(v1), fract_hi = bld.tmp(v1);
1282 Temp tmp = bld.vop1(aco_opcode::v_not_b32, bld.def(v1), fract_mask_lo);
1283 fract_lo = bld.vop2(aco_opcode::v_and_b32, bld.def(v1), val_lo, tmp);
1284 tmp = bld.vop1(aco_opcode::v_not_b32, bld.def(v1), fract_mask_hi);
1285 fract_hi = bld.vop2(aco_opcode::v_and_b32, bld.def(v1), val_hi, tmp);
1321 Temp then_lo = bld.tmp(v1), then_hi = bld.tmp(v1);
1323 Temp else_lo = bld.tmp(v1), else_hi = bld.tmp(v1);
1495 Temp lo = bld.tmp(v1), hi = bld.tmp(v1);
1515 Temp sub = bld.vop3p(aco_opcode::v_pk_sub_u16, Definition(bld.tmp(v1)), Operand::zero(),
1529 bld.vop3(aco_opcode::v_sub_u16_e64, Definition(bld.tmp(v2b)), Operand::zero(2), src));
1533 bld.vop2(aco_opcode::v_sub_u16, Definition(bld.tmp(v2b)), Operand::zero(2), src));
1542 Temp tmp =
1544 bld.sop2(aco_opcode::s_min_i32, Definition(dst), bld.def(s1, scc), tmp, Operand::c32(1u));
1565 bld.vop2(aco_opcode::v_min_i16, Definition(bld.tmp(v1)), Operand::c16(1u), src));
1794 Temp msb_rev = bld.tmp(v1);
1796 Temp msb = bld.tmp(v1);
1804 Temp lo = bld.tmp(v1), hi = bld.tmp(v1);
1814 Temp msb = bld.tmp(v1);
1869 Temp src00 = bld.tmp(src0.type(), 1);
1870 Temp src01 = bld.tmp(dst.type(), 1);
1872 Temp src10 = bld.tmp(src1.type(), 1);
1873 Temp src11 = bld.tmp(dst.type(), 1);
1877 Temp carry = bld.tmp(s1);
1884 Temp dst0 = bld.tmp(v1);
1903 Temp tmp = bld.tmp(s1), carry = bld.tmp(s1);
1904 bld.sop2(aco_opcode::s_add_u32, Definition(tmp), bld.scc(Definition(carry)), src0, src1);
1905 bld.sop2(aco_opcode::s_cselect_b32, Definition(dst), Operand::c32(-1), tmp,
1927 Temp src00 = bld.tmp(src0.type(), 1);
1928 Temp src01 = bld.tmp(src0.type(), 1);
1930 Temp src10 = bld.tmp(src1.type(), 1);
1931 Temp src11 = bld.tmp(src1.type(), 1);
1935 Temp carry0 = bld.tmp(s1);
1936 Temp carry1 = bld.tmp(s1);
1948 Temp no_sat0 = bld.tmp(v1);
1949 Temp dst0 = bld.tmp(v1);
1950 Temp dst1 = bld.tmp(v1);
1956 carry1 = bld.tmp(bld.lm);
1962 Temp no_sat1 = bld.tmp(v1);
1989 Temp overflow = bld.tmp(s1);
2025 Temp src00 = bld.tmp(src0.type(), 1);
2026 Temp src01 = bld.tmp(dst.type(), 1);
2028 Temp src10 = bld.tmp(src1.type(), 1);
2029 Temp src11 = bld.tmp(dst.type(), 1);
2032 Temp carry = bld.tmp(s1);
2076 Temp src00 = bld.tmp(src0.type(), 1);
2077 Temp src01 = bld.tmp(dst.type(), 1);
2079 Temp src10 = bld.tmp(src1.type(), 1);
2080 Temp src11 = bld.tmp(dst.type(), 1);
2083 Temp borrow = bld.tmp(s1);
2090 Temp lower = bld.tmp(v1);
2112 Temp src00 = bld.tmp(src0.type(), 1);
2113 Temp src01 = bld.tmp(dst.type(), 1);
2115 Temp src10 = bld.tmp(src1.type(), 1);
2116 Temp src11 = bld.tmp(dst.type(), 1);
2119 Temp borrow = bld.tmp(s1);
2146 Temp tmp = bld.tmp(s1), carry = bld.tmp(s1);
2147 bld.sop2(aco_opcode::s_sub_u32, Definition(tmp), bld.scc(Definition(carry)), src0, src1);
2148 bld.sop2(aco_opcode::s_cselect_b32, Definition(dst), Operand::c32(0), tmp, bld.scc(carry));
2170 Temp src00 = bld.tmp(src0.type(), 1);
2171 Temp src01 = bld.tmp(src0.type(), 1);
2173 Temp src10 = bld.tmp(src1.type(), 1);
2174 Temp src11 = bld.tmp(src1.type(), 1);
2178 Temp carry0 = bld.tmp(s1);
2179 Temp carry1 = bld.tmp(s1);
2191 Temp no_sat0 = bld.tmp(v1);
2192 Temp dst0 = bld.tmp(v1);
2193 Temp dst1 = bld.tmp(v1);
2199 carry1 = bld.tmp(bld.lm);
2205 Temp no_sat1 = bld.tmp(v1);
2231 Temp overflow = bld.tmp(s1);
2291 Temp tmp = dst.regClass() == s1 ? bld.tmp(v1) : dst;
2293 emit_vop2_instruction(ctx, instr, aco_opcode::v_mul_hi_u32_u24, tmp, true);
2295 emit_vop3a_instruction(ctx, instr, aco_opcode::v_mul_hi_u32, tmp);
2299 bld.pseudo(aco_opcode::p_as_uniform, Definition(dst), tmp);
2311 Temp tmp = bld.vop3(aco_opcode::v_mul_hi_i32, bld.def(v1), get_alu_src(ctx, instr->src[0]),
2313 bld.pseudo(aco_opcode::p_as_uniform, Definition(dst), tmp);
2548 Temp upper = bld.tmp(v1), lower = bld.tmp(v1);
2583 Temp upper = bld.tmp(v1), lower = bld.tmp(v1);
2748 Temp src0_lo = bld.tmp(v1), src0_hi = bld.tmp(v1);
2757 Temp tmp =
2761 bld.vop3(aco_opcode::v_add_f64, bld.def(v2), tmp,
2764 tmp = sub->definitions[0].getTemp();
2772 Temp tmp_lo = bld.tmp(v1), tmp_hi = bld.tmp(v1);
2773 bld.pseudo(aco_opcode::p_split_vector, Definition(tmp_lo), Definition(tmp_hi), tmp);
2834 Temp tmp = bld.vop1(aco_opcode::v_frexp_exp_i16_f16, bld.def(v1), src);
2835 tmp = bld.pseudo(aco_opcode::p_extract_vector, bld.def(v1b), tmp, Operand::zero());
2836 convert_int(ctx, bld, tmp, 8, 32, true, dst);
2862 Temp tmp = bld.copy(bld.def(v1), Operand::c32(0x3FF00000u));
2863 Temp upper = bld.vop2_e64(aco_opcode::v_cndmask_b32, bld.def(v1), tmp,
2867 tmp = bld.copy(bld.def(v1), Operand::c32(0xBFF00000u));
2868 upper = bld.vop2(aco_opcode::v_cndmask_b32, bld.def(v1), tmp, upper, cond);
2967 Temp lower = bld.tmp(rc), upper = bld.tmp(rc);
2987 Temp lower = bld.tmp(rc), upper = bld.tmp(rc);
3042 Temp lower = bld.tmp(rc), upper = bld.tmp(rc);
3061 Temp lower = bld.tmp(rc), upper = bld.tmp(rc);
3079 Temp tmp = bld.tmp(v1);
3080 emit_vop1_instruction(ctx, instr, aco_opcode::v_cvt_f32_f16, tmp);
3081 tmp = bld.vop1(aco_opcode::v_cvt_i32_f32, bld.def(v1), tmp);
3082 tmp = convert_int(ctx, bld, tmp, 32, instr->dest.dest.ssa.bit_size, false,
3085 bld.pseudo(aco_opcode::p_as_uniform, Definition(dst), tmp);
3102 Temp tmp = bld.tmp(v1);
3103 emit_vop1_instruction(ctx, instr, aco_opcode::v_cvt_f32_f16, tmp);
3104 tmp = bld.vop1(aco_opcode::v_cvt_u32_f32, bld.def(v1), tmp);
3105 tmp = convert_int(ctx, bld, tmp, 32, instr->dest.dest.ssa.bit_size, false,
3108 bld.pseudo(aco_opcode::p_as_uniform, Definition(dst), tmp);
3121 Temp tmp = bld.vop1(aco_opcode::v_cvt_f32_f16, bld.def(v1), src);
3123 bld.vop1(aco_opcode::v_cvt_i32_f32, Definition(dst), tmp);
3126 bld.vop1(aco_opcode::v_cvt_i32_f32, bld.def(v1), tmp));
3140 Temp tmp = bld.vop1(aco_opcode::v_cvt_f32_f16, bld.def(v1), src);
3142 bld.vop1(aco_opcode::v_cvt_u32_f32, Definition(dst), tmp);
3145 bld.vop1(aco_opcode::v_cvt_u32_f32, bld.def(v1), tmp));
3170 Temp new_exponent = bld.tmp(v1);
3178 Temp lower = bld.tmp(v1), upper = bld.tmp(v1);
3185 Temp new_lower = bld.tmp(v1);
3218 Temp lower = bld.tmp(s1), upper = bld.tmp(s1);
3222 Temp borrow = bld.tmp(s1);
3266 Temp new_exponent = bld.tmp(v1);
3273 Temp lower = bld.tmp(v1), upper = bld.tmp(v1);
3310 Temp lower = bld.tmp(s1), upper = bld.tmp(s1);
3431 Temp tmp = dst.bytes() == 8 ? bld.tmp(RegClass::get(dst.type(), 4)) : dst;
3432 if (tmp.regClass() == s1) {
3433 bool_to_scalar_condition(ctx, src, tmp);
3434 } else if (tmp.type() == RegType::vgpr) {
3435 bld.vop2_e64(aco_opcode::v_cndmask_b32, Definition(tmp), Operand::zero(), Operand::c32(1u),
3441 if (tmp != dst)
3442 bld.pseudo(aco_opcode::p_create_vector, Definition(dst), tmp, Operand::zero());
3457 Temp tmp;
3459 tmp =
3464 tmp = bld.sopc(src.size() == 2 ? aco_opcode::s_cmp_lg_u64 : aco_opcode::s_cmp_lg_u32,
3467 bool_to_vector_condition(ctx, tmp, dst);
3909 Temp tmp;
3912 tmp = bld.vop2_dpp(aco_opcode::v_sub_f32, bld.def(v1), src, tl, dpp_ctrl2);
3916 tmp = bld.vop2(aco_opcode::v_sub_f32, bld.def(v1), tr, tl);
3918 emit_wqm(bld, tmp, dst, true);
4083 Temp lo = bld.tmp(offset_tmp.type(), 1);
4084 Temp hi = bld.tmp(offset_tmp.type(), 1);
4088 Temp carry = bld.tmp(s1);
4094 Temp new_lo = bld.tmp(v1);
4121 Temp hi = bld.tmp(v1), lo = bld.tmp(v1);
4179 Temp* const tmp = (Temp*)alloca(num_vals * sizeof(Temp));
4187 tmp[num_tmps++] = vals[i++];
4193 vec->operands[j] = Operand(tmp[j]);
4194 tmp[0] = bld.tmp(RegClass::get(reg_type, tmp_size));
4195 vec->definitions[0] = Definition(tmp[0]);
4199 if (tmp[0].bytes() % component_size) {
4200 /* trim tmp[0] */
4203 RegClass::get(reg_type, tmp[0].bytes() / component_size * component_size);
4204 tmp[0] =
4205 bld.pseudo(aco_opcode::p_extract_vector, bld.def(new_rc), tmp[0], Operand::zero());
4213 allocated_vec[components_split++] = tmp[0];
4219 Temp component = bld.tmp(elem_rc);
4223 split->operands[0] = Operand(tmp[0]);
4250 Temp tmp = bld.tmp(RegType::vgpr, info.dst.size());
4251 vec->definitions[0] = Definition(tmp);
4253 bld.pseudo(aco_opcode::p_as_uniform, Definition(info.dst), tmp);
4324 Temp val = rc == info.dst.regClass() && dst_hint.id() ? dst_hint : bld.tmp(rc);
4391 Temp val = dst_hint.id() && dst_hint.regClass() == rc ? dst_hint : bld.tmp(rc);
4449 Temp val = dst_hint.id() && rc == dst_hint.regClass() ? dst_hint : bld.tmp(rc);
4484 Temp val = dst_hint.id() && rc == dst_hint.regClass() ? dst_hint : bld.tmp(rc);
4515 Temp src00 = bld.tmp(src0.type(), 1);
4516 Temp src01 = bld.tmp(src0.type(), 1);
4520 Temp dst0 = bld.tmp(v1);
4525 Temp carry = bld.tmp(s1);
4647 Temp val = dst_hint.id() && rc == dst_hint.regClass() ? dst_hint : bld.tmp(rc);
4733 dst[i] = bld.tmp(RegClass::get(dst_type, bytes[i]));
4768 temps.emplace_back(bld.tmp(RegClass::get(dst_type, elem_size_bytes)));
4788 Temp tmp = temps[idx++];
4790 tmp = bld.as_uniform(tmp);
4791 vec->operands[j] = Operand(tmp);
5019 dst = bld.tmp(RegClass(reg_type, cnt * dword_size));
5158 Temp tid_in_wave = emit_mbcnt(ctx, bld.tmp(v1));
5372 Temp tmp = ctx->program->allocateTmp(instr->dest.ssa.bit_size == 16 ? v2b : v1);
5373 emit_interp_instr(ctx, idx, component + i, coords, tmp, prim_mask);
5374 vec->operands[i] = Operand(tmp);
5523 Temp divided = bld.tmp(v1);
5631 fetch_dst = bld.tmp(RegClass::get(RegType::vgpr, fetch_bytes));
5780 Temp tmp = bld.vop2(aco_opcode::v_add_f32, bld.def(v1), tes_u, tes_v);
5781 tmp = bld.vop2(aco_opcode::v_sub_f32, bld.def(v1), Operand::c32(0x3f800000u /* 1.0f */), tmp);
5782 tes_w = Operand(tmp);
5877 vec = fits_in_dword ? bld.tmp(s1) : bld.tmp(s2);
5881 vec = count == 4 ? bld.tmp(s4) : count > 1 ? bld.tmp(s2) : bld.tmp(s1);
5890 vec = bld.tmp(s4);
5895 vec = bld.tmp(s8);
5967 for (Temp tmp : unpacked) {
5968 assert(tmp.bytes() % 2 == 0);
5970 while (byte_idx < tmp.bytes()) {
5972 Temp high = emit_extract_vector(ctx, tmp, byte_idx / 2, v2b);
5977 } else if (byte_idx % 4 == 0 && (byte_idx + 4) <= tmp.bytes()) {
5978 packed.emplace_back(emit_extract_vector(ctx, tmp, byte_idx / 4, v1));
5981 low = emit_extract_vector(ctx, tmp, byte_idx / 2, v2b);
6032 coord = bld.tmp(RegType::vgpr, coords.size());
6048 coord = emit_wqm(bld, coord, bld.tmp(coord.regClass()), true);
6056 coords[i] = emit_wqm(bld, coords[i], bld.tmp(coords[i].regClass()), true);
6194 Temp tmp = bld.tmp(dst.regClass());
6200 vec->definitions[0] = Definition(tmp);
6208 return Operand(tmp);
6243 Temp tmp;
6245 tmp = dst;
6247 tmp = bld.tmp(RegClass::get(RegType::vgpr, num_bytes));
6277 load->definitions[0] = Definition(tmp);
6285 load->operands[3] = emit_tfe_init(bld, tmp);
6293 Operand vdata = is_sparse ? emit_tfe_init(bld, tmp) : Operand(v1);
6295 emit_mimg(bld, opcode, Definition(tmp), resource, Operand(s4), coords, 0, vdata);
6312 tmp = bld.pseudo(aco_opcode::p_create_vector, bld.def(RegType::vgpr, tmp.size() + 1), tmp,
6316 expand_vector(ctx, tmp, dst, instr->dest.ssa.num_components, expand_mask,
6414 data = bld.tmp(RegClass::get(RegType::vgpr, dmask_count * rc.bytes()));
6592 Temp shr_dst = dst.type() == RegType::vgpr ? bld.tmp(s1) : dst;
7540 Definition tmp_dst(dst.type() == RegType::vgpr ? dst : bld.tmp(is64bit ? v4 : v2));
7723 gsvs_dwords[i] = bld.tmp(s1);
7730 Temp carry = bld.tmp(s1);
7800 Temp tmp =
7803 bld.sop1(Builder::s_wqm, bld.def(bld.lm), bld.def(s1, scc), tmp));
7811 Temp tmp =
7815 Temp cond = bool_to_vector_condition(ctx, emit_wqm(bld, tmp));
7819 Temp tmp =
7823 return bool_to_vector_condition(ctx, tmp);
7826 Temp tmp =
7828 tmp = bld.sop1(Builder::s_bcnt1_i32, bld.def(s1), bld.def(s1, scc), tmp);
7829 tmp = bld.sop2(aco_opcode::s_and_b32, bld.def(s1), bld.def(s1, scc), tmp, Operand::c32(1u))
7832 return bool_to_vector_condition(ctx, tmp);
7844 Temp lane_id = emit_mbcnt(ctx, bld.tmp(v1));
7848 Temp tmp;
7850 tmp = bld.sop2(Builder::s_orn2, bld.def(bld.lm), bld.def(s1, scc), src,
7853 tmp =
7859 tmp = bld.vop3(aco_opcode::v_lshr_b64, bld.def(v2), tmp, cluster_offset);
7861 tmp = bld.vop3(aco_opcode::v_lshrrev_b64, bld.def(v2), cluster_offset, tmp);
7863 tmp = bld.vop2_e64(aco_opcode::v_lshrrev_b32, bld.def(v1), cluster_offset, tmp);
7864 tmp = emit_extract_vector(ctx, tmp, 0, v1);
7866 tmp = bld.vop2(aco_opcode::v_and_b32, bld.def(v1), Operand::c32(cluster_mask), tmp);
7870 tmp);
7872 return bld.vopc(aco_opcode::v_cmp_lg_u32, bld.def(bld.lm), Operand::zero(), tmp);
7874 tmp = bld.vop2(aco_opcode::v_and_b32, bld.def(v1), Operand::c32(1u),
7875 bld.vop3(aco_opcode::v_bcnt_u32_b32, bld.def(v1), tmp, Operand::zero()));
7876 return bld.vopc(aco_opcode::v_cmp_lg_u32, bld.def(bld.lm), Operand::zero(), tmp);
7893 Temp tmp;
7895 tmp =
7898 tmp = bld.sop2(Builder::s_and, bld.def(bld.lm), bld.def(s1, scc), src, Operand(exec, bld.lm));
7900 Temp mbcnt = emit_mbcnt(ctx, bld.tmp(v1), Operand(tmp));
7923 Temp tmp = emit_boolean_exclusive_scan(ctx, op, src);
7925 return bld.sop2(Builder::s_and, bld.def(bld.lm), bld.def(s1, scc), tmp, src);
7927 return bld.sop2(Builder::s_or, bld.def(bld.lm), bld.def(s1, scc), tmp, src);
7929 return bld.sop2(Builder::s_xor, bld.def(bld.lm), bld.def(s1, scc), tmp, src);
7986 Temp tmp = dst.regClass() == s1 ? bld.tmp(RegClass::get(RegType::vgpr, src.ssa->bit_size / 8))
7991 bld.vop2(aco_opcode::v_mul_f16, Definition(tmp), count, src_tmp);
7995 bld.vop2(aco_opcode::v_mul_f32, Definition(tmp), count, src_tmp);
7998 if (tmp != dst.getTemp())
7999 bld.pseudo(aco_opcode::p_as_uniform, dst, tmp);
8079 packed_tid = emit_mbcnt(ctx, bld.tmp(v1), Operand(exec, bld.lm), Operand::c32(1u));
8081 packed_tid = emit_mbcnt(ctx, bld.tmp(v1), Operand(exec, bld.lm));
8100 Temp lo = bld.tmp(v1), hi = bld.tmp(v1);
8216 Temp wqm1 = bld.tmp(v1);
8218 Temp wqm2 = bld.tmp(v1);
8317 Temp tmp0 = bld.tmp(s1);
8318 Temp tmp1 = bld.tmp(s1);
8327 Temp pck0 = bld.tmp(v1);
8347 sample_pos = bld.tmp(v2);
8365 Temp pos1 = bld.tmp(RegClass(sample_pos.type(), 1));
8366 Temp pos2 = bld.tmp(RegClass(sample_pos.type(), 1));
8377 Temp pos1 = bld.tmp(rc), pos2 = bld.tmp(rc);
8551 Temp thread_id = emit_mbcnt(ctx, bld.tmp(v1));
8567 Temp id = emit_mbcnt(ctx, bld.tmp(v1));
8662 Temp tmp = bld.tmp(v1);
8663 tmp = emit_wqm(bld, emit_bpermute(ctx, bld, tid, src), tmp);
8666 bld.def(src.regClass() == v1b ? v3b : v2b), tmp);
8668 bld.pseudo(aco_opcode::p_as_uniform, Definition(dst), tmp);
8672 Temp lo = bld.tmp(v1), hi = bld.tmp(v1);
8680 Temp tmp = bld.sopc(Builder::s_bitcmp1, bld.def(s1, scc), src, tid);
8681 bool_to_vector_condition(ctx, emit_wqm(bld, tmp), dst);
8684 Temp tmp;
8686 tmp = bld.vop3(aco_opcode::v_lshr_b64, bld.def(v2), src, tid);
8688 tmp = bld.vop3(aco_opcode::v_lshrrev_b64, bld.def(v2), tid, src);
8690 tmp = bld.vop2_e64(aco_opcode::v_lshrrev_b32, bld.def(v1), tid, src);
8691 tmp = emit_extract_vector(ctx, tmp, 0, v1);
8692 tmp = bld.vop2(aco_opcode::v_and_b32, bld.def(v1), Operand::c32(1u), tmp);
8693 emit_wqm(bld, bld.vopc(aco_opcode::v_cmp_lg_u32, bld.def(bld.lm), Operand::zero(), tmp),
8712 Temp lo = bld.tmp(v1), hi = bld.tmp(v1);
8720 Temp tmp = bld.sopc(Builder::s_bitcmp1, bld.def(s1, scc), src,
8722 bool_to_vector_condition(ctx, emit_wqm(bld, tmp), dst);
8734 Temp tmp =
8738 Temp cond = bool_to_vector_condition(ctx, emit_wqm(bld, tmp));
8748 Temp tmp = bool_to_scalar_condition(ctx, src);
8749 bool_to_vector_condition(ctx, emit_wqm(bld, tmp), dst);
8857 Temp tmp(dst);
8868 tmp = bld.tmp(v1);
8870 tmp = bld.tmp(dst.regClass());
8874 assert(src.regClass() == bld.lm && tmp.regClass() == bld.lm);
8885 bld.sop1(Builder::s_wqm, Definition(tmp), src);
8888 Definition def = excess_bytes ? bld.def(v1) : Definition(tmp);
8896 bld.pseudo(aco_opcode::p_split_vector, Definition(tmp),
8897 bld.def(RegClass::get(tmp.type(), excess_bytes)), def.getTemp());
8899 Temp lo = bld.tmp(v1), hi = bld.tmp(v1);
8910 bld.pseudo(aco_opcode::p_create_vector, Definition(tmp), lo, hi);
8911 emit_split_vector(ctx, tmp, 2);
8916 if (tmp.id() != dst.id()) {
8918 tmp = bld.vopc(aco_opcode::v_cmp_lg_u32, bld.def(bld.lm), Operand::zero(), tmp);
8921 emit_wqm(bld, tmp, dst, true);
8943 Temp tmp = bld.vopc(aco_opcode::v_cmp_lg_u32, bld.def(bld.lm), Operand::zero(), src);
8944 emit_wqm(bld, tmp, dst);
8946 Temp tmp = emit_wqm(bld, emit_masked_swizzle(ctx, bld, src, mask));
8947 emit_extract_vector(ctx, tmp, 0, dst);
8949 Temp tmp = emit_wqm(bld, emit_masked_swizzle(ctx, bld, src, mask));
8950 emit_extract_vector(ctx, tmp, 0, dst);
8954 Temp lo = bld.tmp(v1), hi = bld.tmp(v1);
8974 Temp src_lo = bld.tmp(v1), src_hi = bld.tmp(v1);
8975 Temp val_lo = bld.tmp(s1), val_hi = bld.tmp(s1);
8993 Temp wqm_tmp = emit_mbcnt(ctx, bld.tmp(v1), Operand(src), Operand(add_src));
9305 Temp tmp = bld.vop2(aco_opcode::v_cndmask_b32, bld.def(v1), deriv_z, deriv_x, is_not_ma_x);
9309 *out_sc = bld.vop2(aco_opcode::v_mul_f32, bld.def(v1), tmp, sgn);
9312 tmp = bld.vop2(aco_opcode::v_cndmask_b32, bld.def(v1), deriv_y, deriv_z, is_ma_y);
9314 *out_tc = bld.vop2(aco_opcode::v_mul_f32, bld.def(v1), tmp, sgn);
9317 tmp = bld.vop2(aco_opcode::v_cndmask_b32, bld.def(v1),
9320 tmp = bld.vop2(aco_opcode::v_and_b32, bld.def(v1), Operand::c32(0x7fffffffu), tmp);
9321 *out_ma = bld.vop2(aco_opcode::v_mul_f32, bld.def(v1), two, tmp);
9345 Temp invma = bld.tmp(v1);
9630 for (Temp tmp : ddxddy) {
9631 if (tmp == Temp())
9633 std::vector<Temp> unpacked = {tmp};
9669 tmp_dst = bld.tmp(instr->is_sparse ? v5 : (d16 ? v2 : v4));
9671 tmp_dst = bld.tmp(v1);
9675 tmp_dst = bld.tmp(RegClass::get(RegType::vgpr, bytes));
9703 Temp size = bld.tmp(v2);
9749 desc[i] = bld.tmp(s1);
9769 tg4_compare_cube_wa64 = bld.tmp(bld.lm);
9783 resource = bld.tmp(resource.regClass());
9885 Temp is_not_null = bld.tmp(bld.lm);
10056 Temp tmp = dst.regClass() == tmp_dst.regClass() ? dst : bld.tmp(tmp_dst.regClass());
10058 tmp_dst = bld.pseudo(aco_opcode::p_create_vector, Definition(tmp), val[0], val[1], val[2],
10061 tmp_dst = bld.pseudo(aco_opcode::p_create_vector, Definition(tmp), val[0], val[1], val[2],
10071 Temp tmp = get_ssa_temp(ctx, ssa);
10083 return Operand(tmp);
11043 Temp tmp = ctx->outputs.temps[VARYING_SLOT_LAYER * 4u];
11044 ch2 = bld.vop3(aco_opcode::v_lshl_or_b32, bld.def(v1), tmp, Operand::c32(17), ch2);
11048 Temp tmp = ctx->outputs.temps[VARYING_SLOT_VIEWPORT * 4u];
11049 ch2 = bld.vop3(aco_opcode::v_lshl_or_b32, bld.def(v1), tmp, Operand::c32(20), ch2);
11053 Temp tmp = ctx->outputs.temps[VARYING_SLOT_PRIMITIVE_SHADING_RATE * 4u];
11054 ch2 = bld.vop2(aco_opcode::v_or_b32, bld.def(v1), tmp, ch2);
11389 Temp tmp = convert_int(ctx, bld, chan.getTemp(), 16, 32, sign_ext);
11390 chan = Operand(tmp);
11513 Temp tid = emit_mbcnt(ctx, bld.tmp(v1));
11710 ctx->persp_centroid = bld.tmp(v2);
11726 ctx->linear_centroid = bld.tmp(v2);
11864 Temp tmp =
11866 tmp = bld.sop2(aco_opcode::s_or_b32, bld.m0(bld.def(s1)), bld.def(s1, scc), tmp, vtx_cnt);
11871 bld.sopp(aco_opcode::s_sendmsg, bld.m0(tmp), -1, sendmsg_gs_alloc_req);
12095 Temp val = bld.tmp(v1);