/third_party/mesa3d/src/gallium/drivers/r600/sfn/ |
H A D | sfn_instr_mem.cpp | 199 shader.emit_instruction(new AluInstr(op1_mov, temp_src_val, src_val, AluInstr::last_write)); in emit_atomic_op2() 216 shader.emit_instruction(new AluInstr(op3_muladd_uint24, tmp[0], uav_id, vf.literal(4), vf.literal(4 * offset), in emit_atomic_op2() 217 AluInstr::write)); in emit_atomic_op2() 219 shader.emit_instruction(new AluInstr(op1_mov, tmp[0], vf.literal(4 * offset), AluInstr::write)); in emit_atomic_op2() 220 shader.emit_instruction(new AluInstr(op1_mov, tmp[1], src_val, AluInstr::last_write)); in emit_atomic_op2() 244 shader.emit_instruction(new AluInstr(op3_muladd_uint24, tmp[0], uav_id, vf.literal(4), vf.literal(4 * offset), in emit_atomic_read() 245 AluInstr in emit_atomic_read() [all...] |
H A D | sfn_instr_alu.cpp | 43 AluInstr::AluInstr(EAluOp opcode, PRegister dest, in AluInstr() function in r600::AluInstr 70 AluInstr::AluInstr(EAluOp opcode): in AluInstr() function in r600::AluInstr 71 AluInstr(opcode, nullptr, SrcValues(alu_ops.at(opcode).nsrc), {}, 1) in AluInstr() 75 AluInstr::AluInstr(EAluOp opcode, int chan): in AluInstr() function in r600::AluInstr 76 AluInstr(opcode, nullptr, SrcValues(), {}, 1) in AluInstr() 81 AluInstr::AluInstr(EAluO function in r600::AluInstr 88 AluInstr::AluInstr(EAluOp opcode, PRegister dest, AluInstr() function in r600::AluInstr 96 AluInstr::AluInstr(EAluOp opcode, PRegister dest, PVirtualValue src0, PVirtualValue src1, AluInstr() function in r600::AluInstr 104 AluInstr::AluInstr(ESDOp op, PVirtualValue src0, PVirtualValue src1, PVirtualValue address): AluInstr() function in r600::AluInstr 118 AluInstr::AluInstr(ESDOp op, const SrcValues& src, const std::set<AluModifiers>& flags): AluInstr() function in r600::AluInstr [all...] |
H A D | sfn_instr_lds.cpp | 36 AluInstr::SrcValues& address): in LDSReadInstr() 71 auto new_addr = AluInstr::SrcValues(); in remove_unused_components() 93 void visit(AluInstr *instr) override { 98 AluInstr *LDSReadInstr::split(std::vector<AluInstr*>& out_block, AluInstr *last_lds_instr) in split() 100 AluInstr* first_instr = nullptr; in split() 113 auto instr = new AluInstr(DS_OP_READ_RET, nullptr, nullptr, addr); in split() 136 auto instr = new AluInstr(op1_mov, dest, in split() 138 AluInstr in split() [all...] |
H A D | sfn_shader_fs.cpp | 86 AluInstr *ir = nullptr; in load_input() 88 ir = new AluInstr(op1_mov, in load_input() 91 AluInstr::write); in load_input() 99 auto ir = new AluInstr(op2_setgt_dx10, in load_input() 103 AluInstr::last_write); in load_input() 169 emit_instruction(new AluInstr(op2_killne_int, nullptr, in process_stage_intrinsic() 172 {AluInstr::last})); in process_stage_intrinsic() 177 emit_instruction(new AluInstr(op2_kille_int, nullptr, in process_stage_intrinsic() 180 {AluInstr::last})); in process_stage_intrinsic() 316 emit_instruction(new AluInstr(op2_lshl_in in emit_load_sample_mask_in() [all...] |
H A D | sfn_instr_lds.h | 38 AluInstr::SrcValues& address); 50 AluInstr *split(std::vector<AluInstr *>& out_block, AluInstr *last_lds_instr); 63 AluInstr::SrcValues m_address; 69 using SrcValues = AluInstr::SrcValues; 88 AluInstr *split(std::vector<AluInstr *>& out_block, AluInstr *last_lds_instr);
|
H A D | sfn_instr_tex.cpp | 461 shader.emit_instruction(new AluInstr(op2_add_int, src_coord[k], src.coord[i], in emit_tex_txf() 463 AluInstr::write)); in emit_tex_txf() 465 shader.emit_instruction(new AluInstr(op1_mov, src_coord[k], src.coord[i],AluInstr::write)); in emit_tex_txf() 469 shader.emit_instruction(new AluInstr(op1_mov, src_coord[3], src.lod, AluInstr::last_write)); in emit_tex_txf() 515 AluInstr *ir = nullptr; in emit_buf_txf() 518 ir = new AluInstr(op2_and_int, d, tmp[i], in emit_buf_txf() 520 AluInstr::write); in emit_buf_txf() 525 shader.emit_instruction(new AluInstr(op2_or_in in emit_buf_txf() [all...] |
H A D | sfn_instr_alugroup.h | 38 using Slots = std::array<AluInstr *, 5>; 45 bool add_instruction(AluInstr *instr); 46 bool add_trans_instructions(AluInstr *instr); 47 bool add_vec_instructions(AluInstr *instr); 75 AluInstr::SrcValues get_kconsts() const; 97 bool update_indirect_access(AluInstr *instr); 98 bool try_readport(AluInstr *instr, AluBankSwizzle cycle);
|
H A D | sfn_shader.cpp | 381 auto alu = new AluInstr(op1_mov, m_atomic_update, in allocate_reserved_registers() 383 AluInstr::last_write); in allocate_reserved_registers() 395 group->add_instruction(new AluInstr(op1_mbcnt_32lo_accum_prev_int, temp0, value_factory().literal(-1), {alu_write})); in allocate_reserved_registers() 396 group->add_instruction(new AluInstr(op1_mbcnt_32hi_int, temp1, value_factory().literal(-1), {alu_write})); in allocate_reserved_registers() 398 emit_instruction(new AluInstr(op3_muladd_uint24, temp2, value_factory().inline_const(ALU_SRC_SE_ID, 0), in allocate_reserved_registers() 400 emit_instruction(new AluInstr(op3_muladd_uint24, m_rat_return_address, in allocate_reserved_registers() 688 AluInstr *pred = new AluInstr(op2_pred_setne_int, value_factory().temp_register(), in emit_if_start() 689 value, value_factory().zero(), AluInstr::last); in emit_if_start() 853 emit_instruction(new AluInstr(op1_mo in emit_load_to_register() [all...] |
H A D | sfn_shader_gs.cpp | 177 emit_instruction(new AluInstr(op1_mov, m_export_base[i], zero, AluInstr::last_write)); in do_allocate_reserved_registers() 237 auto ir = new AluInstr(op2_add_int, m_export_base[stream], m_export_base[stream], in emit_vertex() 239 AluInstr::last_write); in emit_vertex() 266 AluInstr *ir = nullptr; 274 ir = new AluInstr(op1_mov, tmp[i + shift], out_value[i + shift], AluInstr::write); 276 ir = new AluInstr(op1_mov, tmp[i + shift], value[i], AluInstr::write); 302 ir = new AluInstr(op1_mo [all...] |
H A D | sfn_peephole.cpp | 34 void visit(AluInstr *instr) override; 55 void convert_to_mov(AluInstr *alu, int src_idx); 70 void PeepholeVisitor::visit(AluInstr *instr) in visit() 124 void PeepholeVisitor::convert_to_mov(AluInstr *alu, int src_idx) in convert_to_mov() 126 AluInstr::SrcValues new_src{alu->psrc(src_idx)}; in convert_to_mov() 146 ReplaceIfPredicate(AluInstr *pred): in ReplaceIfPredicate() 151 void visit(AluInstr *alu) override; 153 AluInstr *m_pred; 208 void ReplaceIfPredicate::visit(AluInstr *alu) in visit()
|
H A D | sfn_shader_tess.cpp | 120 emit_instruction(new AluInstr(op1_mov, value0[0], value_factory().src(instr->src[0], 0), in store_tess_factor() 121 AluInstr::write)); in store_tess_factor() 122 emit_instruction(new AluInstr(op1_mov, value0[1], value_factory().src(instr->src[0], 1), in store_tess_factor() 123 two_parts ? AluInstr::write : AluInstr::last_write)); in store_tess_factor() 128 emit_instruction(new AluInstr(op1_mov, value1[0], value_factory().src(instr->src[0], 2), in store_tess_factor() 129 AluInstr::write)); in store_tess_factor() 130 emit_instruction(new AluInstr(op1_mov, value1[1], value_factory().src(instr->src[0], 3), in store_tess_factor() 131 AluInstr::last_write)); in store_tess_factor()
|
H A D | sfn_instrfactory.cpp | 77 result = AluInstr::from_string(is, m_value_factory, group); in from_string() 122 return AluInstr::from_nir(nir_instr_as_alu(instr), shader); in from_nir() 141 AluInstr *ir = nullptr; in load_const() 147 shader.emit_instruction(new AluInstr(op1_mov, dest0, src0, {alu_write})); in load_const() 151 shader.emit_instruction(new AluInstr(op1_mov, dest1, src1, AluInstr::last_write)); in load_const() 168 ir = new AluInstr(op1_mov, dest, src, {alu_write}); in load_const() 206 shader.emit_instruction(new AluInstr(op1_mov, dest, in process_undef() 208 AluInstr::last_write)); in process_undef()
|
H A D | sfn_instr_alu.h | 41 class AluInstr : public Instr { class 66 AluInstr(EAluOp opcode); 67 AluInstr(EAluOp opcode, int chan); 68 AluInstr(EAluOp opcode, PRegister dest, 72 AluInstr(EAluOp opcode, PRegister dest, PVirtualValue src0, 75 AluInstr(EAluOp opcode, PRegister dest, 79 AluInstr(EAluOp opcode, PRegister dest, PVirtualValue src0, PVirtualValue src1, 83 AluInstr(ESDOp op, PVirtualValue src0, PVirtualValue src1, PVirtualValue address); 84 AluInstr(ESDOp op, const SrcValues& src, const std::set<AluModifiers>& flags); 96 bool replace_dest(PRegister new_dest, AluInstr *move_inst [all...] |
H A D | sfn_shader_cs.cpp | 94 emit_instruction(new AluInstr(op1_mov, zero, value_factory().inline_const(ALU_SRC_0, 0), in emit_load_num_workgroups() 95 AluInstr::last_write)); in emit_load_num_workgroups() 116 emit_instruction(new AluInstr(op1_mov, dest, src[i], i == 2 ? AluInstr::last_write : AluInstr::write)); in emit_load_3vec()
|
H A D | sfn_instr_alugroup.cpp | 57 bool AluGroup::add_instruction(AluInstr *instr) in add_instruction() 96 bool AluGroup::add_trans_instructions(AluInstr *instr) in add_trans_instructions() 144 new AluInstr(op0_nop, instr->dest_chan()); in add_trans_instructions() 165 void visit(AluInstr *alu) { in visit() 173 bool AluGroup::add_vec_instructions(AluInstr *instr) in add_vec_instructions() 240 bool AluGroup::try_readport(AluInstr *instr, AluBankSwizzle cycle) in try_readport() 258 bool AluGroup::update_indirect_access(AluInstr *instr) in update_indirect_access() 390 AluInstr::SrcValues AluGroup::get_kconsts() const in get_kconsts() 392 AluInstr::SrcValues result; in get_kconsts()
|
H A D | sfn_shader_vs.cpp | 154 m_parent->emit_instruction(new AluInstr(op1_mov, primid[0], m_parent->primitive_id(), AluInstr::last_write)); in finalize() 217 m_parent->emit_instruction(new AluInstr(op1_mov, clamped, src, {alu_write, alu_dst_clamp, alu_last_instr})); in emit_varying_pos() 218 auto alu = new AluInstr(op1_flt_to_int, out_value[1], clamped, AluInstr::last_write); in emit_varying_pos() 277 AluInstr *alu = nullptr; in emit_varying_param() 280 alu = new AluInstr(op1_mov, value[i], m_parent->value_factory().src(intr.src[0], swizzle[i]), in emit_varying_param() 281 AluInstr::write); in emit_varying_param() 354 AluInstr *alu = nullptr; in emit_stream() 356 alu = new AluInstr(op1_mo in emit_stream() [all...] |
H A D | sfn_instr_controlflow.cpp | 117 IfInstr::IfInstr(AluInstr *pred): in IfInstr() 125 m_predicate = new AluInstr(*orig.m_predicate); in IfInstr() 168 void IfInstr::set_predicate(AluInstr *new_predicate) in set_predicate() 198 auto pred = AluInstr::from_string(bufstr, value_factory, nullptr); in from_string() 199 return new IfInstr(static_cast<AluInstr*>(pred)); in from_string()
|
H A D | sfn_instr_controlflow.h | 77 IfInstr(AluInstr *pred); 82 void set_predicate(AluInstr *new_predicate); 84 AluInstr *predicate() const { return m_predicate; } in predicate() 102 AluInstr *m_predicate;
|
H A D | sfn_scheduler.cpp | 48 void visit(AluInstr *instr) override { 111 std::vector<AluInstr*> buffer; 119 std::vector<AluInstr*> buffer; 131 std::list<AluInstr *> alu_trans; 132 std::list<AluInstr *> alu_vec; 146 AluInstr *m_last_lds_instr{nullptr}; 165 bool collect_ready_alu_vec(std::list<AluInstr *>& ready, std::list<AluInstr *>& available); 180 bool schedule_alu_to_group_trans(AluGroup *group, std::list<AluInstr *>& readylist); 190 std::list<AluInstr *> alu_vec_read [all...] |
H A D | sfn_instr.h | 41 class AluInstr; 106 virtual bool replace_dest(PRegister new_dest, AluInstr *move_instr); 200 bool try_reserve_kcache(const AluInstr& group); 205 void lds_group_start(AluInstr *alu); 237 AluInstr *m_lds_group_start{nullptr}; 284 virtual void visit(const AluInstr& instr) = 0; 305 virtual void visit(AluInstr *instr) = 0;
|
H A D | sfn_optimizer.cpp | 71 void visit(AluInstr *instr) override; 124 void DCEVisitor::visit(AluInstr *instr) in visit() 244 void visit(AluInstr *instr) override; 272 void visit(AluInstr *instr) override; 339 void CopyPropFwdVisitor::visit(AluInstr *instr) in visit() 409 void CopyPropBackVisitor::visit(AluInstr *instr) in visit() 488 void visit(AluInstr *instr) override{(void)instr;} 540 void visit(AluInstr *alu) override; 589 void ReplaceConstSource::visit(AluInstr *alu) in visit()
|
H A D | sfn_alu_readport_validation.h | 42 bool schedule_vec_instruction(const AluInstr& alu, AluBankSwizzle swz); 43 bool schedule_trans_instruction(const AluInstr& alu, AluBankSwizzle swz);
|
/third_party/mesa3d/src/gallium/drivers/r600/sfn/tests/ |
H A D | sfn_instr_test.cpp | 32 AluInstr alu(op0_group_barrier); in TEST_F() 45 AluInstr alu(op1_mov, in TEST_F() 89 AluInstr alu(op2_add, in TEST_F() 140 AluInstr alu(op3_cnde, in TEST_F() 199 AluInstr alu1(op1_mov, r128z, r129x, {alu_write}); in TEST_F() 200 EXPECT_NE(alu1, AluInstr(op1_mov, r128y, r129x, {alu_write})); in TEST_F() 201 EXPECT_NE(alu1, AluInstr(op1_mov, r128z, r129xc, {alu_write})); in TEST_F() 202 EXPECT_NE(alu1, AluInstr(op1_mov, r128z, r129y, {alu_write})); in TEST_F() 203 EXPECT_NE(alu1, AluInstr(op1_mov, r128z, r130x, {alu_write})); in TEST_F() 204 EXPECT_NE(alu1, AluInstr(op1_mo in TEST_F() [all...] |
H A D | sfn_instrfromstring_test.cpp | 42 AluInstr expect(op1_mov, in TEST_F() 54 AluInstr expect(DS_OP_READ_RET, in TEST_F() 63 AluInstr expect(op1_mov, in TEST_F() 75 AluInstr expect(op1_mov, in TEST_F() 86 AluInstr expect(op1_mov, in TEST_F() 97 AluInstr expect(op1_mov, in TEST_F() 109 AluInstr expect(op2_add, in TEST_F() 122 AluInstr expect(op2_add, in TEST_F() 135 AluInstr expect(op2_add, in TEST_F() 147 AluInstr expec in TEST_F() [all...] |
H A D | sfn_shaderfromstring_test.cpp | 60 expect.push_back(new AluInstr(op1_mov, in TEST_F() 65 expect.push_back(new AluInstr(op1_mov, in TEST_F() 70 expect.push_back(new AluInstr(op1_mov, in TEST_F() 75 expect.push_back(new AluInstr(op1_mov, in TEST_F()
|