RE: A problem with one instruction multiple latencies and pipelines

2020-09-09 Thread Qian, Jianhua
Hi Segher > You can also use some other attributes to classify instructions, you don't > have > to put it all in one "type" attribute. This can of course be done later, at > a time > when it is clearer what a good design will be. > Sometimes it is obvious from the start though :-) Thank you fo

Re: A problem with one instruction multiple latencies and pipelines

2020-09-09 Thread Segher Boessenkool
Hi! On Mon, Sep 07, 2020 at 09:20:59PM +0100, Richard Sandiford wrote: > This is just personal opinion, but in general (from the point of view > of a new port, or a new subport like SVE), I think the best approach > to handling the "type" attribute is to start with the coarsest > classification th

Re: subreg vs vec_select

2020-09-09 Thread Segher Boessenkool
Hi Ilya, On Wed, Sep 09, 2020 at 11:50:56AM +0200, Ilya Leoshkevich via Gcc wrote: > I have a vector pseudo containing a single 128-bit value (V1TFmode) and > I need to access its last 64 bits (DFmode). Which of the two options > is better? > > (subreg:DF (reg:V1TF) 8) > > or > > (vec_select:DF

Re: PowerPC long double Mangling

2020-09-09 Thread Segher Boessenkool
On Wed, Sep 09, 2020 at 07:41:02PM +0200, Jakub Jelinek wrote: > On Wed, Sep 09, 2020 at 12:32:22PM -0500, Segher Boessenkool wrote: > > On Wed, Sep 09, 2020 at 07:06:41PM +0200, Thomas Koenig wrote: > > > Am 09.09.20 um 17:36 schrieb Segher Boessenkool: > > > >You can use both __ibm128 and __ieee1

Re: PowerPC long double Mangling

2020-09-09 Thread Jakub Jelinek via Gcc
On Wed, Sep 09, 2020 at 12:32:22PM -0500, Segher Boessenkool wrote: > On Wed, Sep 09, 2020 at 07:06:41PM +0200, Thomas Koenig wrote: > > Am 09.09.20 um 17:36 schrieb Segher Boessenkool: > > >You can use both __ibm128 and __ieee128 in one program, so it isn't an > > >ABI change. Only the default of

Re: PowerPC long double Mangling

2020-09-09 Thread Segher Boessenkool
On Wed, Sep 09, 2020 at 07:06:41PM +0200, Thomas Koenig wrote: > Am 09.09.20 um 17:36 schrieb Segher Boessenkool: > >You can use both __ibm128 and __ieee128 in one program, so it isn't an > >ABI change. Only the default of what "long double" means changes. And > >we have been there before, there

Re: PowerPC long double Mangling

2020-09-09 Thread Thomas Koenig via Gcc
Am 09.09.20 um 17:36 schrieb Segher Boessenkool: You can use both __ibm128 and __ieee128 in one program, so it isn't an ABI change. Only the default of what "long double" means changes. And we have been there before, there is the "e" mangling as well... For Fortran, it is an ABI change unless

Re: irange best practices document

2020-09-09 Thread Martin Sebor via Gcc
On 9/3/20 1:14 AM, Aldy Hernandez via Gcc wrote: Below is a documented we have drafted to provide guidance on using irange's and converting passes to it.  This will future proof any such passes so that they will work with the ranger, or any other mechanism using multiple sub-ranges (as opposed

Re: PowerPC long double Mangling

2020-09-09 Thread Segher Boessenkool
Hi! On Wed, Sep 09, 2020 at 02:42:36PM +0100, Jonathan Wakely wrote: > On Fri, 7 Aug 2020 at 22:14, Michael Meissner wrote: > > But assuming we want compatibility with libraries like glibc and libstdc++, > > I > > think we will have to continue to use "g" for __ibm128. Yes. > > With the long d

JUMP_LABEL returns NULL for the just created jump instruction

2020-09-09 Thread Anton Youdkevitch
Folks, I'm trying to deal with CFG construction at RTL level and I bumped into a problem when I created a jump to a certain label. After the jump is created I try to extract the label using JUMP_LABEL but I get nothing. The code looks like like this: begin_sequence (); code_label lab = gen_label

Re: PowerPC long double Mangling

2020-09-09 Thread Jonathan Wakely via Gcc
Sorry for the slow reply to this. On Fri, 7 Aug 2020 at 22:14, Michael Meissner wrote: > > One issue with doing the transition is what mangling should be used with the > new long double. > > At the moment, the current mangling is: > long double "g" > __float128 "u9__ieee1

Adding conditional move (movsicc) to MD

2020-09-09 Thread m
Hello! I am trying to get movmodecc (movsicc) going for my MRISC32 machine description, but I am unable to get GCC to use my define_expand pattern. I have tried different variants, but here is one example that I think should work:     (define_expand "movsicc"   [(set (match_operand:SI 0

subreg vs vec_select

2020-09-09 Thread Ilya Leoshkevich via Gcc
Hi! I have a vector pseudo containing a single 128-bit value (V1TFmode) and I need to access its last 64 bits (DFmode). Which of the two options is better? (subreg:DF (reg:V1TF) 8) or (vec_select:DF (subreg:V2DF (reg:V1TF) 0) (parallel [(const_int 1)])) If I use the first one, I run into a pro