Re: Bit fields

2009-09-01 Thread Richard Henderson
On 08/31/2009 07:20 PM, Jean Christophe Beyler wrote: Ok, is it normal to see a ashift with a negative value though or is this already sign of a (potentially) different problem? I seem to recall that it's normal. Combine was originally written in the days of VAX, where negative shifts were all

Re: Bit fields

2009-08-31 Thread Jean Christophe Beyler
On Mon, Aug 31, 2009 at 5:27 PM, Richard Henderson wrote: > On 08/31/2009 02:07 PM, Jean Christophe Beyler wrote: >> >> I am going to try this but shouldn't it be : >> >> (set (reg:QI new-scratch)) >>       (zero_extract:DI ...)) > > No. Ok, I think I understand why not: >> (insn 9 8 10 3 struct4

Re: Bit fields

2009-08-31 Thread Richard Henderson
On 08/31/2009 02:07 PM, Jean Christophe Beyler wrote: I am going to try this but shouldn't it be : (set (reg:QI new-scratch)) (zero_extract:DI ...)) No. Any ideas? Nope. You'll have to debug it. r~

Re: Bit fields

2009-08-31 Thread Jean Christophe Beyler
On Mon, Aug 31, 2009 at 4:36 PM, Richard Henderson wrote: > On 08/31/2009 01:07 PM, Jean Christophe Beyler wrote: >> >> If I replace this : >> (define_insn "extzv" >>   [(set (match_operand 0 "register_operand" "") >>         (zero_extract (match_operand 1 "register_operand" "") >>                

Re: Bit fields

2009-08-31 Thread Richard Henderson
On 08/31/2009 01:07 PM, Jean Christophe Beyler wrote: If I replace this : (define_insn "extzv" [(set (match_operand 0 "register_operand" "") (zero_extract (match_operand 1 "register_operand" "") (match_operand 2 "const_int_operand" "") (ma

Re: Bit fields

2009-08-31 Thread Jean Christophe Beyler
Sorry, you are correct. That line is the : gcc_assert (outermode != VOIDmode); of the simplify_subreg function. However, I've played around with it and saw that I made a mistake when writing up this question, I simplified what I had put in my MD file, and actually made a mistake. I apologize. I

Re: Bit fields

2009-08-31 Thread Ian Lance Taylor
Jean Christophe Beyler writes: > But I get this message: > struct4.c: In function 'goo': > struct4.c:32: internal compiler error: in simplify_subreg, at > simplify-rtx.c:4923 > > Does anybody know how can I solve this issue ? You need to start by looking at line 4923 of simplify-rtx.c to see wha