Login

Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

ARM websites use two types of cookie: (1) those that enable the site to function and perform as required; and (2) analytical cookies which anonymously track visitors only while using the site. If you are not happy with this use of these cookies please review our Privacy Policy to learn how they can be disabled. By disabling cookies some features of the site will not work.

ARM Community: Implement Stride in VLD in neon - ARM Community

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Implement Stride in VLD in neon Rate Topic: ***** 1 Votes

#1 User is offline   Rnjai 

  • Member
  • Pip
  • Group: Members
  • Posts: 22
  • Joined: 27-June 12

Posted 28 June 2012 - 11:05 AM

I need to implement the following loop-
float *a, *b;
int i, n;
...
for (i = 0; i < n; i++)
{

/* a is accessed with a variable stride( can be 4/5/6 ). */
/* b is accessed with a stride of 1. */
*( a+i ) = x + b[ i ];
a+= stride;

}
Any suggestions on how to load the array a?

This post has been edited by Rnjai: 28 June 2012 - 06:38 PM

0

#2 User is offline   isogen74 

  • Super Contributor
  • PipPipPipPip
  • Group: Members
  • Posts: 1097
  • Joined: 20-March 07

Posted 28 June 2012 - 04:22 PM

I think as pointed out in your other post on this topic:

(1) you can't do this directly in NEON (for short strides you can use VLD2/3/4 and discard the bits you don't want but that isn't very efficient)
(2) generally it is inefficient, so you are better off restructuring your data, or unpacking the loop, so you don't need to.

Iso
When optimizing software, consider that the quickest code to run is the bit you removed from the call path.
2

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic