This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

linking error while using __smlad intrinsic on ARM11 platform

Note: This was originally posted on 16th October 2012 at http://forums.arm.com

Hi,

Iam working on ARM11 RVDS3.0. Iam trying to use SIMD intrinsics which are defined for ARM11. I tried to used __smlad intrinsic, but it is giving linking error. Following is the usage.

int a, b, c;
c=__smlad(a,b,c);

For this the error i got is                  Error   : armlink : L6218:  Undefined symbol __smlad (referred from residu.o).

Am i missing any thing here. do i need to include any header file. if YES, which file i should include.

Thanks in advance,
Chandrakala
Parents
  • Note: This was originally posted on 16th October 2012 at http://forums.arm.com

    Hi,

    Thanks for the quick reply. I have done what is mentioned in the post. following is the assembly code with -O3 optimization level.

       S:00008668 E16403E2  SMULTT   r4,r2,r3
       S:00008670 E1024382  SMLABB   r2,r2,r3,r4
       S:0000867C E082200C  ADD   r2,r2,r12

    How to directly use intrinsics or how can i inform the compiler to use SIMD instructions.

    Thanks,
    Chandrakala



    Hi Chandrakala,
    Some of the intrinsics are not defined and the compiler can figure out when to use them by analysis of the code.  In order to use SMLAD, use something like:

    z + ((short)(x>>16)*(short)(y>>16)) + ((short)x*(short)y)


    After you compile, check the generated code to make sure that the intrinsic is being accessed.





Reply
  • Note: This was originally posted on 16th October 2012 at http://forums.arm.com

    Hi,

    Thanks for the quick reply. I have done what is mentioned in the post. following is the assembly code with -O3 optimization level.

       S:00008668 E16403E2  SMULTT   r4,r2,r3
       S:00008670 E1024382  SMLABB   r2,r2,r3,r4
       S:0000867C E082200C  ADD   r2,r2,r12

    How to directly use intrinsics or how can i inform the compiler to use SIMD instructions.

    Thanks,
    Chandrakala



    Hi Chandrakala,
    Some of the intrinsics are not defined and the compiler can figure out when to use them by analysis of the code.  In order to use SMLAD, use something like:

    z + ((short)(x>>16)*(short)(y>>16)) + ((short)x*(short)y)


    After you compile, check the generated code to make sure that the intrinsic is being accessed.





Children
No data