162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci#include <linux/compiler.h>
362306a36Sopenharmony_ci
462306a36Sopenharmony_ci#include "arch-tests.h"
562306a36Sopenharmony_ci#include "tests/tests.h"
662306a36Sopenharmony_ci#include "util/header.h"
762306a36Sopenharmony_ci
862306a36Sopenharmony_ciint test__cpuid_match(struct test_suite *test __maybe_unused,
962306a36Sopenharmony_ci			     int subtest __maybe_unused)
1062306a36Sopenharmony_ci{
1162306a36Sopenharmony_ci	/* midr with no leading zeros matches */
1262306a36Sopenharmony_ci	if (strcmp_cpuid_str("0x410fd0c0", "0x00000000410fd0c0"))
1362306a36Sopenharmony_ci		return -1;
1462306a36Sopenharmony_ci	/* Upper case matches */
1562306a36Sopenharmony_ci	if (strcmp_cpuid_str("0x410fd0c0", "0x00000000410FD0C0"))
1662306a36Sopenharmony_ci		return -1;
1762306a36Sopenharmony_ci	/* r0p0 = r0p0 matches */
1862306a36Sopenharmony_ci	if (strcmp_cpuid_str("0x00000000410fd480", "0x00000000410fd480"))
1962306a36Sopenharmony_ci		return -1;
2062306a36Sopenharmony_ci	/* r0p1 > r0p0 matches */
2162306a36Sopenharmony_ci	if (strcmp_cpuid_str("0x00000000410fd480", "0x00000000410fd481"))
2262306a36Sopenharmony_ci		return -1;
2362306a36Sopenharmony_ci	/* r1p0 > r0p0 matches*/
2462306a36Sopenharmony_ci	if (strcmp_cpuid_str("0x00000000410fd480", "0x00000000411fd480"))
2562306a36Sopenharmony_ci		return -1;
2662306a36Sopenharmony_ci	/* r0p0 < r0p1 doesn't match */
2762306a36Sopenharmony_ci	if (!strcmp_cpuid_str("0x00000000410fd481", "0x00000000410fd480"))
2862306a36Sopenharmony_ci		return -1;
2962306a36Sopenharmony_ci	/* r0p0 < r1p0 doesn't match */
3062306a36Sopenharmony_ci	if (!strcmp_cpuid_str("0x00000000411fd480", "0x00000000410fd480"))
3162306a36Sopenharmony_ci		return -1;
3262306a36Sopenharmony_ci	/* Different CPU doesn't match */
3362306a36Sopenharmony_ci	if (!strcmp_cpuid_str("0x00000000410fd4c0", "0x00000000430f0af0"))
3462306a36Sopenharmony_ci		return -1;
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci	return 0;
3762306a36Sopenharmony_ci}
38