authorgravatar for david@vortan.devDavid Rubin <david@vortan.dev> 2024-11-24 22:25:32-08:00
committergravatar for david@vortan.devDavid Rubin <david@vortan.dev> 2024-11-25 01:11:15-08:00
log9e17e097e59adfc31d746634cfe576f6420ec070
tree8ec3613438b3b6f356abdc6839ae5ba69f04619c
parentbc3ed51b7f750e0471a97ec2f7724326885ba71a
signaturelock-open Commit is signed but in an unrecognized format.

make `crc32` a featdep of `sse4.2`

To my knowledge there isn't an implementation of `sse4.2` that doesn't have `crc32`. The Clang driver also sets `crc32` to be implicitly enabled when an explicit `-crc32` wasn't provided. This matches that behaviour. We need this behaviour to compile libraries like `rocksdb` which currently guard against `crc32` intrinsics by checking for `sse4.2`.

2 files changed, 5 insertions(+), 53 deletions(-)

lib/std/Target/x86.zig+1-53
...@@ -1162,6 +1162,7 @@ pub const all_features = blk: {...@@ -1162,6 +1162,7 @@ pub const all_features = blk: {
1162 .llvm_name = "sse4.2",1162 .llvm_name = "sse4.2",
1163 .description = "Enable SSE 4.2 instructions",1163 .description = "Enable SSE 4.2 instructions",
1164 .dependencies = featureSet(&[_]Feature{1164 .dependencies = featureSet(&[_]Feature{
1165 .crc32,
1165 .sse4_1,1166 .sse4_1,
1166 }),1167 }),
1167 };1168 };
...@@ -1328,7 +1329,6 @@ pub const cpu = struct {...@@ -1328,7 +1329,6 @@ pub const cpu = struct {
1328 .clflushopt,1329 .clflushopt,
1329 .clwb,1330 .clwb,
1330 .cmov,1331 .cmov,
1331 .crc32,
1332 .cx16,1332 .cx16,
1333 .f16c,1333 .f16c,
1334 .false_deps_perm,1334 .false_deps_perm,
...@@ -1424,7 +1424,6 @@ pub const cpu = struct {...@@ -1424,7 +1424,6 @@ pub const cpu = struct {
1424 .clwb,1424 .clwb,
1425 .cmov,1425 .cmov,
1426 .cmpccxadd,1426 .cmpccxadd,
1427 .crc32,
1428 .cx16,1427 .cx16,
1429 .enqcmd,1428 .enqcmd,
1430 .f16c,1429 .f16c,
...@@ -1500,7 +1499,6 @@ pub const cpu = struct {...@@ -1500,7 +1499,6 @@ pub const cpu = struct {
1500 .clwb,1499 .clwb,
1501 .cmov,1500 .cmov,
1502 .cmpccxadd,1501 .cmpccxadd,
1503 .crc32,
1504 .cx16,1502 .cx16,
1505 .enqcmd,1503 .enqcmd,
1506 .f16c,1504 .f16c,
...@@ -1735,7 +1733,6 @@ pub const cpu = struct {...@@ -1735,7 +1733,6 @@ pub const cpu = struct {
1735 .aes,1733 .aes,
1736 .clflushopt,1734 .clflushopt,
1737 .cmov,1735 .cmov,
1738 .crc32,
1739 .cx16,1736 .cx16,
1740 .false_deps_popcnt,1737 .false_deps_popcnt,
1741 .fast_7bytenop,1738 .fast_7bytenop,
...@@ -1799,7 +1796,6 @@ pub const cpu = struct {...@@ -1799,7 +1796,6 @@ pub const cpu = struct {
1799 .aes,1796 .aes,
1800 .branchfusion,1797 .branchfusion,
1801 .cmov,1798 .cmov,
1802 .crc32,
1803 .cx16,1799 .cx16,
1804 .fast_11bytenop,1800 .fast_11bytenop,
1805 .fast_scalar_shift_masks,1801 .fast_scalar_shift_masks,
...@@ -1830,7 +1826,6 @@ pub const cpu = struct {...@@ -1830,7 +1826,6 @@ pub const cpu = struct {
1830 .bmi,1826 .bmi,
1831 .branchfusion,1827 .branchfusion,
1832 .cmov,1828 .cmov,
1833 .crc32,
1834 .cx16,1829 .cx16,
1835 .f16c,1830 .f16c,
1836 .fast_11bytenop,1831 .fast_11bytenop,
...@@ -1866,7 +1861,6 @@ pub const cpu = struct {...@@ -1866,7 +1861,6 @@ pub const cpu = struct {
1866 .bmi,1861 .bmi,
1867 .branchfusion,1862 .branchfusion,
1868 .cmov,1863 .cmov,
1869 .crc32,
1870 .cx16,1864 .cx16,
1871 .f16c,1865 .f16c,
1872 .fast_11bytenop,1866 .fast_11bytenop,
...@@ -1905,7 +1899,6 @@ pub const cpu = struct {...@@ -1905,7 +1899,6 @@ pub const cpu = struct {
1905 .bmi2,1899 .bmi2,
1906 .branchfusion,1900 .branchfusion,
1907 .cmov,1901 .cmov,
1908 .crc32,
1909 .cx16,1902 .cx16,
1910 .f16c,1903 .f16c,
1911 .fast_11bytenop,1904 .fast_11bytenop,
...@@ -1973,7 +1966,6 @@ pub const cpu = struct {...@@ -1973,7 +1966,6 @@ pub const cpu = struct {
1973 .bmi,1966 .bmi,
1974 .bmi2,1967 .bmi2,
1975 .cmov,1968 .cmov,
1976 .crc32,
1977 .cx16,1969 .cx16,
1978 .ermsb,1970 .ermsb,
1979 .f16c,1971 .f16c,
...@@ -2043,7 +2035,6 @@ pub const cpu = struct {...@@ -2043,7 +2035,6 @@ pub const cpu = struct {
2043 .aes,2035 .aes,
2044 .bmi,2036 .bmi,
2045 .cmov,2037 .cmov,
2046 .crc32,
2047 .cx16,2038 .cx16,
2048 .f16c,2039 .f16c,
2049 .fast_15bytenop,2040 .fast_15bytenop,
...@@ -2113,7 +2104,6 @@ pub const cpu = struct {...@@ -2113,7 +2104,6 @@ pub const cpu = struct {
2113 .bmi2,2104 .bmi2,
2114 .clflushopt,2105 .clflushopt,
2115 .cmov,2106 .cmov,
2116 .crc32,
2117 .cx16,2107 .cx16,
2118 .ermsb,2108 .ermsb,
2119 .evex512,2109 .evex512,
...@@ -2172,7 +2162,6 @@ pub const cpu = struct {...@@ -2172,7 +2162,6 @@ pub const cpu = struct {
2172 .clflushopt,2162 .clflushopt,
2173 .clwb,2163 .clwb,
2174 .cmov,2164 .cmov,
2175 .crc32,
2176 .cx16,2165 .cx16,
2177 .ermsb,2166 .ermsb,
2178 .evex512,2167 .evex512,
...@@ -2233,7 +2222,6 @@ pub const cpu = struct {...@@ -2233,7 +2222,6 @@ pub const cpu = struct {
2233 .clwb,2222 .clwb,
2234 .cmov,2223 .cmov,
2235 .cmpccxadd,2224 .cmpccxadd,
2236 .crc32,
2237 .cx16,2225 .cx16,
2238 .enqcmd,2226 .enqcmd,
2239 .f16c,2227 .f16c,
...@@ -2313,7 +2301,6 @@ pub const cpu = struct {...@@ -2313,7 +2301,6 @@ pub const cpu = struct {
2313 .clflushopt,2301 .clflushopt,
2314 .clwb,2302 .clwb,
2315 .cmov,2303 .cmov,
2316 .crc32,
2317 .cx16,2304 .cx16,
2318 .ermsb,2305 .ermsb,
2319 .evex512,2306 .evex512,
...@@ -2379,7 +2366,6 @@ pub const cpu = struct {...@@ -2379,7 +2366,6 @@ pub const cpu = struct {
2379 .features = featureSet(&[_]Feature{2366 .features = featureSet(&[_]Feature{
2380 .@"64bit",2367 .@"64bit",
2381 .cmov,2368 .cmov,
2382 .crc32,
2383 .cx16,2369 .cx16,
2384 .fxsr,2370 .fxsr,
2385 .idivq_to_divl,2371 .idivq_to_divl,
...@@ -2419,7 +2405,6 @@ pub const cpu = struct {...@@ -2419,7 +2405,6 @@ pub const cpu = struct {
2419 .clflushopt,2405 .clflushopt,
2420 .clwb,2406 .clwb,
2421 .cmov,2407 .cmov,
2422 .crc32,
2423 .cx16,2408 .cx16,
2424 .enqcmd,2409 .enqcmd,
2425 .ermsb,2410 .ermsb,
...@@ -2514,7 +2499,6 @@ pub const cpu = struct {...@@ -2514,7 +2499,6 @@ pub const cpu = struct {
2514 .aes,2499 .aes,
2515 .clflushopt,2500 .clflushopt,
2516 .cmov,2501 .cmov,
2517 .crc32,
2518 .cx16,2502 .cx16,
2519 .false_deps_popcnt,2503 .false_deps_popcnt,
2520 .fast_imm16,2504 .fast_imm16,
...@@ -2552,7 +2536,6 @@ pub const cpu = struct {...@@ -2552,7 +2536,6 @@ pub const cpu = struct {
2552 .aes,2536 .aes,
2553 .clflushopt,2537 .clflushopt,
2554 .cmov,2538 .cmov,
2555 .crc32,
2556 .cx16,2539 .cx16,
2557 .fast_imm16,2540 .fast_imm16,
2558 .fast_movbe,2541 .fast_movbe,
...@@ -2596,7 +2579,6 @@ pub const cpu = struct {...@@ -2596,7 +2579,6 @@ pub const cpu = struct {
2596 .clflushopt,2579 .clflushopt,
2597 .clwb,2580 .clwb,
2598 .cmov,2581 .cmov,
2599 .crc32,
2600 .cx16,2582 .cx16,
2601 .f16c,2583 .f16c,
2602 .false_deps_popcnt,2584 .false_deps_popcnt,
...@@ -2658,7 +2640,6 @@ pub const cpu = struct {...@@ -2658,7 +2640,6 @@ pub const cpu = struct {
2658 .clwb,2640 .clwb,
2659 .cmov,2641 .cmov,
2660 .cmpccxadd,2642 .cmpccxadd,
2661 .crc32,
2662 .cx16,2643 .cx16,
2663 .enqcmd,2644 .enqcmd,
2664 .f16c,2645 .f16c,
...@@ -2732,7 +2713,6 @@ pub const cpu = struct {...@@ -2732,7 +2713,6 @@ pub const cpu = struct {
2732 .clflushopt,2713 .clflushopt,
2733 .clwb,2714 .clwb,
2734 .cmov,2715 .cmov,
2735 .crc32,
2736 .cx16,2716 .cx16,
2737 .enqcmd,2717 .enqcmd,
2738 .ermsb,2718 .ermsb,
...@@ -2821,7 +2801,6 @@ pub const cpu = struct {...@@ -2821,7 +2801,6 @@ pub const cpu = struct {
2821 .clflushopt,2801 .clflushopt,
2822 .clwb,2802 .clwb,
2823 .cmov,2803 .cmov,
2824 .crc32,
2825 .cx16,2804 .cx16,
2826 .enqcmd,2805 .enqcmd,
2827 .ermsb,2806 .ermsb,
...@@ -2892,7 +2871,6 @@ pub const cpu = struct {...@@ -2892,7 +2871,6 @@ pub const cpu = struct {
2892 .bmi,2871 .bmi,
2893 .bmi2,2872 .bmi2,
2894 .cmov,2873 .cmov,
2895 .crc32,
2896 .cx16,2874 .cx16,
2897 .ermsb,2875 .ermsb,
2898 .f16c,2876 .f16c,
...@@ -2984,7 +2962,6 @@ pub const cpu = struct {...@@ -2984,7 +2962,6 @@ pub const cpu = struct {
2984 .bmi2,2962 .bmi2,
2985 .clflushopt,2963 .clflushopt,
2986 .cmov,2964 .cmov,
2987 .crc32,
2988 .cx16,2965 .cx16,
2989 .ermsb,2966 .ermsb,
2990 .evex512,2967 .evex512,
...@@ -3049,7 +3026,6 @@ pub const cpu = struct {...@@ -3049,7 +3026,6 @@ pub const cpu = struct {
3049 .clflushopt,3026 .clflushopt,
3050 .clwb,3027 .clwb,
3051 .cmov,3028 .cmov,
3052 .crc32,
3053 .cx16,3029 .cx16,
3054 .ermsb,3030 .ermsb,
3055 .evex512,3031 .evex512,
...@@ -3101,7 +3077,6 @@ pub const cpu = struct {...@@ -3101,7 +3077,6 @@ pub const cpu = struct {
3101 .features = featureSet(&[_]Feature{3077 .features = featureSet(&[_]Feature{
3102 .@"64bit",3078 .@"64bit",
3103 .cmov,3079 .cmov,
3104 .crc32,
3105 .cx16,3080 .cx16,
3106 .f16c,3081 .f16c,
3107 .false_deps_popcnt,3082 .false_deps_popcnt,
...@@ -3214,7 +3189,6 @@ pub const cpu = struct {...@@ -3214,7 +3189,6 @@ pub const cpu = struct {
3214 .bmi,3189 .bmi,
3215 .bmi2,3190 .bmi2,
3216 .cmov,3191 .cmov,
3217 .crc32,
3218 .cx16,3192 .cx16,
3219 .evex512,3193 .evex512,
3220 .fast_gather,3194 .fast_gather,
...@@ -3257,7 +3231,6 @@ pub const cpu = struct {...@@ -3257,7 +3231,6 @@ pub const cpu = struct {
3257 .bmi,3231 .bmi,
3258 .bmi2,3232 .bmi2,
3259 .cmov,3233 .cmov,
3260 .crc32,
3261 .cx16,3234 .cx16,
3262 .evex512,3235 .evex512,
3263 .fast_gather,3236 .fast_gather,
...@@ -3315,7 +3288,6 @@ pub const cpu = struct {...@@ -3315,7 +3288,6 @@ pub const cpu = struct {
3315 .clwb,3288 .clwb,
3316 .cmov,3289 .cmov,
3317 .cmpccxadd,3290 .cmpccxadd,
3318 .crc32,
3319 .cx16,3291 .cx16,
3320 .enqcmd,3292 .enqcmd,
3321 .f16c,3293 .f16c,
...@@ -3389,7 +3361,6 @@ pub const cpu = struct {...@@ -3389,7 +3361,6 @@ pub const cpu = struct {
3389 .clflushopt,3361 .clflushopt,
3390 .clwb,3362 .clwb,
3391 .cmov,3363 .cmov,
3392 .crc32,
3393 .cx16,3364 .cx16,
3394 .f16c,3365 .f16c,
3395 .false_deps_perm,3366 .false_deps_perm,
...@@ -3450,7 +3421,6 @@ pub const cpu = struct {...@@ -3450,7 +3421,6 @@ pub const cpu = struct {
3450 .features = featureSet(&[_]Feature{3421 .features = featureSet(&[_]Feature{
3451 .@"64bit",3422 .@"64bit",
3452 .cmov,3423 .cmov,
3453 .crc32,
3454 .cx16,3424 .cx16,
3455 .fxsr,3425 .fxsr,
3456 .idivq_to_divl,3426 .idivq_to_divl,
...@@ -3540,7 +3510,6 @@ pub const cpu = struct {...@@ -3540,7 +3510,6 @@ pub const cpu = struct {
3540 .clwb,3510 .clwb,
3541 .cmov,3511 .cmov,
3542 .cmpccxadd,3512 .cmpccxadd,
3543 .crc32,
3544 .cx16,3513 .cx16,
3545 .enqcmd,3514 .enqcmd,
3546 .f16c,3515 .f16c,
...@@ -3755,7 +3724,6 @@ pub const cpu = struct {...@@ -3755,7 +3724,6 @@ pub const cpu = struct {
3755 .clflushopt,3724 .clflushopt,
3756 .clwb,3725 .clwb,
3757 .cmov,3726 .cmov,
3758 .crc32,
3759 .cx16,3727 .cx16,
3760 .f16c,3728 .f16c,
3761 .false_deps_perm,3729 .false_deps_perm,
...@@ -3830,7 +3798,6 @@ pub const cpu = struct {...@@ -3830,7 +3798,6 @@ pub const cpu = struct {
3830 .bmi2,3798 .bmi2,
3831 .clflushopt,3799 .clflushopt,
3832 .cmov,3800 .cmov,
3833 .crc32,
3834 .cx16,3801 .cx16,
3835 .ermsb,3802 .ermsb,
3836 .evex512,3803 .evex512,
...@@ -3881,7 +3848,6 @@ pub const cpu = struct {...@@ -3881,7 +3848,6 @@ pub const cpu = struct {
3881 .@"64bit",3848 .@"64bit",
3882 .avx,3849 .avx,
3883 .cmov,3850 .cmov,
3884 .crc32,
3885 .cx16,3851 .cx16,
3886 .false_deps_popcnt,3852 .false_deps_popcnt,
3887 .fast_15bytenop,3853 .fast_15bytenop,
...@@ -3928,7 +3894,6 @@ pub const cpu = struct {...@@ -3928,7 +3894,6 @@ pub const cpu = struct {
3928 .clflushopt,3894 .clflushopt,
3929 .clwb,3895 .clwb,
3930 .cmov,3896 .cmov,
3931 .crc32,
3932 .cx16,3897 .cx16,
3933 .enqcmd,3898 .enqcmd,
3934 .ermsb,3899 .ermsb,
...@@ -4005,7 +3970,6 @@ pub const cpu = struct {...@@ -4005,7 +3970,6 @@ pub const cpu = struct {
4005 .clwb,3970 .clwb,
4006 .cmov,3971 .cmov,
4007 .cmpccxadd,3972 .cmpccxadd,
4008 .crc32,
4009 .cx16,3973 .cx16,
4010 .enqcmd,3974 .enqcmd,
4011 .f16c,3975 .f16c,
...@@ -4058,7 +4022,6 @@ pub const cpu = struct {...@@ -4058,7 +4022,6 @@ pub const cpu = struct {
4058 .features = featureSet(&[_]Feature{4022 .features = featureSet(&[_]Feature{
4059 .@"64bit",4023 .@"64bit",
4060 .cmov,4024 .cmov,
4061 .crc32,
4062 .cx16,4025 .cx16,
4063 .false_deps_popcnt,4026 .false_deps_popcnt,
4064 .fast_7bytenop,4027 .fast_7bytenop,
...@@ -4102,7 +4065,6 @@ pub const cpu = struct {...@@ -4102,7 +4065,6 @@ pub const cpu = struct {
4102 .clflushopt,4065 .clflushopt,
4103 .clwb,4066 .clwb,
4104 .cmov,4067 .cmov,
4105 .crc32,
4106 .cx16,4068 .cx16,
4107 .ermsb,4069 .ermsb,
4108 .evex512,4070 .evex512,
...@@ -4157,7 +4119,6 @@ pub const cpu = struct {...@@ -4157,7 +4119,6 @@ pub const cpu = struct {
4157 .bmi2,4119 .bmi2,
4158 .clflushopt,4120 .clflushopt,
4159 .cmov,4121 .cmov,
4160 .crc32,
4161 .cx16,4122 .cx16,
4162 .ermsb,4123 .ermsb,
4163 .f16c,4124 .f16c,
...@@ -4213,7 +4174,6 @@ pub const cpu = struct {...@@ -4213,7 +4174,6 @@ pub const cpu = struct {
4213 .clflushopt,4174 .clflushopt,
4214 .clwb,4175 .clwb,
4215 .cmov,4176 .cmov,
4216 .crc32,
4217 .cx16,4177 .cx16,
4218 .ermsb,4178 .ermsb,
4219 .evex512,4179 .evex512,
...@@ -4261,7 +4221,6 @@ pub const cpu = struct {...@@ -4261,7 +4221,6 @@ pub const cpu = struct {
4261 .features = featureSet(&[_]Feature{4221 .features = featureSet(&[_]Feature{
4262 .@"64bit",4222 .@"64bit",
4263 .cmov,4223 .cmov,
4264 .crc32,
4265 .cx16,4224 .cx16,
4266 .false_deps_popcnt,4225 .false_deps_popcnt,
4267 .fast_7bytenop,4226 .fast_7bytenop,
...@@ -4310,7 +4269,6 @@ pub const cpu = struct {...@@ -4310,7 +4269,6 @@ pub const cpu = struct {
4310 .clflushopt,4269 .clflushopt,
4311 .clwb,4270 .clwb,
4312 .cmov,4271 .cmov,
4313 .crc32,
4314 .cx16,4272 .cx16,
4315 .ermsb,4273 .ermsb,
4316 .evex512,4274 .evex512,
...@@ -4366,7 +4324,6 @@ pub const cpu = struct {...@@ -4366,7 +4324,6 @@ pub const cpu = struct {
4366 .clflushopt,4324 .clflushopt,
4367 .clwb,4325 .clwb,
4368 .cmov,4326 .cmov,
4369 .crc32,
4370 .cx16,4327 .cx16,
4371 .fast_imm16,4328 .fast_imm16,
4372 .fast_movbe,4329 .fast_movbe,
...@@ -4404,7 +4361,6 @@ pub const cpu = struct {...@@ -4404,7 +4361,6 @@ pub const cpu = struct {
4404 .features = featureSet(&[_]Feature{4361 .features = featureSet(&[_]Feature{
4405 .@"64bit",4362 .@"64bit",
4406 .cmov,4363 .cmov,
4407 .crc32,
4408 .cx16,4364 .cx16,
4409 .fxsr,4365 .fxsr,
4410 .idivq_to_divl,4366 .idivq_to_divl,
...@@ -4466,7 +4422,6 @@ pub const cpu = struct {...@@ -4466,7 +4422,6 @@ pub const cpu = struct {
4466 .features = featureSet(&[_]Feature{4422 .features = featureSet(&[_]Feature{
4467 .@"64bit",4423 .@"64bit",
4468 .cmov,4424 .cmov,
4469 .crc32,
4470 .cx16,4425 .cx16,
4471 .false_deps_popcnt,4426 .false_deps_popcnt,
4472 .fast_15bytenop,4427 .fast_15bytenop,
...@@ -4496,7 +4451,6 @@ pub const cpu = struct {...@@ -4496,7 +4451,6 @@ pub const cpu = struct {
4496 .bmi,4451 .bmi,
4497 .bmi2,4452 .bmi2,
4498 .cmov,4453 .cmov,
4499 .crc32,
4500 .cx16,4454 .cx16,
4501 .f16c,4455 .f16c,
4502 .false_deps_lzcnt_tzcnt,4456 .false_deps_lzcnt_tzcnt,
...@@ -4535,7 +4489,6 @@ pub const cpu = struct {...@@ -4535,7 +4489,6 @@ pub const cpu = struct {
4535 .bmi,4489 .bmi,
4536 .bmi2,4490 .bmi2,
4537 .cmov,4491 .cmov,
4538 .crc32,
4539 .cx16,4492 .cx16,
4540 .evex512,4493 .evex512,
4541 .false_deps_popcnt,4494 .false_deps_popcnt,
...@@ -4592,7 +4545,6 @@ pub const cpu = struct {...@@ -4592,7 +4545,6 @@ pub const cpu = struct {
4592 .clflushopt,4545 .clflushopt,
4593 .clzero,4546 .clzero,
4594 .cmov,4547 .cmov,
4595 .crc32,
4596 .cx16,4548 .cx16,
4597 .f16c,4549 .f16c,
4598 .fast_15bytenop,4550 .fast_15bytenop,
...@@ -4646,7 +4598,6 @@ pub const cpu = struct {...@@ -4646,7 +4598,6 @@ pub const cpu = struct {
4646 .clwb,4598 .clwb,
4647 .clzero,4599 .clzero,
4648 .cmov,4600 .cmov,
4649 .crc32,
4650 .cx16,4601 .cx16,
4651 .f16c,4602 .f16c,
4652 .fast_15bytenop,4603 .fast_15bytenop,
...@@ -4701,7 +4652,6 @@ pub const cpu = struct {...@@ -4701,7 +4652,6 @@ pub const cpu = struct {
4701 .clwb,4652 .clwb,
4702 .clzero,4653 .clzero,
4703 .cmov,4654 .cmov,
4704 .crc32,
4705 .cx16,4655 .cx16,
4706 .f16c,4656 .f16c,
4707 .fast_15bytenop,4657 .fast_15bytenop,
...@@ -4771,7 +4721,6 @@ pub const cpu = struct {...@@ -4771,7 +4721,6 @@ pub const cpu = struct {
4771 .clwb,4721 .clwb,
4772 .clzero,4722 .clzero,
4773 .cmov,4723 .cmov,
4774 .crc32,
4775 .cx16,4724 .cx16,
4776 .evex512,4725 .evex512,
4777 .fast_15bytenop,4726 .fast_15bytenop,
...@@ -4845,7 +4794,6 @@ pub const cpu = struct {...@@ -4845,7 +4794,6 @@ pub const cpu = struct {
4845 .clwb,4794 .clwb,
4846 .clzero,4795 .clzero,
4847 .cmov,4796 .cmov,
4848 .crc32,
4849 .cx16,4797 .cx16,
4850 .evex512,4798 .evex512,
4851 .fast_15bytenop,4799 .fast_15bytenop,
tools/update_cpu_features.zig+4
...@@ -1139,6 +1139,10 @@ const llvm_targets = [_]LlvmTarget{...@@ -1139,6 +1139,10 @@ const llvm_targets = [_]LlvmTarget{
1139 .llvm_name = "winchip2",1139 .llvm_name = "winchip2",
1140 .extra_deps = &.{"3dnow"},1140 .extra_deps = &.{"3dnow"},
1141 },1141 },
1142 .{
1143 .llvm_name = "sse4.2",
1144 .extra_deps = &.{"crc32"},
1145 },
1142 },1146 },
1143 // Features removed from LLVM1147 // Features removed from LLVM
1144 .extra_features = &.{1148 .extra_features = &.{