Open
Description
The typical naming scheme we use for x86-32 targets is:
- i686 means Pentium 4 (yes that makes no sense but, well, it's too disruptive to change now and i786 didn't catch on as a name anywhere), which in particular have SSE2
- i586 means "original Pentium" (no SSE)
We have some targets that violate this:
- i686-linux-android is actually PentiumPro with SSE, but that seems sufficiently close to Pentium 4 that it's still the right name IMO (in particular, it does have more vector extensions than Pentium 4; not sure why we are using "Pentium Pro" as the baseline) (resolved by i686-linux-android: increase CPU baseline to Pentium 4 (without an actual change #136885)
- i386-apple-ios uses Penryn as baseline, way newer than Pentium 4, so of course it has SSE (this target is ancient, it predates Rust 1.0)
- i586-pc-nto-qnx700 uses Pentium 4 as baseline (resolved by Make x86 QNX target name consistent with other Rust targets #137324)
- i686-unknown-hurd-gnu uses PentiumPro without SSE as baseline (resolved by i686-unknown-hurd-gnu: bump baseline CPU to Pentium 4 #136700)
- i686-unknown-redox uses PentiumPro without SSE as baseline (resolved by Replace i686-unknown-redox target with i586-unknown-redox #136698)
If we want to establish the pattern that "i686 has SSE and the rest does not", then the last four of these should be renamed. (These are all tier 3 targets.) I wonder if there is a specific reason that these names were picked diverging from our usual naming scheme, or is it just an oversight because our naming scheme is admittedly not very self-explaining?
- The Apple target is ancient and I assume was picked for consistency with how Apple calls this -- not sure if that should overwrite our own naming scheme.
- For Hurd and Redox, we have no other targets that use PentiumPro without SSE as baseline, so it's a bit unclear what one would even use -- they are somewhere between
i586
(original Pentium) and what we calli686
(Pentium 4). The most consistent outcome here would be to use Pentium 4 as the baseline like we use for all other OSes; not sure why Hurd and Redox should be special. - The
i586-pc-nto-qnx700
one however should almost certainly be calledi686
.
Pinging the listed target maintainers and some other folks:
Cc @bjorn3 @workingjubilee @badboy @deg4uss3r @madsmtm @sthibaul @jackpot51 @flba-eb @gh-tr @jonathanpallant @japaric