2011/6/21 Georg-Johann Lay :
> Denis Chertykov schrieb:
>
>> I'm vote for 'C'.
>>
>> Denis.
>
> So it's C :-)
>
> Johann
>
> PR target/33049
> * config/avr/avr.md (extzv): New expander.
> (*extzv): New insn.
> (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
> *
Denis Chertykov schrieb:
> I'm vote for 'C'.
>
> Denis.
So it's C :-)
Johann
PR target/33049
* config/avr/avr.md (extzv): New expander.
(*extzv): New insn.
(*extzv.qihi1, *extzv.qihi2): New insn-and-split.
* config/avr/constraints.md (C04): New constrain
2011/6/21 Georg-Johann Lay :
> Denis Chertykov schrieb:
>> 2011/6/21 Georg-Johann Lay:
>
>>> Ok. d_register_operand or satisfies_constraint_d would do. But I
>>> preferred to introduce a new constraint for 4 and avoid splitting
>>> *extzv altogether to keep it simple. Complexity of splitting is
Denis Chertykov schrieb:
> 2011/6/21 Georg-Johann Lay:
>> Ok. d_register_operand or satisfies_constraint_d would do. But I
>> preferred to introduce a new constraint for 4 and avoid splitting
>> *extzv altogether to keep it simple. Complexity of splitting is not a
>> real advantage over writing
2011/6/21 Georg-Johann Lay :
> Denis Chertykov schrieb:
>> 2011/6/20 Georg-Johann Lay :
>>> This is an optimization patch that implements extzv for 1-bit extracts.
>>
>>
>>> +(define_insn_and_split "*extzv"
>>> + [(set (match_operand:QI 0 "register_operand"
>>> "=*d,*d,*d,r")
>
Denis Chertykov schrieb:
> 2011/6/20 Georg-Johann Lay :
>> This is an optimization patch that implements extzv for 1-bit extracts.
>
>
>> +(define_insn_and_split "*extzv"
>> + [(set (match_operand:QI 0 "register_operand"
>> "=*d,*d,*d,r")
>> +(zero_extract:QI (match_o
2011/6/20 Georg-Johann Lay :
> This is an optimization patch that implements extzv for 1-bit extracts.
> +(define_insn_and_split "*extzv"
> + [(set (match_operand:QI 0 "register_operand"
> "=*d,*d,*d,r")
> +(zero_extract:QI (match_operand:QI 1 "register_operand"
This is an optimization patch that implements extzv for 1-bit extracts.
The nice thing is that AVR can do this easily with a BLD/CLR/BST
sequence, without putting pressure on d-regs and without the
requirement of source being in the same register as destination.
extzv can also be seen in conjunct