# std.Target.CpuFeatures is now a struct with both CPU and feature set · gitcafe/zig

[View on GitCafe](https://git.cafe/gitcafe/zig/commit/48c7e6c48b81e6e0423b3e4aea238402189eecb7)

Repository: [gitcafe/zig](https://git.cafe/gitcafe/zig)

Visibility: public

Requested revision: 48c7e6c48b81e6e0423b3e4aea238402189eecb7

Requested commit: 48c7e6c48b81e6e0423b3e4aea238402189eecb7

Commit: 48c7e6c48b81e6e0423b3e4aea238402189eecb7

Tree: 1d585eaa73a43b473809ffdc85b4207e2e72ee9c

Author: Andrew Kelley

Committer: Andrew Kelley

## Message

```
std.Target.CpuFeatures is now a struct with both CPU and feature set

Previously it was a tagged union which was one of:
 * baseline
 * a specific CPU
 * a set of features

Now, it's possible to have a CPU but also modify the CPU's feature set
on top of that. This is closer to what LLVM does.

This is more correct because Zig's notion of CPUs (and LLVM's) is not
exact CPU models. For example "skylake" is not one very specific model;
there are several different pieces of hardware that match "skylake" that
have different feature sets enabled.

```

## Parents

- [c6bfece1d54c54024397d7aff9f25087cc4dbfda](https://git.cafe/gitcafe/zig/commit/c6bfece1d54c54024397d7aff9f25087cc4dbfda?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zig/tree/48c7e6c48b81e6e0423b3e4aea238402189eecb7?format=markdown)
