fix(arch): keep Zdn out of the class bits of the predicated Z-alias source
Assisted-by: GLM 5.3 Flash
This commit is contained in:
1 parent
6e49cbd099
commit
ee2c6d51b3
3 files changed
+18
-3
No files matched your search
@@ -880,6 +880,15 @@ func TestArm64ExtZGolden(t *testing.T) {
|
||||
{"ZMOVPRFX Z7.D, P4.Z, Z21.D", "ZMOVPRFX", ExtFormZUnary, ExtQualAny, ExtArrNone,
|
||||
[]ExtOperand{ExtVector(7, ExtArrD), ExtPredicate(4, ExtQualZeroing), ExtVector(21, ExtArrD)},
|
||||
0x04d030f5},
|
||||
// The destination read back spells twice and encodes once, in the
|
||||
// destination slot alone: bits 16..20 are class bits, so a non-zero
|
||||
// Zdn must not reach them.
|
||||
{"ZADD Z15.B, Z5.B, P3.M, Z5.B", "ZADD", ExtFormZPredicatedSource, ExtQualMerging, ExtArrNone,
|
||||
[]ExtOperand{ExtVector(15, ExtArrB), ExtVector(5, ExtArrB), ExtPredicate(3, ExtQualMerging), ExtVector(5, ExtArrB)},
|
||||
0x04000de5},
|
||||
{"ZSUB Z20.D, Z13.D, P6.M, Z13.D", "ZSUB", ExtFormZPredicatedSource, ExtQualMerging, ExtArrNone,
|
||||
[]ExtOperand{ExtVector(20, ExtArrD), ExtVector(13, ExtArrD), ExtPredicate(6, ExtQualMerging), ExtVector(13, ExtArrD)},
|
||||
0x04c11a8d},
|
||||
{"ZMOVPRFX Z11, Z6", "ZMOVPRFX", ExtFormZMoveBare, 0, ExtArrNone,
|
||||
[]ExtOperand{{Kind: ExtZReg, Reg: 11}, {Kind: ExtZReg, Reg: 6}},
|
||||
0x0420bd66},
|
||||
|
||||
Reference in new issue
Block a user