[Bug tree-optimization/77647] New: Missed opportunity to use register value causes additional load

2016-09-19 Thread npiggin at gmail dot com
Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: npiggin at gmail dot com Target Milestone: --- static inline long load(long *p) { long ret; asm ("movq %1,%0\n\t" : "=r&q

[Bug middle-end/71509] Bitfield causes load hit store with larger store than load

2017-05-11 Thread npiggin at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71509 Nicholas Piggin changed: What|Removed |Added CC||npiggin at gmail dot com --- Comment

[Bug c/84514] New: powerpc sub optimal condition register reuse with extended inline asm

2018-02-22 Thread npiggin at gmail dot com
Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: npiggin at gmail dot com Target Milestone: --- Created attachment 43488 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=43488=edit test case with description in comm

[Bug tree-optimization/84443] New: powerpc suboptimal code generation (shrink wrap unlikely path) for Linux spinlocks

2018-02-18 Thread npiggin at gmail dot com
Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: npiggin at gmail dot com Target Milestone: --- Created attachment 43452 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=43452=edit testc

[Bug c/84483] New: powerpc sub-optimal code generation - conditional relative branch to and over blr

2018-02-20 Thread npiggin at gmail dot com
Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: npiggin at gmail dot com Target Milestone: --- Created attachment 43472 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=43472=edit test case with descript

[Bug target/84626] New: powerpc toc register is reloaded unnecessarily

2018-02-28 Thread npiggin at gmail dot com
: target Assignee: unassigned at gcc dot gnu.org Reporter: npiggin at gmail dot com Target Milestone: --- gcc version 8.0.1 20180207 (experimental) [trunk revision 257435] (Debian 8-20180207-2): Test case: void test(void (*fn)(void), unsigned long i) { while (i

[Bug target/84627] powerpc excess padding generated for POWER9 target

2018-02-28 Thread npiggin at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84627 --- Comment #2 from Nicholas Piggin --- Ah sorry, target is powerpc64le

[Bug target/84627] New: powerpc excess padding generated for POWER9 target

2018-02-28 Thread npiggin at gmail dot com
Component: target Assignee: unassigned at gcc dot gnu.org Reporter: npiggin at gmail dot com Target Milestone: --- gcc version 8.0.1 20180207 (experimental) [trunk revision 257435] (Debian 8-20180207-2): Test case: void test(void (*fn)(void), unsigned long i) { while (i

[Bug target/84627] powerpc excess padding generated for POWER9 target

2018-03-05 Thread npiggin at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84627 Nicholas Piggin changed: What|Removed |Added Resolution|INVALID |FIXED --- Comment #4 from Nicholas

[Bug middle-end/84443] powerpc suboptimal code generation (shrink wrap unlikely path) for Linux spinlocks

2018-02-27 Thread npiggin at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84443 --- Comment #3 from Nicholas Piggin --- (In reply to Segher Boessenkool from comment #2) > If you want some specific machine code for something complex like this, it > is much easier to write the machine code than to fight the compiler. Yes,

[Bug target/88765] New: powerpc64le-linux-gnu sub-optimal code generation for builtin atomic ops

2019-01-08 Thread npiggin at gmail dot com
: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: npiggin at gmail dot com Target Milestone: --- Target: powerpc64le-linux-gnu gcc version 8.2.0 (Debian 8.2.0-4) Linux uses a lot of non-trivial operations

[Bug target/94393] Powerpc suboptimal 64-bit constant comparison

2020-04-02 Thread npiggin at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94393 --- Comment #4 from Nicholas Piggin --- (In reply to Alan Modra from comment #3) > There are two parts to fixing this PR. > 1) We can do better in the sequences generated for some constants. > 2) rs6000_rtx_costs needs to be accurate, so that

[Bug target/94393] New: Powerpc suboptimal 64-bit constant comparison

2020-03-29 Thread npiggin at gmail dot com
: target Assignee: unassigned at gcc dot gnu.org Reporter: npiggin at gmail dot com Target Milestone: --- --- test case void test1(unsigned long a) { if (a > 0xc000ULL) printf("yes\n"); } void test2(

[Bug target/94395] New: Powerpc suboptimal 64-bit constant generation near large values with few bits set

2020-03-29 Thread npiggin at gmail dot com
Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: npiggin at gmail dot com Target Milestone: --- 0xc000UL is generated with li 9,-1 rldicr 9,9,0,1 0xbfffUL

[Bug rtl-optimization/96475] New: direct threaded interpreter with computed gotos generates suboptimal dispatch loop

2020-08-04 Thread npiggin at gmail dot com
Severity: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: npiggin at gmail dot com CC: segher at gcc dot gnu.org Target Milestone: --- Target: powerpc64le-linux-gnu Created attachment

[Bug target/96017] New: Powerpc suboptimal register spill in likely path

2020-07-01 Thread npiggin at gmail dot com
: target Assignee: unassigned at gcc dot gnu.org Reporter: npiggin at gmail dot com Target Milestone: --- Target: powerpc64le-linux-gnu Build: gcc version 9.2.1 20190909 (Debian 9.2.1-8) -- test.c -- extern int foo; extern void slowpath(int *); int

[Bug target/96017] Powerpc suboptimal register spill in likely path

2020-07-01 Thread npiggin at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96017 --- Comment #3 from Nicholas Piggin --- This is possibly a more targeted and simpler test case for at least one of the problems in bug 84443. I would like to re-test that case after this one is solved if it's not an obvious duplicate.

[Bug rtl-optimization/102062] powerpc suboptimal unrolling simple array sum

2021-08-25 Thread npiggin at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102062 --- Comment #14 from Nicholas Piggin --- (In reply to Bill Schmidt from comment #10) > Well, the problem is that we still generate suboptimal code on GCC 11. I > don't know whether we want to address that or not. > > I suppose we aren't going

[Bug c/102062] New: powerpc suboptimal unrolling simple array sum

2021-08-25 Thread npiggin at gmail dot com via Gcc-bugs
: c Assignee: unassigned at gcc dot gnu.org Reporter: npiggin at gmail dot com Target Milestone: --- Target: powerpc64le-linux-gnu --- test.c --- int test(int *arr, int sz) { int ret = 0; int i; if (sz <

[Bug c/102062] powerpc suboptimal unrolling simple array sum

2021-08-25 Thread npiggin at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102062 --- Comment #3 from Nicholas Piggin --- (In reply to Bill Schmidt from comment #2) > As expected, I get similar code when compiling either for P9 or P10. Oh I should have specified, -O2 is the only option. If I add

[Bug c/102062] powerpc suboptimal unrolling simple array sum

2021-08-25 Thread npiggin at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102062 --- Comment #5 from Nicholas Piggin --- (In reply to Bill Schmidt from comment #2) > As expected, I get similar code when compiling either for P9 or P10. Oh I should have specified, -O2 is the only option. If I add

[Bug c/102169] New: powerpc64 int memory operations using FP instructions

2021-09-01 Thread npiggin at gmail dot com via Gcc-bugs
Component: c Assignee: unassigned at gcc dot gnu.org Reporter: npiggin at gmail dot com CC: bergner at gcc dot gnu.org Target Milestone: --- Target: powerpc64le-linux-gnu --- test.c --- int foo, bar; void test(void) { foo = bar; } --- Using

[Bug c/102239] New: powerpc suboptimal boolean test of contiguous bits

2021-09-08 Thread npiggin at gmail dot com via Gcc-bugs
Component: c Assignee: unassigned at gcc dot gnu.org Reporter: npiggin at gmail dot com Target Milestone: --- Target: powerpc64le-linux-gnu gcc version 11.2.1 20210815 (Debian 11.2.0-2) Build flags -O2 --- test.c --- void foo(long arg) { if (arg & ((1UL &

[Bug rtl-optimization/102062] powerpc suboptimal unrolling simple array sum

2021-09-22 Thread npiggin at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102062 Nicholas Piggin changed: What|Removed |Added Resolution|--- |FIXED Status|NEW

[Bug target/102485] -Wa,-many no longer has any effect

2022-02-23 Thread npiggin at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102485 --- Comment #9 from Nicholas Piggin --- And upstream gas still doesn't even warn with -many!!

[Bug c/104671] New: -Wa,-m no longer has any effect

2022-02-23 Thread npiggin at gmail dot com via Gcc-bugs
Assignee: unassigned at gcc dot gnu.org Reporter: npiggin at gmail dot com CC: amodra at gcc dot gnu.org, bergner at gcc dot gnu.org, dje at gcc dot gnu.org, meissner at gcc dot gnu.org, pc at us dot ibm.com, segher at gcc dot gnu.org

[Bug c/104671] -Wa,-m no longer has any effect

2022-02-23 Thread npiggin at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104671 --- Comment #1 from Nicholas Piggin --- The comment in recent binutils.git commit cebc89b9328 sheds some more light on this and possibly provides a workaround in binutils for the errant .machine directive. The referenced gcc bug #101393 looks

[Bug target/102485] -Wa,-many no longer has any effect

2022-02-23 Thread npiggin at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102485 --- Comment #8 from Nicholas Piggin --- (In reply to Segher Boessenkool from comment #7) > > GCC already passes -m to the assembler though. > > That mostly is historic. So? I was pointing out the compiler already tells the assembler what

[Bug target/104671] -Wa,-m no longer has any effect

2022-02-24 Thread npiggin at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104671 --- Comment #4 from Nicholas Piggin --- (In reply to Alan Modra from comment #3) > (In reply to Nicholas Piggin from comment #0) > > Commit e154242724b084380e3221df7c08fcdbd8460674 ("Don't pass -many to the > > assembler") also added a

[Bug target/102485] -Wa,-many no longer has any effect

2022-02-23 Thread npiggin at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102485 Nicholas Piggin changed: What|Removed |Added CC||npiggin at gmail dot com --- Comment

[Bug c/106895] New: powerpc64 strange extended inline asm behaviour with register pairs

2022-09-09 Thread npiggin at gmail dot com via Gcc-bugs
Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: npiggin at gmail dot com CC: segher at gcc dot gnu.org Target Milestone: --- Target: powerpc64le-linux-gnu This is Debian 12.2.0-1 build. powerpc64

[Bug target/108239] New: -mprefixed causes too large displacements for extended inline asm memory operands

2022-12-27 Thread npiggin at gmail dot com via Gcc-bugs
Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: npiggin at gmail dot com CC: segher at gcc dot gnu.org Target Milestone: --- Target: powerpc64le-linux-gnu --- test.c

[Bug c/108018] New: Wide immediate sequences not scheduled for POWER10 fusion

2022-12-07 Thread npiggin at gmail dot com via Gcc-bugs
Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: npiggin at gmail dot com Target Milestone: --- POWER10 has "wideimmediate" fusion sequences that include addi rx,ra,si ; addis rx,rx,SI and addis rx,ra,si ; addi rx,rx,SI

[Bug target/106895] powerpc64 strange extended inline asm behaviour with register pairs

2023-06-15 Thread npiggin at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106895 Nicholas Piggin changed: What|Removed |Added Resolution|INVALID |--- Status|RESOLVED

[Bug target/106895] powerpc64 unable to specify even/odd register pairs in extended inline asm

2023-07-06 Thread npiggin at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106895 --- Comment #11 from Nicholas Piggin --- (In reply to Segher Boessenkool from comment #10) > (In reply to Nicholas Piggin from comment #9) > > I don't know why constraint is wrong and mode is right > > Simple: you would need O(2**T*N)

[Bug target/106895] powerpc64 unable to specify even/odd register pairs in extended inline asm

2023-07-08 Thread npiggin at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106895 --- Comment #13 from Nicholas Piggin --- (In reply to Segher Boessenkool from comment #12) > > I guess that would be annoying if you couldn't have modifiers on constraints > > There is no such thing as "operand modifiers". There are *output*

[Bug target/106895] powerpc64 unable to specify even/odd register pairs in extended inline asm

2023-07-06 Thread npiggin at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106895 --- Comment #9 from Nicholas Piggin --- (In reply to Segher Boessenkool from comment #8) > (In reply to Peter Bergner from comment #6) > > (In reply to Segher Boessenkool from comment #5) > > > Constraints are completely the wrong tool for