c - Is __int128_t arithmetic emulated by GCC, even with SSE? -
i've heard 128-bit integer data-types __int128_t provided gcc emulated , therefore slow. however, understand various sse instruction sets (sse, sse2, ..., avx) introduced @ least instructions 128-bit registers. don't know sse or assembly / machine code, wondering if explain me whether arithmetic __int128_t emulated or not using modern versions of gcc.
the reason i'm asking because i'm wondering if makes sense expect big differences in __int128_t performance between different versions of gcc, depending on sse instructions taken advantage of.
so, parts of __int128_t arithmetic emulated gcc, , parts implemented sse instructions (if any)?
i confusing 2 different things in question.
firstly, paulr explained in comments: "there no 128 bit arithmetic operations in sse or avx (apart bitwise operations)". considering this, 128-bit arithmetic has emulated on modern x86-64 based processors (e.g. amd family 10 or intel core architecture). has nothing gcc.
the second part of question whether or not 128-bit arithmetic emulation in gcc benefits sse/avx instructions or registers. implied in paulr's comments, there isn't in sse/avx that's going allow 128-bit arithmetic more easily; x86-64 instructions used this. code i'm interested in can't compile -mno-sse, compiles fine -mno-sse2 -mno-sse3 -mno-ssse3 -mno-sse4 -mno-sse4.1 -mno-sse4.2 -mno-avx -mno-avx2 , performance isn't affected. code doesn't benefit modern sse instructions.
Comments
Post a Comment