<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.arm.com/utility/feedstylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>VLD1 differences between each other</title><link>https://community.arm.com/developer/tools-software/tools/f/armds-forum/1088/vld1-differences-between-each-other</link><description> Note: This was originally posted on 30th October 2012 at http://forums.arm.com Hi Everybody! There are three instruction VLD1 in armeabi-v7a: - VLD1 (multiple single elements) on page A8-898 - VLD1 (single element to one lane) on page A8-900 - VLD1 </description><dc:language>en-US</dc:language><generator>Telligent Community 10</generator><item><title>RE: VLD1 differences between each other</title><link>https://community.arm.com/thread/3356?ContentTypeID=1</link><pubDate>Wed, 11 Sep 2013 11:08:12 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:26919441-4e08-4860-b5dd-d77dd637ed3a</guid><dc:creator>Gilead Kutnick</dc:creator><description>&lt;div&gt;&lt;i&gt;Note: This was originally posted on 30th October 2012 at &lt;a href="http://forums.arm.com"&gt;http://forums.arm.com&lt;/a&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;VLD1 (multiple single elements) performs 1-4 sequential 64-bit loads to 1-4 64-bit NEON registers. It&amp;#39;s like a normal load multiple instruction.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;VLD1 (single element to one lane) loads a single 8, 16, or 32-bit value to one lane of a vector. A lane is one element. &lt;/span&gt;&lt;br /&gt;&lt;span&gt;VLD1 (single element to all lanes) is like the above but it copies the&amp;#160; load into all of the lanes, so the entire vector is updated.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;The syntax isn&amp;#39;t really the same, because you use different notations for the registers in the register list. To update the entire vector with a vector load you use the vector name, like d0. To update one lane in the vector with a scalar load you subscript the lane number in the vector, like d0[1]. To update every lane with one scalar load you use the index notation without an index number, like d0[].&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Let&amp;#39;s say that the address you&amp;#39;re loading from contains the following, and register r0 points to it (is set to 0x0):&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;0x0: 0x01&lt;br /&gt;0x1: 0x23&lt;br /&gt;0x2: 0x45&lt;br /&gt;0x3: 0x67&lt;br /&gt;0x4: 0x89&lt;br /&gt;0x5: 0xAB&lt;br /&gt;0x6: 0xCD&lt;br /&gt;0x7: 0xEF&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;So this is what the code would do:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;// r0 = r1 = 0x0&lt;br /&gt;mov r1, r0&lt;br /&gt;&lt;br /&gt;vld1 { d0 }, [ r0 ]!&lt;br /&gt;// d0 as an 8x8 vector = [ 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF ]&lt;br /&gt;// r0 = 0x8&lt;br /&gt;&lt;br /&gt;vld1.u8 { d0[5] }, [ r1 ]!&lt;br /&gt;&lt;br /&gt;// d0 as an 8x8 vector = [ 0x01, 0x23, 0x45, 0x67, 0x89, 0x01, 0xCD, 0xEF ]&lt;br /&gt;// r1 = 0x1&lt;br /&gt;&lt;br /&gt;vld1.u8 { d0[] }, [ r1 ]!&lt;br /&gt;&lt;br /&gt;// d0 as an 8x8 vector = [ 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23, 0x23 ]&lt;br /&gt;// r1 = 0x2&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: VLD1 differences between each other</title><link>https://community.arm.com/thread/3355?ContentTypeID=1</link><pubDate>Wed, 11 Sep 2013 11:08:12 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:cb0ee4d2-8d5e-44b7-a90e-dd8c3ad38873</guid><dc:creator>Green Troll</dc:creator><description>&lt;div&gt;&lt;i&gt;Note: This was originally posted on 31st October 2012 at &lt;a href="http://forums.arm.com"&gt;http://forums.arm.com&lt;/a&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Exophase!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Thnaks again for your fantastic answer!&lt;/span&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>