Specifying explicit parallel to define_insn of a named pattern

ganesh gopalasubramanian gganeshgcc@gmail.com
Tue Mar 31 05:48:00 GMT 2009


>There is an implicit parallel in define_insn_and_split.  Don't add your
>own.  I quote the documentation:
>
>    If the vector has only one element, that element is the template for
>    the instruction pattern.  If the vector has multiple elements, then
>    the instruction pattern is a @code{parallel} expression containing
>    the elements described.
>
>Ian
>

Hi Ian,

Does the use of 'parallel' depends on the use of 'define_insn'. That
is, whether it is used for matching an RTL template or for generating
an instruction?

>> (define_insn_and_split "<div_mod_optab_name>si3"
>>   [(parallel[                       <== *(1)
>>    (set (match_operand:SI 0 "register_operand")
>>         (any_div_op:SI (match_operand:SI 1 "register_operand")
>>                        (match_operand:SI 2 "register_operand")))
>>    (clobber (reg:SI LO_REG_NUM))
>>    (clobber (reg:SI HI_REG_NUM))
>>    ])
>> ]
>
>There is an implicit parallel in define_insn_and_split.  Don't add your
>own.  I quote the documentation:
>
>    If the vector has only one element, that element is the template for
>    the instruction pattern.  If the vector has multiple elements, then
>    the instruction pattern is a @code{parallel} expression containing
>    the elements described.
>
>Ian
>



More information about the Gcc-help mailing list