public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "rearnsha at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug target/106187] armhf: Miscompilation at O2 level (O0 / O1 are working)
Date: Thu, 14 Jul 2022 13:18:26 +0000 [thread overview]
Message-ID: <bug-106187-4-VkPwdzyoKJ@http.gcc.gnu.org/bugzilla/> (raw)
In-Reply-To: <bug-106187-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106187
--- Comment #25 from Richard Earnshaw <rearnsha at gcc dot gnu.org> ---
A quick status update.
I've managed to reduce the testcase to the latest attachment. The program is
heavily reduced (so some bits likely don't make much sense), but the test still
'passes' when compiled with -fno-strict-aliasing, but fails with the same error
when that option is omitted.
Looking at the assembler output of void
hwy::N_EMU128::TestMulAdd::operator()<float, hwy::N_EMU128::Simd<float, 4u, 0>
>(float, hwy::N_EMU128::Simd<float, 4u, 0>) [clone .isra.0]
we see (correct on left, incorrect on right):
add r3, sp, #148 add r3, sp, #148
vmov.f32 s14, #3.0e+0 vmov.f32 s14, #3.0e+0
[1] mov r6, r4 mov r6, r4
vmov.f32 s15, #2.0e+0 vmov.f32 s15, #2.0e+0
add r8, sp, #100 add r8, sp, #100
add lr, sp, #132 add lr, sp, #132
ldm r3, {r0, r1, r2, r3} ldm r3, {r0, r1, r2, r3}
vstr.32 s14, [sp, #152] vstr.32 s14, [sp, #152]
vmov.f32 s14, #4.0e+0 vmov.f32 s14, #4.0e+0
[2] stm r4, {r0, r1, r2, r3} | stm r5, {r0, r1, r2, r3}
add ip, sp, #116 add ip, sp, #116
vstr.32 s14, [sp, #156] vstr.32 s14, [sp, #156]
vmov.f32 s14, #5.0e+0 vmov.f32 s14, #5.0e+0
stm r5, {r0, r1, r2, r3} <
add r5, sp, #36 add r5, sp, #36
add r10, sp, #196 add r10, sp, #196
vstr.32 s14, [sp, #160] vstr.32 s14, [sp, #160]
add r9, sp, #152 add r9, sp, #152
[3] vldr.32 s14, [r6] vldr.32 s14, [r6]
[4] stm r8, {r0, r1, r2, r3} | stm r4, {r0, r1, r2, r3}
vmul.f32 s15, s14, s15 vmul.f32 s15, s14, s15
> stm r8, {r0, r1, r2, r3}
at [1] we see that r6 and r4 are the same value. We also see that at [3] a
register is read using r6 as the base. In the good code on the left, the STM
to r4 is at 2, but in the incorrect code is does not occur until 4, ie
immediately after the load at [3].
I need to dig a bit deeper now on this specific function to see if the alias
information is correct, or if it has somehow been lost/corrupted during the
compilation.
next prev parent reply other threads:[~2022-07-14 13:18 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-07-04 16:23 [Bug c++/106187] New: armhf: Miscompilation with -O2 mathieu.malaterre at gmail dot com
2022-07-04 16:37 ` [Bug c++/106187] " mathieu.malaterre at gmail dot com
2022-07-04 16:37 ` mathieu.malaterre at gmail dot com
2022-07-04 16:42 ` [Bug c++/106187] armhf: Miscompilation at all optimization levels mathieu.malaterre at gmail dot com
2022-07-04 20:19 ` pinskia at gcc dot gnu.org
2022-07-04 20:22 ` pinskia at gcc dot gnu.org
2022-07-05 7:18 ` [Bug target/106187] " mathieu.malaterre at gmail dot com
2022-07-05 7:46 ` [Bug target/106187] armhf: Miscompilation at O2 level (O0 / O1 are working) jan.wassenberg at gmail dot com
2022-07-05 8:00 ` mathieu.malaterre at gmail dot com
2022-07-07 7:50 ` mathieu.malaterre at gmail dot com
2022-07-07 8:00 ` mathieu.malaterre at gmail dot com
2022-07-07 9:38 ` rearnsha at gcc dot gnu.org
2022-07-08 9:01 ` mathieu.malaterre at gmail dot com
2022-07-08 9:01 ` mathieu.malaterre at gmail dot com
2022-07-08 9:03 ` mathieu.malaterre at gmail dot com
2022-07-08 13:50 ` rearnsha at gcc dot gnu.org
2022-07-08 13:59 ` malat at debian dot org
2022-07-08 14:16 ` rearnsha at gcc dot gnu.org
2022-07-08 14:18 ` malat at debian dot org
2022-07-08 14:51 ` rearnsha at gcc dot gnu.org
2022-07-08 15:03 ` malat at debian dot org
2022-07-08 17:24 ` rearnsha at gcc dot gnu.org
2022-07-08 17:31 ` rearnsha at gcc dot gnu.org
2022-07-08 19:27 ` jan.wassenberg at gmail dot com
2022-07-14 13:03 ` rearnsha at gcc dot gnu.org
2022-07-14 13:18 ` rearnsha at gcc dot gnu.org [this message]
2022-07-14 16:09 ` pinskia at gcc dot gnu.org
2022-07-18 15:45 ` rearnsha at gcc dot gnu.org
2022-07-18 15:48 ` rearnsha at gcc dot gnu.org
2022-07-19 7:27 ` rguenth at gcc dot gnu.org
2022-07-19 9:00 ` rearnsha at gcc dot gnu.org
2022-07-19 9:13 ` rguenth at gcc dot gnu.org
2022-07-21 9:25 ` rearnsha at gcc dot gnu.org
2022-07-22 12:52 ` rearnsha at gcc dot gnu.org
2022-07-22 13:24 ` rearnsha at gcc dot gnu.org
2022-07-25 6:12 ` rguenth at gcc dot gnu.org
2022-07-25 9:44 ` rearnsha at gcc dot gnu.org
2022-07-25 9:50 ` rguenther at suse dot de
2022-07-25 9:59 ` rearnsha at gcc dot gnu.org
2022-07-25 10:24 ` rguenth at gcc dot gnu.org
2022-07-25 10:26 ` [Bug rtl-optimization/106187] " rguenth at gcc dot gnu.org
2022-07-25 10:33 ` rearnsha at gcc dot gnu.org
2022-07-25 10:42 ` rguenth at gcc dot gnu.org
2022-07-25 10:48 ` rearnsha at gcc dot gnu.org
2022-07-25 11:03 ` rguenther at suse dot de
2022-07-25 11:05 ` rguenth at gcc dot gnu.org
2022-07-25 13:04 ` rearnsha at gcc dot gnu.org
2022-07-25 14:45 ` rguenther at suse dot de
2022-07-27 13:35 ` rearnsha at gcc dot gnu.org
2022-07-28 16:51 ` rearnsha at gcc dot gnu.org
2022-08-03 9:07 ` cvs-commit at gcc dot gnu.org
2022-08-03 9:16 ` rearnsha at gcc dot gnu.org
2022-08-10 7:06 ` malat at debian dot org
2022-08-10 7:11 ` pinskia at gcc dot gnu.org
2022-09-02 9:28 ` malat at debian dot org
2022-09-02 12:30 ` cvs-commit at gcc dot gnu.org
2022-09-02 12:32 ` rearnsha at gcc dot gnu.org
2022-09-02 14:07 ` cvs-commit at gcc dot gnu.org
2022-09-27 15:28 ` malat at debian dot org
2022-09-27 15:54 ` rearnsha at gcc dot gnu.org
2024-01-20 17:20 ` pinskia at gcc dot gnu.org
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-106187-4-VkPwdzyoKJ@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).