bug 1244: update pospopcnt.s assembler comments
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Tue, 9 Jan 2024 14:10:32 +0000 (14:10 +0000)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Tue, 9 Jan 2024 14:10:32 +0000 (14:10 +0000)
conferences/fosdem2024/fosdem2024_ddffirst/pospopcount.s

index 2b905f13557ed8c58a0d1f9ef34d32b8e19bdd89..3bbdddf10a11c94284d56ecdcebbcf5716fbcdad 100644 (file)
@@ -1,13 +1,12 @@
 mtspr 9, 3              # move r3 to CTR
 setvl 3,0,8,0,1,1       # MVL=8, VL=r3=MIN(MVL,CTR)
-# load VL bytes (update r4 addr) but width=8 (dw=8)
-addi 6, 0, 0            # set 64-bits of r6=0
-sv.lbzu/pi/dw=8 *6, 1(4) 
-# gather performs transpose (gets us to positional)
-gbbd 8,6
-# now bits are turned around, popcount and sum them
+# load VL bytes (update r4 addr) at width=8 (dw=8)
+addi 6, 0, 0            # set all 64-bits of r6=0
+sv.lbzu/pi/dw=8 *6, 1(4)
+gbbd 8,6 # gbbd performs the transpose
+# now bits are turned around, popcnt and sum them
 setvl 0,0,8,0,1,1       # set MVL=VL=8
 sv.popcntd/sw=8 *24,*8  # do (transposed) popcnt
 sv.add *16,*16,*24      # accumulate in results
-# branch back if CTR non-zero. works even when VL=8
-sv.bc/all 16, *0, -0x28 # reduce CTR by VL
+# branch back if CTR non-zero works even when VL=8
+sv.bc/all 16, *0, -0x28 # reduces CTR by VL