[PATCH] D65583: [ARM] MVE big endian loads/stores

Sam Parker via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 8 02:59:32 PDT 2019


samparker accepted this revision.
samparker added a comment.
This revision is now accepted and ready to land.

What an eye opener...



================
Comment at: llvm/test/CodeGen/Thumb2/mve-loadstore.ll:16
+; CHECK-BE-NEXT:    vshr.u32 q1, q0, #1
+; CHECK-BE-NEXT:    vrev64.32 q0, q1
+; CHECK-BE-NEXT:    bx lr
----------------
dmgreen wrote:
> samparker wrote:
> > So why not vrev32? I'm having real difficulty understanding why these vrev instructions are augmented with 'size'.
> These are just because we are returning a <4 x i32>, and the calling convention is a little odd at the moment. See the other BE patch in D65581.
> 
> The way I think of the vrevs is that the do 2 different bit level reverses. This one does on to i64's, then they are reversed again in i32's. So you end up with the bytes in the correct order, but re-arranged.
> 
> Point is that this one is not really the interesting part of this test. It is just an artifact of the calling convention.
cheers!


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D65583/new/

https://reviews.llvm.org/D65583





More information about the llvm-commits mailing list