|
From: | Richard Henderson |
Subject: | Re: [PATCH v4 23/45] target/arm: Implement SME ADDHA, ADDVA |
Date: | Tue, 5 Jul 2022 07:35:28 +0530 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.1 |
On 7/4/22 16:20, Peter Maydell wrote:
+void HELPER(sme_addha_d)(void *vzda, void *vzn, void *vpn, + void *vpm, uint32_t desc) +{ + intptr_t row, col, oprsz = simd_oprsz(desc) / 8; + uint8_t *pn = vpn, *pm = vpm; + uint64_t *zda = vzda, *zn = vzn; + + for (row = 0; row < oprsz; ++row) { + if (pn[H1(row)] & 1) { + for (col = 0; col < oprsz; ++col) { + if (pm[H1(col)] & 1) { + zda[row * sizeof(ARMVectorReg) + col] += zn[col]; + } + } + } + } +}These array index calculations look wrong again? Should be 'row * (sizeof(ARMVectorReg) / 8) + col' or equivalent, I think.
The tile rows are N physical rows apart. r~
[Prev in Thread] | Current Thread | [Next in Thread] |