diff --git a/src/amd/compiler/tests/helpers.cpp b/src/amd/compiler/tests/helpers.cpp index 3be302aec77..f9eb269f725 100644 --- a/src/amd/compiler/tests/helpers.cpp +++ b/src/amd/compiler/tests/helpers.cpp @@ -5,14 +5,14 @@ */ #include "helpers.h" +#include "aco_ir.h" + #include "common/amd_family.h" #include "common/nir/ac_nir.h" -#include "vk_format.h" #include #include -#include #include using namespace aco; @@ -112,11 +112,15 @@ setup_cs(const char* input_spec, enum amd_gfx_level gfx_level, enum radeon_famil input_spec++; } + PhysReg sgpr_reg{0}; + PhysReg vgpr_reg{256}; aco_ptr startpgm{ create_instruction(aco_opcode::p_startpgm, Format::PSEUDO, 0, input_classes.size())}; for (unsigned i = 0; i < input_classes.size(); i++) { inputs[i] = bld.tmp(input_classes[i]); - startpgm->definitions[i] = Definition(inputs[i]); + PhysReg& reg = input_classes[i].type() == RegType::sgpr ? sgpr_reg : vgpr_reg; + startpgm->definitions[i] = Definition(inputs[i], reg); + reg = reg.advance(input_classes[i].size() * 4); } bld.insert(std::move(startpgm)); } diff --git a/src/amd/compiler/tests/test_builder.cpp b/src/amd/compiler/tests/test_builder.cpp index 1c7a0c263dd..e55510fe45a 100644 --- a/src/amd/compiler/tests/test_builder.cpp +++ b/src/amd/compiler/tests/test_builder.cpp @@ -9,7 +9,7 @@ using namespace aco; BEGIN_TEST(builder.v_mul_imm) for (unsigned i = GFX8; i <= GFX10; i++) { - //>> v1: %a, v1: %b, s1: %c, s1: %d = p_startpgm + //>> v1: %a:v[0], v1: %b:v[1], s1: %c:s[0], s1: %d:s[1] = p_startpgm if (!setup_cs("v1 v1 s1 s1", (amd_gfx_level)i)) continue; diff --git a/src/amd/compiler/tests/test_lower_subdword.cpp b/src/amd/compiler/tests/test_lower_subdword.cpp index 416dee22bf6..16521055ee1 100644 --- a/src/amd/compiler/tests/test_lower_subdword.cpp +++ b/src/amd/compiler/tests/test_lower_subdword.cpp @@ -9,7 +9,7 @@ using namespace aco; BEGIN_TEST(lower_subdword.simple_extract) - //>> v1: %a, v2: %b = p_startpgm + //>> v1: %a:v[0], v2: %b:v[1-2] = p_startpgm if (!setup_cs("v1 v2", GFX6)) return; @@ -38,7 +38,7 @@ BEGIN_TEST(lower_subdword.simple_extract) END_TEST BEGIN_TEST(lower_subdword.simple_split) - //>> v1: %a, v2: %b = p_startpgm + //>> v1: %a:v[0], v2: %b:v[1-2] = p_startpgm if (!setup_cs("v1 v2", GFX6)) return; @@ -70,7 +70,7 @@ BEGIN_TEST(lower_subdword.simple_split) END_TEST BEGIN_TEST(lower_subdword.simple_create) - //>> v1: %b, v1: %w, v1: %tb, s1: %sd, v1: %vd = p_startpgm + //>> v1: %b:v[0], v1: %w:v[1], v1: %tb:v[2], s1: %sd:s[0], v1: %vd:v[3] = p_startpgm if (!setup_cs("v1b v2b v3b s1 v1 ", GFX6)) return; @@ -112,7 +112,7 @@ BEGIN_TEST(lower_subdword.simple_create) END_TEST BEGIN_TEST(lower_subdword.create_const_undef) - //>> v1: %b, v1: %w = p_startpgm + //>> v1: %b:v[0], v1: %w:v[1] = p_startpgm if (!setup_cs("v1b v2b", GFX6)) return; diff --git a/src/amd/compiler/tests/test_optimizer.cpp b/src/amd/compiler/tests/test_optimizer.cpp index c2fb7323376..42dc3c3f7c3 100644 --- a/src/amd/compiler/tests/test_optimizer.cpp +++ b/src/amd/compiler/tests/test_optimizer.cpp @@ -9,7 +9,7 @@ using namespace aco; BEGIN_TEST(optimize.neg) for (unsigned i = GFX9; i <= GFX10; i++) { - //>> v1: %a, v1: %b, s1: %c, s1: %d = p_startpgm + //>> v1: %a:v[0], v1: %b:v[1], s1: %c:s[0], s1: %d:s[1] = p_startpgm if (!setup_cs("v1 v1 s1 s1", (amd_gfx_level)i)) continue; @@ -70,7 +70,7 @@ BEGIN_TEST(optimize.neg) END_TEST BEGIN_TEST(optimize.output_modifiers) - //>> v1: %a, v1: %b = p_startpgm + //>> v1: %a:v[0], v1: %b:v[1] = p_startpgm if (!setup_cs("v1 v1", GFX9)) return; @@ -256,7 +256,7 @@ END_TEST BEGIN_TEST(optimize.add_lshl) for (unsigned i = GFX8; i <= GFX10; i++) { - //>> s1: %a, v1: %b = p_startpgm + //>> s1: %a:s[0], v1: %b:v[0] = p_startpgm if (!setup_cs("s1 v1", (amd_gfx_level)i)) continue; @@ -342,7 +342,7 @@ END_TEST BEGIN_TEST(optimize.bcnt) for (unsigned i = GFX8; i <= GFX10; i++) { - //>> v1: %a, s1: %b = p_startpgm + //>> v1: %a:v[0], s1: %b:s[0] = p_startpgm if (!setup_cs("v1 s1", (amd_gfx_level)i)) continue; @@ -429,7 +429,7 @@ BEGIN_TEST(optimize.clamp) aco_print_operand(&cfg.ub, output); fprintf(output, "\n"); - //>> v1: %a, v1: %b, v1: %c = p_startpgm + //>> v1: %a:v[0], v1: %b:v[1], v1: %c:v[2] = p_startpgm //! v1: %res0 = @med3 @ub, @lb, %a //! p_unit_test 0, %res0 @@ -497,7 +497,7 @@ BEGIN_TEST(optimize.clamp) END_TEST BEGIN_TEST(optimize.add3) - //>> v1: %a, v1: %b, v1: %c = p_startpgm + //>> v1: %a:v[0], v1: %b:v[1], v1: %c:v[2] = p_startpgm if (!setup_cs("v1 v1 v1", GFX9)) return; @@ -526,7 +526,7 @@ END_TEST BEGIN_TEST(optimize.minmax) for (unsigned i = GFX10_3; i <= GFX11; i++) { - //>> v1: %a, v1: %b, v1: %c = p_startpgm + //>> v1: %a:v[0], v1: %b:v[1], v1: %c:v[2] = p_startpgm if (!setup_cs("v1 v1 v1", (amd_gfx_level)i)) continue; @@ -590,7 +590,7 @@ END_TEST BEGIN_TEST(optimize.mad_32_24) for (unsigned i = GFX8; i <= GFX9; i++) { - //>> v1: %a, v1: %b, v1: %c = p_startpgm + //>> v1: %a:v[0], v1: %b:v[1], v1: %c:v[2] = p_startpgm if (!setup_cs("v1 v1 v1", (amd_gfx_level)i)) continue; @@ -611,7 +611,7 @@ END_TEST BEGIN_TEST(optimize.add_lshlrev) for (unsigned i = GFX8; i <= GFX10; i++) { - //>> v1: %a, v1: %b, s1: %c = p_startpgm + //>> v1: %a:v[0], v1: %b:v[1], s1: %c:s[0] = p_startpgm if (!setup_cs("v1 v1 s1", (amd_gfx_level)i)) continue; @@ -749,7 +749,7 @@ BEGIN_TEST(optimize.denorm_propagation) fprintf(output, "can_propagate: %u\n", can_propagate); //! src, dest, op: $src $dest $op //! can_propagate: #can_propagate - //>> v1: %a, s2: %b = p_startpgm + //>> v1: %a:v[0], s2: %b:s[0-1] = p_startpgm //; patterns = {'cndmask': 'v1: %{} = v_cndmask_b32 0, {}, %b', //; 'min': 'v1: %{} = v_min_f32 0, {}', @@ -799,7 +799,7 @@ BEGIN_TEST(optimize.denorm_propagation) END_TEST BEGIN_TEST(optimizer.dpp) - //>> v1: %a, v1: %b, s2: %c, s1: %d = p_startpgm + //>> v1: %a:v[0], v1: %b:v[1], s2: %c:s[0-1], s1: %d:s[2] = p_startpgm if (!setup_cs("v1 v1 s2 s1", GFX10_3)) return; @@ -909,7 +909,7 @@ BEGIN_TEST(optimizer.dpp) END_TEST BEGIN_TEST(optimize.dpp_prop) - //>> v1: %a, s1: %b = p_startpgm + //>> v1: %a:v[0], s1: %b:s[0] = p_startpgm if (!setup_cs("v1 s1", GFX10)) return; @@ -954,7 +954,7 @@ BEGIN_TEST(optimize.dpp_prop) END_TEST BEGIN_TEST(optimize.casts) - //>> v1: %a, v2b: %a16 = p_startpgm + //>> v1: %a:v[0], v2b: %a16:v[1][0:16] = p_startpgm if (!setup_cs("v1 v2b", GFX10_3)) return; @@ -1027,7 +1027,7 @@ END_TEST BEGIN_TEST(optimize.mad_mix.input_conv.basic) for (unsigned i = GFX9; i <= GFX10; i++) { - //>> v1: %a, v2b: %a16 = p_startpgm + //>> v1: %a:v[0], v2b: %a16:v[1][0:16] = p_startpgm if (!setup_cs("v1 v2b", (amd_gfx_level)i)) continue; @@ -1062,7 +1062,7 @@ END_TEST BEGIN_TEST(optimize.mad_mix.input_conv.precision) for (unsigned i = GFX9; i <= GFX10; i++) { - //>> v1: %a, v2b: %a16 = p_startpgm + //>> v1: %a:v[0], v2b: %a16:v[1][0:16] = p_startpgm if (!setup_cs("v1 v2b", (amd_gfx_level)i)) continue; @@ -1117,7 +1117,7 @@ BEGIN_TEST(optimize.mad_mix.input_conv.modifiers) for (unsigned i = GFX9; i <= GFX11; i++) { if (i == GFX10_3) continue; - //>> v1: %a, v2b: %a16 = p_startpgm + //>> v1: %a:v[0], v2b: %a16:v[1][0:16] = p_startpgm if (!setup_cs("v1 v2b", (amd_gfx_level)i)) continue; @@ -1219,7 +1219,7 @@ END_TEST BEGIN_TEST(optimize.mad_mix.output_conv.basic) for (unsigned i = GFX9; i <= GFX10; i++) { - //>> v1: %a, v1: %b, v1: %c, v2b: %a16, v2b: %b16 = p_startpgm + //>> v1: %a:v[0], v1: %b:v[1], v1: %c:v[2], v2b: %a16:v[3][0:16], v2b: %b16:v[4][0:16] = p_startpgm if (!setup_cs("v1 v1 v1 v2b v2b", (amd_gfx_level)i)) continue; @@ -1261,7 +1261,7 @@ END_TEST BEGIN_TEST(optimize.mad_mix.output_conv.precision) for (unsigned i = GFX9; i <= GFX10; i++) { - //>> v2b: %a16 = p_startpgm + //>> v2b: %a16:v[0][0:16] = p_startpgm if (!setup_cs("v2b", (amd_gfx_level)i)) continue; @@ -1285,7 +1285,7 @@ END_TEST BEGIN_TEST(optimize.mad_mix.output_conv.modifiers) for (unsigned i = GFX9; i <= GFX10; i++) { - //>> v1: %a, v1: %b, v2b: %a16, v2b: %b16 = p_startpgm + //>> v1: %a:v[0], v1: %b:v[1], v2b: %a16:v[2][0:16], v2b: %b16:v[3][0:16] = p_startpgm if (!setup_cs("v1 v1 v2b v2b", (amd_gfx_level)i)) continue; @@ -1334,7 +1334,7 @@ END_TEST BEGIN_TEST(optimize.mad_mix.fma.basic) for (unsigned i = GFX9; i <= GFX10; i++) { - //>> v1: %a, v1: %b, v1: %c, v2b: %a16, v2b: %c16 = p_startpgm + //>> v1: %a:v[0], v1: %b:v[1], v1: %c:v[2], v2b: %a16:v[3][0:16], v2b: %c16:v[4][0:16] = p_startpgm if (!setup_cs("v1 v1 v1 v2b v2b", (amd_gfx_level)i)) continue; @@ -1389,7 +1389,7 @@ END_TEST BEGIN_TEST(optimize.mad_mix.fma.precision) for (unsigned i = GFX9; i <= GFX10; i++) { - //>> v1: %a, v1: %b, v1: %c, v2b: %a16, v2b: %b16 = p_startpgm + //>> v1: %a:v[0], v1: %b:v[1], v1: %c:v[2], v2b: %a16:v[3][0:16], v2b: %c16:v[4][0:16] = p_startpgm if (!setup_cs("v1 v1 v1 v2b v2b", (amd_gfx_level)i)) continue; @@ -1451,7 +1451,7 @@ END_TEST BEGIN_TEST(optimize.mad_mix.clamp) for (unsigned i = GFX9; i <= GFX10; i++) { - //>> v1: %a, v2b: %a16 = p_startpgm + //>> v1: %a:v[0], v2b: %b:v[1][0:16] = p_startpgm if (!setup_cs("v1 v2b", (amd_gfx_level)i)) continue; @@ -1478,7 +1478,7 @@ END_TEST BEGIN_TEST(optimize.mad_mix.cast) for (unsigned i = GFX9; i <= GFX10; i++) { - //>> v1: %a, v2b: %a16 = p_startpgm + //>> v1: %a:v[0], v2b: %b:v[1][0:16] = p_startpgm if (!setup_cs("v1 v2b", (amd_gfx_level)i)) continue; @@ -1564,7 +1564,7 @@ BEGIN_TEST(optimize.vop3p_constants) //; for i in range(36): //; insert_pattern('Expected for %u: $_ / #expected%u' % (i, i)) - //>> v1: %a = p_startpgm + //>> v1: %a:v[0] = p_startpgm if (!setup_cs("v1", GFX10_3, CHIP_UNKNOWN, variant)) continue; @@ -1667,7 +1667,7 @@ BEGIN_TEST(optimize.fmamix_two_literals) * at least one uncombined use. */ for (unsigned i = GFX10; i <= GFX10_3; i++) { - //>> v1: %a, v1: %b = p_startpgm + //>> v1: %a:v[0], v1: %b:v[1] = p_startpgm if (!setup_cs("v1 v1", (amd_gfx_level)i)) continue; @@ -1780,7 +1780,7 @@ END_TEST BEGIN_TEST(optimize.fma_opsel) /* TODO make these work before GFX11 using SDWA. */ for (unsigned i = GFX11; i <= GFX11; i++) { - //>> v2b: %a, v2b: %b, v1: %c, v1: %d, v1: %e = p_startpgm + //>> v2b: %a:v[0][0:16], v2b: %b:v[1][0:16], v1: %c:v[2], v1: %d:v[3], v1: %e:v[4] = p_startpgm if (!setup_cs("v2b v2b v1 v1 v1", (amd_gfx_level)i)) continue; @@ -1810,7 +1810,7 @@ BEGIN_TEST(optimize.fma_opsel) END_TEST BEGIN_TEST(optimize.dpp_opsel) - //>> v1: %a, v1: %b = p_startpgm + //>> v1: %a:v[0], v1: %b:v[1] = p_startpgm if (!setup_cs("v1 v1", GFX11)) return; @@ -1837,7 +1837,7 @@ BEGIN_TEST(optimize.dpp_opsel) END_TEST BEGIN_TEST(optimize.apply_sgpr_swap_opsel) - //>> v1: %a, s1: %b = p_startpgm + //>> v1: %a:v[0], s1: %b:s[0] = p_startpgm if (!setup_cs("v1 s1", GFX11)) return; @@ -1861,7 +1861,7 @@ END_TEST BEGIN_TEST(optimize.max3_opsel) /* TODO make these work before GFX11 using SDWA. */ for (unsigned i = GFX11; i <= GFX11; i++) { - //>> v1: %a, v1: %b, v2b: %c = p_startpgm + //>> v1: %a:v[0], v1: %b:v[1], v2b: %c:v[2][0:16] = p_startpgm if (!setup_cs("v1 v1 v2b", GFX11)) continue; @@ -1882,7 +1882,7 @@ BEGIN_TEST(optimize.max3_opsel) END_TEST BEGIN_TEST(optimize.neg_mul_opsel) - //>> v1: %a, v2b: %b = p_startpgm + //>> v1: %a:v[0], v2b: %b:v[1][0:16] = p_startpgm if (!setup_cs("v1 v2b", GFX11)) return; @@ -1903,7 +1903,7 @@ BEGIN_TEST(optimize.neg_mul_opsel) END_TEST BEGIN_TEST(optimize.vinterp_inreg_output_modifiers) - //>> v1: %a, v1: %b, v1: %c = p_startpgm + //>> v1: %a:v[0], v1: %b:v[1], v1: %c:v[2] = p_startpgm if (!setup_cs("v1 v1 v1", GFX11)) return; @@ -1944,7 +1944,7 @@ BEGIN_TEST(optimize.vinterp_inreg_output_modifiers) END_TEST BEGIN_TEST(optimize.s_pack) - //>> s1: %a, s1: %b, s1: %c = p_startpgm + //>> s1: %a:s[0], s1: %b:s[1], s1: %c:s[2] = p_startpgm if (!setup_cs("s1 s1 s1", GFX11)) return; @@ -2035,7 +2035,7 @@ BEGIN_TEST(optimizer.trans_inline_constant) END_TEST BEGIN_TEST(optimizer.trans_no_omod) - //>> s1: %a = p_startpgm + //>> s1: %a:s[0] = p_startpgm if (!setup_cs("s1", GFX12)) return; diff --git a/src/amd/compiler/tests/test_optimizer_postRA.cpp b/src/amd/compiler/tests/test_optimizer_postRA.cpp index 9e6d78f7bbd..f605a72a769 100644 --- a/src/amd/compiler/tests/test_optimizer_postRA.cpp +++ b/src/amd/compiler/tests/test_optimizer_postRA.cpp @@ -17,10 +17,6 @@ BEGIN_TEST(optimizer_postRA.vcmp) ASSERTED bool setup_ok = setup_cs("v1", GFX8); assert(setup_ok); - auto& startpgm = bld.instructions->at(0); - assert(startpgm->opcode == aco_opcode::p_startpgm); - startpgm->definitions[0].setFixed(reg_v0); - Temp v_in = inputs[0]; { @@ -134,10 +130,14 @@ BEGIN_TEST(optimizer_postRA.vcmp) END_TEST BEGIN_TEST(optimizer_postRA.scc_nocmp_opt) - //>> s1: %a, s2: %y, s1: %z = p_startpgm + //>> s1: %a:s[0], s2: %y:s[4-5], s1: %z:s[6] = p_startpgm ASSERTED bool setup_ok = setup_cs("s1 s2 s1", GFX6); assert(setup_ok); + bld.instructions->at(0)->definitions[0].setFixed(PhysReg(0)); + bld.instructions->at(0)->definitions[1].setFixed(PhysReg(4)); + bld.instructions->at(0)->definitions[2].setFixed(PhysReg(6)); + PhysReg reg_s0{0}; PhysReg reg_s2{2}; PhysReg reg_s3{3}; @@ -327,8 +327,6 @@ BEGIN_TEST(optimizer_postRA.dpp) if (!setup_cs("v1 v1 s2 s2", GFX10_3)) return; - bld.instructions->at(0)->definitions[0].setFixed(PhysReg(256)); - bld.instructions->at(0)->definitions[1].setFixed(PhysReg(257)); bld.instructions->at(0)->definitions[2].setFixed(vcc); bld.instructions->at(0)->definitions[3].setFixed(PhysReg(0)); @@ -466,9 +464,6 @@ BEGIN_TEST(optimizer_postRA.dpp_across_exec) if (!setup_cs("v1 v1", gfx)) continue; - bld.instructions->at(0)->definitions[0].setFixed(PhysReg(256)); - bld.instructions->at(0)->definitions[1].setFixed(PhysReg(257)); - PhysReg reg_v2(258); Operand a(inputs[0], PhysReg(256)); Operand b(inputs[1], PhysReg(257)); @@ -493,9 +488,6 @@ BEGIN_TEST(optimizer_postRA.dpp_vcmpx) if (!setup_cs("v1 v1", GFX11)) return; - bld.instructions->at(0)->definitions[0].setFixed(PhysReg(256)); - bld.instructions->at(0)->definitions[1].setFixed(PhysReg(257)); - PhysReg reg_v2(258); Operand a(inputs[0], PhysReg(256)); Operand b(inputs[1], PhysReg(257)); @@ -516,10 +508,6 @@ BEGIN_TEST(optimizer_postRA.dpp_across_cf) return; aco_ptr& startpgm = bld.instructions->at(0); - startpgm->definitions[0].setFixed(PhysReg(256)); - startpgm->definitions[1].setFixed(PhysReg(257)); - startpgm->definitions[2].setFixed(PhysReg(258)); - startpgm->definitions[3].setFixed(PhysReg(259)); startpgm->definitions[4].setFixed(PhysReg(0)); startpgm->definitions[5].setFixed(PhysReg(4)); @@ -682,11 +670,6 @@ BEGIN_TEST(optimizer_postRA.dpp_across_cf_linear_clobber) if (!setup_cs("v1 v1 s2", GFX10_3)) return; - aco_ptr& startpgm = bld.instructions->at(0); - startpgm->definitions[0].setFixed(PhysReg(256)); - startpgm->definitions[1].setFixed(PhysReg(257)); - startpgm->definitions[2].setFixed(PhysReg(0)); - Operand a(inputs[0], PhysReg(256)); /* source for DPP */ Operand b(inputs[1], PhysReg(257)); /* source for fadd */ Operand c(inputs[2], PhysReg(0)); /* condition */ diff --git a/src/amd/compiler/tests/test_reduce_assign.cpp b/src/amd/compiler/tests/test_reduce_assign.cpp index 651ebb1c2aa..88a8c789ad6 100644 --- a/src/amd/compiler/tests/test_reduce_assign.cpp +++ b/src/amd/compiler/tests/test_reduce_assign.cpp @@ -19,7 +19,7 @@ BEGIN_TEST(setup_reduce_temp.divergent_if_phi) * ... = phi ... */ // TODO: fix the RA validator to spot this - //>> s2: %_, v1: %a = p_startpgm + //>> s2: %_:s[0-1], v1: %a:v[0] = p_startpgm if (!setup_cs("s2 v1", GFX9)) return; diff --git a/src/amd/compiler/tests/test_sdwa.cpp b/src/amd/compiler/tests/test_sdwa.cpp index 2834c5ba71a..d340714c632 100644 --- a/src/amd/compiler/tests/test_sdwa.cpp +++ b/src/amd/compiler/tests/test_sdwa.cpp @@ -10,7 +10,7 @@ using namespace aco; BEGIN_TEST(validate.sdwa.allow) for (unsigned i = GFX8; i <= GFX10; i++) { - //>> v1: %a, v1: %b, s1: %c, s1: %d = p_startpgm + //>> v1: %a:v[0], v1: %b:v[1], s1: %c:s[0], s1: %d:s[1] = p_startpgm if (!setup_cs("v1 v1 s1 s1", (amd_gfx_level)i)) continue; //>> Validation results: @@ -32,7 +32,7 @@ END_TEST BEGIN_TEST(validate.sdwa.support) for (unsigned i = GFX7; i <= GFX11; i++) { - //>> v1: %a, v1: %b, s1: %c, s1: %d = p_startpgm + //>> v1: %a:v[0], v1: %b:v[1], s1: %c:s[0], s1: %d:s[1] = p_startpgm if (!setup_cs("v1 v1 s1 s1", (amd_gfx_level)i)) continue; //>> Validation results: @@ -48,7 +48,7 @@ END_TEST BEGIN_TEST(validate.sdwa.operands) for (unsigned i = GFX8; i <= GFX10; i++) { - //>> v1: %vgpr0, v1: %vgp1, s1: %sgpr0, s1: %sgpr1 = p_startpgm + //>> v1: %vgpr0:v[0], v1: %vgpr1:v[1], s1: %sgpr0:s[0], s1: %sgpr1:s[1] = p_startpgm if (!setup_cs("v1 v1 s1 s1", (amd_gfx_level)i)) continue; //>> Validation results: @@ -77,7 +77,7 @@ END_TEST BEGIN_TEST(validate.sdwa.vopc) for (unsigned i = GFX8; i <= GFX10; i++) { - //>> v1: %vgpr0, v1: %vgp1, s1: %sgpr0, s1: %sgpr1 = p_startpgm + //>> v1: %vgpr0:v[0], v1: %vgpr1:v[1], s1: %sgpr0:s[0], s1: %sgpr1:s[1] = p_startpgm if (!setup_cs("v1 v1 s1 s1", (amd_gfx_level)i)) continue; //>> Validation results: @@ -100,7 +100,7 @@ END_TEST BEGIN_TEST(validate.sdwa.omod) for (unsigned i = GFX8; i <= GFX10; i++) { - //>> v1: %vgpr0, v1: %vgp1, s1: %sgpr0, s1: %sgpr1 = p_startpgm + //>> v1: %vgpr0:v[0], v1: %vgpr1:v[1], s1: %sgpr0:s[0], s1: %sgpr1:s[1] = p_startpgm if (!setup_cs("v1 v1 s1 s1", (amd_gfx_level)i)) continue; //>> Validation results: @@ -116,7 +116,7 @@ END_TEST BEGIN_TEST(validate.sdwa.vcc) for (unsigned i = GFX8; i <= GFX10; i++) { - //>> v1: %vgpr0, v1: %vgpr1, s2: %sgpr0 = p_startpgm + //>> v1: %vgpr0:v[0], v1: %vgpr1:v[1], s2: %sgpr0:s[0-1] = p_startpgm if (!setup_cs("v1 v1 s2", (amd_gfx_level)i)) continue; //>> Validation results: @@ -140,7 +140,7 @@ END_TEST BEGIN_TEST(optimize.sdwa.extract) for (unsigned i = GFX7; i <= GFX10; i++) { for (unsigned is_signed = 0; is_signed <= 1; is_signed++) { - //>> v1: %a, v1: %b, s1: %c, s1: %d = p_startpgm + //>> v1: %a:v[0], v1: %b:v[1], s1: %c:s[0], s1: %d:s[1] = p_startpgm if (!setup_cs("v1 v1 s1 s1", (amd_gfx_level)i, CHIP_UNKNOWN, is_signed ? "_signed" : "_unsigned")) continue; @@ -265,7 +265,7 @@ END_TEST BEGIN_TEST(optimize.sdwa.extract_modifiers) for (unsigned i = GFX8; i <= GFX10; i++) { - //>> v1: %a, v1: %b, s1: %c, s1: %d = p_startpgm + //>> v1: %a:v[0], v1: %b:v[1], s1: %c:s[0], s1: %d:s[1] = p_startpgm if (!setup_cs("v1 v1 s1 s1", (amd_gfx_level)i)) continue; @@ -318,7 +318,7 @@ END_TEST BEGIN_TEST(optimize.sdwa.extract.sgpr) for (unsigned i = GFX8; i <= GFX10; i++) { - //>> v1: %a, v1: %b, s1: %c, s1: %d = p_startpgm + //>> v1: %a:v[0], v1: %b:v[1], s1: %c:s[0], s1: %d:s[1] = p_startpgm if (!setup_cs("v1 v1 s1 s1", (amd_gfx_level)i)) continue; @@ -362,7 +362,7 @@ END_TEST BEGIN_TEST(optimize.sdwa.from_vop3) for (unsigned i = GFX8; i <= GFX10; i++) { - //>> v1: %a, v1: %b, s1: %c, s1: %d = p_startpgm + //>> v1: %a:v[0], v1: %b:v[1], s1: %c:s[0], s1: %d:s[1] = p_startpgm if (!setup_cs("v1 v1 s1 s1", (amd_gfx_level)i)) continue; @@ -410,7 +410,7 @@ END_TEST BEGIN_TEST(optimize.sdwa.insert) for (unsigned i = GFX7; i <= GFX10; i++) { - //>> v1: %a, v1: %b = p_startpgm + //>> v1: %a:v[0], v1: %b:v[1] = p_startpgm if (!setup_cs("v1 v1", (amd_gfx_level)i)) continue; @@ -506,7 +506,7 @@ END_TEST BEGIN_TEST(optimize.sdwa.insert_modifiers) for (unsigned i = GFX8; i <= GFX9; i++) { - //>> v1: %a = p_startpgm + //>> v1: %a:v[0] = p_startpgm if (!setup_cs("v1", (amd_gfx_level)i)) continue; @@ -559,7 +559,7 @@ BEGIN_TEST(optimize.sdwa.insert_modifiers) END_TEST BEGIN_TEST(optimize.sdwa.special_case_valu) - //>> v1: %a, s1: %b = p_startpgm + //>> v1: %a:v[0], s1: %b:s[0] = p_startpgm if (!setup_cs("v1 s1", GFX10_3)) return; @@ -636,7 +636,7 @@ BEGIN_TEST(optimize.sdwa.special_case_valu) END_TEST BEGIN_TEST(optimize.sdwa.extract_sgpr_limits) - //>> s1: %a = p_startpgm + //>> s1: %a:s[0] = p_startpgm if (!setup_cs("s1", GFX8)) return; @@ -660,7 +660,7 @@ BEGIN_TEST(optimize.sdwa.extract_sgpr_limits) END_TEST BEGIN_TEST(optimize.sdwa.subdword_extract) - //>> v1: %a, v1: %b, s2: %c = p_startpgm + //>> v1: %a:v[0], v1: %b:v[1], s2: %c:s[0-1] = p_startpgm if (!setup_cs("v1 v1 s2", GFX10_3)) return; @@ -717,7 +717,7 @@ BEGIN_TEST(optimize.sdwa.subdword_extract) END_TEST BEGIN_TEST(optimize.sdwa.extract_vector) - //>> v1: %a = p_startpgm + //>> v1: %a:v[0] = p_startpgm if (!setup_cs("v1", GFX10_3)) return;