Georg,

Currently we  implemented the expander ,where passing  arguments and
handling return type had been taken care in the expander along the
emitting call insn.

Do  you have any suggestion over here like other practical approach ?

Appreciate your reply here.

Thank you in advance
~Umesh

On Wed, Mar 26, 2014 at 7:42 PM, Georg-Johann Lay <a...@gjlay.de> wrote:
> Am 03/25/2014 01:28 PM, schrieb Jeff Law:
>
>> On 03/25/14 06:23, Umesh Kalappa wrote:
>>>
>>> Dear  All,
>>>
>>> The GCC source reference 4.8.1 will synthesized some of the double
>>> word operations(SI mode) like add /sub in the below case from the word
>>> size (HI) patterns,
>>>
>>> (code snippet)
>>> expand_binop_directly function in the optabs.c.
>>>
>>> /* These can be done a word at a time by propagating carries. */
>>> 1949 if ((binoptab == add_optab || binoptab == sub_optab)
>>> 1950 && mclass == MODE_INT
>>> 1951 && GET_MODE_SIZE (mode) >= 2 * UNITS_PER_WORD
>>> 1952 && optab_handler (binoptab, word_mode) != CODE_FOR_nothing)
>>> (code snippet)
>>>
>>> Current private target port will hash the above conditions ,hence
>>> compiler  will synthesizes the double word operation w.r.t word
>>> operations .
>>>
>>> We would like prevent this optimisations ,The reason for the same is
>>> we do have the  some optimised intrinsic functions ,which is coded in
>>> assemble and we want compiler to emit the intrinsic call  to these
>>> routines instead of synthesizes the double word operations.
>>>
>>> Anyone in the group can shed some lights here will be appreciated .
>>
>> Write an expander/pattern which calls your intrinsics.
>
>
> I don't think this is a good and very practical approach.
>
> Presumably it's just a flaw in the target RTX cost model.
>
> Johann
>

Reply via email to