public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug other/66112] New: __builtin_mul_overflow for int16_t emits poor code
@ 2015-05-11 19:28 gcc.hall at gmail dot com
2015-05-12 8:11 ` [Bug target/66112] " jakub at gcc dot gnu.org
` (10 more replies)
0 siblings, 11 replies; 12+ messages in thread
From: gcc.hall at gmail dot com @ 2015-05-11 19:28 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66112
Bug ID: 66112
Summary: __builtin_mul_overflow for int16_t emits poor code
Product: gcc
Version: 5.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: other
Assignee: unassigned at gcc dot gnu.org
Reporter: gcc.hall at gmail dot com
Target Milestone: ---
I am using all the three signed integer overflow builtin's for the four
types: int8_t, int16_t, int32_t and int64_t on Intel x64. In all cases except
one this produces optimal code, the operation followed by "jo". See the test
case below.
For the int32_t type, from the last atoi down:
call atoi #
imull %eax, %ebx # b, tmp100
jo .L3 #,
However, for int16_t this produces much larger code that does a 32 bit multiply
and checks for overflow by hand:
call atoi #
movswl %bx, %esi # D.5222, D.5222
cwtl
imull %esi, %eax # D.5222, tmp109
movl %eax, %edx # tmp109, tmp110
movl %eax, %ecx # tmp109, tmp111
sarl $16, %edx #, tmp110
sarw $15, %cx #, tmp111
cmpw %dx, %cx # tmp110, tmp111
jne .L7 #,
Even though a simple "imulw" followed by "jo" would work.
-------------------------------------------------------------------
#include <stdio.h>
#include <inttypes.h>
int
main( int argc, const char *argv[] )
{
int16_t result, a = (int16_t)atoi(argv[1]), b = (int16_t)atoi( argv[2] );
if( __builtin_mul_overflow( a, b, &result ) )
printf( "Overflow\n");
else
printf( "Product is %d\n", result );
}
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug target/66112] __builtin_mul_overflow for int16_t emits poor code
2015-05-11 19:28 [Bug other/66112] New: __builtin_mul_overflow for int16_t emits poor code gcc.hall at gmail dot com
@ 2015-05-12 8:11 ` jakub at gcc dot gnu.org
2015-05-12 8:34 ` ubizjak at gmail dot com
` (9 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: jakub at gcc dot gnu.org @ 2015-05-12 8:11 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66112
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jakub at gcc dot gnu.org
--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 35522
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=35522&action=edit
gcc5-pr66112.patch
Supposedly just using SWI248 instead of SWI48 iterator should fix this, though
not sure about all the AMD scheduling stuff.
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug target/66112] __builtin_mul_overflow for int16_t emits poor code
2015-05-11 19:28 [Bug other/66112] New: __builtin_mul_overflow for int16_t emits poor code gcc.hall at gmail dot com
2015-05-12 8:11 ` [Bug target/66112] " jakub at gcc dot gnu.org
@ 2015-05-12 8:34 ` ubizjak at gmail dot com
2015-05-12 9:10 ` gcc.hall at gmail dot com
` (8 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: ubizjak at gmail dot com @ 2015-05-12 8:34 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66112
--- Comment #2 from Uroš Bizjak <ubizjak at gmail dot com> ---
(In reply to Jakub Jelinek from comment #1)
> Created attachment 35522 [details]
> gcc5-pr66112.patch
>
> Supposedly just using SWI248 instead of SWI48 iterator should fix this,
> though not sure about all the AMD scheduling stuff.
Just copy HImode patterns, as is already case with QI, SI/DImode (and we
tolerated it). We can macroize these patterns latter, if needed at all.
I wonder, why HImode patterns were left out in the first place ...
>From gcc-bugs-return-486063-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Tue May 12 08:51:14 2015
Return-Path: <gcc-bugs-return-486063-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org>
Delivered-To: listarch-gcc-bugs@gcc.gnu.org
Received: (qmail 35577 invoked by alias); 12 May 2015 08:51:14 -0000
Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm
Precedence: bulk
List-Id: <gcc-bugs.gcc.gnu.org>
List-Archive: <http://gcc.gnu.org/ml/gcc-bugs/>
List-Post: <mailto:gcc-bugs@gcc.gnu.org>
List-Help: <mailto:gcc-bugs-help@gcc.gnu.org>
Sender: gcc-bugs-owner@gcc.gnu.org
Delivered-To: mailing list gcc-bugs@gcc.gnu.org
Received: (qmail 35543 invoked by uid 48); 12 May 2015 08:51:09 -0000
From: "rguenth at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug middle-end/66110] uint8_t memory access not optimized
Date: Tue, 12 May 2015 08:51:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gcc
X-Bugzilla-Component: middle-end
X-Bugzilla-Version: 5.1.0
X-Bugzilla-Keywords: alias, missed-optimization
X-Bugzilla-Severity: normal
X-Bugzilla-Who: rguenth at gcc dot gnu.org
X-Bugzilla-Status: NEW
X-Bugzilla-Resolution:
X-Bugzilla-Priority: P3
X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org
X-Bugzilla-Target-Milestone: ---
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields: keywords bug_status cf_reconfirmed_on cc component resolution everconfirmed
Message-ID: <bug-66110-4-cOHIAjb8Ee@http.gcc.gnu.org/bugzilla/>
In-Reply-To: <bug-66110-4@http.gcc.gnu.org/bugzilla/>
References: <bug-66110-4@http.gcc.gnu.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2015-05/txt/msg00903.txt.bz2
Content-length: 2815
https://gcc.gnu.org/bugzilla/show_bug.cgi?idf110
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |alias, missed-optimization
Status|RESOLVED |NEW
Last reconfirmed| |2015-05-12
CC| |rguenth at gcc dot gnu.org
Component|tree-optimization |middle-end
Resolution|FIXED |---
Ever confirmed|0 |1
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
So what happens is that GCC sees
_3 = p_2(D)->p1;
_3->f2 = 9;
_5 = p_2(D)->p1;
_5->f2 = 10;
and to remove the first store it first has to prove that _3 and _5 are equal.
CSE cannot prove this because it thinks the store to _3->f2 can clobber the
value at p_2(D)->p1 (if p->p1 points to p).
get_alias_set (_3->f2) returns 0, the alias oracle has special code to also
consider the alias set of the base objects:
/* Do type-based disambiguation. */
if (base1_alias_set != base2_alias_set
&& !alias_sets_conflict_p (base1_alias_set, base2_alias_set))
return false;
but their alias sets happen to conflict because struct s2 alias set is a subset
of the struct s1 alias set (which is because alias set zero is a subset of
the struct s1 alias set...):
struct GTY(()) alias_set_entry_d {
/* The alias set number, as stored in MEM_ALIAS_SET. */
alias_set_type alias_set;
/* Nonzero if would have a child of zero: this effectively makes this
alias set the same as alias set zero. */
int has_zero_child;
(I've always questioned this... - the code that looks at has_zero_child in
alias_set_subset_of / alias_sets_conflict_p).
Index: gcc/alias.c
==================================================================--- gcc/alias.c (revision 222996)
+++ gcc/alias.c (working copy)
@@ -470,15 +470,13 @@ alias_sets_conflict_p (alias_set_type se
/* See if the first alias set is a subset of the second. */
ase = get_alias_set_entry (set1);
if (ase != 0
- && (ase->has_zero_child
- || ase->children->get (set2)))
+ && ase->children->get (set2))
return 1;
/* Now do the same, but with the alias sets reversed. */
ase = get_alias_set_entry (set2);
if (ase != 0
- && (ase->has_zero_child
- || ase->children->get (set1)))
+ && ase->children->get (set1))
return 1;
/* The two alias sets are distinct and neither one is the
fixes this. I don't remember what broke (but I remember trying this for a few
times - maybe with also changing alias_set_subset_of which isn't that obvious).
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug target/66112] __builtin_mul_overflow for int16_t emits poor code
2015-05-11 19:28 [Bug other/66112] New: __builtin_mul_overflow for int16_t emits poor code gcc.hall at gmail dot com
2015-05-12 8:11 ` [Bug target/66112] " jakub at gcc dot gnu.org
2015-05-12 8:34 ` ubizjak at gmail dot com
@ 2015-05-12 9:10 ` gcc.hall at gmail dot com
2015-05-12 9:52 ` jakub at gcc dot gnu.org
` (7 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: gcc.hall at gmail dot com @ 2015-05-12 9:10 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66112
--- Comment #3 from Jeremy <gcc.hall at gmail dot com> ---
Related FYI,
Few instructions on ARM set the overflow flag. Two that do are 32-bit add and
subtract. For these two, GCC could just emit "adds" followed by "bvs"
Instead it produces:-
bl atoi @
add r1, r4, r0 @ tmp121, a, b
cmp r0, #0 @ b,
blt .L4 @,
cmp r1, r4 @ tmp121, a
bge .L5 @,
b .L3 @
.L4:
cmp r1, r4 @ tmp121, a
ble .L5 @,
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug target/66112] __builtin_mul_overflow for int16_t emits poor code
2015-05-11 19:28 [Bug other/66112] New: __builtin_mul_overflow for int16_t emits poor code gcc.hall at gmail dot com
` (2 preceding siblings ...)
2015-05-12 9:10 ` gcc.hall at gmail dot com
@ 2015-05-12 9:52 ` jakub at gcc dot gnu.org
2015-05-12 9:54 ` jakub at gcc dot gnu.org
` (6 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: jakub at gcc dot gnu.org @ 2015-05-12 9:52 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66112
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #35522|0 |1
is obsolete| |
Status|UNCONFIRMED |ASSIGNED
Last reconfirmed| |2015-05-12
Assignee|unassigned at gcc dot gnu.org |jakub at gcc dot gnu.org
Ever confirmed|0 |1
--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 35523
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=35523&action=edit
gcc6-pr66112-1.patch
Generic fix, to improve minimum precision computation for unsigned values.
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug target/66112] __builtin_mul_overflow for int16_t emits poor code
2015-05-11 19:28 [Bug other/66112] New: __builtin_mul_overflow for int16_t emits poor code gcc.hall at gmail dot com
` (3 preceding siblings ...)
2015-05-12 9:52 ` jakub at gcc dot gnu.org
@ 2015-05-12 9:54 ` jakub at gcc dot gnu.org
2015-05-12 9:56 ` jakub at gcc dot gnu.org
` (5 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: jakub at gcc dot gnu.org @ 2015-05-12 9:54 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66112
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 35524
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=35524&action=edit
gcc6-pr66112-2.patch
And i386 mulvhi4 and umulvhi4 support. For umulvhi4, I haven't found
corresponding i386.md instruction that would emit mul{w}, so just changed SWI48
to SWI248 iterator in that case.
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug target/66112] __builtin_mul_overflow for int16_t emits poor code
2015-05-11 19:28 [Bug other/66112] New: __builtin_mul_overflow for int16_t emits poor code gcc.hall at gmail dot com
` (4 preceding siblings ...)
2015-05-12 9:54 ` jakub at gcc dot gnu.org
@ 2015-05-12 9:56 ` jakub at gcc dot gnu.org
2015-05-12 10:06 ` gcc.hall at gmail dot com
` (4 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: jakub at gcc dot gnu.org @ 2015-05-12 9:56 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66112
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
As for ARM, please file a separate enhancement request. The generic code has
the means for backends to provide better patterns, but arm doesn't use them
(only i386.md uses them right now), so arm maintainers should add those if
needed.
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug target/66112] __builtin_mul_overflow for int16_t emits poor code
2015-05-11 19:28 [Bug other/66112] New: __builtin_mul_overflow for int16_t emits poor code gcc.hall at gmail dot com
` (5 preceding siblings ...)
2015-05-12 9:56 ` jakub at gcc dot gnu.org
@ 2015-05-12 10:06 ` gcc.hall at gmail dot com
2015-05-12 10:23 ` ubizjak at gmail dot com
` (3 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: gcc.hall at gmail dot com @ 2015-05-12 10:06 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66112
--- Comment #7 from Jeremy <gcc.hall at gmail dot com> ---
Comment on attachment 35522
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=35522
gcc5-pr66112.patch
Done, PR66120
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug target/66112] __builtin_mul_overflow for int16_t emits poor code
2015-05-11 19:28 [Bug other/66112] New: __builtin_mul_overflow for int16_t emits poor code gcc.hall at gmail dot com
` (6 preceding siblings ...)
2015-05-12 10:06 ` gcc.hall at gmail dot com
@ 2015-05-12 10:23 ` ubizjak at gmail dot com
2015-05-13 8:08 ` jakub at gcc dot gnu.org
` (2 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: ubizjak at gmail dot com @ 2015-05-12 10:23 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66112
--- Comment #8 from Uroš Bizjak <ubizjak at gmail dot com> ---
(In reply to Jakub Jelinek from comment #5)
> Created attachment 35524 [details]
> gcc6-pr66112-2.patch
>
> And i386 mulvhi4 and umulvhi4 support. For umulvhi4, I haven't found
> corresponding i386.md instruction that would emit mul{w}, so just changed
> SWI48 to SWI248 iterator in that case.
No, mulw outputs to %ax:%dx pair of HImode registers! Please see [1]
[1] http://x86.renejeschke.de/html/file_module_x86_id_210.html
>From gcc-bugs-return-486092-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Tue May 12 10:24:15 2015
Return-Path: <gcc-bugs-return-486092-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org>
Delivered-To: listarch-gcc-bugs@gcc.gnu.org
Received: (qmail 38607 invoked by alias); 12 May 2015 10:24:14 -0000
Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm
Precedence: bulk
List-Id: <gcc-bugs.gcc.gnu.org>
List-Archive: <http://gcc.gnu.org/ml/gcc-bugs/>
List-Post: <mailto:gcc-bugs@gcc.gnu.org>
List-Help: <mailto:gcc-bugs-help@gcc.gnu.org>
Sender: gcc-bugs-owner@gcc.gnu.org
Delivered-To: mailing list gcc-bugs@gcc.gnu.org
Received: (qmail 38542 invoked by uid 48); 12 May 2015 10:24:10 -0000
From: "rguenth at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug tree-optimization/66119] [5/6 Regression] in optimization of avx-code
Date: Tue, 12 May 2015 10:24:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gcc
X-Bugzilla-Component: tree-optimization
X-Bugzilla-Version: 5.1.1
X-Bugzilla-Keywords:
X-Bugzilla-Severity: normal
X-Bugzilla-Who: rguenth at gcc dot gnu.org
X-Bugzilla-Status: NEW
X-Bugzilla-Resolution:
X-Bugzilla-Priority: P3
X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org
X-Bugzilla-Target-Milestone: 5.2
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields:
Message-ID: <bug-66119-4-eQfKd87hd6@http.gcc.gnu.org/bugzilla/>
In-Reply-To: <bug-66119-4@http.gcc.gnu.org/bugzilla/>
References: <bug-66119-4@http.gcc.gnu.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2015-05/txt/msg00932.txt.bz2
Content-length: 617
https://gcc.gnu.org/bugzilla/show_bug.cgi?idf119
--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> ---
DEFPARAM (PARAM_SRA_MAX_SCALARIZATION_SIZE_SPEED,
"sra-max-scalarization-size-Ospeed",
"Maximum size, in storage units,
storage units! But the value seems to be in bits? It gets used as
if (tree_to_uhwi (TYPE_SIZE (TREE_TYPE (var)))
<= max_scalarization_size)
max_scalarization_size is 384, the aggregate size is 512.
Looks like get_move_ratio returns different things at SRA time (if I re-call
it)
and the time it gets invoked in toplev.c.
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug target/66112] __builtin_mul_overflow for int16_t emits poor code
2015-05-11 19:28 [Bug other/66112] New: __builtin_mul_overflow for int16_t emits poor code gcc.hall at gmail dot com
` (7 preceding siblings ...)
2015-05-12 10:23 ` ubizjak at gmail dot com
@ 2015-05-13 8:08 ` jakub at gcc dot gnu.org
2015-05-13 8:09 ` jakub at gcc dot gnu.org
2015-05-13 8:21 ` jakub at gcc dot gnu.org
10 siblings, 0 replies; 12+ messages in thread
From: jakub at gcc dot gnu.org @ 2015-05-13 8:08 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66112
--- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Author: jakub
Date: Wed May 13 08:07:58 2015
New Revision: 223115
URL: https://gcc.gnu.org/viewcvs?rev=223115&root=gcc&view=rev
Log:
PR target/66112
* internal-fn.c (get_min_precision): Use UNSIGNED instead of
SIGNED to get precision of non-negative value.
* gcc.target/i386/pr66112-1.c: New test.
Added:
trunk/gcc/testsuite/gcc.target/i386/pr66112-1.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/internal-fn.c
trunk/gcc/testsuite/ChangeLog
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug target/66112] __builtin_mul_overflow for int16_t emits poor code
2015-05-11 19:28 [Bug other/66112] New: __builtin_mul_overflow for int16_t emits poor code gcc.hall at gmail dot com
` (8 preceding siblings ...)
2015-05-13 8:08 ` jakub at gcc dot gnu.org
@ 2015-05-13 8:09 ` jakub at gcc dot gnu.org
2015-05-13 8:21 ` jakub at gcc dot gnu.org
10 siblings, 0 replies; 12+ messages in thread
From: jakub at gcc dot gnu.org @ 2015-05-13 8:09 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66112
--- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Author: jakub
Date: Wed May 13 08:09:01 2015
New Revision: 223116
URL: https://gcc.gnu.org/viewcvs?rev=223116&root=gcc&view=rev
Log:
PR target/66112
* config/i386/i386.md (mulv<mode>4, umulv<mode>4, *umulv<mode>4):
Use SWI248 iterator instead of SWI.
(*mulv<mode>4_1): Use SWI48 instead of SWI. Simplify output template.
Use eq_attr "alternative" "0" instead of match_test in
length_immediate attribute computation.
(*mulvhi4, *mulvhi4_1): New define_insns.
* gcc.target/i386/pr66112-2.c: New test.
Added:
trunk/gcc/testsuite/gcc.target/i386/pr66112-2.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/i386.md
trunk/gcc/testsuite/ChangeLog
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug target/66112] __builtin_mul_overflow for int16_t emits poor code
2015-05-11 19:28 [Bug other/66112] New: __builtin_mul_overflow for int16_t emits poor code gcc.hall at gmail dot com
` (9 preceding siblings ...)
2015-05-13 8:09 ` jakub at gcc dot gnu.org
@ 2015-05-13 8:21 ` jakub at gcc dot gnu.org
10 siblings, 0 replies; 12+ messages in thread
From: jakub at gcc dot gnu.org @ 2015-05-13 8:21 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66112
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution|--- |FIXED
--- Comment #11 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Fixed on the trunk. Not a regression, so probably not suitable for
backporting.
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2015-05-13 8:21 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-05-11 19:28 [Bug other/66112] New: __builtin_mul_overflow for int16_t emits poor code gcc.hall at gmail dot com
2015-05-12 8:11 ` [Bug target/66112] " jakub at gcc dot gnu.org
2015-05-12 8:34 ` ubizjak at gmail dot com
2015-05-12 9:10 ` gcc.hall at gmail dot com
2015-05-12 9:52 ` jakub at gcc dot gnu.org
2015-05-12 9:54 ` jakub at gcc dot gnu.org
2015-05-12 9:56 ` jakub at gcc dot gnu.org
2015-05-12 10:06 ` gcc.hall at gmail dot com
2015-05-12 10:23 ` ubizjak at gmail dot com
2015-05-13 8:08 ` jakub at gcc dot gnu.org
2015-05-13 8:09 ` jakub at gcc dot gnu.org
2015-05-13 8:21 ` jakub at gcc dot gnu.org
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).