Files
ftmemsim-valgrind/none/tests/s390x/vector_string.c
Andreas Arnez 0a1d523a87 s390x: Vector integer and string insn support -- tests
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>.
2018-09-26 19:31:02 +02:00

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;
}