[Bug target/87550] New: Intrinsics for rdpmc (__rdpmc, __builtin_ia32_rdpmc) are interpreted as pure functions
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87550 Bug ID: 87550 Summary: Intrinsics for rdpmc (__rdpmc, __builtin_ia32_rdpmc) are interpreted as pure functions Product: gcc Version: 7.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: vladimir.solontsov at mlp dot com Target Milestone: --- A code like #include #include int main() { uint64_t s = __rdpmc(0); uint64_t e = __rdpmc(0); return (int)(e - s); } generates xorl%eax, %eax ret It seems like __rdpmc() is treated as a pure function which makes it completely useless. I initially found it with g++ 7.1.0 but with godbolt confirmed it for all others since 4.5.3.
[Bug target/87550] Intrinsics for rdpmc (__rdpmc, __builtin_ia32_rdpmc) are interpreted as pure functions
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87550 --- Comment #4 from Vlad --- Great! Thanks you very much.
[Bug target/80566] no use of avx vmovups on ymm registry in set and copy
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80566 Vlad changed: What|Removed |Added CC||vladimir.solontsov at mlp dot com --- Comment #1 from Vlad --- I can confirm this for gcc7.2 (-O3 -g -mavx2): https://godbolt.org/g/h7TNJV.
[Bug target/80566] no use of avx vmovups on ymm registry in set and copy
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80566 --- Comment #2 from Vlad --- I can confirm this for gcc7.1/7.2 with -O3 -g -mavx2: https://godbolt.org/g/h7TNJV