--- Comment #8 from uros at gcc dot gnu dot org 2007-05-21 12:31 ---
Subject: Bug 31167
Author: uros
Date: Mon May 21 11:31:14 2007
New Revision: 124900
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=124900
Log:
PR target/31167
Backport from mainline.
* conf
--
pinskia at gcc dot gnu dot org changed:
What|Removed |Added
Target Milestone|--- |4.3.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31167
--- Comment #7 from ubizjak at gmail dot com 2007-04-05 13:06 ---
Not marked as a regression on branches, so fixed.
(The patch from Comment #6 applies cleanly on all branches. It is up to RM to
decide if this can still go into 4.1.2 and 4.2.)
--
ubizjak at gmail dot com changed:
--- Comment #6 from uros at gcc dot gnu dot org 2007-03-15 07:25 ---
Subject: Bug 31167
Author: uros
Date: Thu Mar 15 07:25:22 2007
New Revision: 122945
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=122945
Log:
PR target/31167
* config/i386/i386.md (*addti3_1, *
--- Comment #5 from ubizjak at gmail dot com 2007-03-14 18:47 ---
Patch at http://gcc.gnu.org/ml/gcc-patches/2007-03/msg00947.html.
--
ubizjak at gmail dot com changed:
What|Removed |Added
---
--- Comment #4 from ubizjak at gmail dot com 2007-03-14 13:43 ---
Created an attachment (id=13205)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13205&action=view)
Patch
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31167
--- Comment #3 from ubizjak at gmail dot com 2007-03-14 13:42 ---
Prototype patch that fixes the failure:
2007-03-14 Uros Bizjak <[EMAIL PROTECTED]>
* config/i386/i386.md (*addti3_1, *addti3_1 splitter): Use
x86_64_general_operand as operand[2] predicate.
(*su
--- Comment #2 from ubizjak at gmail dot com 2007-03-14 13:13 ---
The problem is with TImode *addti3_1 splitter. An immediate is splitted from
TImode into double DImode values and these values are passed to add/addc pair:
(define_split
[(set (match_operand:TI 0 "nonimmediate_operand"
--- Comment #1 from rguenth at gcc dot gnu dot org 2007-03-13 22:00 ---
Confirmed. C testcase:
typedef int int32_t;
int32_t round32hi(const __int128_t arg)
{
const int SHIFT = 96;
const int mshift = 96;
const __int128_t M = (~(__int128_t)0)<>1;
const __int128_t Mlo = ((