public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "jakub at gcc dot gnu dot org" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug tree-optimization/37573] [4.4 Regression] gcc-4.4 regression: incorrect code generation with -O1 -ftree-vectorize Date: Fri, 19 Sep 2008 17:03:00 -0000 [thread overview] Message-ID: <20080919170222.11485.qmail@sourceware.org> (raw) In-Reply-To: <bug-37573-15165@http.gcc.gnu.org/bugzilla/> ------- Comment #4 from jakub at gcc dot gnu dot org 2008-09-19 17:02 ------- Self-contained testcase, which will work even for non-ascii compatible exec-charset: /* PR tree-optimization/37573 */ struct S { unsigned int *a; unsigned int b; unsigned int c[624]; }; static unsigned char __attribute__((noinline)) foo (struct S *s) { unsigned int r; if (!--s->b) { unsigned int *c = s->c; unsigned int i; s->a = c; for (i = 0; i < 227; i++) c[i] = ((((c[i] ^ c[i + 1]) & 0x7ffffffe) ^ c[i]) >> 1) ^ ((0 - (c[i + 1] & 1)) & 0x9908b0df) ^ c[i + 397]; } r = *(s->a++); r ^= (r >> 11); r ^= ((r & 0xff3a58ad) << 7); r ^= ((r & 0xffffdf8c) << 15); r ^= (r >> 18); return (unsigned char) (r >> 1); } static void __attribute__((noinline)) bar (unsigned char *p, unsigned int q, unsigned int r) { struct S s; unsigned int i; unsigned int *c = s.c; *c = r; for (i = 1; i < 624; i++) c[i] = i + 0x6c078965 * ((c[i - 1] >> 30) ^ c[i - 1]); s.b = 1; while (q--) *p++ ^= foo (&s); }; static unsigned char p[23] = { 0xc0, 0x49, 0x17, 0x32, 0x62, 0x1e, 0x2e, 0xd5, 0x4c, 0x19, 0x28, 0x49, 0x91, 0xe4, 0x72, 0x83, 0x91, 0x3d, 0x93, 0x83, 0xb3, 0x61, 0x38 }; static unsigned char q[23] = { 0x3e, 0x41, 0x55, 0x54, 0x4f, 0x49, 0x54, 0x20, 0x55, 0x4e, 0x49, 0x43, 0x4f, 0x44, 0x45, 0x20, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x3c }; int main (void) { unsigned int s; s = 23; bar (p, s, s + 0xa25e); if (__builtin_memcmp (p, q, s) != 0) __builtin_abort (); return 0; } The bug is in the bar function, as can be proven by compiling it with -O3 and adding optimize (0) attribute to bar. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37573
next prev parent reply other threads:[~2008-09-19 17:03 UTC|newest] Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top 2008-09-18 17:31 [Bug tree-optimization/37573] New: " edwintorok at gmail dot com 2008-09-18 17:31 ` [Bug tree-optimization/37573] " edwintorok at gmail dot com 2008-09-18 17:33 ` edwintorok at gmail dot com 2008-09-18 19:15 ` [Bug tree-optimization/37573] [4.4 Regression] " pinskia at gcc dot gnu dot org 2008-09-19 17:03 ` jakub at gcc dot gnu dot org [this message] 2008-09-19 17:53 ` jakub at gcc dot gnu dot org 2008-09-21 7:56 ` irar at il dot ibm dot com 2008-10-15 21:30 ` spop at gcc dot gnu dot org 2008-10-15 21:46 ` rguenth at gcc dot gnu dot org 2008-10-15 21:49 ` rguenth at gcc dot gnu dot org 2008-10-16 0:03 ` spop at gcc dot gnu dot org 2008-10-16 8:16 ` rguenther at suse dot de 2008-10-22 16:10 ` Sebastian Pop 2008-10-22 3:29 ` mmitchel at gcc dot gnu dot org 2008-10-22 16:11 ` sebpop at gmail dot com 2008-10-29 18:49 ` edwintorok at gmail dot com 2008-11-03 9:56 ` rguenth at gcc dot gnu dot org 2008-11-03 12:34 ` rguenth at gcc dot gnu dot org 2008-11-03 12:35 ` rguenth at gcc dot gnu dot org 2008-11-03 17:52 ` edwintorok at gmail dot com
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=20080919170222.11485.qmail@sourceware.org \ --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: linkBe 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).