[PATCH] D111135: [AArch64][SVE] Improve VECTOR_SPLICE codegen for VL > 128-bit

Peter Waller via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 6 04:38:48 PDT 2021


peterwaller-arm added inline comments.


================
Comment at: llvm/test/CodeGen/AArch64/named-vector-shuffles-sve.ll:216
 ; CHECK:       // %bb.0:
-; CHECK-NEXT:    ext z0.b, z0.b, z1.b, #0
+; CHECK-NEXT:    ext z0.b, z0.b, z1.b, #8
 ; CHECK-NEXT:    ret
----------------
I expected to find a #2 here (1 x f16's worth of bytes), but there is a #8, which I can't quickly explain?


================
Comment at: llvm/test/CodeGen/AArch64/named-vector-shuffles-sve.ll:227
 ; CHECK-NEXT:    ret
-  %res = call <vscale x 2 x half> @llvm.experimental.vector.splice.nxv2f16(<vscale x 2 x half> %a, <vscale x 2 x half> %b, i32 1)
+  %res = call <vscale x 2 x half> @llvm.experimental.vector.splice.nxv2f16(<vscale x 2 x half> %a, <vscale x 2 x half> %b, i32 31)
   ret <vscale x 2 x half> %res
----------------
Continuing the logic of the earlier comment I make the immediate maximum to be 255 (bytes) - 2 (1 x f16) = 253, but we can't access byte 253 because we need a whole number of 2-byte halves, so I'm expecting to see 252/2 = 126 as input and #252 as the immediate.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D111135



More information about the llvm-commits mailing list