[Bug target/87550] Intrinsics for rdpmc (__rdpmc, __builtin_ia32_rdpmc) are interpreted as pure functions

2018-10-10 Thread vladimir.solontsov at mlp dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87550

--- Comment #4 from Vlad  ---
Great! Thanks you very much.

[Bug target/87550] New: Intrinsics for rdpmc (__rdpmc, __builtin_ia32_rdpmc) are interpreted as pure functions

2018-10-08 Thread vladimir.solontsov at mlp dot com
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/80566] no use of avx vmovups on ymm registry in set and copy

2017-09-18 Thread vladimir.solontsov at mlp dot com
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

[Bug target/80566] no use of avx vmovups on ymm registry in set and copy

2017-09-18 Thread vladimir.solontsov at mlp dot com
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.