shader: Add i16mad to grammar.yaml

This commit is contained in:
Macdu 2022-06-10 13:19:41 +02:00 committed by Zangetsu
parent c274adbe56
commit 19a589d9ee
4 changed files with 64 additions and 14 deletions

View File

@ -449,9 +449,8 @@ VPCK:
- src1_bank_ext: 1
- src2_bank_ext: 1
- repeat_count:
size: 3
size: 4
type: RepeatCount
offset: 44
- src_fmt: 3
- dest_fmt: 3
- dest_mask: 4
@ -991,8 +990,59 @@ I16MAD:
description: 16-bit Integer multiply-add
members:
- opcode1: '10100'
- DONTCARE:
size: 59
- pred:
size: 2
type: ShortPredicate
- abs:
size: 1
- skipinv:
size: 1
type: bool
- nosched:
size: 1
type: bool
- src2_neg:
size: 1
- sel1h_upper8:
size: 1
- dest_bank_ext:
size: 1
- end:
size: 1
- src1_bank_ext:
size: 1
- src2_bank_ext:
size: 1
- repeat_count:
size: 3
offset: 44
type: RepeatCount
- mode:
size: 2
- src2_format:
size: 2
- src1_format:
size: 2
- sel2h_upper8:
size: 1
- or_shift:
size: 2
- src0_bank:
size: 1
- dest_bank:
size: 2
- src1_bank:
size: 2
- src2_bank:
size: 2
- dest_n:
size: 7
- src0_n:
size: 7
- src1_n:
size: 7
- src2_n:
size: 7
I32MAD:
description: 32-bit Integer multiply-add
members:
@ -1625,4 +1675,4 @@ VLDST:
offset: 7
- src2_n:
size: 7
offset: 0
offset: 0

View File

@ -616,15 +616,15 @@ public:
bool i16mad(ShortPredicate pred,
Imm1 abs,
Imm1 skipinv,
Imm1 nosched,
bool skipinv,
bool nosched,
Imm1 src2_neg,
Imm1 sel1h_upper8,
Imm1 dest_bank_ext,
Imm1 end,
Imm1 src1_bank_ext,
Imm1 src2_bank_ext,
Imm3 repeat_count,
RepeatCount repeat_count,
Imm2 mode,
Imm2 src2_format,
Imm2 src1_format,

View File

@ -319,15 +319,15 @@ bool USSETranslatorVisitor::i8mad2() {
bool USSETranslatorVisitor::i16mad(
ShortPredicate pred,
Imm1 abs,
Imm1 skipinv,
Imm1 nosched,
bool skipinv,
bool nosched,
Imm1 src2_neg,
Imm1 sel1h_upper8,
Imm1 dest_bank_ext,
Imm1 end,
Imm1 src1_bank_ext,
Imm1 src2_bank_ext,
Imm3 repeat_count,
RepeatCount repeat_count,
Imm2 mode,
Imm2 src2_format,
Imm2 src1_format,

View File

@ -521,8 +521,8 @@ static std::optional<const USSEMatcher<V>> DecodeUSSE(uint64_t instruction) {
10100 = opcode1
pp = pred (2 bits, ShortPredicate)
a = abs (1 bit)
s = skipinv (1 bit)
n = nosched (1 bit)
s = skipinv (1 bit, bool)
n = nosched (1 bit, bool)
r = src2_neg (1 bit)
e = sel1h_upper8 (1 bit)
d = dest_bank_ext (1 bit)
@ -530,7 +530,7 @@ static std::optional<const USSEMatcher<V>> DecodeUSSE(uint64_t instruction) {
c = src1_bank_ext (1 bit)
k = src2_bank_ext (1 bit)
- = don't care
ttt = repeat_count (3 bits)
ttt = repeat_count (3 bits, RepeatCount)
mm = mode (2 bits)
ff = src2_format (2 bits)
oo = src1_format (2 bits)