Skip to content

Commit e66bda8

Browse files
authored
Add initial support for Apple M3 and Apple M4 (#141)
1 parent 9b22d3d commit e66bda8

3 files changed

Lines changed: 481 additions & 0 deletions

File tree

‎cpu/microarchitectures.json‎

Lines changed: 197 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2905,6 +2905,27 @@
29052905
]
29062906
}
29072907
},
2908+
"armv8.6a": {
2909+
"from": [
2910+
"armv8.5a"
2911+
],
2912+
"vendor": "generic",
2913+
"features": [],
2914+
"compilers": {
2915+
"gcc": [
2916+
{
2917+
"versions": "10.1:",
2918+
"flags": "-march=armv8.6-a -mtune=generic"
2919+
}
2920+
],
2921+
"clang": [
2922+
{
2923+
"versions": "11:",
2924+
"flags": "-march=armv8.6-a -mtune=generic"
2925+
}
2926+
]
2927+
}
2928+
},
29082929
"armv9.0a": {
29092930
"from": [
29102931
"armv8.5a"
@@ -3687,6 +3708,182 @@
36873708
},
36883709
"cpupart": "0x032"
36893710
},
3711+
"m3": {
3712+
"from": [
3713+
"m2",
3714+
"armv8.6a"
3715+
],
3716+
"vendor": "Apple",
3717+
"features": [
3718+
"fp",
3719+
"asimd",
3720+
"evtstrm",
3721+
"aes",
3722+
"pmull",
3723+
"sha1",
3724+
"sha2",
3725+
"crc32",
3726+
"atomics",
3727+
"fphp",
3728+
"asimdhp",
3729+
"cpuid",
3730+
"asimdrdm",
3731+
"jscvt",
3732+
"fcma",
3733+
"lrcpc",
3734+
"dcpop",
3735+
"sha3",
3736+
"asimddp",
3737+
"sha512",
3738+
"asimdfhm",
3739+
"dit",
3740+
"uscat",
3741+
"ilrcpc",
3742+
"flagm",
3743+
"ssbs",
3744+
"sb",
3745+
"paca",
3746+
"pacg",
3747+
"dcpodp",
3748+
"flagm2",
3749+
"frint",
3750+
"ecv",
3751+
"bf16",
3752+
"i8mm",
3753+
"bti"
3754+
],
3755+
"compilers": {
3756+
"gcc": [
3757+
{
3758+
"versions": "8.0:",
3759+
"flags": "-march=armv8.5-a -mtune=generic"
3760+
}
3761+
],
3762+
"clang": [
3763+
{
3764+
"versions": "9.0:12.0",
3765+
"flags": "-march=armv8.5-a"
3766+
},
3767+
{
3768+
"versions": "13.0:",
3769+
"flags": "-mcpu=apple-m1"
3770+
},
3771+
{
3772+
"versions": "16.0:",
3773+
"flags": "-mcpu=apple-m3"
3774+
}
3775+
],
3776+
"apple-clang": [
3777+
{
3778+
"versions": "11.0:12.5",
3779+
"flags": "-march=armv8.5-a"
3780+
},
3781+
{
3782+
"versions": "13.0:14.0.2",
3783+
"flags": "-mcpu=apple-m1"
3784+
},
3785+
{
3786+
"versions": "14.0.2:15",
3787+
"flags": "-mcpu=apple-m2"
3788+
},
3789+
{
3790+
"versions": "16:",
3791+
"flags": "-mcpu=apple-m3"
3792+
}
3793+
]
3794+
},
3795+
"cpupart": "Unknown"
3796+
},
3797+
"m4": {
3798+
"from": [
3799+
"m3",
3800+
"armv8.6a"
3801+
],
3802+
"vendor": "Apple",
3803+
"features": [
3804+
"fp",
3805+
"asimd",
3806+
"evtstrm",
3807+
"aes",
3808+
"pmull",
3809+
"sha1",
3810+
"sha2",
3811+
"crc32",
3812+
"atomics",
3813+
"fphp",
3814+
"asimdhp",
3815+
"cpuid",
3816+
"asimdrdm",
3817+
"jscvt",
3818+
"fcma",
3819+
"lrcpc",
3820+
"dcpop",
3821+
"sha3",
3822+
"asimddp",
3823+
"sha512",
3824+
"asimdfhm",
3825+
"dit",
3826+
"uscat",
3827+
"ilrcpc",
3828+
"flagm",
3829+
"ssbs",
3830+
"sb",
3831+
"paca",
3832+
"pacg",
3833+
"dcpodp",
3834+
"flagm2",
3835+
"frint",
3836+
"ecv",
3837+
"bf16",
3838+
"i8mm",
3839+
"bti",
3840+
"sme",
3841+
"sme2"
3842+
],
3843+
"compilers": {
3844+
"clang": [
3845+
{
3846+
"versions": "9.0:12.0",
3847+
"flags": "-march=armv8.5-a"
3848+
},
3849+
{
3850+
"versions": "13.0:",
3851+
"flags": "-mcpu=apple-m1"
3852+
},
3853+
{
3854+
"versions": "16.0:18",
3855+
"flags": "-mcpu=apple-m3"
3856+
},
3857+
{
3858+
"versions": "19:",
3859+
"flags": "-mcpu=apple-m4"
3860+
}
3861+
],
3862+
"apple-clang": [
3863+
{
3864+
"versions": "11.0:12.5",
3865+
"flags": "-march=armv8.5-a"
3866+
},
3867+
{
3868+
"versions": "13.0:14.0.2",
3869+
"flags": "-mcpu=apple-m1"
3870+
},
3871+
{
3872+
"versions": "14.0.2:15",
3873+
"flags": "-mcpu=apple-m2"
3874+
},
3875+
{
3876+
"versions": "16:",
3877+
"flags": "-mcpu=apple-m3"
3878+
},
3879+
{
3880+
"versions": "17:",
3881+
"flags": "-mcpu=apple-m4"
3882+
}
3883+
]
3884+
},
3885+
"cpupart": "Unknown"
3886+
},
36903887
"arm": {
36913888
"from": [],
36923889
"vendor": "generic",

‎tests/targets/darwin-sequoia-m3‎

Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
hw.ncpu: 14
2+
hw.byteorder: 1234
3+
hw.memsize: 38654705664
4+
hw.activecpu: 14
5+
hw.perflevel0.physicalcpu: 10
6+
hw.perflevel0.physicalcpu_max: 10
7+
hw.perflevel0.logicalcpu: 10
8+
hw.perflevel0.logicalcpu_max: 10
9+
hw.perflevel0.l1icachesize: 196608
10+
hw.perflevel0.l1dcachesize: 131072
11+
hw.perflevel0.l2cachesize: 16777216
12+
hw.perflevel0.cpusperl2: 5
13+
hw.perflevel0.name: Performance
14+
hw.perflevel1.physicalcpu: 4
15+
hw.perflevel1.physicalcpu_max: 4
16+
hw.perflevel1.logicalcpu: 4
17+
hw.perflevel1.logicalcpu_max: 4
18+
hw.perflevel1.l1icachesize: 131072
19+
hw.perflevel1.l1dcachesize: 65536
20+
hw.perflevel1.l2cachesize: 4194304
21+
hw.perflevel1.cpusperl2: 4
22+
hw.perflevel1.name: Efficiency
23+
hw.optional.arm.FEAT_CRC32: 1
24+
hw.optional.arm.FEAT_FlagM: 1
25+
hw.optional.arm.FEAT_FlagM2: 1
26+
hw.optional.arm.FEAT_FHM: 1
27+
hw.optional.arm.FEAT_DotProd: 1
28+
hw.optional.arm.FEAT_SHA3: 1
29+
hw.optional.arm.FEAT_RDM: 1
30+
hw.optional.arm.FEAT_LSE: 1
31+
hw.optional.arm.FEAT_SHA256: 1
32+
hw.optional.arm.FEAT_SHA512: 1
33+
hw.optional.arm.FEAT_SHA1: 1
34+
hw.optional.arm.FEAT_AES: 1
35+
hw.optional.arm.FEAT_PMULL: 1
36+
hw.optional.arm.FEAT_SPECRES: 0
37+
hw.optional.arm.FEAT_SPECRES2: 0
38+
hw.optional.arm.FEAT_SB: 1
39+
hw.optional.arm.FEAT_FRINTTS: 1
40+
hw.optional.arm.FEAT_PACIMP: 1
41+
hw.optional.arm.FEAT_LRCPC: 1
42+
hw.optional.arm.FEAT_LRCPC2: 1
43+
hw.optional.arm.FEAT_FCMA: 1
44+
hw.optional.arm.FEAT_JSCVT: 1
45+
hw.optional.arm.FEAT_PAuth: 1
46+
hw.optional.arm.FEAT_PAuth2: 1
47+
hw.optional.arm.FEAT_FPAC: 1
48+
hw.optional.arm.FEAT_FPACCOMBINE: 0
49+
hw.optional.arm.FEAT_DPB: 1
50+
hw.optional.arm.FEAT_DPB2: 1
51+
hw.optional.arm.FEAT_BF16: 1
52+
hw.optional.arm.FEAT_EBF16: 0
53+
hw.optional.arm.FEAT_I8MM: 1
54+
hw.optional.arm.FEAT_WFxT: 0
55+
hw.optional.arm.FEAT_RPRES: 1
56+
hw.optional.arm.FEAT_CSSC: 0
57+
hw.optional.arm.FEAT_HBC: 0
58+
hw.optional.arm.FEAT_ECV: 1
59+
hw.optional.arm.FEAT_AFP: 1
60+
hw.optional.arm.FEAT_LSE2: 1
61+
hw.optional.arm.FEAT_CSV2: 1
62+
hw.optional.arm.FEAT_CSV3: 1
63+
hw.optional.arm.FEAT_DIT: 1
64+
hw.optional.arm.AdvSIMD: 1
65+
hw.optional.arm.AdvSIMD_HPFPCvt: 1
66+
hw.optional.arm.FEAT_FP16: 1
67+
hw.optional.arm.FEAT_SSBS: 1
68+
hw.optional.arm.FEAT_BTI: 1
69+
hw.optional.arm.FEAT_SME: 0
70+
hw.optional.arm.FEAT_SME2: 0
71+
hw.optional.arm.SME_F32F32: 0
72+
hw.optional.arm.SME_BI32I32: 0
73+
hw.optional.arm.SME_B16F32: 0
74+
hw.optional.arm.SME_F16F32: 0
75+
hw.optional.arm.SME_I8I32: 0
76+
hw.optional.arm.SME_I16I32: 0
77+
hw.optional.arm.FEAT_SME_F64F64: 0
78+
hw.optional.arm.FEAT_SME_I16I64: 0
79+
hw.optional.arm.FP_SyncExceptions: 1
80+
hw.optional.arm.caps: 868632465256738815
81+
hw.optional.arm.sme_max_svl_b: 0
82+
hw.optional.floatingpoint: 1
83+
hw.optional.neon: 1
84+
hw.optional.neon_hpfp: 1
85+
hw.optional.neon_fp16: 1
86+
hw.optional.armv8_crc32: 1
87+
hw.optional.armv8_gpi: 1
88+
hw.optional.armv8_1_atomics: 1
89+
hw.optional.armv8_2_fhm: 1
90+
hw.optional.armv8_2_sha512: 1
91+
hw.optional.armv8_2_sha3: 1
92+
hw.optional.armv8_3_compnum: 1
93+
hw.optional.watchpoint: 4
94+
hw.optional.breakpoint: 6
95+
hw.optional.ucnormal_mem: 1
96+
hw.optional.arm64: 1
97+
hw.features.allows_security_research: 0
98+
hw.physicalcpu: 14
99+
hw.physicalcpu_max: 14
100+
hw.logicalcpu: 14
101+
hw.logicalcpu_max: 14
102+
hw.cputype: 16777228
103+
hw.cpusubtype: 2
104+
hw.cpu64bit_capable: 1
105+
hw.cpufamily: 1912690738
106+
hw.cpusubfamily: 5
107+
hw.cacheconfig: 14 1 4 0 0 0 0 0 0 0
108+
hw.cachesize: 3391619072 65536 4194304 0 0 0 0 0 0 0
109+
hw.pagesize: 16384
110+
hw.pagesize32: 16384
111+
hw.cachelinesize: 128
112+
hw.l1icachesize: 131072
113+
hw.l1dcachesize: 65536
114+
hw.l2cachesize: 4194304
115+
hw.tbfrequency: 24000000
116+
hw.memsize_usable: 37751357440
117+
hw.packages: 1
118+
hw.osenvironment:
119+
hw.ephemeral_storage: 0
120+
hw.use_recovery_securityd: 0
121+
hw.use_kernelmanagerd: 1
122+
hw.serialdebugmode: 0
123+
hw.nperflevels: 2
124+
hw.targettype: J514m
125+
machdep.cpu.cores_per_package: 14
126+
machdep.cpu.core_count: 14
127+
machdep.cpu.logical_per_package: 14
128+
machdep.cpu.thread_count: 14
129+
machdep.cpu.brand_string: Apple M3 Max
130+
machdep.wake_abstime: 78381379047149
131+
machdep.time_since_reset: 42720864919
132+
machdep.wake_conttime: 45451431697762
133+
machdep.deferred_ipi_timeout: 64000
134+
machdep.virtual_address_size: 47
135+
machdep.report_phy_read_delay: 0
136+
machdep.report_phy_write_delay: 0
137+
machdep.trace_phy_read_delay: 0
138+
machdep.trace_phy_write_delay: 0
139+
machdep.phy_read_delay_panic: 0
140+
machdep.phy_write_delay_panic: 0
141+
machdep.ptrauth_enabled: 1
142+
machdep.user_idle_level: 0

0 commit comments

Comments
 (0)