public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/87548] Optimize fetch atomics with unused results
       [not found] <bug-87548-4@http.gcc.gnu.org/bugzilla/>
@ 2021-12-21 11:03 ` pinskia at gcc dot gnu.org
  2021-12-21 11:04 ` pinskia at gcc dot gnu.org
  1 sibling, 0 replies; 2+ messages in thread
From: pinskia at gcc dot gnu.org @ 2021-12-21 11:03 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87548

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |WORKSFORME
             Status|UNCONFIRMED                 |RESOLVED

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
This was implemented back in GCC 4.7.x when __atomic_fetch_and and
__atomic_and_fetch was added.
I get the lock and and lock xor for the following already back then:
void f (int *a)
{
    __atomic_fetch_and(a, 10, 5);
}
void f1 (int *a)
{
    __atomic_and_fetch(a, 10, 5);
}

void f2 (int *a)
{
    __atomic_fetch_xor(a, 10, 5);
}
void f12 (int *a)
{
    __atomic_xor_fetch(a, 10, 5);
}

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [Bug target/87548] Optimize fetch atomics with unused results
       [not found] <bug-87548-4@http.gcc.gnu.org/bugzilla/>
  2021-12-21 11:03 ` [Bug target/87548] Optimize fetch atomics with unused results pinskia at gcc dot gnu.org
@ 2021-12-21 11:04 ` pinskia at gcc dot gnu.org
  1 sibling, 0 replies; 2+ messages in thread
From: pinskia at gcc dot gnu.org @ 2021-12-21 11:04 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87548

--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
        .file   "example.cpp"
        .intel_syntax noprefix
        .text
        .p2align 4,,15
        .globl  f(int*)
        .type   f(int*), @function
f(int*):
.LFB0:
        .cfi_startproc
        lock and        DWORD PTR [rdi], 10
        ret
        .cfi_endproc
.LFE0:
        .size   f(int*), .-f(int*)
        .p2align 4,,15
        .globl  f1(int*)
        .type   f1(int*), @function
f1(int*):
.LFB1:
        .cfi_startproc
        lock and        DWORD PTR [rdi], 10
        ret
        .cfi_endproc
.LFE1:
        .size   f1(int*), .-f1(int*)
        .p2align 4,,15
        .globl  f2(int*)
        .type   f2(int*), @function
f2(int*):
.LFB2:
        .cfi_startproc
        lock xor        DWORD PTR [rdi], 10
        ret
        .cfi_endproc
.LFE2:
        .size   f2(int*), .-f2(int*)
        .p2align 4,,15
        .globl  f12(int*)
        .type   f12(int*), @function
f12(int*):
.LFB3:
        .cfi_startproc
        lock xor        DWORD PTR [rdi], 10
        ret
        .cfi_endproc
.LFE3:
        .size   f12(int*), .-f12(int*)
        .ident  "GCC: (GCC-Explorer-Build) 4.7.1"
        .section        .note.GNU-stack,"",@progbits

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-12-21 11:04 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <bug-87548-4@http.gcc.gnu.org/bugzilla/>
2021-12-21 11:03 ` [Bug target/87548] Optimize fetch atomics with unused results pinskia at gcc dot gnu.org
2021-12-21 11:04 ` pinskia at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).