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* m
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) constrain
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 this.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106895
Nicholas Piggin changed:
What|Removed |Added
Resolution|INVALID |---
Status|RESOLVED
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
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
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
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 workaroun
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 l
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
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!!
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
instr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102485
Nicholas Piggin changed:
What|Removed |Added
CC||npiggin at gmail dot com
--- Comment
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102062
Nicholas Piggin changed:
What|Removed |Added
Resolution|--- |FIXED
Status|NEW
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 &
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
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
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
-fvariable-expansion-in-unrol
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
-fvariable-expansion-in-unrol
: 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 <
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
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.
: 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
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 exp
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
: 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(unsigned long a)
{
: 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, and
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84627
Nicholas Piggin changed:
What|Removed |Added
Resolution|INVALID |FIXED
--- Comment #4 from Nicholas Pig
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84627
--- Comment #2 from Nicholas Piggin ---
Ah sorry, target is powerpc64le
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
: 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
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, und
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&action=edit
test case with description in 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&action=edit
test case with desc
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&action=edit
t
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71509
Nicholas Piggin changed:
What|Removed |Added
CC||npiggin at gmail dot com
--- Comment
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
37 matches
Mail list logo