pco, pygen: support test predicate setting

Signed-off-by: Simon Perretta <simon.perretta@imgtec.com>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36412>
This commit is contained in:
Simon Perretta 2025-01-01 16:02:41 +00:00 committed by Marge Bot
parent 683904f4c0
commit 5ce4bc4671
2 changed files with 33 additions and 1 deletions

View file

@ -1005,7 +1005,7 @@ encode_map(O_TST,
(RM_ELEM, SRC(1), '== 0'),
])
],
op_ref_maps=[('2_tst', ['ftt', ['p0', '_']], ['is1', 'is2'])]
op_ref_maps=[('2_tst', ['ftt', ['p0', '_']], [['is1', '_'], ['is2', '_']])]
)
encode_map(O_MOVC,
@ -1876,6 +1876,37 @@ group_map(O_IMUL32,
]
)
group_map(O_TSTZ,
hdr=(I_IGRP_HDR_MAIN, [
('oporg', 'p0_p2'),
('olchk', OM_OLCHK),
('w1p', False),
('w0p', ('!pco_ref_is_null', DEST(0))),
('cc', OM_EXEC_CND),
('end', OM_END),
('atom', OM_ATOM),
('rpt', OM_RPT)
]),
enc_ops=[
('0', O_MBYP, ['ft0'], [SRC(0)]),
('2_tst', O_TST, ['ftt', DEST(1)], ['is1', '_'], [(OM_TST_OP_MAIN, 'zero'), (OM_TST_TYPE_MAIN, OM_TST_TYPE_MAIN)]),
('2_pck', O_PCK, ['ft2'], ['_'], [(OM_PCK_FMT, 'zero')]),
('2_mov', O_MOVC, [DEST(0), '_'], ['ftt', 'fte', 'is4', '_', '_'])
],
srcs=[
('s[0]', ('0', SRC(0)), 's0'),
('s[1]', 'pco_true'),
],
iss=[
('is[0]', 's1'),
('is[1]', 'ft0'),
('is[4]', 'ft2'),
],
dests=[
('w[0]', ('2_mov', DEST(0)), 'w0'),
]
)
group_map(O_ST32,
hdr=(I_IGRP_HDR_MAIN, [
('oporg', 'be'),

View file

@ -379,6 +379,7 @@ O_MAX = hw_op('max', OM_ALU + [OM_TST_TYPE_MAIN], 1, 2, [], [[RM_ABS, RM_NEG], [
O_IADD32 = hw_op('iadd32', OM_ALU + [OM_S], 1, 3, [], [[RM_ABS, RM_NEG], [RM_ABS, RM_NEG]])
O_IMUL32 = hw_op('imul32', OM_ALU + [OM_S], 1, 3, [], [[RM_ABS, RM_NEG], [RM_ABS, RM_NEG]])
O_TSTZ = hw_op('tstz', OM_ALU + [OM_TST_TYPE_MAIN], 2, 1, [], [[RM_ELEM]])
O_ST32 = hw_op('st32', OM_ALU_RPT1 + [OM_MCU_CACHE_MODE_ST], 0, 5)
# Pseudo-ops (unmapped).