From: Julian Seward Date: Fri, 30 Jul 2010 15:11:53 +0000 (+0000) Subject: Partially connect up the LZCNT tests. What remains to be done is to X-Git-Tag: svn/VALGRIND_3_6_0~202 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8c51c94c5c41a9fe5b8a89a69f0f860545e3da38;p=thirdparty%2Fvalgrind.git Partially connect up the LZCNT tests. What remains to be done is to make their building conditional on whether the assembler understands 'lzcnt', which is a configure time test. (Probably simpler to do a single test for SSE4.1, 4.2 and 4a support as that will soon be required anyway.) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11246 --- diff --git a/none/tests/amd64/Makefile.am b/none/tests/amd64/Makefile.am index a3212138d3..38e1ebbc35 100644 --- a/none/tests/amd64/Makefile.am +++ b/none/tests/amd64/Makefile.am @@ -16,6 +16,9 @@ endif # Explicitly include insn_sse3 even if ! BUILD_SSE3_TESTS, # to avoid packaging screwups if 'make dist' is run on a machine # which failed the BUILD_SSE3_TESTS test in configure.in. + +## FIXME: move lzcnt64 to SSE4 conditionalisation, when that happens. + EXTRA_DIST = \ amd64locked.vgtest amd64locked.stdout.exp amd64locked.stderr.exp \ bug127521-64.vgtest bug127521-64.stdout.exp bug127521-64.stderr.exp \ @@ -37,6 +40,7 @@ EXTRA_DIST = \ insn_ssse3.stdout.exp insn_ssse3.stderr.exp insn_ssse3.vgtest \ jrcxz.stderr.exp jrcxz.stdout.exp jrcxz.vgtest \ looper.stderr.exp looper.stdout.exp looper.vgtest \ + lzcnt64.stderr.exp lzcnt64.stdout.exp lzcnt64.vgtest \ nibz_bennee_mmap.stderr.exp nibz_bennee_mmap.stdout.exp \ nibz_bennee_mmap.vgtest \ rcl-amd64.vgtest rcl-amd64.stdout.exp rcl-amd64.stderr.exp \ @@ -56,6 +60,7 @@ check_PROGRAMS = \ bug127521-64 bug132813-amd64 bug132918 \ clc \ $(INSN_TESTS) \ + lzcnt64 \ rcl-amd64 \ redundantRexW \ smc1 \ diff --git a/none/tests/amd64/test_lzcnt64.c b/none/tests/amd64/lzcnt64.c similarity index 100% rename from none/tests/amd64/test_lzcnt64.c rename to none/tests/amd64/lzcnt64.c diff --git a/none/tests/amd64/lzcnt64.stderr.exp b/none/tests/amd64/lzcnt64.stderr.exp new file mode 100644 index 0000000000..e69de29bb2 diff --git a/none/tests/amd64/lzcnt64.stdout.exp b/none/tests/amd64/lzcnt64.stdout.exp new file mode 100644 index 0000000000..fd73687910 --- /dev/null +++ b/none/tests/amd64/lzcnt64.stdout.exp @@ -0,0 +1,375 @@ +lzcntq fedc192837475675 -> 0000000000000000 0040 +lzcntq 8efcf23ad7e922f3 -> 0000000000000000 0040 +lzcntq 7068b90cdf850938 -> 0000000000000001 0000 +lzcntq 42db3e5ed85503a5 -> 0000000000000001 0000 +lzcntq 35eea72efbea67d7 -> 0000000000000002 0000 +lzcntq 232c23d3b476ef47 -> 0000000000000002 0000 +lzcntq 1bf0c1bf27fbb3ab -> 0000000000000003 0000 +lzcntq 11a1311a29a562ea -> 0000000000000003 0000 +lzcntq 0e02582b8350ffd0 -> 0000000000000004 0000 +lzcntq 0854b4408f5b9e17 -> 0000000000000004 0000 +lzcntq 06bcf33434328063 -> 0000000000000005 0000 +lzcntq 0464f596e5f3ab8a -> 0000000000000005 0000 +lzcntq 037dac8063df281c -> 0000000000000006 0000 +lzcntq 0234910d6d0cfe89 -> 0000000000000006 0000 +lzcntq 01c0a27d7eaa2575 -> 0000000000000007 0000 +lzcntq 010adda943af43d8 -> 0000000000000007 0000 +lzcntq 00d7b2ae8c91c8ce -> 0000000000000008 0000 +lzcntq 008cae284a0c2065 -> 0000000000000008 0000 +lzcntq 006fc6190eb4fc04 -> 0000000000000009 0000 +lzcntq 004686bd6e829ce5 -> 0000000000000009 0000 +lzcntq 00380a0b248034f1 -> 000000000000000a 0000 +lzcntq 0021536a650d4fc6 -> 000000000000000a 0000 +lzcntq 001af3d8d0c8c068 -> 000000000000000b 0000 +lzcntq 001193de10460316 -> 000000000000000b 0000 +lzcntq 000df6b241dd45c1 -> 000000000000000c 0000 +lzcntq 0008d24469947f91 -> 000000000000000c 0000 +lzcntq 0007028a17f7fc21 -> 000000000000000d 0000 +lzcntq 00042b77370e9574 -> 000000000000000d 0000 +lzcntq 00035ecaa6c8cb9c -> 000000000000000e 0000 +lzcntq 000232b89c5ca207 -> 000000000000000e 0000 +lzcntq 0001bf185a53fb83 -> 000000000000000f 0000 +lzcntq 00011a1af9c2f08e -> 000000000000000f 0000 +lzcntq 0000e0282bc137ba -> 0000000000000010 0000 +lzcntq 0000854daa0b4caf -> 0000000000000010 0000 +lzcntq 00006bcf63e2fc01 -> 0000000000000011 0000 +lzcntq 0000464f7852a469 -> 0000000000000011 0000 +lzcntq 000037dac915aa8f -> 0000000000000012 0000 +lzcntq 0000234911b3280d -> 0000000000000012 0000 +lzcntq 00001c0a2862c244 -> 0000000000000013 0000 +lzcntq 000010addcd6577a -> 0000000000000013 0000 +lzcntq 00000d7b2a9b6ac9 -> 0000000000000014 0000 +lzcntq 000008cae2719cd4 -> 0000000000000014 0000 +lzcntq 000006fc61694403 -> 0000000000000015 0000 +lzcntq 000004686be70610 -> 0000000000000015 0000 +lzcntq 00000380a0af0023 -> 0000000000000016 0000 +lzcntq 0000021536a82984 -> 0000000000000016 0000 +lzcntq 000001af3d8f8abd -> 0000000000000017 0000 +lzcntq 000001193de14a82 -> 0000000000000017 0000 +lzcntq 000000df6b24569d -> 0000000000000018 0000 +lzcntq 0000008d2446cc8e -> 0000000000000018 0000 +lzcntq 0000007028a18af6 -> 0000000000000019 0000 +lzcntq 00000042b7735995 -> 0000000000000019 0000 +lzcntq 00000035ecaa6d9d -> 000000000000001a 0000 +lzcntq 000000232b89c661 -> 000000000000001a 0000 +lzcntq 0000001bf185a509 -> 000000000000001b 0000 +lzcntq 00000011a1af9c11 -> 000000000000001b 0000 +lzcntq 0000000e0282bbfd -> 000000000000001c 0000 +lzcntq 0000000854daa1a4 -> 000000000000001c 0000 +lzcntq 00000006bcf63eb9 -> 000000000000001d 0000 +lzcntq 0000000464f78590 -> 000000000000001d 0000 +lzcntq 000000037dac916c -> 000000000000001e 0000 +lzcntq 0000000234911b32 -> 000000000000001e 0000 +lzcntq 00000001c0a2862b -> 000000000000001f 0000 +lzcntq 000000010addcd65 -> 000000000000001f 0000 +lzcntq 00000000d7b2a9b5 -> 0000000000000020 0000 +lzcntq 000000008cae2718 -> 0000000000000020 0000 +lzcntq 000000006fc61693 -> 0000000000000021 0000 +lzcntq 000000004686be6e -> 0000000000000021 0000 +lzcntq 00000000380a0af2 -> 0000000000000022 0000 +lzcntq 0000000021536a83 -> 0000000000000022 0000 +lzcntq 000000001af3d8f7 -> 0000000000000023 0000 +lzcntq 000000001193de15 -> 0000000000000023 0000 +lzcntq 000000000df6b244 -> 0000000000000024 0000 +lzcntq 0000000008d2446b -> 0000000000000024 0000 +lzcntq 0000000007028a18 -> 0000000000000025 0000 +lzcntq 00000000042b7735 -> 0000000000000025 0000 +lzcntq 00000000035ecaa5 -> 0000000000000026 0000 +lzcntq 000000000232b89b -> 0000000000000026 0000 +lzcntq 0000000001bf185a -> 0000000000000027 0000 +lzcntq 00000000011a1af9 -> 0000000000000027 0000 +lzcntq 0000000000e0282a -> 0000000000000028 0000 +lzcntq 0000000000854da9 -> 0000000000000028 0000 +lzcntq 00000000006bcf62 -> 0000000000000029 0000 +lzcntq 0000000000464f77 -> 0000000000000029 0000 +lzcntq 000000000037dac9 -> 000000000000002a 0000 +lzcntq 0000000000234910 -> 000000000000002a 0000 +lzcntq 00000000001c0a27 -> 000000000000002b 0000 +lzcntq 000000000010add9 -> 000000000000002b 0000 +lzcntq 00000000000d7b28 -> 000000000000002c 0000 +lzcntq 000000000008cae0 -> 000000000000002c 0000 +lzcntq 000000000006fc5f -> 000000000000002d 0000 +lzcntq 0000000000046871 -> 000000000000002d 0000 +lzcntq 000000000003809d -> 000000000000002e 0000 +lzcntq 000000000002152c -> 000000000000002e 0000 +lzcntq 000000000001af3b -> 000000000000002f 0000 +lzcntq 000000000001193c -> 000000000000002f 0000 +lzcntq 000000000000df6a -> 0000000000000030 0000 +lzcntq 0000000000008d23 -> 0000000000000030 0000 +lzcntq 0000000000007026 -> 0000000000000031 0000 +lzcntq 00000000000042b3 -> 0000000000000031 0000 +lzcntq 00000000000035e9 -> 0000000000000032 0000 +lzcntq 0000000000002329 -> 0000000000000032 0000 +lzcntq 0000000000001bef -> 0000000000000033 0000 +lzcntq 00000000000011a3 -> 0000000000000033 0000 +lzcntq 0000000000000e02 -> 0000000000000034 0000 +lzcntq 0000000000000853 -> 0000000000000034 0000 +lzcntq 00000000000006ba -> 0000000000000035 0000 +lzcntq 0000000000000464 -> 0000000000000035 0000 +lzcntq 000000000000037d -> 0000000000000036 0000 +lzcntq 0000000000000233 -> 0000000000000036 0000 +lzcntq 00000000000001be -> 0000000000000037 0000 +lzcntq 0000000000000119 -> 0000000000000037 0000 +lzcntq 00000000000000de -> 0000000000000038 0000 +lzcntq 000000000000008c -> 0000000000000038 0000 +lzcntq 000000000000006f -> 0000000000000039 0000 +lzcntq 0000000000000045 -> 0000000000000039 0000 +lzcntq 0000000000000037 -> 000000000000003a 0000 +lzcntq 0000000000000022 -> 000000000000003a 0000 +lzcntq 000000000000001b -> 000000000000003b 0000 +lzcntq 0000000000000010 -> 000000000000003b 0000 +lzcntq 000000000000000c -> 000000000000003c 0000 +lzcntq 0000000000000007 -> 000000000000003d 0000 +lzcntq 0000000000000003 -> 000000000000003e 0000 +lzcntq 0000000000000001 -> 000000000000003f 0000 +lzcntq 0000000000000000 -> 0000000000000040 0001 +lzcntl fedc192837475675 -> 0000000000000002 0000 +lzcntl 8efcf23ad7e922f3 -> 0000000000000000 0040 +lzcntl 7068b90cdf850938 -> 0000000000000000 0040 +lzcntl 42db3e5ed85503a5 -> 0000000000000000 0040 +lzcntl 35eea72efbea67d7 -> 0000000000000000 0040 +lzcntl 232c23d3b476ef47 -> 0000000000000000 0040 +lzcntl 1bf0c1bf27fbb3ab -> 0000000000000002 0000 +lzcntl 11a1311a29a562ea -> 0000000000000002 0000 +lzcntl 0e02582b8350ffd0 -> 0000000000000000 0040 +lzcntl 0854b4408f5b9e17 -> 0000000000000000 0040 +lzcntl 06bcf33434328063 -> 0000000000000002 0000 +lzcntl 0464f596e5f3ab8a -> 0000000000000000 0040 +lzcntl 037dac8063df281c -> 0000000000000001 0000 +lzcntl 0234910d6d0cfe89 -> 0000000000000001 0000 +lzcntl 01c0a27d7eaa2575 -> 0000000000000001 0000 +lzcntl 010adda943af43d8 -> 0000000000000001 0000 +lzcntl 00d7b2ae8c91c8ce -> 0000000000000000 0040 +lzcntl 008cae284a0c2065 -> 0000000000000001 0000 +lzcntl 006fc6190eb4fc04 -> 0000000000000004 0000 +lzcntl 004686bd6e829ce5 -> 0000000000000001 0000 +lzcntl 00380a0b248034f1 -> 0000000000000002 0000 +lzcntl 0021536a650d4fc6 -> 0000000000000001 0000 +lzcntl 001af3d8d0c8c068 -> 0000000000000000 0040 +lzcntl 001193de10460316 -> 0000000000000003 0000 +lzcntl 000df6b241dd45c1 -> 0000000000000001 0000 +lzcntl 0008d24469947f91 -> 0000000000000001 0000 +lzcntl 0007028a17f7fc21 -> 0000000000000003 0000 +lzcntl 00042b77370e9574 -> 0000000000000002 0000 +lzcntl 00035ecaa6c8cb9c -> 0000000000000000 0040 +lzcntl 000232b89c5ca207 -> 0000000000000000 0040 +lzcntl 0001bf185a53fb83 -> 0000000000000001 0000 +lzcntl 00011a1af9c2f08e -> 0000000000000000 0040 +lzcntl 0000e0282bc137ba -> 0000000000000002 0000 +lzcntl 0000854daa0b4caf -> 0000000000000000 0040 +lzcntl 00006bcf63e2fc01 -> 0000000000000001 0000 +lzcntl 0000464f7852a469 -> 0000000000000001 0000 +lzcntl 000037dac915aa8f -> 0000000000000000 0040 +lzcntl 0000234911b3280d -> 0000000000000003 0000 +lzcntl 00001c0a2862c244 -> 0000000000000002 0000 +lzcntl 000010addcd6577a -> 0000000000000000 0040 +lzcntl 00000d7b2a9b6ac9 -> 0000000000000002 0000 +lzcntl 000008cae2719cd4 -> 0000000000000000 0040 +lzcntl 000006fc61694403 -> 0000000000000001 0000 +lzcntl 000004686be70610 -> 0000000000000001 0000 +lzcntl 00000380a0af0023 -> 0000000000000000 0040 +lzcntl 0000021536a82984 -> 0000000000000002 0000 +lzcntl 000001af3d8f8abd -> 0000000000000002 0000 +lzcntl 000001193de14a82 -> 0000000000000002 0000 +lzcntl 000000df6b24569d -> 0000000000000001 0000 +lzcntl 0000008d2446cc8e -> 0000000000000002 0000 +lzcntl 0000007028a18af6 -> 0000000000000002 0000 +lzcntl 00000042b7735995 -> 0000000000000000 0040 +lzcntl 00000035ecaa6d9d -> 0000000000000000 0040 +lzcntl 000000232b89c661 -> 0000000000000002 0000 +lzcntl 0000001bf185a509 -> 0000000000000000 0040 +lzcntl 00000011a1af9c11 -> 0000000000000000 0040 +lzcntl 0000000e0282bbfd -> 0000000000000006 0000 +lzcntl 0000000854daa1a4 -> 0000000000000001 0000 +lzcntl 00000006bcf63eb9 -> 0000000000000000 0040 +lzcntl 0000000464f78590 -> 0000000000000001 0000 +lzcntl 000000037dac916c -> 0000000000000001 0000 +lzcntl 0000000234911b32 -> 0000000000000002 0000 +lzcntl 00000001c0a2862b -> 0000000000000000 0040 +lzcntl 000000010addcd65 -> 0000000000000004 0000 +lzcntl 00000000d7b2a9b5 -> 0000000000000000 0040 +lzcntl 000000008cae2718 -> 0000000000000000 0040 +lzcntl 000000006fc61693 -> 0000000000000001 0000 +lzcntl 000000004686be6e -> 0000000000000001 0000 +lzcntl 00000000380a0af2 -> 0000000000000002 0000 +lzcntl 0000000021536a83 -> 0000000000000002 0000 +lzcntl 000000001af3d8f7 -> 0000000000000003 0000 +lzcntl 000000001193de15 -> 0000000000000003 0000 +lzcntl 000000000df6b244 -> 0000000000000004 0000 +lzcntl 0000000008d2446b -> 0000000000000004 0000 +lzcntl 0000000007028a18 -> 0000000000000005 0000 +lzcntl 00000000042b7735 -> 0000000000000005 0000 +lzcntl 00000000035ecaa5 -> 0000000000000006 0000 +lzcntl 000000000232b89b -> 0000000000000006 0000 +lzcntl 0000000001bf185a -> 0000000000000007 0000 +lzcntl 00000000011a1af9 -> 0000000000000007 0000 +lzcntl 0000000000e0282a -> 0000000000000008 0000 +lzcntl 0000000000854da9 -> 0000000000000008 0000 +lzcntl 00000000006bcf62 -> 0000000000000009 0000 +lzcntl 0000000000464f77 -> 0000000000000009 0000 +lzcntl 000000000037dac9 -> 000000000000000a 0000 +lzcntl 0000000000234910 -> 000000000000000a 0000 +lzcntl 00000000001c0a27 -> 000000000000000b 0000 +lzcntl 000000000010add9 -> 000000000000000b 0000 +lzcntl 00000000000d7b28 -> 000000000000000c 0000 +lzcntl 000000000008cae0 -> 000000000000000c 0000 +lzcntl 000000000006fc5f -> 000000000000000d 0000 +lzcntl 0000000000046871 -> 000000000000000d 0000 +lzcntl 000000000003809d -> 000000000000000e 0000 +lzcntl 000000000002152c -> 000000000000000e 0000 +lzcntl 000000000001af3b -> 000000000000000f 0000 +lzcntl 000000000001193c -> 000000000000000f 0000 +lzcntl 000000000000df6a -> 0000000000000010 0000 +lzcntl 0000000000008d23 -> 0000000000000010 0000 +lzcntl 0000000000007026 -> 0000000000000011 0000 +lzcntl 00000000000042b3 -> 0000000000000011 0000 +lzcntl 00000000000035e9 -> 0000000000000012 0000 +lzcntl 0000000000002329 -> 0000000000000012 0000 +lzcntl 0000000000001bef -> 0000000000000013 0000 +lzcntl 00000000000011a3 -> 0000000000000013 0000 +lzcntl 0000000000000e02 -> 0000000000000014 0000 +lzcntl 0000000000000853 -> 0000000000000014 0000 +lzcntl 00000000000006ba -> 0000000000000015 0000 +lzcntl 0000000000000464 -> 0000000000000015 0000 +lzcntl 000000000000037d -> 0000000000000016 0000 +lzcntl 0000000000000233 -> 0000000000000016 0000 +lzcntl 00000000000001be -> 0000000000000017 0000 +lzcntl 0000000000000119 -> 0000000000000017 0000 +lzcntl 00000000000000de -> 0000000000000018 0000 +lzcntl 000000000000008c -> 0000000000000018 0000 +lzcntl 000000000000006f -> 0000000000000019 0000 +lzcntl 0000000000000045 -> 0000000000000019 0000 +lzcntl 0000000000000037 -> 000000000000001a 0000 +lzcntl 0000000000000022 -> 000000000000001a 0000 +lzcntl 000000000000001b -> 000000000000001b 0000 +lzcntl 0000000000000010 -> 000000000000001b 0000 +lzcntl 000000000000000c -> 000000000000001c 0000 +lzcntl 0000000000000007 -> 000000000000001d 0000 +lzcntl 0000000000000003 -> 000000000000001e 0000 +lzcntl 0000000000000001 -> 000000000000001f 0000 +lzcntl 0000000000000000 -> 0000000000000020 0001 +lzcntw fedc192837475675 -> 5555555555550001 0000 +lzcntw 8efcf23ad7e922f3 -> 5555555555550002 0000 +lzcntw 7068b90cdf850938 -> 5555555555550004 0000 +lzcntw 42db3e5ed85503a5 -> 5555555555550006 0000 +lzcntw 35eea72efbea67d7 -> 5555555555550001 0000 +lzcntw 232c23d3b476ef47 -> 5555555555550000 0040 +lzcntw 1bf0c1bf27fbb3ab -> 5555555555550000 0040 +lzcntw 11a1311a29a562ea -> 5555555555550001 0000 +lzcntw 0e02582b8350ffd0 -> 5555555555550000 0040 +lzcntw 0854b4408f5b9e17 -> 5555555555550000 0040 +lzcntw 06bcf33434328063 -> 5555555555550000 0040 +lzcntw 0464f596e5f3ab8a -> 5555555555550000 0040 +lzcntw 037dac8063df281c -> 5555555555550002 0000 +lzcntw 0234910d6d0cfe89 -> 5555555555550000 0040 +lzcntw 01c0a27d7eaa2575 -> 5555555555550002 0000 +lzcntw 010adda943af43d8 -> 5555555555550001 0000 +lzcntw 00d7b2ae8c91c8ce -> 5555555555550000 0040 +lzcntw 008cae284a0c2065 -> 5555555555550002 0000 +lzcntw 006fc6190eb4fc04 -> 5555555555550000 0040 +lzcntw 004686bd6e829ce5 -> 5555555555550000 0040 +lzcntw 00380a0b248034f1 -> 5555555555550002 0000 +lzcntw 0021536a650d4fc6 -> 5555555555550001 0000 +lzcntw 001af3d8d0c8c068 -> 5555555555550000 0040 +lzcntw 001193de10460316 -> 5555555555550006 0000 +lzcntw 000df6b241dd45c1 -> 5555555555550001 0000 +lzcntw 0008d24469947f91 -> 5555555555550001 0000 +lzcntw 0007028a17f7fc21 -> 5555555555550000 0040 +lzcntw 00042b77370e9574 -> 5555555555550000 0040 +lzcntw 00035ecaa6c8cb9c -> 5555555555550000 0040 +lzcntw 000232b89c5ca207 -> 5555555555550000 0040 +lzcntw 0001bf185a53fb83 -> 5555555555550000 0040 +lzcntw 00011a1af9c2f08e -> 5555555555550000 0040 +lzcntw 0000e0282bc137ba -> 5555555555550002 0000 +lzcntw 0000854daa0b4caf -> 5555555555550001 0000 +lzcntw 00006bcf63e2fc01 -> 5555555555550000 0040 +lzcntw 0000464f7852a469 -> 5555555555550000 0040 +lzcntw 000037dac915aa8f -> 5555555555550000 0040 +lzcntw 0000234911b3280d -> 5555555555550002 0000 +lzcntw 00001c0a2862c244 -> 5555555555550000 0040 +lzcntw 000010addcd6577a -> 5555555555550001 0000 +lzcntw 00000d7b2a9b6ac9 -> 5555555555550001 0000 +lzcntw 000008cae2719cd4 -> 5555555555550000 0040 +lzcntw 000006fc61694403 -> 5555555555550001 0000 +lzcntw 000004686be70610 -> 5555555555550005 0000 +lzcntw 00000380a0af0023 -> 555555555555000a 0000 +lzcntw 0000021536a82984 -> 5555555555550002 0000 +lzcntw 000001af3d8f8abd -> 5555555555550000 0040 +lzcntw 000001193de14a82 -> 5555555555550001 0000 +lzcntw 000000df6b24569d -> 5555555555550001 0000 +lzcntw 0000008d2446cc8e -> 5555555555550000 0040 +lzcntw 0000007028a18af6 -> 5555555555550000 0040 +lzcntw 00000042b7735995 -> 5555555555550001 0000 +lzcntw 00000035ecaa6d9d -> 5555555555550001 0000 +lzcntw 000000232b89c661 -> 5555555555550000 0040 +lzcntw 0000001bf185a509 -> 5555555555550000 0040 +lzcntw 00000011a1af9c11 -> 5555555555550000 0040 +lzcntw 0000000e0282bbfd -> 5555555555550000 0040 +lzcntw 0000000854daa1a4 -> 5555555555550000 0040 +lzcntw 00000006bcf63eb9 -> 5555555555550002 0000 +lzcntw 0000000464f78590 -> 5555555555550000 0040 +lzcntw 000000037dac916c -> 5555555555550000 0040 +lzcntw 0000000234911b32 -> 5555555555550003 0000 +lzcntw 00000001c0a2862b -> 5555555555550000 0040 +lzcntw 000000010addcd65 -> 5555555555550000 0040 +lzcntw 00000000d7b2a9b5 -> 5555555555550000 0040 +lzcntw 000000008cae2718 -> 5555555555550002 0000 +lzcntw 000000006fc61693 -> 5555555555550003 0000 +lzcntw 000000004686be6e -> 5555555555550000 0040 +lzcntw 00000000380a0af2 -> 5555555555550004 0000 +lzcntw 0000000021536a83 -> 5555555555550001 0000 +lzcntw 000000001af3d8f7 -> 5555555555550000 0040 +lzcntw 000000001193de15 -> 5555555555550000 0040 +lzcntw 000000000df6b244 -> 5555555555550000 0040 +lzcntw 0000000008d2446b -> 5555555555550001 0000 +lzcntw 0000000007028a18 -> 5555555555550000 0040 +lzcntw 00000000042b7735 -> 5555555555550001 0000 +lzcntw 00000000035ecaa5 -> 5555555555550000 0040 +lzcntw 000000000232b89b -> 5555555555550000 0040 +lzcntw 0000000001bf185a -> 5555555555550003 0000 +lzcntw 00000000011a1af9 -> 5555555555550003 0000 +lzcntw 0000000000e0282a -> 5555555555550002 0000 +lzcntw 0000000000854da9 -> 5555555555550001 0000 +lzcntw 00000000006bcf62 -> 5555555555550000 0040 +lzcntw 0000000000464f77 -> 5555555555550001 0000 +lzcntw 000000000037dac9 -> 5555555555550000 0040 +lzcntw 0000000000234910 -> 5555555555550001 0000 +lzcntw 00000000001c0a27 -> 5555555555550004 0000 +lzcntw 000000000010add9 -> 5555555555550000 0040 +lzcntw 00000000000d7b28 -> 5555555555550001 0000 +lzcntw 000000000008cae0 -> 5555555555550000 0040 +lzcntw 000000000006fc5f -> 5555555555550000 0040 +lzcntw 0000000000046871 -> 5555555555550001 0000 +lzcntw 000000000003809d -> 5555555555550000 0040 +lzcntw 000000000002152c -> 5555555555550003 0000 +lzcntw 000000000001af3b -> 5555555555550000 0040 +lzcntw 000000000001193c -> 5555555555550003 0000 +lzcntw 000000000000df6a -> 5555555555550000 0040 +lzcntw 0000000000008d23 -> 5555555555550000 0040 +lzcntw 0000000000007026 -> 5555555555550001 0000 +lzcntw 00000000000042b3 -> 5555555555550001 0000 +lzcntw 00000000000035e9 -> 5555555555550002 0000 +lzcntw 0000000000002329 -> 5555555555550002 0000 +lzcntw 0000000000001bef -> 5555555555550003 0000 +lzcntw 00000000000011a3 -> 5555555555550003 0000 +lzcntw 0000000000000e02 -> 5555555555550004 0000 +lzcntw 0000000000000853 -> 5555555555550004 0000 +lzcntw 00000000000006ba -> 5555555555550005 0000 +lzcntw 0000000000000464 -> 5555555555550005 0000 +lzcntw 000000000000037d -> 5555555555550006 0000 +lzcntw 0000000000000233 -> 5555555555550006 0000 +lzcntw 00000000000001be -> 5555555555550007 0000 +lzcntw 0000000000000119 -> 5555555555550007 0000 +lzcntw 00000000000000de -> 5555555555550008 0000 +lzcntw 000000000000008c -> 5555555555550008 0000 +lzcntw 000000000000006f -> 5555555555550009 0000 +lzcntw 0000000000000045 -> 5555555555550009 0000 +lzcntw 0000000000000037 -> 555555555555000a 0000 +lzcntw 0000000000000022 -> 555555555555000a 0000 +lzcntw 000000000000001b -> 555555555555000b 0000 +lzcntw 0000000000000010 -> 555555555555000b 0000 +lzcntw 000000000000000c -> 555555555555000c 0000 +lzcntw 0000000000000007 -> 555555555555000d 0000 +lzcntw 0000000000000003 -> 555555555555000e 0000 +lzcntw 0000000000000001 -> 555555555555000f 0000 +lzcntw 0000000000000000 -> 5555555555550010 0001 diff --git a/none/tests/amd64/lzcnt64.vgtest b/none/tests/amd64/lzcnt64.vgtest new file mode 100644 index 0000000000..74d82b52b2 --- /dev/null +++ b/none/tests/amd64/lzcnt64.vgtest @@ -0,0 +1,3 @@ +prog: lzcnt64 +prereq: ../../../tests/x86_amd64_features amd64-lzcnt +vgopts: -q diff --git a/none/tests/x86/Makefile.am b/none/tests/x86/Makefile.am index 9428b772eb..c0f0c08ae1 100644 --- a/none/tests/x86/Makefile.am +++ b/none/tests/x86/Makefile.am @@ -17,6 +17,9 @@ endif # Explicitly include insn_sse3 even if ! BUILD_SSE3_TESTS, # to avoid packaging screwups if 'make dist' is run on a machine # which failed the BUILD_SSE3_TESTS test in configure.in. + +## FIXME: move lzcnt32 to SSE4 conditionalisation, when that happens. + EXTRA_DIST = \ badseg.stderr.exp badseg.stdout.exp badseg.vgtest \ bt_everything.stderr.exp bt_everything.stdout.exp bt_everything.vgtest \ @@ -46,6 +49,7 @@ EXTRA_DIST = \ jcxz.stdout.exp jcxz.stderr.exp jcxz.vgtest \ lahf.stdout.exp lahf.stderr.exp lahf.vgtest \ looper.stderr.exp looper.stdout.exp looper.vgtest \ + lzcnt32.stderr.exp lzcnt32.stdout.exp lzcnt32.vgtest \ movx.stderr.exp movx.stdout.exp movx.vgtest \ pushpopseg.stderr.exp pushpopseg.stdout.exp pushpopseg.vgtest \ sbbmisc.stderr.exp sbbmisc.stdout.exp sbbmisc.vgtest \ @@ -80,6 +84,7 @@ check_PROGRAMS = \ jcxz \ lahf \ looper \ + lzcnt32 \ movx \ pushpopseg \ sbbmisc \ diff --git a/none/tests/x86/test_lzcnt32.c b/none/tests/x86/lzcnt32.c similarity index 100% rename from none/tests/x86/test_lzcnt32.c rename to none/tests/x86/lzcnt32.c diff --git a/none/tests/x86/lzcnt32.stderr.exp b/none/tests/x86/lzcnt32.stderr.exp new file mode 100644 index 0000000000..e69de29bb2 diff --git a/none/tests/x86/lzcnt32.stdout.exp b/none/tests/x86/lzcnt32.stdout.exp new file mode 100644 index 0000000000..41773d38df --- /dev/null +++ b/none/tests/x86/lzcnt32.stdout.exp @@ -0,0 +1,122 @@ +lzcntl fedc1928 -> 00000000 0040 +lzcntl 8efcf23a -> 00000000 0040 +lzcntl 7068b90b -> 00000001 0000 +lzcntl 42db3e5e -> 00000001 0000 +lzcntl 35eea72d -> 00000002 0000 +lzcntl 232c23d2 -> 00000002 0000 +lzcntl 1bf0c1be -> 00000003 0000 +lzcntl 11a13119 -> 00000003 0000 +lzcntl 0e025829 -> 00000004 0000 +lzcntl 0854b43e -> 00000004 0000 +lzcntl 06bcf322 -> 00000005 0000 +lzcntl 0464f58f -> 00000005 0000 +lzcntl 037dac76 -> 00000006 0000 +lzcntl 023490eb -> 00000006 0000 +lzcntl 01c0a232 -> 00000007 0000 +lzcntl 010add81 -> 00000007 0000 +lzcntl 00d7b28d -> 00000008 0000 +lzcntl 008cae0d -> 00000008 0000 +lzcntl 006fc600 -> 00000009 0000 +lzcntl 004686ad -> 00000009 0000 +lzcntl 00380a09 -> 0000000a 0000 +lzcntl 00215368 -> 0000000a 0000 +lzcntl 001af3d6 -> 0000000b 0000 +lzcntl 001193de -> 0000000b 0000 +lzcntl 000df6b1 -> 0000000c 0000 +lzcntl 0008d242 -> 0000000c 0000 +lzcntl 00070287 -> 0000000d 0000 +lzcntl 00042b72 -> 0000000d 0000 +lzcntl 00035ec7 -> 0000000e 0000 +lzcntl 000232b3 -> 0000000e 0000 +lzcntl 0001bf16 -> 0000000f 0000 +lzcntl 00011a1b -> 0000000f 0000 +lzcntl 0000e027 -> 00000010 0000 +lzcntl 0000854a -> 00000010 0000 +lzcntl 00006bce -> 00000011 0000 +lzcntl 0000464e -> 00000011 0000 +lzcntl 000037d9 -> 00000012 0000 +lzcntl 00002347 -> 00000012 0000 +lzcntl 00001c06 -> 00000013 0000 +lzcntl 000010a9 -> 00000013 0000 +lzcntl 00000d78 -> 00000014 0000 +lzcntl 000008c8 -> 00000014 0000 +lzcntl 000006fa -> 00000015 0000 +lzcntl 00000468 -> 00000015 0000 +lzcntl 00000380 -> 00000016 0000 +lzcntl 00000214 -> 00000016 0000 +lzcntl 000001ae -> 00000017 0000 +lzcntl 00000118 -> 00000017 0000 +lzcntl 000000de -> 00000018 0000 +lzcntl 0000008c -> 00000018 0000 +lzcntl 0000006f -> 00000019 0000 +lzcntl 00000045 -> 00000019 0000 +lzcntl 00000037 -> 0000001a 0000 +lzcntl 00000022 -> 0000001a 0000 +lzcntl 0000001b -> 0000001b 0000 +lzcntl 00000010 -> 0000001b 0000 +lzcntl 0000000c -> 0000001c 0000 +lzcntl 00000007 -> 0000001d 0000 +lzcntl 00000003 -> 0000001e 0000 +lzcntl 00000001 -> 0000001f 0000 +lzcntl 00000000 -> 00000020 0001 +lzcntw fedc1928 -> 55550003 0000 +lzcntw 8efcf23a -> 55550000 0040 +lzcntw 7068b90b -> 55550000 0040 +lzcntw 42db3e5e -> 55550002 0000 +lzcntw 35eea72d -> 55550000 0040 +lzcntw 232c23d2 -> 55550002 0000 +lzcntw 1bf0c1be -> 55550000 0040 +lzcntw 11a13119 -> 55550002 0000 +lzcntw 0e025829 -> 55550001 0000 +lzcntw 0854b43e -> 55550000 0040 +lzcntw 06bcf322 -> 55550000 0040 +lzcntw 0464f58f -> 55550000 0040 +lzcntw 037dac76 -> 55550000 0040 +lzcntw 023490eb -> 55550000 0040 +lzcntw 01c0a232 -> 55550000 0040 +lzcntw 010add81 -> 55550000 0040 +lzcntw 00d7b28d -> 55550000 0040 +lzcntw 008cae0d -> 55550000 0040 +lzcntw 006fc600 -> 55550000 0040 +lzcntw 004686ad -> 55550000 0040 +lzcntw 00380a09 -> 55550004 0000 +lzcntw 00215368 -> 55550001 0000 +lzcntw 001af3d6 -> 55550000 0040 +lzcntw 001193de -> 55550000 0040 +lzcntw 000df6b1 -> 55550000 0040 +lzcntw 0008d242 -> 55550000 0040 +lzcntw 00070287 -> 55550006 0000 +lzcntw 00042b72 -> 55550002 0000 +lzcntw 00035ec7 -> 55550001 0000 +lzcntw 000232b3 -> 55550002 0000 +lzcntw 0001bf16 -> 55550000 0040 +lzcntw 00011a1b -> 55550003 0000 +lzcntw 0000e027 -> 55550000 0040 +lzcntw 0000854a -> 55550000 0040 +lzcntw 00006bce -> 55550001 0000 +lzcntw 0000464e -> 55550001 0000 +lzcntw 000037d9 -> 55550002 0000 +lzcntw 00002347 -> 55550002 0000 +lzcntw 00001c06 -> 55550003 0000 +lzcntw 000010a9 -> 55550003 0000 +lzcntw 00000d78 -> 55550004 0000 +lzcntw 000008c8 -> 55550004 0000 +lzcntw 000006fa -> 55550005 0000 +lzcntw 00000468 -> 55550005 0000 +lzcntw 00000380 -> 55550006 0000 +lzcntw 00000214 -> 55550006 0000 +lzcntw 000001ae -> 55550007 0000 +lzcntw 00000118 -> 55550007 0000 +lzcntw 000000de -> 55550008 0000 +lzcntw 0000008c -> 55550008 0000 +lzcntw 0000006f -> 55550009 0000 +lzcntw 00000045 -> 55550009 0000 +lzcntw 00000037 -> 5555000a 0000 +lzcntw 00000022 -> 5555000a 0000 +lzcntw 0000001b -> 5555000b 0000 +lzcntw 00000010 -> 5555000b 0000 +lzcntw 0000000c -> 5555000c 0000 +lzcntw 00000007 -> 5555000d 0000 +lzcntw 00000003 -> 5555000e 0000 +lzcntw 00000001 -> 5555000f 0000 +lzcntw 00000000 -> 55550010 0001 diff --git a/none/tests/x86/lzcnt32.vgtest b/none/tests/x86/lzcnt32.vgtest new file mode 100644 index 0000000000..d1e95be81f --- /dev/null +++ b/none/tests/x86/lzcnt32.vgtest @@ -0,0 +1,3 @@ +prog: lzcnt32 +prereq: ../../../tests/x86_amd64_features x86-lzcnt +vgopts: -q