mirror of
https://github.com/Zenithsiz/ftmemsim-valgrind.git
synced 2026-02-15 15:14:21 +00:00
This adds test cases and some internal stuff to the z/Architecture vector integer and string instruction support. Contributed by Vadim Barkov <vbrkov@gmail.com>.
335 lines
14 KiB
C
335 lines
14 KiB
C
#include "vector.h"
|
|
|
|
s390_test_generate(vfaeb0, "vfaeb %%v5, %%v1, %%v2, 0")
|
|
s390_test_generate(vfaeb1, "vfaeb %%v5, %%v1, %%v2, 1\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vfaeb2, "vfaeb %%v5, %%v1, %%v2, 2")
|
|
s390_test_generate(vfaeb3, "vfaeb %%v5, %%v1, %%v2, 3\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vfaeb4, "vfaeb %%v5, %%v1, %%v2, 4")
|
|
s390_test_generate(vfaeb5, "vfaeb %%v5, %%v1, %%v2, 5\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vfaeb6, "vfaeb %%v5, %%v1, %%v2, 6")
|
|
s390_test_generate(vfaeb7, "vfaeb %%v5, %%v1, %%v2, 7\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vfaeb8, "vfaeb %%v5, %%v1, %%v2, 8")
|
|
s390_test_generate(vfaeb9, "vfaeb %%v5, %%v1, %%v2, 9\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vfaeb10, "vfaeb %%v5, %%v1, %%v2, 10")
|
|
s390_test_generate(vfaeb11, "vfaeb %%v5, %%v1, %%v2, 11\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vfaeb12, "vfaeb %%v5, %%v1, %%v2, 12")
|
|
s390_test_generate(vfaeb13, "vfaeb %%v5, %%v1, %%v2, 13\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vfaeb14, "vfaeb %%v5, %%v1, %%v2, 14")
|
|
s390_test_generate(vfaeb15, "vfaeb %%v5, %%v1, %%v2, 15\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vfaeh0, "vfaeh %%v5, %%v1, %%v2, 0")
|
|
s390_test_generate(vfaeh1, "vfaeh %%v5, %%v1, %%v2, 1\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vfaeh2, "vfaeh %%v5, %%v1, %%v2, 2")
|
|
s390_test_generate(vfaeh3, "vfaeh %%v5, %%v1, %%v2, 3\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vfaeh4, "vfaeh %%v5, %%v1, %%v2, 4")
|
|
s390_test_generate(vfaeh5, "vfaeh %%v5, %%v1, %%v2, 5\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vfaeh6, "vfaeh %%v5, %%v1, %%v2, 6")
|
|
s390_test_generate(vfaeh7, "vfaeh %%v5, %%v1, %%v2, 7\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vfaeh8, "vfaeh %%v5, %%v1, %%v2, 8")
|
|
s390_test_generate(vfaeh9, "vfaeh %%v5, %%v1, %%v2, 9\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vfaeh10, "vfaeh %%v5, %%v1, %%v2, 10")
|
|
s390_test_generate(vfaeh11, "vfaeh %%v5, %%v1, %%v2, 11\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vfaeh12, "vfaeh %%v5, %%v1, %%v2, 12")
|
|
s390_test_generate(vfaeh13, "vfaeh %%v5, %%v1, %%v2, 13\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vfaeh14, "vfaeh %%v5, %%v1, %%v2, 14")
|
|
s390_test_generate(vfaeh15, "vfaeh %%v5, %%v1, %%v2, 15\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vfaef0, "vfaef %%v5, %%v1, %%v2, 0")
|
|
s390_test_generate(vfaef1, "vfaef %%v5, %%v1, %%v2, 1\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vfaef2, "vfaef %%v5, %%v1, %%v2, 2")
|
|
s390_test_generate(vfaef3, "vfaef %%v5, %%v1, %%v2, 3\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vfaef4, "vfaef %%v5, %%v1, %%v2, 4")
|
|
s390_test_generate(vfaef5, "vfaef %%v5, %%v1, %%v2, 5\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vfaef6, "vfaef %%v5, %%v1, %%v2, 6")
|
|
s390_test_generate(vfaef7, "vfaef %%v5, %%v1, %%v2, 7\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vfaef8, "vfaef %%v5, %%v1, %%v2, 8")
|
|
s390_test_generate(vfaef9, "vfaef %%v5, %%v1, %%v2, 9\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vfaef10, "vfaef %%v5, %%v1, %%v2, 10")
|
|
s390_test_generate(vfaef11, "vfaef %%v5, %%v1, %%v2, 11\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vfaef12, "vfaef %%v5, %%v1, %%v2, 12")
|
|
s390_test_generate(vfaef13, "vfaef %%v5, %%v1, %%v2, 13\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vfaef14, "vfaef %%v5, %%v1, %%v2, 14")
|
|
s390_test_generate(vfaef15, "vfaef %%v5, %%v1, %%v2, 15\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
|
|
s390_test_generate(vfeeb, "vfeeb %%v5, %%v1, %%v2")
|
|
s390_test_generate(vfeeh, "vfeeh %%v5, %%v1, %%v2")
|
|
s390_test_generate(vfeef, "vfeef %%v5, %%v1, %%v2")
|
|
s390_test_generate(vfeezb, "vfeezb %%v5, %%v1, %%v2")
|
|
s390_test_generate(vfeezh, "vfeezb %%v5, %%v1, %%v2")
|
|
s390_test_generate(vfeezf, "vfeezb %%v5, %%v1, %%v2")
|
|
s390_test_generate(vfeezbs, "vfeezbs %%v5, %%v1, %%v2\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vfeezhs, "vfeezhs %%v5, %%v1, %%v2\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vfeezfs, "vfeezfs %%v5, %%v1, %%v2\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vfeebs, "vfeebs %%v5, %%v1, %%v2\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vfeehs, "vfeehs %%v5, %%v1, %%v2\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vfeefs, "vfeefs %%v5, %%v1, %%v2\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
|
|
s390_test_generate(vfeneb, "vfeneb %%v5, %%v1, %%v2")
|
|
s390_test_generate(vfeneh, "vfeneh %%v5, %%v1, %%v2")
|
|
s390_test_generate(vfenef, "vfenef %%v5, %%v1, %%v2")
|
|
s390_test_generate(vfenezb, "vfenezb %%v5, %%v1, %%v2")
|
|
s390_test_generate(vfenezh, "vfenezb %%v5, %%v1, %%v2")
|
|
s390_test_generate(vfenezf, "vfenezb %%v5, %%v1, %%v2")
|
|
s390_test_generate(vfenezbs, "vfenezbs %%v5, %%v1, %%v2\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vfenezhs, "vfenezhs %%v5, %%v1, %%v2\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vfenezfs, "vfenezfs %%v5, %%v1, %%v2\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vfenebs, "vfenebs %%v5, %%v1, %%v2\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vfenehs, "vfenehs %%v5, %%v1, %%v2\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vfenefs, "vfenefs %%v5, %%v1, %%v2\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
|
|
s390_test_generate(vstrcb0, "vstrcb %%v5, %%v1, %%v2, %%v3, 0")
|
|
s390_test_generate(vstrcb1, "vstrcb %%v5, %%v1, %%v2, %%v3, 1\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vstrcb2, "vstrcb %%v5, %%v1, %%v2, %%v3, 2")
|
|
s390_test_generate(vstrcb3, "vstrcb %%v5, %%v1, %%v2, %%v3, 3\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vstrcb4, "vstrcb %%v5, %%v1, %%v2, %%v3, 4")
|
|
s390_test_generate(vstrcb5, "vstrcb %%v5, %%v1, %%v2, %%v3, 5\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vstrcb6, "vstrcb %%v5, %%v1, %%v2, %%v3, 6")
|
|
s390_test_generate(vstrcb7, "vstrcb %%v5, %%v1, %%v2, %%v3, 7\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vstrcb8, "vstrcb %%v5, %%v1, %%v2, %%v3, 8")
|
|
s390_test_generate(vstrcb9, "vstrcb %%v5, %%v1, %%v2, %%v3, 9\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vstrcb10, "vstrcb %%v5, %%v1, %%v2, %%v3, 10")
|
|
s390_test_generate(vstrcb11, "vstrcb %%v5, %%v1, %%v2, %%v3, 11\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vstrcb12, "vstrcb %%v5, %%v1, %%v2, %%v3, 12")
|
|
s390_test_generate(vstrcb13, "vstrcb %%v5, %%v1, %%v2, %%v3, 13\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vstrcb14, "vstrcb %%v5, %%v1, %%v2, %%v3, 14")
|
|
s390_test_generate(vstrcb15, "vstrcb %%v5, %%v1, %%v2, %%v3, 15\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vstrch0, "vstrch %%v5, %%v1, %%v2, %%v3, 0")
|
|
s390_test_generate(vstrch1, "vstrch %%v5, %%v1, %%v2, %%v3, 1\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vstrch2, "vstrch %%v5, %%v1, %%v2, %%v3, 2")
|
|
s390_test_generate(vstrch3, "vstrch %%v5, %%v1, %%v2, %%v3, 3\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vstrch4, "vstrch %%v5, %%v1, %%v2, %%v3, 4")
|
|
s390_test_generate(vstrch5, "vstrch %%v5, %%v1, %%v2, %%v3, 5\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vstrch6, "vstrch %%v5, %%v1, %%v2, %%v3, 6")
|
|
s390_test_generate(vstrch7, "vstrch %%v5, %%v1, %%v2, %%v3, 7\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vstrch8, "vstrch %%v5, %%v1, %%v2, %%v3, 8")
|
|
s390_test_generate(vstrch9, "vstrch %%v5, %%v1, %%v2, %%v3, 9\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vstrch10, "vstrch %%v5, %%v1, %%v2, %%v3, 10")
|
|
s390_test_generate(vstrch11, "vstrch %%v5, %%v1, %%v2, %%v3, 11\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vstrch12, "vstrch %%v5, %%v1, %%v2, %%v3, 12")
|
|
s390_test_generate(vstrch13, "vstrch %%v5, %%v1, %%v2, %%v3, 13\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vstrch14, "vstrch %%v5, %%v1, %%v2, %%v3, 14")
|
|
s390_test_generate(vstrch15, "vstrch %%v5, %%v1, %%v2, %%v3, 15\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vstrcf0, "vstrcf %%v5, %%v1, %%v2, %%v3, 0")
|
|
s390_test_generate(vstrcf1, "vstrcf %%v5, %%v1, %%v2, %%v3, 1\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vstrcf2, "vstrcf %%v5, %%v1, %%v2, %%v3, 2")
|
|
s390_test_generate(vstrcf3, "vstrcf %%v5, %%v1, %%v2, %%v3, 3\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vstrcf4, "vstrcf %%v5, %%v1, %%v2, %%v3, 4")
|
|
s390_test_generate(vstrcf5, "vstrcf %%v5, %%v1, %%v2, %%v3, 5\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vstrcf6, "vstrcf %%v5, %%v1, %%v2, %%v3, 6")
|
|
s390_test_generate(vstrcf7, "vstrcf %%v5, %%v1, %%v2, %%v3, 7\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vstrcf8, "vstrcf %%v5, %%v1, %%v2, %%v3, 8")
|
|
s390_test_generate(vstrcf9, "vstrcf %%v5, %%v1, %%v2, %%v3, 9\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vstrcf10, "vstrcf %%v5, %%v1, %%v2, %%v3, 10")
|
|
s390_test_generate(vstrcf11, "vstrcf %%v5, %%v1, %%v2, %%v3, 11\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vstrcf12, "vstrcf %%v5, %%v1, %%v2, %%v3, 12")
|
|
s390_test_generate(vstrcf13, "vstrcf %%v5, %%v1, %%v2, %%v3, 13\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vstrcf14, "vstrcf %%v5, %%v1, %%v2, %%v3, 14")
|
|
s390_test_generate(vstrcf15, "vstrcf %%v5, %%v1, %%v2, %%v3, 15\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
|
|
s390_test_generate(vfenezbs0, "vleib %%v1, 0x00, 0\n" \
|
|
"vfenezbs %%v5, %%v1, %%v1\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vfenezbs1, "vleib %%v1, 0x00, 1\n" \
|
|
"vleib %%v2, 0xaa, 1\n" \
|
|
"vfenezbs %%v5, %%v1, %%v2\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vfenezbs2, "vleib %%v1, 0xaa, 1\n" \
|
|
"vleib %%v2, 0x00, 1\n" \
|
|
"vfenezbs %%v5, %%v1, %%v2\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
s390_test_generate(vfenezbs3, "vfenezbs %%v5, %%v5, %%v5\n" \
|
|
S390_TEST_PUT_CC_TO_RESULT)
|
|
|
|
int main() {
|
|
size_t iteration = 0;
|
|
|
|
test(vfaeb0);
|
|
test(vfaeb1);
|
|
test(vfaeb2);
|
|
test(vfaeb3);
|
|
test(vfaeb4);
|
|
test(vfaeb5);
|
|
test(vfaeb6);
|
|
test(vfaeb7);
|
|
test(vfaeb8);
|
|
test(vfaeb9);
|
|
test(vfaeb10);
|
|
test(vfaeb11);
|
|
test(vfaeb12);
|
|
test(vfaeb13);
|
|
test(vfaeb14);
|
|
test(vfaeb15);
|
|
test(vfaeh0);
|
|
test(vfaeh1);
|
|
test(vfaeh2);
|
|
test(vfaeh3);
|
|
test(vfaeh4);
|
|
test(vfaeh5);
|
|
test(vfaeh6);
|
|
test(vfaeh7);
|
|
test(vfaeh8);
|
|
test(vfaeh9);
|
|
test(vfaeh10);
|
|
test(vfaeh11);
|
|
test(vfaeh12);
|
|
test(vfaeh13);
|
|
test(vfaeh14);
|
|
test(vfaeh15);
|
|
test(vfaef0);
|
|
test(vfaef1);
|
|
test(vfaef2);
|
|
test(vfaef3);
|
|
test(vfaef4);
|
|
test(vfaef5);
|
|
test(vfaef6);
|
|
test(vfaef7);
|
|
test(vfaef8);
|
|
test(vfaef9);
|
|
test(vfaef10);
|
|
test(vfaef11);
|
|
test(vfaef12);
|
|
test(vfaef13);
|
|
test(vfaef14);
|
|
test(vfaef15);
|
|
|
|
test(vfeeb);
|
|
test(vfeeh);
|
|
test(vfeef);
|
|
test(vfeezb);
|
|
test(vfeezh);
|
|
test(vfeezf);
|
|
test(vfeezbs);
|
|
test(vfeezhs);
|
|
test(vfeezfs);
|
|
test(vfeebs);
|
|
test(vfeehs);
|
|
test(vfeefs);
|
|
|
|
test(vfeneb);
|
|
test(vfeneh);
|
|
test(vfenef);
|
|
test(vfenezb);
|
|
test(vfenezh);
|
|
test(vfenezf);
|
|
test(vfenezbs);
|
|
test(vfenezhs);
|
|
test(vfenezfs);
|
|
test(vfenebs);
|
|
test(vfenehs);
|
|
test(vfenefs);
|
|
|
|
test(vstrcb0);
|
|
test(vstrcb1);
|
|
test(vstrcb2);
|
|
test(vstrcb3);
|
|
test(vstrcb4);
|
|
test(vstrcb5);
|
|
test(vstrcb6);
|
|
test(vstrcb7);
|
|
test(vstrcb8);
|
|
test(vstrcb9);
|
|
test(vstrcb10);
|
|
test(vstrcb11);
|
|
test(vstrcb12);
|
|
test(vstrcb13);
|
|
test(vstrcb14);
|
|
test(vstrcb15);
|
|
test(vstrch0);
|
|
test(vstrch1);
|
|
test(vstrch2);
|
|
test(vstrch3);
|
|
test(vstrch4);
|
|
test(vstrch5);
|
|
test(vstrch6);
|
|
test(vstrch7);
|
|
test(vstrch8);
|
|
test(vstrch9);
|
|
test(vstrch10);
|
|
test(vstrch11);
|
|
test(vstrch12);
|
|
test(vstrch13);
|
|
test(vstrch14);
|
|
test(vstrch15);
|
|
test(vstrcf0);
|
|
test(vstrcf1);
|
|
test(vstrcf2);
|
|
test(vstrcf3);
|
|
test(vstrcf4);
|
|
test(vstrcf5);
|
|
test(vstrcf6);
|
|
test(vstrcf7);
|
|
test(vstrcf8);
|
|
test(vstrcf9);
|
|
test(vstrcf10);
|
|
test(vstrcf11);
|
|
test(vstrcf12);
|
|
test(vstrcf13);
|
|
test(vstrcf14);
|
|
test(vstrcf15);
|
|
|
|
test_once(vfenezbs0);
|
|
test_once(vfenezbs1);
|
|
test_once(vfenezbs2);
|
|
test_once(vfenezbs3);
|
|
|
|
return 0;
|
|
}
|