[Bug target/57056] Missed optimization of finite finite builtin

2013-04-25 Thread svfuerst at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57056 Steven Fuerst svfuerst at gmail dot com changed: What|Removed |Added CC||svfuerst

[Bug target/53724] New: ICE when using the 'd' asm operand modifier

2012-06-19 Thread svfuerst at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53724 Bug #: 53724 Summary: ICE when using the 'd' asm operand modifier Classification: Unclassified Product: gcc Version: 4.7.1 Status: UNCONFIRMED Severity: enhancement

[Bug target/53649] ICE when using 'C' x86 asm constraint

2012-06-13 Thread svfuerst at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53649 --- Comment #2 from Steven Fuerst svfuerst at gmail dot com 2012-06-13 15:40:19 UTC --- I'm using the version of 4.7 packaged in Debian unstable. It apparently contains everything up until June 12 in the 4.7 branch, plus a few other patches.

[Bug target/53649] ICE when using 'C' x86 asm constraint

2012-06-13 Thread svfuerst at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53649 --- Comment #3 from Steven Fuerst svfuerst at gmail dot com 2012-06-13 15:46:13 UTC --- Oops sorry. The source package is 4.7.0-13, but I'm still actually using the binaries from 4.7.0-11, which was released before May 30.

[Bug c/53649] New: ICE when using 'C' x86 asm constraint

2012-06-12 Thread svfuerst at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53649 Bug #: 53649 Summary: ICE when using 'C' x86 asm constraint Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: trivial Priority:

[Bug c/41045] Extended asm with C operands doesn’t work at top level

2012-06-10 Thread svfuerst at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41045 Steven Fuerst svfuerst at gmail dot com changed: What|Removed |Added CC||svfuerst

[Bug c/53353] New: Missing error/warning when using __int128_t with incorrect asm register constraints

2012-05-14 Thread svfuerst at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53353 Bug #: 53353 Summary: Missing error/warning when using __int128_t with incorrect asm register constraints Classification: Unclassified Product: gcc Version: 4.7.0

[Bug c/53354] New: %z# asm specifier could be extended to support immediate constraints

2012-05-14 Thread svfuerst at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53354 Bug #: 53354 Summary: %z# asm specifier could be extended to support immediate constraints Classification: Unclassified Product: gcc Version: 4.7.0 Status:

[Bug c/53355] New: Autovectorization of a simple loop could be improved.

2012-05-14 Thread svfuerst at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53355 Bug #: 53355 Summary: Autovectorization of a simple loop could be improved. Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: enhancement

[Bug c/53353] Missing error/warning when using __int128_t with incorrect asm register constraints

2012-05-14 Thread svfuerst at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53353 --- Comment #2 from Steven Fuerst svfuerst at gmail dot com 2012-05-15 01:54:46 UTC --- Obviously a __int128_t fits in two registers. The bug is that gcc doesn't warn/error about code mistakenly trying to fit it into one. Instead, gcc generates

[Bug c/53353] Missing error/warning when using __int128_t with incorrect asm register constraints

2012-05-14 Thread svfuerst at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53353 --- Comment #4 from Steven Fuerst svfuerst at gmail dot com 2012-05-15 02:09:05 UTC --- Actually, it is the rax:rdx pair that is most likely. ax:dx only has 32 bits. rax:rdx is specified by the 'A' constraint, the only gpr option that is 128

[Bug middle-end/38126] suboptimal code for (a b || !a !b)

2012-02-01 Thread svfuerst at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38126 Steven Fuerst svfuerst at gmail dot com changed: What|Removed |Added CC||svfuerst

[Bug middle-end/38126] suboptimal code for (a b || !a !b)

2012-02-01 Thread svfuerst at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38126 --- Comment #4 from Steven Fuerst svfuerst at gmail dot com 2012-02-02 06:11:27 UTC --- Two more cases for simple boolean logic optimizations. gcc-4.7 produces with -O3 for int test_and(long long x, long long y) { return x y; } test

[Bug rtl-optimization/50339] suboptimal register allocation for abs(__int128_t)

2012-01-22 Thread svfuerst at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50339 Steven Fuerst svfuerst at gmail dot com changed: What|Removed |Added CC||svfuerst

[Bug rtl-optimization/51954] New: __int128_t negation can be optimized

2012-01-22 Thread svfuerst at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51954 Bug #: 51954 Summary: __int128_t negation can be optimized Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: enhancement

[Bug middle-end/51837] New: Use of result from 64*64-128 bit multiply via __uint128_t not optimized

2012-01-12 Thread svfuerst at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51837 Bug #: 51837 Summary: Use of result from 64*64-128 bit multiply via __uint128_t not optimized Classification: Unclassified Product: gcc Version: 4.7.0 Status:

[Bug c/51838] New: Inefficient add of 128 bit quantity represented as 64 bit tuple to 128 bit integer.

2012-01-12 Thread svfuerst at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51838 Bug #: 51838 Summary: Inefficient add of 128 bit quantity represented as 64 bit tuple to 128 bit integer. Classification: Unclassified Product: gcc Version: 4.7.0

[Bug c/51839] New: GCC not generating adc instruction for canonical multi-precision add sequence

2012-01-12 Thread svfuerst at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51839 Bug #: 51839 Summary: GCC not generating adc instruction for canonical multi-precision add sequence Classification: Unclassified Product: gcc Version: 4.7.0 Status:

[Bug rtl-optimization/50984] Boolean return value expression clears register too often

2011-11-05 Thread svfuerst at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50984 Steven Fuerst svfuerst at gmail dot com changed: What|Removed |Added CC||svfuerst

[Bug c/50581] stdarg doesn't support array types

2011-10-02 Thread svfuerst at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50581 Steven Fuerst svfuerst at gmail dot com changed: What|Removed |Added CC||svfuerst

[Bug middle-end/35561] Promote written once local aggregates to static

2011-06-22 Thread svfuerst at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35561 Steven Fuerst svfuerst at gmail dot com changed: What|Removed |Added CC||svfuerst

[Bug target/48634] New: Missed optimization for use of __builtin_ctzll() and __builtin_clzll

2011-04-15 Thread svfuerst at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48634 Summary: Missed optimization for use of __builtin_ctzll() and __builtin_clzll Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: enhancement Priority: P3

[Bug middle-end/48580] missed optimization: integer overflow checks

2011-04-13 Thread svfuerst at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48580 Steven Fuerst svfuerst at gmail dot com changed: What|Removed |Added CC||svfuerst

[Bug target/47949] Missed optimization for -Os using xchg instead of mov.

2011-03-02 Thread svfuerst at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47949 --- Comment #3 from Steven Fuerst svfuerst at gmail dot com 2011-03-02 21:51:12 UTC --- Having a quick look at generated code... it appears that this pattern doesn't come up all that often. However, there is one case where it does: the epilogue

[Bug target/47949] New: Missed optimization for -Os using xchg instead of mov.

2011-03-01 Thread svfuerst at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47949 Summary: Missed optimization for -Os using xchg instead of mov. Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: target

[Bug c/47809] New: ICE in gimplify_expr, at gimplify.c:7291 [4.6]

2011-02-18 Thread svfuerst at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47809 Summary: ICE in gimplify_expr, at gimplify.c:7291 [4.6] Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo:

[Bug c++/46309] optimization a==3||a==1

2010-11-06 Thread svfuerst at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46309 Steven Fuerst svfuerst at gmail dot com changed: What|Removed |Added CC||svfuerst

[Bug middle-end/45058] New: GCC doesn't create functions with multiple entry points.

2010-07-24 Thread svfuerst at gmail dot com
Priority: P3 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: svfuerst at gmail dot com GCC build triplet: x86_64-linux GCC host triplet: x86_64-linux GCC target triplet: x86_64-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id

[Bug c/44275] New: Union cast leads to wrong code generation. (Strict aliasing not warned about?)

2010-05-25 Thread svfuerst at gmail dot com
about?) Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: svfuerst at gmail dot com GCC build triplet: x86_64-linux GCC

[Bug c/44262] New: va_list usage missed optimization.

2010-05-24 Thread svfuerst at gmail dot com
.) -- Summary: va_list usage missed optimization. Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: svfuerst at gmail dot com

[Bug middle-end/44053] New: benchmark function attribute.

2010-05-10 Thread svfuerst at gmail dot com
Priority: P3 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: svfuerst at gmail dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44053

[Bug middle-end/44053] benchmark function attribute.

2010-05-10 Thread svfuerst at gmail dot com
--- Comment #1 from svfuerst at gmail dot com 2010-05-10 06:36 --- A common technique is to benchmark a function by calling it many times i.e. void foo(void) { /* foo's implementation */ } int main(void) { int i; for (i = 0; i LARGE_NUM; i++) foo(); return 0

[Bug middle-end/44053] benchmark function attribute.

2010-05-10 Thread svfuerst at gmail dot com
--- Comment #5 from svfuerst at gmail dot com 2010-05-10 14:53 --- The problem is that the list of these workarounds tends to increase with each release of gcc. (i.e. noclone was added in gcc 4.5) It would be nice if there was a single attribute to use that would work with all future

[Bug middle-end/44053] benchmark function attribute.

2010-05-10 Thread svfuerst at gmail dot com
--- Comment #7 from svfuerst at gmail dot com 2010-05-10 22:44 --- Perhaps an example usage helps: The __float128 version of isnan() is rather slow. Trying different implmentations to see which is faster required some benchmarking. However, implementing the benchmark code requires

[Bug middle-end/44053] benchmark function attribute.

2010-05-10 Thread svfuerst at gmail dot com
--- Comment #9 from svfuerst at gmail dot com 2010-05-10 23:27 --- Remember that isnan() is a weird type-dependent macro. The special case I was testing is the __float128 version. __float128's are passed in sse registers, so using sse instructions to manipulate them can be a win

[Bug target/43883] missed optimization of constant __int128_t modulus

2010-04-30 Thread svfuerst at gmail dot com
--- Comment #3 from svfuerst at gmail dot com 2010-04-30 16:12 --- Oops, you are right. The 128 bit version needs an extra sbb on the end with that code. (For some reason I was missreading the shr as a sar.): mov%rsi,%rdx shr$0x3f,%rdx lea(%rdi,%rdx,1),%rax and$0x1

[Bug target/43883] missed optimization of constant __int128_t modulus

2010-04-30 Thread svfuerst at gmail dot com
--- Comment #4 from svfuerst at gmail dot com 2010-04-30 16:33 --- Argh, the sar trick doesn't work when the number is negative and even. Sorry about the extra noise. This leaves as the best code: mov%rsi,%rdx shr$0x3f,%rdx lea(%rdi,%rdx,1),%rax and$0x1,%eax sub

[Bug middle-end/43883] missed optimization of constant __int128_t modulus

2010-04-30 Thread svfuerst at gmail dot com
--- Comment #6 from svfuerst at gmail dot com 2010-04-30 20:30 --- For posterity, I might as well note that with the sbb added on the end we don't need the initial mov instruction if we do some register renaming. This leaves the, hopefully optimal this time, five-instruction fragment

[Bug middle-end/43883] New: missed optimization of constant __int128_t modulus

2010-04-24 Thread svfuerst at gmail dot com
of constant __int128_t modulus Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: svfuerst at gmail dot com GCC build

[Bug c/43638] New: Internal compiler error with inline asm

2010-04-04 Thread svfuerst at gmail dot com
: svfuerst at gmail dot com GCC build triplet: x86_64-linux GCC host triplet: x86_64-linux GCC target triplet: x86_64-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43638

[Bug c/43639] New: Missed optimization with complex long double

2010-04-04 Thread svfuerst at gmail dot com
: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: svfuerst at gmail dot com GCC build triplet: x86_64-linux GCC host triplet: x86_64

[Bug c/43640] New: Struct with two floats generates poor code

2010-04-04 Thread svfuerst at gmail dot com
Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: svfuerst at gmail dot com GCC build triplet: x86_64-linux GCC host triplet: x86_64-linux GCC target triplet: x86_64-linux

[Bug c/43639] Missed optimization with complex long double

2010-04-04 Thread svfuerst at gmail dot com
--- Comment #2 from svfuerst at gmail dot com 2010-04-04 16:51 --- Paragraph 2 in G.5.1 defines multiplication of a real floating point type by an imaginary floating point type to be an imaginary type, not a complex type. In addition, the Rationale for Annex G states that It allow

[Bug c/43644] New: __uint128_t missed optimizations.

2010-04-04 Thread svfuerst at gmail dot com
Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: svfuerst at gmail dot com GCC build triplet: x86_64-linux GCC host triplet: x86_64-linux GCC target triplet: x86_64-linux