public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "arnd at linaro dot org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug tree-optimization/102162] Byte-wise access optimized away at -O1 and above
Date: Wed, 01 Sep 2021 20:14:34 +0000	[thread overview]
Message-ID: <bug-102162-4-5gbwbFW5iT@http.gcc.gnu.org/bugzilla/> (raw)
In-Reply-To: <bug-102162-4@http.gcc.gnu.org/bugzilla/>

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

Arnd Bergmann <arnd at linaro dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |arnd at linaro dot org

--- Comment #2 from Arnd Bergmann <arnd at linaro dot org> ---
I tried reproducing the issue with my original kernel code, using this input:

typedef unsigned u32;
#define __packed __attribute__((packed))

#define __get_unaligned_t(type, ptr) ({                                        
\
        const struct { type x; } __packed *__pptr = (typeof(__pptr))(ptr);     
\
        __pptr->x;                                                             
\
}) 

#define get_unaligned(ptr)      __get_unaligned_t(typeof(*(ptr)), (ptr))

int f_unaligned(u32 *p)
{ 
     return get_unaligned(p); 
}

int g(u32 *p) 
{ 
     return *(p); 
}

and it looks like I get correct output:

hppa64-linux-gcc -S kernel/test_unaligned.c -o - -O2
        .LEVEL 2.0w
        .text
        .align 8
.globl f_unaligned
        .type   f_unaligned, @function
f_unaligned:
        .PROC
        .CALLINFO FRAME=0,NO_CALLS
        .ENTRY
        ldb 0(%r26),%r20
        ldb 1(%r26),%r19
        depd,z %r20,39,40,%r20
        depd,z %r19,47,48,%r19
        ldb 2(%r26),%r31
        ldb 3(%r26),%r28
        or %r19,%r20,%r19
        depd,z %r31,55,56,%r31
        or %r31,%r19,%r31
        or %r28,%r31,%r28
        bve (%r2)
        extrd,s %r28,63,32,%r28
        .EXIT
        .PROCEND
        .size   f_unaligned, .-f_unaligned
        .align 8
.globl g
        .type   g, @function
g:
        .PROC
        .CALLINFO FRAME=0,NO_CALLS
        .ENTRY
        ldw 0(%r26),%r28
        bve (%r2)
        extrd,s %r28,63,32,%r28
        .EXIT
        .PROCEND
        .size   g, .-g
        .ident  "GCC: (GNU) 11.1.0"

Any idea what the difference is between the working version and your broken
one?

  parent reply	other threads:[~2021-09-01 20:14 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-01 16:52 [Bug tree-optimization/102162] New: " danglin at gcc dot gnu.org
2021-09-01 18:52 ` [Bug tree-optimization/102162] " danglin at gcc dot gnu.org
2021-09-01 20:14 ` arnd at linaro dot org [this message]
2021-09-01 20:52 ` deller at gmx dot de
2021-09-01 20:56 ` dave.anglin at bell dot net
2021-09-01 21:08 ` dave.anglin at bell dot net
2021-09-01 21:15 ` deller at gmx dot de
2021-09-01 21:19 ` dave.anglin at bell dot net
2021-09-01 21:25 ` deller at gmx dot de
2021-09-01 21:29 ` deller at gmx dot de
2021-09-01 21:48 ` pinskia at gcc dot gnu.org
2021-09-01 21:51 ` [Bug middle-end/102162] " pinskia at gcc dot gnu.org
2021-09-01 21:52 ` pinskia at gcc dot gnu.org
2021-09-01 22:35 ` dave.anglin at bell dot net
2021-09-01 22:46 ` dave.anglin at bell dot net
2021-09-01 22:56 ` pinskia at gcc dot gnu.org
2021-09-01 23:19 ` pinskia at gcc dot gnu.org
2021-09-01 23:21 ` pinskia at gcc dot gnu.org
2021-09-01 23:29 ` pinskia at gcc dot gnu.org
2021-09-01 23:45 ` pinskia at gcc dot gnu.org
2021-09-01 23:55 ` pinskia at gcc dot gnu.org
2021-09-02  0:02 ` dave.anglin at bell dot net
2021-09-02  0:19 ` pinskia at gcc dot gnu.org
2021-09-02  0:23 ` pinskia at gcc dot gnu.org
2021-09-02  0:47 ` dave.anglin at bell dot net
2021-09-02  0:49 ` pinskia at gcc dot gnu.org
2021-09-02  3:33 ` pinskia at gcc dot gnu.org
2021-09-02  7:12 ` rguenth at gcc dot gnu.org
2021-09-02  9:01 ` arnd at linaro dot org
2021-09-02  9:41 ` deller at gmx dot de
2021-09-02  9:52 ` pinskia at gcc dot gnu.org
2021-09-02 13:59 ` deller at gmx dot de
2021-09-02 14:00 ` deller at gmx dot de
2021-09-03 23:25 ` deller at gmx dot de

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bug-102162-4-5gbwbFW5iT@http.gcc.gnu.org/bugzilla/ \
    --to=gcc-bugzilla@gcc.gnu.org \
    --cc=gcc-bugs@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).