xref: /linux/tools/perf/arch/arm64/tests/cpuid-match.c (revision 03c11eb3b16dc0058589751dfd91f254be2be613)
1*81f7da54SJames Clark // SPDX-License-Identifier: GPL-2.0
2*81f7da54SJames Clark #include <linux/compiler.h>
3*81f7da54SJames Clark 
4*81f7da54SJames Clark #include "arch-tests.h"
5*81f7da54SJames Clark #include "tests/tests.h"
6*81f7da54SJames Clark #include "util/header.h"
7*81f7da54SJames Clark 
test__cpuid_match(struct test_suite * test __maybe_unused,int subtest __maybe_unused)8*81f7da54SJames Clark int test__cpuid_match(struct test_suite *test __maybe_unused,
9*81f7da54SJames Clark 			     int subtest __maybe_unused)
10*81f7da54SJames Clark {
11*81f7da54SJames Clark 	/* midr with no leading zeros matches */
12*81f7da54SJames Clark 	if (strcmp_cpuid_str("0x410fd0c0", "0x00000000410fd0c0"))
13*81f7da54SJames Clark 		return -1;
14*81f7da54SJames Clark 	/* Upper case matches */
15*81f7da54SJames Clark 	if (strcmp_cpuid_str("0x410fd0c0", "0x00000000410FD0C0"))
16*81f7da54SJames Clark 		return -1;
17*81f7da54SJames Clark 	/* r0p0 = r0p0 matches */
18*81f7da54SJames Clark 	if (strcmp_cpuid_str("0x00000000410fd480", "0x00000000410fd480"))
19*81f7da54SJames Clark 		return -1;
20*81f7da54SJames Clark 	/* r0p1 > r0p0 matches */
21*81f7da54SJames Clark 	if (strcmp_cpuid_str("0x00000000410fd480", "0x00000000410fd481"))
22*81f7da54SJames Clark 		return -1;
23*81f7da54SJames Clark 	/* r1p0 > r0p0 matches*/
24*81f7da54SJames Clark 	if (strcmp_cpuid_str("0x00000000410fd480", "0x00000000411fd480"))
25*81f7da54SJames Clark 		return -1;
26*81f7da54SJames Clark 	/* r0p0 < r0p1 doesn't match */
27*81f7da54SJames Clark 	if (!strcmp_cpuid_str("0x00000000410fd481", "0x00000000410fd480"))
28*81f7da54SJames Clark 		return -1;
29*81f7da54SJames Clark 	/* r0p0 < r1p0 doesn't match */
30*81f7da54SJames Clark 	if (!strcmp_cpuid_str("0x00000000411fd480", "0x00000000410fd480"))
31*81f7da54SJames Clark 		return -1;
32*81f7da54SJames Clark 	/* Different CPU doesn't match */
33*81f7da54SJames Clark 	if (!strcmp_cpuid_str("0x00000000410fd4c0", "0x00000000430f0af0"))
34*81f7da54SJames Clark 		return -1;
35*81f7da54SJames Clark 
36*81f7da54SJames Clark 	return 0;
37*81f7da54SJames Clark }
38