Closed maranget closed 5 months ago
In herd, the ADD instruction does not operate element wise. Consider:
herd
ADD
AArch64 V26 { uint64_t t[2] = {0xffffffffffffffff,0x0}; uint64_t u[2] = {0x1,0x0}; 0:X0=t; 0:X1=u; } P0 ; PTRUE P0.D,VL2 ; LD1D {Z0.D},P0/Z,[X0] ; LD1D {Z1.D},P0/Z,[X1] ; ADD Z0.D,Z0.D,Z1.D ; ST1D {Z0.D},P0,[X0] ; locations [t;]
Running the test on herd we see that the addition is performed globally on 128bit valiues:
% herd7 -variant sve V26.litmus Test V26 Required States 1 t={0x0,0x1}; ...
However running on hardware (more exactly on qemu), additions are performed element-wise:
Test V26 Required Histogram (1 states) 40 :>t={0x0,0x0}; ...
Thanks for report @maranget , I'll have a look.
Fixed in #864
Issue solved, thanks @murzinv.
In
herd
, theADD
instruction does not operate element wise. Consider:Running the test on
herd
we see that the addition is performed globally on 128bit valiues:However running on hardware (more exactly on qemu), additions are performed element-wise: