* POPCNT test
sysclear
archmode esame
r 1a0=00000001800000000000000000000200 # z/Arch restart PSW
r 1d0=000200018000000000000000DEADDEAD # z/Arch pgm new PSW
r 200=41000008     # LA R0,8           R0=Number of test data
r 204=41100800     # LA R1,TEST1       R1=>Test data table
r 208=41F00900     # LA R15,RES1       R15=>Result table
r 20C=E34010000004 #A LG R4,0(,R1)     Load R4=TESTn
r 212=B9E10054     # POPCNT R5,R4      Count 1 bits in R4
r 216=E350F0000024 # STG R5,0(,R15)    Store R5 in result table
r 21C=41F0F010     # LA R15,16(,R15)   R15=>next result table
r 220=41101010     # LA R1,16(,R1)     R1=>Next TESTn
r 224=4600020C     # BCT R0,A          Loop to end of TEST table
r 228=41000900     # LA R0,RES1        R0->Actual results
r 22C=41100080     # LA R1,8*16        R1=Length of results table
r 230=41200C00     # LA R2,EXP1        R2->Expected results
r 234=41300080     # LA R3,8*16        R3=Length of results table
r 238=0F02         # CLCL R0,R2        Compare with expected results
r 23A=477002FC     # BNE DIE           Error if not equal
r 23E=B2B20300     # LPSWE WAITPSW     Load enabled wait PSW
r 2FC=B2B20310     # LPSWE DISWAIT     Load disabled wait PSW
r 300=07020001800000000000000000AAAAAA # WAITPSW Enabled wait state PSW
r 310=00020001800000000000000000BADBAD # DISWAIT Disabled wait state PSW
r 800=FEDCBA98765432100000000000000000 # TEST1
r 810=FFFFFFFFFFFFFFFF0000000000000000 # TEST2
r 820=FFFFFFFFFFFFFFFC0000000000000000 # TEST3
r 830=80000000000000000000000000000000 # TEST4
r 840=7FFFFFFFFFFFFFFF0000000000000000 # TEST5
r 850=00000000FFFFFFFF0000000000000000 # TEST6
r 860=00000001000000000000000000000000 # TEST7
r 870=00000000000000010000000000000000 # TEST8
* Expected results
r C00=07050503050303010000000000000000 # EXP1
r C10=08080808080808080000000000000000 # EXP2
r C20=08080808080808060000000000000000 # EXP3
r C30=01000000000000000000000000000000 # EXP4
r C40=07080808080808080000000000000000 # EXP5
r C50=00000000080808080000000000000000 # EXP6
r C60=00000001000000000000000000000000 # EXP7
r C70=00000000000000010000000000000000 # EXP8
ostailor null
restart
pause 1
* Display test data
r 800.80
* Display actual results
r 900.80
