/third_party/mesa3d/src/amd/compiler/tests/ |
D | test_sdwa.cpp | 29 BEGIN_TEST(validate.sdwa.allow) 37 …SDWA_instruction *sdwa = &bld.vop2_sdwa(aco_opcode::v_mul_f32, bld.def(v1), inputs[0], inputs[1]).… variable 38 sdwa->neg[0] = sdwa->neg[1] = sdwa->abs[0] = sdwa->abs[1] = true; 40 … sdwa = &bld.vop2_sdwa(aco_opcode::v_mul_f32, bld.def(v1b), inputs[0], inputs[1]).instr->sdwa(); 42 sdwa = &bld.vop2_sdwa(aco_opcode::v_mul_f32, bld.def(v1), inputs[0], inputs[1]).instr->sdwa(); 43 sdwa->sel[0] = SubdwordSel::sbyte2; 44 sdwa->sel[1] = SubdwordSel::uword1; 50 BEGIN_TEST(validate.sdwa.support) 66 BEGIN_TEST(validate.sdwa.operands) 95 BEGIN_TEST(validate.sdwa.vopc) [all …]
|
/third_party/mesa3d/src/amd/compiler/ |
D | aco_validate.cpp | 157 SDWA_instruction& sdwa = instr->sdwa(); in validate_ir() local 158 check(sdwa.omod == 0 || program->chip_class >= GFX9, in validate_ir() 161 check(sdwa.clamp == false || program->chip_class == GFX8, in validate_ir() 170 check(def.bytes() >= sdwa.dst_sel.size() + sdwa.dst_sel.offset(), in validate_ir() 173 sdwa.dst_sel.size() == 1 || sdwa.dst_sel.size() == 2 || sdwa.dst_sel.size() == 4, in validate_ir() 175 check(sdwa.dst_sel.offset() % sdwa.dst_sel.size() == 0, "Invalid selection offset", in validate_ir() 177 check(def.bytes() == 4 || def.bytes() == sdwa.dst_sel.size(), in validate_ir() 180 check(def.bytes() == 4 || sdwa.dst_sel.offset() == 0, in validate_ir() 187 check(op.bytes() >= sdwa.sel[i].size() + sdwa.sel[i].offset(), in validate_ir() 189 check(sdwa.sel[i].size() == 1 || sdwa.sel[i].size() == 2 || sdwa.sel[i].size() == 4, in validate_ir() [all …]
|
D | aco_print_ir.cpp | 606 const SDWA_instruction& sdwa = instr->sdwa(); in print_instr_format_specific() local 607 switch (sdwa.omod) { in print_instr_format_specific() 612 if (sdwa.clamp) in print_instr_format_specific() 615 char sext = sdwa.dst_sel.sign_extend() ? 's' : 'u'; in print_instr_format_specific() 616 unsigned offset = sdwa.dst_sel.offset(); in print_instr_format_specific() 619 switch (sdwa.dst_sel.size()) { in print_instr_format_specific() 629 char sext = sdwa.sel[i].sign_extend() ? 's' : 'u'; in print_instr_format_specific() 630 unsigned offset = sdwa.sel[i].offset(); in print_instr_format_specific() 633 switch (sdwa.sel[i].size()) { in print_instr_format_specific() 679 const SDWA_instruction& sdwa = instr->sdwa(); in aco_print_instr() local [all …]
|
D | aco_assembler.cpp | 688 SDWA_instruction& sdwa = instr->sdwa(); in emit_instruction() local 703 encoding |= (sdwa.clamp ? 1 : 0) << 13; in emit_instruction() 705 encoding |= sdwa.dst_sel.to_sdwa_sel(instr->definitions[0].physReg().byte()) << 8; in emit_instruction() 706 uint32_t dst_u = sdwa.dst_sel.sign_extend() ? 1 : 0; in emit_instruction() 710 encoding |= (sdwa.clamp ? 1 : 0) << 13; in emit_instruction() 711 encoding |= sdwa.omod << 14; in emit_instruction() 714 encoding |= sdwa.sel[0].to_sdwa_sel(sdwa_op.physReg().byte()) << 16; in emit_instruction() 715 encoding |= sdwa.sel[0].sign_extend() ? 1 << 19 : 0; in emit_instruction() 716 encoding |= sdwa.abs[0] << 21; in emit_instruction() 717 encoding |= sdwa.neg[0] << 20; in emit_instruction() [all …]
|
D | aco_ir.cpp | 264 SDWA_instruction& sdwa = instr->sdwa(); in convert_to_SDWA() local 268 memcpy(sdwa.neg, vop3.neg, sizeof(sdwa.neg)); in convert_to_SDWA() 269 memcpy(sdwa.abs, vop3.abs, sizeof(sdwa.abs)); in convert_to_SDWA() 270 sdwa.omod = vop3.omod; in convert_to_SDWA() 271 sdwa.clamp = vop3.clamp; in convert_to_SDWA() 279 sdwa.sel[i] = SubdwordSel(instr->operands[i].bytes(), 0, false); in convert_to_SDWA() 282 sdwa.dst_sel = SubdwordSel(instr->definitions[0].bytes(), 0, false); in convert_to_SDWA()
|
D | aco_lower_to_hw_instr.cpp | 515 aco_ptr<SDWA_instruction> sdwa{create_instruction<SDWA_instruction>( in emit_reduction() local 517 sdwa->operands[0] = Operand(PhysReg{tmp}, v1); in emit_reduction() 518 sdwa->definitions[0] = Definition(PhysReg{tmp}, v1); in emit_reduction() 520 sdwa->sel[0] = SubdwordSel(1, 0, sext); in emit_reduction() 521 sdwa->dst_sel = SubdwordSel::dword; in emit_reduction() 522 bld.insert(std::move(sdwa)); in emit_reduction() 538 aco_ptr<SDWA_instruction> sdwa{create_instruction<SDWA_instruction>( in emit_reduction() local 540 sdwa->operands[0] = Operand(PhysReg{tmp}, v1); in emit_reduction() 541 sdwa->definitions[0] = Definition(PhysReg{tmp}, v1); in emit_reduction() 543 sdwa->sel[0] = SubdwordSel(2, 0, sext); in emit_reduction() [all …]
|
D | aco_opt_value_numbering.cpp | 185 SDWA_instruction& aSDWA = a->sdwa(); in operator ()() 186 SDWA_instruction& bSDWA = b->sdwa(); in operator ()()
|
D | aco_optimizer.cpp | 835 if (instr->isSDWA() && instr->sdwa().sel[idx] != SubdwordSel::dword) in can_apply_extract() 1033 can_use_mod = can_use_mod && instr->sdwa().sel[i].size() == 4; in label_instruction() 1050 else if (instr->isSDWA() && !instr->sdwa().abs[i]) in label_instruction() 1051 instr->sdwa().neg[i] = true; in label_instruction() 1062 instr->sdwa().abs[i] = true; in label_instruction() 2091 SDWA_instruction& cmp_sdwa = cmp->sdwa(); in combine_inverse_comparison() 2848 if (!apply_omod_clamp_helper(ctx, &instr->sdwa(), def_info)) in apply_omod_clamp() 2897 if (instr->sdwa().dst_sel.size() != 4) in apply_insert()
|
D | aco_ir.h | 1296 SDWA_instruction& sdwa() noexcept in sdwa() function 1301 const SDWA_instruction& sdwa() const noexcept in sdwa() function
|
D | aco_instruction_selection.cpp | 11900 instr->sdwa().sel[0] = SubdwordSel::ubyte1; in calc_nontrivial_instance_id() 11907 instr->sdwa().sel[0] = SubdwordSel::ubyte2; in calc_nontrivial_instance_id()
|
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/lib/Target/AMDGPU/ |
D | AMDGPU.td | 311 def FeatureSDWA : SubtargetFeature<"sdwa", 317 def FeatureSDWAOmod : SubtargetFeature<"sdwa-omod", 323 def FeatureSDWAScalar : SubtargetFeature<"sdwa-scalar", 329 def FeatureSDWASdst : SubtargetFeature<"sdwa-sdst", 335 def FeatureSDWAMac : SubtargetFeature<"sdwa-mav", 341 def FeatureSDWAOutModsVOPC : SubtargetFeature<"sdwa-out-mods-vopc",
|
D | VOP1Instructions.td | 26 let Inst{8-0} = 0xf9; // sdwa 35 let Inst{8-0} = 0xf9; // sdwa
|
D | SIInstrInfo.td | 2008 string sdwa = !if(!eq(NumSrcArgs, 0), 2018 string ret = dst#args#sdwa; 2037 string sdwa = !if(!eq(NumSrcArgs, 0), "", 2046 string ret = dst#args#sdwa;
|
D | VOPCInstructions.td | 26 let Inst{8-0} = 0xf9; // sdwa 39 let Inst{8-0} = 0xf9; // sdwa
|
D | VOP2Instructions.td | 43 let Inst{8-0} = 0xf9; // sdwa 54 let Inst{8-0} = 0xf9; // sdwa
|
/third_party/mesa3d/docs/relnotes/ |
D | 20.1.0.rst | 3551 - aco: add emission support for register-allocated sdwa sels
|
D | 20.3.0.rst | 4110 - aco: fix printing of some sdwa sels
|
D | 20.2.0.rst | 3848 - aco: fix sub-dword opsel/sdwa checks
|