How to do cross multiplication in neon?











up vote
0
down vote

favorite












Now, I have two 8bit arrays



One is



A[8] = {1,2,3,4,5,6,7,8}  


Another is



B[2] = {1,2} 


What I want to calculate is that:



C = A x B = {1,2,3,4,5,6,7,8} x {1, 2, 1, 2, 1, 2, 1, 2} = {1,4,3,8,5,12,7,16} 


How to do this using armv7 simd
efficiently?










share|improve this question




























    up vote
    0
    down vote

    favorite












    Now, I have two 8bit arrays



    One is



    A[8] = {1,2,3,4,5,6,7,8}  


    Another is



    B[2] = {1,2} 


    What I want to calculate is that:



    C = A x B = {1,2,3,4,5,6,7,8} x {1, 2, 1, 2, 1, 2, 1, 2} = {1,4,3,8,5,12,7,16} 


    How to do this using armv7 simd
    efficiently?










    share|improve this question


























      up vote
      0
      down vote

      favorite









      up vote
      0
      down vote

      favorite











      Now, I have two 8bit arrays



      One is



      A[8] = {1,2,3,4,5,6,7,8}  


      Another is



      B[2] = {1,2} 


      What I want to calculate is that:



      C = A x B = {1,2,3,4,5,6,7,8} x {1, 2, 1, 2, 1, 2, 1, 2} = {1,4,3,8,5,12,7,16} 


      How to do this using armv7 simd
      efficiently?










      share|improve this question















      Now, I have two 8bit arrays



      One is



      A[8] = {1,2,3,4,5,6,7,8}  


      Another is



      B[2] = {1,2} 


      What I want to calculate is that:



      C = A x B = {1,2,3,4,5,6,7,8} x {1, 2, 1, 2, 1, 2, 1, 2} = {1,4,3,8,5,12,7,16} 


      How to do this using armv7 simd
      efficiently?







      simd neon armv7






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Oct 12 at 4:26

























      asked Oct 12 at 4:17









      Y.Zhu

      177




      177
























          1 Answer
          1






          active

          oldest

          votes

















          up vote
          0
          down vote













          Define B as B[8] = {1,2,1,2,1,2,1,2} and use vld1_u8 and vmul_u8.






          share|improve this answer





















          • How to define B as {1,2,1,2,1,2,1,2} ?Here i need the cross load and the duplication, and that's the point.
            – Y.Zhu
            Nov 12 at 6:00













          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














           

          draft saved


          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f52772200%2fhow-to-do-cross-multiplication-in-neon%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes








          up vote
          0
          down vote













          Define B as B[8] = {1,2,1,2,1,2,1,2} and use vld1_u8 and vmul_u8.






          share|improve this answer





















          • How to define B as {1,2,1,2,1,2,1,2} ?Here i need the cross load and the duplication, and that's the point.
            – Y.Zhu
            Nov 12 at 6:00

















          up vote
          0
          down vote













          Define B as B[8] = {1,2,1,2,1,2,1,2} and use vld1_u8 and vmul_u8.






          share|improve this answer





















          • How to define B as {1,2,1,2,1,2,1,2} ?Here i need the cross load and the duplication, and that's the point.
            – Y.Zhu
            Nov 12 at 6:00















          up vote
          0
          down vote










          up vote
          0
          down vote









          Define B as B[8] = {1,2,1,2,1,2,1,2} and use vld1_u8 and vmul_u8.






          share|improve this answer












          Define B as B[8] = {1,2,1,2,1,2,1,2} and use vld1_u8 and vmul_u8.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 11 at 4:47









          rainhaven

          1403




          1403












          • How to define B as {1,2,1,2,1,2,1,2} ?Here i need the cross load and the duplication, and that's the point.
            – Y.Zhu
            Nov 12 at 6:00




















          • How to define B as {1,2,1,2,1,2,1,2} ?Here i need the cross load and the duplication, and that's the point.
            – Y.Zhu
            Nov 12 at 6:00


















          How to define B as {1,2,1,2,1,2,1,2} ?Here i need the cross load and the duplication, and that's the point.
          – Y.Zhu
          Nov 12 at 6:00






          How to define B as {1,2,1,2,1,2,1,2} ?Here i need the cross load and the duplication, and that's the point.
          – Y.Zhu
          Nov 12 at 6:00




















           

          draft saved


          draft discarded



















































           


          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f52772200%2fhow-to-do-cross-multiplication-in-neon%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Xamarin.iOS Cant Deploy on Iphone

          Glorious Revolution

          Dulmage-Mendelsohn matrix decomposition in Python