Home
last modified time | relevance | path

Searched refs:AluInstr (Results 1 – 25 of 31) sorted by relevance

12

/third_party/mesa3d/src/gallium/drivers/r600/sfn/
Dsfn_instr_alu.cpp43 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(EAluOp opcode, PRegister dest, PVirtualValue src0, in AluInstr() function in r600::AluInstr
83 AluInstr(opcode, dest, SrcValues{src0}, m_flags, 1) in AluInstr()
88 AluInstr::AluInstr(EAluOp opcode, PRegister dest, in AluInstr() function in r600::AluInstr
91 AluInstr(opcode, dest, SrcValues{src0, src1}, m_flags, 1) in AluInstr()
96 AluInstr::AluInstr(EAluOp opcode, PRegister dest, PVirtualValue src0, PVirtualValue src1, in AluInstr() function in r600::AluInstr
[all …]
Dsfn_instr_mem.cpp199 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(… 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(… in emit_atomic_read()
245 AluInstr::write)); in emit_atomic_read()
247 … shader.emit_instruction(new AluInstr(op1_mov, tmp[0], vf.literal(4 * offset), AluInstr::write)); in emit_atomic_read()
276 …shader.emit_instruction(new AluInstr(op3_muladd_uint24, tmp[0], uav_id, vf.literal(4), vf.literal(… in emit_atomic_inc()
277 AluInstr::write)); in emit_atomic_inc()
[all …]
Dsfn_shader_fs.cpp86 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_int, tmp, vf.one_i(), m_sample_id_reg, AluInstr::last_write… in emit_load_sample_mask_in()
[all …]
Dsfn_instr_lds.cpp36 AluInstr::SrcValues& address): in LDSReadInstr()
71 auto new_addr = AluInstr::SrcValues(); in remove_unused_components()
93 void visit(AluInstr *instr) override { in visit()
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::last_write); in split()
195 AluInstr::SrcValues srcs; in from_string()
252 AluInstr *LDSAtomicInstr::split(std::vector<AluInstr *>& out_block, AluInstr *last_lds_instr) in split()
[all …]
Dsfn_instr_tex.cpp461 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_int, dst[3], tmp_w, in emit_buf_txf()
527 AluInstr::last_write)); in emit_buf_txf()
552 shader.emit_instruction(new AluInstr(op1_mov, temp2[k], in emit_tex_tex_ms_direct()
[all …]
Dsfn_instr_lds.h38 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);
Dsfn_shader_gs.cpp177 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; in store_output()
274 ir = new AluInstr(op1_mov, tmp[i + shift], out_value[i + shift], AluInstr::write); in store_output()
276 ir = new AluInstr(op1_mov, tmp[i + shift], value[i], AluInstr::write); in store_output()
302 ir = new AluInstr(op1_mov, tmp[i], out_value[i], AluInstr::write); in store_output()
388 emit_instruction(new AluInstr(op2_and_int, adjhelp0, in emit_adj_fix()
390 AluInstr::last_write)); in emit_adj_fix()
400 AluInstr *ir = nullptr; in emit_adj_fix()
[all …]
Dsfn_instr_alugroup.h38 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);
Dsfn_shader.cpp381 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(… in allocate_reserved_registers()
396 …group->add_instruction(new AluInstr(op1_mbcnt_32hi_int, temp1, value_factory().literal(-1), {alu_w… in allocate_reserved_registers()
398 …emit_instruction(new AluInstr(op3_muladd_uint24, temp2, value_factory().inline_const(ALU_SRC_SE_ID… 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_mov, dest, src, AluInstr::last_write)); in emit_load_to_register()
870 AluInstr::SrcValues src; in emit_atomic_local_shared()
[all …]
Dsfn_instr_alu.h41 class AluInstr : public Instr {
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_instr) override;
[all …]
Dsfn_peephole.cpp34 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()
Dsfn_instrfactory.cpp77 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()
Dsfn_shader_tess.cpp120 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()
Dsfn_shader_cs.cpp94 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::wri… in emit_load_3vec()
Dsfn_instr_alugroup.cpp57 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()
Dsfn_shader_vs.cpp154 …m_parent->emit_instruction(new AluInstr(op1_mov, primid[0], m_parent->primitive_id(), AluInstr::la… in finalize()
217 …m_parent->emit_instruction(new AluInstr(op1_mov, clamped, src, {alu_write, alu_dst_clamp, alu_last… 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_mov, tmp[i][j], (*so_gpr[i])[j + sc], {alu_write}); in emit_stream()
483 AluInstr *ir = nullptr; in load_input()
491 ir = new AluInstr(op1_mov, vf.dest(intr->dest, i, pin_none), src, {alu_write}); in load_input()
[all …]
Dsfn_instr_controlflow.cpp117 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()
Dsfn_scheduler.cpp48 void visit(AluInstr *instr) override { in visit()
111 std::vector<AluInstr*> buffer; in visit()
119 std::vector<AluInstr*> buffer; in visit()
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_ready;
191 std::list<AluInstr *> alu_trans_ready;
[all …]
Dsfn_instr_controlflow.h77 IfInstr(AluInstr *pred);
82 void set_predicate(AluInstr *new_predicate);
84 AluInstr *predicate() const { return m_predicate; } in predicate()
102 AluInstr *m_predicate;
Dsfn_instr.h41 class AluInstr; variable
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;
Dsfn_optimizer.cpp71 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;} in visit()
540 void visit(AluInstr *alu) override;
589 void ReplaceConstSource::visit(AluInstr *alu) in visit()
Dsfn_alu_readport_validation.h42 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/
Dsfn_instr_test.cpp32 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_mov, r128z, r129x, {alu_write, alu_last_instr})); in TEST_F()
[all …]
Dsfn_instrfromstring_test.cpp42 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 expect(op2_sete, in TEST_F()
[all …]
Dsfn_shaderfromstring_test.cpp60 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()

12