aco/tests: Fix p_startpgm definitions to registers
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36345>
This commit is contained in:
committed by
Marge Bot
parent
779ea64c7c
commit
caa2c22d8b
@@ -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 <llvm-c/Target.h>
|
||||
|
||||
#include <mutex>
|
||||
#include <sstream>
|
||||
#include <stdio.h>
|
||||
|
||||
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<Instruction> 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));
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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<Instruction>& 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<Instruction>& 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 */
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user