[Bug c/88223] New: Wrong code for intrinsic memmove

2018-11-27 Thread fuz at fuz dot su
Assignee: unassigned at gcc dot gnu.org Reporter: fuz at fuz dot su Target Milestone: --- Created attachment 45103 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45103&action=edit preprocessed test case A user on reddit has pointed out that gcc 8 generates wrong code for in

[Bug c/88223] Wrong code for intrinsic memmove

2018-11-27 Thread fuz at fuz dot su
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88223 --- Comment #1 from Robert Clausecker --- Created attachment 45104 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45104&action=edit Verbose compiler output

[Bug tree-optimization/65424] New: gcc does not recognize byte swaps implemented as loop.

2015-03-14 Thread fuz at fuz dot su
Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: fuz at fuz dot su Created attachment 35034 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=35034&action=edit endianess-aware reading / writing macros gcc (r221432) is able to recognize the fo

[Bug tree-optimization/65426] New: Recognize byte-swaps when writing to buffers

2015-03-14 Thread fuz at fuz dot su
-optimization Assignee: unassigned at gcc dot gnu.org Reporter: fuz at fuz dot su Created attachment 35036 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=35036&action=edit Various instances of the aforementioned pattern It would be great if gcc could recognize co

[Bug tree-optimization/65426] Recognize byte-swaps when writing to buffers

2015-03-14 Thread fuz at fuz dot su
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65426 --- Comment #2 from Robert Clausecker --- I tried compiling this code (without static inline) on a trunk (r221432) gcc and it didn't recognize the pattern. Is there a pattern with the same effect that gets recognized?

[Bug tree-optimization/65424] gcc does not recognize byte swaps implemented as loop.

2015-03-18 Thread fuz at fuz dot su
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65424 --- Comment #2 from Robert Clausecker --- I'm looking forwards to a fix! This optimization is important for me.

[Bug c/68173] New: gcc does not terminate with -O0 on source file with a very large expression

2015-11-01 Thread fuz at fuz dot su
: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: fuz at fuz dot su Target Milestone: --- Created attachment 36632 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=36632&action=edit Testcase (file expands to a 2

[Bug c/68173] gcc does not terminate with -O0 on source file with a very large expression

2015-11-01 Thread fuz at fuz dot su
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68173 --- Comment #4 from Robert Clausecker --- No, it wasn't swapping, although I probably didn't let it run long enough to exhaust all my memory (8 GiB). Either way, the file compiles pretty quickly with -O3 so something seems to be wrong when no opt

[Bug tree-optimization/68294] New: gcc cannot deduce (a | b) != 0 from (a != 0 && b != 0)

2015-11-11 Thread fuz at fuz dot su
rity: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: fuz at fuz dot su Target Milestone: --- I implemented Stein's binary gcd algorithm, which contains code like this: int u, v, k; /* ... */ if (u =

[Bug tree-optimization/68294] gcc cannot deduce (a | b) != 0 from (a != 0 && b != 0)

2015-11-11 Thread fuz at fuz dot su
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68294 --- Comment #2 from Robert Clausecker --- Created attachment 36689 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=36689&action=edit Testcase for bug #68294

[Bug tree-optimization/68294] gcc cannot deduce (a | b) != 0 from (a != 0 && b != 0)

2015-11-11 Thread fuz at fuz dot su
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68294 --- Comment #3 from Robert Clausecker --- Sorry, I forgot to attach the test case. Here it is.

[Bug tree-optimization/65424] gcc does not recognize byte swaps implemented as loop.

2015-11-18 Thread fuz at fuz dot su
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65424 --- Comment #3 from Robert Clausecker --- I checked this again on a computer with more RAM and compilation does indeed terminate after 23 minutes. On the original machine, the compiler most likely swapped a lot contrary to my original report in w

[Bug rtl-optimization/68173] gcc takes a long time and a lot of memory with -O0 on source file with very large expression

2015-11-18 Thread fuz at fuz dot su
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68173 --- Comment #8 from Robert Clausecker --- I checked this again on a computer with more RAM and compilation does indeed terminate after 23 minutes. On the original machine, the compiler most likely swapped a lot contrary to my original report in w

[Bug tree-optimization/65424] gcc does not recognize byte swaps implemented as loop.

2015-11-18 Thread fuz at fuz dot su
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65424 --- Comment #4 from Robert Clausecker --- Sorry, comment was posted to the wrong bug. I have trouble using your bug reporting software, the “automatically go to next bug after making a change” behaviour is weird and unintuitive.

[Bug c/66663] New: gcc misses optimization emits useless test of (a & 31) with 32

2015-06-25 Thread fuz at fuz dot su
inor Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: fuz at fuz dot su Target Milestone: --- The following code: unsigned long long foo(unsigned long long x, int a) { return x << (a & 31); } compiled with a recen

[Bug c/66663] gcc misses optimization emits useless test of (a & 31) with 32

2015-06-25 Thread fuz at fuz dot su
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3 --- Comment #1 from Robert Clausecker --- Sorry. I meant to say: The branch will always be taken, not never.

[Bug tree-optimization/66664] New: gcc misses optimization emits subtraction where relocation arithmetic would suffice

2015-06-25 Thread fuz at fuz dot su
Severity: minor Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: fuz at fuz dot su Target Milestone: --- For the following C code: int foo(int x) { extern int bar[]; return bar[x - 1]; } gcc