From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17150 invoked by alias); 25 Oct 2005 15:33:48 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 17118 invoked by uid 48); 25 Oct 2005 15:33:45 -0000 Date: Tue, 25 Oct 2005 15:33:00 -0000 Message-ID: <20051025153345.17117.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug middle-end/24003] [4.1 Regression] ACATS FAIL 17 regressions on x86-linux, fixed and decimal arithmetic broken In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "ebotcazou at gcc dot gnu dot org" X-SW-Source: 2005-10/txt/msg03265.txt.bz2 List-Id: ------- Comment #22 from ebotcazou at gcc dot gnu dot org 2005-10-25 15:33 ------- Jan, > Can you please check if -fno-tree-ter makes the bug go away? We've > chatted recently with Jakub concerning bug in argument saving in nested > call and -maccumulate-outgoing-args. I was under impression that we > should no longer produce the nested calls out of ter but aparently it is > still being done (that results in inferrior code quality too as we can't > generated nested calls very sanely) Would that be an acceptable fix (not rematerializing nested calls)? > Also can you also, please, point me closer to place in .optimized dump > where the misscompilation happens? :; - temp.456 = d[3]{lb: 1 sz: 4}; - t1.427 = system__arith_64__Oconcat (temp.433, temp.456); - temp.460 = d[4]{lb: 1 sz: 4}; - D.712 = system__arith_64__Orem (t1.427, zlo); - D.713 = system__arith_64__lo (D.712); - t2.450 = system__arith_64__Oconcat (D.713, temp.460); - D.715 = system__arith_64__Odivide (t2.450, zlo); - D.716 = system__arith_64__lo (D.715); - D.717 = system__arith_64__Odivide (t1.427, zlo); - D.718 = system__arith_64__lo (D.717); - qu = system__arith_64__Oconcat (D.718, D.716); + t1.427 = system__arith_64__Oconcat (temp.433, d[3]{lb: 1 sz: 4}); + t2.450 = system__arith_64__Oconcat (system__arith_64__lo (system__arith_64__Orem (t1.427, zlo)), d[4]{lb: 1 sz: 4}); + qu = system__arith_64__Oconcat (system__arith_64__lo (system__arith_64__Odivide (t1.427, zlo)), system__arith_64__lo (system__arith_64__Odivide (t2.450, zlo))); ru = system__arith_64__Orem (t2.450, zlo); goto (); -: -O1 -fno-tree-ter +: -O1 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24003