On 7/28/26 09:37, Peter Maydell wrote:
On Tue, 21 Jul 2026 at 19:49, Richard Henderson
<[email protected]> wrote:

Signed-off-by: Richard Henderson <[email protected]>
---


+void HELPER(sve_pmull_q)(void *vd, void *vn, void *vm, uint32_t desc)
+{
+    intptr_t opr_sz = simd_oprsz(desc);
+    uint64_t *n = vn, *m = vm;
+    Int128 *d0 = vd;
+    Int128 *d1 = vd + sizeof(ARMVectorReg);
+
+    for (intptr_t i = 0; i < opr_sz / 16; ++i) {
+        Int128 rl = clmul_64(n[2 * i + 0], m[2 * i + 0]);
+        Int128 rh = clmul_64(n[2 * i + 1], m[2 * i + 1]);
+        d0[i] = rl;
+        d1[i] = rh;

Doesn't this put the two 64-bit halves of the results in the
wrong order on big-endian hosts? Compare how we handle
writing back the Int128 result in sve2_adcl_d.

Yep, good catch.


r~

Reply via email to