public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "heinrich dot brand at fujitsu-siemens dot com" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug optimization/12147] New: Wrong code with -O2 in context of reload
Date: Wed, 03 Sep 2003 07:44:00 -0000	[thread overview]
Message-ID: <20030903074430.12147.heinrich.brand@fujitsu-siemens.com> (raw)

PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12147

           Summary: Wrong code with -O2 in context of reload
           Product: gcc
           Version: 3.3.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: heinrich dot brand at fujitsu-siemens dot com
                CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: s390-linux-gnu
  GCC host triplet: s390-linux-gnu
GCC target triplet: s390-linux-gnu

Please see usage of r11 in x.c.24.greg generated with the code below:




(insn 4069 4063 4068 0 (nil) (set (reg:SI 11 %r11)


        (const_int 253 [0xfd])) 54 {*movsi_lhi} (nil)


    (nil))




(insn 4068 4069 1767 0 (nil) (set (reg:SI 11 %r11)


        (const_int 5572 [0x15c4])) 54 {*movsi_lhi} (nil)


    (nil))




(insn 1767 4068 4067 0 0x40209980 (parallel [


            (set (reg:SI 11 %r11)


                (xor:SI (reg:SI 11 %r11)


                    (mem:SI (plus:SI (reg/f:SI 15 %r15)


                            (reg:SI 11 %r11)) [178 S8 A8])))


            (clobber (reg:CC 33 %cc))


        ]) 216 {xorsi3} (insn_list 1759 (insn_list:REG_DEP_OUTPUT 47 (insn_list:
REG_DEP_OUTPUT 1621 (insn_list 1765 (insn_list:REG_DEP_ANTI 52 (nil))))))


    (expr_list:REG_NO_CONFLICT (mem:DI (plus:SI (reg/f:SI 15 %r15)


                (const_int 5568 [0x15c0])) [178 S8 A8])


        (nil)))


#############################################################################


test:




#define asop &=


#define op &


#define conv signed char




#include <stdio.h>




struct C77 {


    unsigned long long f1 : 1;


    unsigned long long a1 : 6; /* Bitfeld innerhalb eines Bytes */


    unsigned long long f2 : 1;


    unsigned long long a2 : 7; /* linksbuendig */


    unsigned long long f3 : 2;


    unsigned long long a3 : 7; /* rechtsbuendig */


    unsigned long long f4 : 8;


    unsigned long long f5 : 1;


    unsigned long long b1 : 14;/* Bitfeld innerhalb eines Halbworts */


    unsigned long long f6 : 1;


    unsigned long long b2 : 15;/* linksbuendig */


    unsigned long long f7 : 1;


    unsigned long long f8 : 1;


    unsigned long long b3 : 15;/* rechtsbuendig */


    unsigned long long f9 : 16;


    unsigned long long fa : 1;


    unsigned long long c1 : 30;/* Bitfeld innerhalb eines Worts */


    unsigned long long fb : 1;


    unsigned long long c2 : 31;/* linksbuendig */


    unsigned long long fc : 2;


    unsigned long long c3 : 31;/* rechtsbuendig */


    unsigned long long fd : 1;


    unsigned long long d1 : 62;/* Bitfeld innerhalb eines Doppelworts */


    unsigned long long fe : 1;


    unsigned long long d2 : 63;/* linksbuendig */


    unsigned long long ff : 1;


    unsigned long long fg : 1;


    unsigned long long d3 : 63;/* rechtsbuendig */


};






#define XA      0xca9653c6396a5c63LL


#define XB      0xffffffffffffffffLL


#define XC      0x2424242424242424LL


#define XD      0x0c51LL


#define XE      0x1414141414141414LL




static int f1(), f2(), f3(), f5(), f6();


void tprint(struct C77 y[]);




int main() {


  


    register int i;


    long dummy[824];


    struct C77 w[4];


    long long z[4][20];


    static    int q;


    q = 0;


    z[0][0] = XA;


    z[1][0] = XB;


    z[2][0] = XC;


    z[3][0] = XD;




#if 1


    for(i=3;i<4;i++){i = 3; 


    }


#endif


    memset(w, (char) XE, 4*sizeof(struct C77));


#if 1 /*alle z[][] schalten */


#if 1


    z[0][1] = (conv) (w[0].a1 asop XA);


    z[0][2] = (conv) (w[0].a1 asop XA);


    z[0][3] = (conv) (w[0].a1 asop XA);


    z[0][4] = (conv) (w[0].b1 asop XA);


    z[0][5] = (conv) (w[0].b1 asop XA);


#if 1


    z[0][6] = (conv) (w[0].b3 asop XA); /*SUCCESSFUL,FAILED*/


#else


    z[0][6] = (conv) (w[0].b2 asop XA); /*SUCCESSFUL,SUCCESSFUL*/


#endif


    z[0][7] = (conv) (w[0].c1 asop XA);


    z[0][8] = (conv) (w[0].c2 asop XA);


    z[0][9] = (conv) (w[0].c3 asop XA);


    z[0][10] = (conv) (w[0].d1 asop XA);


    z[0][11] = (conv) (w[0].d2 asop XA);


    z[0][12] = (conv) (w[0].d3 asop XA);


#endif






#if 1


    z[1][1] = (conv) (w[1].a1 asop XB);


    z[1][2] = (conv) (w[1].a2 asop XB);


    z[1][3] = (conv) (w[1].a3 asop XB);


    z[1][4] = (conv) (w[1].b1 asop XB);


    z[1][5] = (conv) (w[1].b2 asop XB);


    z[1][6] = (conv) (w[1].b3 asop XB);


    z[1][7] = (conv) (w[1].c1 asop XB);


    z[1][8] = (conv) (w[1].c2 asop XB);


    z[1][9] = (conv) (w[1].c3 asop XB);


    z[1][10] = (conv) (w[1].d1 asop XB);


    z[1][11] = (conv) (w[1].d2 asop XB);


    z[1][12] = (conv) (w[1].d3 asop XB);


#endif


    z[2][1] = (conv) (w[2].a1 asop XC);


    z[2][2] = (conv) (w[2].a2 asop XC);


    z[2][3] = (conv) (w[2].a3 asop XC);


    z[2][4] = (conv) (w[2].b1 asop XC);


    z[2][5] = (conv) (w[2].b2 asop XC);


    z[2][6] = (conv) (w[2].b3 asop XC);


    z[2][7] = (conv) (w[2].c1 asop XC);


    z[2][8] = (conv) (w[2].c2 asop XC);


    z[2][9] = (conv) (w[2].c3 asop XC);


    z[2][10] = (conv) (w[2].d1 asop XC);


    z[2][11] = (conv) (w[2].d2 asop XC);


    z[2][12] = (conv) (w[2].d3 asop XC);




    z[3][1] = (conv) (w[3].a1 asop XD);


    z[3][2] = (conv) (w[3].a2 asop XD);


    z[3][3] = (conv) (w[3].a3 asop XD);


    z[3][4] = (conv) (w[3].b1 asop XD);


    z[3][5] = (conv) (w[3].b2 asop XD);


    z[3][6] = (conv) (w[3].b3 asop XD);


    z[3][7] = (conv) (w[3].c1 asop XD);


    z[3][8] = (conv) (w[3].c2 asop XD);


    z[3][9] = (conv) (w[3].c3 asop XD);


    z[3][10] = (conv) (w[3].d1 asop XD);


    z[3][11] = (conv) (w[3].d2 asop XD);


#else




#endif


{unsigned long long r,res;


 unsigned long long ersatz[10];


 char zw,zwntf("r= %llx\n",r);


    res=r;


    printf("\n"); 


    r = r ^ XDD;


    printf("w[3].d3: %llx zwi: %x\n",w[3].d3,zwi); 


    /*if( w[3].d3  == r)printf("SUCCESSFUL\n");*/




    if((conv) w[3].d3  == (conv)r) 


        printf("SUCCESSFUL\n");


    else 


        printf("FAILED\n");




    printf("(conv) w[3].d3: %x (conv) r: %x\n",(conv)w[3].d3,(conv) r);  


    exit(res&1);


}


}


             reply	other threads:[~2003-09-03  7:44 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-09-03  7:44 heinrich dot brand at fujitsu-siemens dot com [this message]
2004-01-21 17:23 ` [Bug optimization/12147] " dhazeghi at yahoo dot com
2004-01-21 17:49 ` uweigand at gcc dot gnu dot org
2004-01-21 17:57 ` dhazeghi at yahoo dot com
2004-01-22 16:51 ` uweigand at gcc dot gnu dot org
2004-01-23  2:18 ` uweigand at gcc dot gnu dot org
2004-01-23  2:24 ` pinskia at gcc dot gnu dot org
2004-01-30 23:10 ` cvs-commit at gcc dot gnu dot org
2004-01-30 23:13 ` cvs-commit at gcc dot gnu dot org
2004-01-30 23:23 ` uweigand at gcc dot gnu dot org
2004-01-30 23:26 ` pinskia at gcc dot gnu dot org
2004-02-04 13:04 ` cvs-commit at gcc dot gnu dot org
2004-03-05 20:17 ` cvs-commit at gcc dot gnu dot org
2004-03-05 22:00 ` uweigand at gcc dot gnu dot 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=20030903074430.12147.heinrich.brand@fujitsu-siemens.com \
    --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).