Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
598 views
in Technique[技术] by (71.8m points)

x86 64 - Do all 64 bit intel architectures support SSSE3/SSE4.1/SSE4.2 instructions?

I did searched on web and intel Software manual . But am unable to confirm if all Intel 64 architectures support upto SSSE3 or upto SSE4.1 or upto SSE4.2 or AVX etc. So that I would be able to use minimum SIMD supported instructions in my programme. Please help.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

A x64 native (AMD64 or Intel 64) processor is only mandated to support SSE and SSE2.

SSE3 is supported by Intel Pentium 4 processors (“Prescott”), AMD Athlon 64 (“revision E”), AMD Phenom, and later processors. This means most, but not quite all, x64 capable CPUs should support SSE3.

Supplemental SSE3 (SSSE3) is supported by Intel Core 2 Duo, Intel Core i7/i5/i3, Intel Atom, AMD Bulldozer, AMD Bobcat, and later processors.

SSE4.1 is supported on Intel Core 2 (“Penryn”), Intel Core i7 (“Nehalem”), Intel Atom (Silvermont core), AMD Bulldozer, AMD Jaguar, and later processors.

SSE 4.1 and SSE4.2 are supported on Intel Core i7 (“Nehalem”), Intel Atom (Silvermont core), AMD Bulldozer, AMD Jaguar, and later processors.

AVX is supported by Intel “Sandy Bridge”, AMD Bulldozer, AMD Jaguar, and later processors.

See this blog series.

A CPU with x64 native support but no SSE3 support is going to be 'first-generation' 64-bit which isn't supported by Windows 8.1 x64 native due to the requirements for CMPXCHG16b, PrefetchW, and LAHF/SAHF; so in practice SSE3 is highly likely in newer machines. SSSE3 or later is more restrictive depending on exactly who you are aiming at. For example, the Valve Hardware Survey puts SSE4.1 at 77%, SSE 4.2 at 72% (anything from AMD or Intel with SSE4.1 is going to also have SSE3 and SSSE3).

UPDATE: Per the comment below, the support for SSE3 for PC gamers per the Valve survey is now 100%. SSSE3, SSE4.1, and SSE4.2 are all in the 97-98% range. AVX is around 92%--the current generation gaming consoles from Sony & Microsoft support up through AVX. The primary value of AVX is that you can use the /arch:AVX switch which allows all SSE code-generation to use the 3-operand VEX prefix which makes register scheduling more efficient. See this blog post.

AVX2 is approaching 75% which is really good, but still potentially a blocker for a game to rely on without a fallback path. AVX2 is supported by Intel “Haswell”, AMD Excavator, and later processors. See this blog post.

Windows on ARM: Note that the x86 emulation for Windows on ARM64 only supports up to SSE4.1, and the x64 emulation in Windows 11 only supports up to SSE 4.2. AVX/AVX2 is not supported for these platforms.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...