[PATCH] D56474: [ARM] [NEON] Add ROTR/ROTL lowering

easyaspi314 (Devin) via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 9 16:35:45 PST 2019


easyaspi314 added a comment.

Huh. Does clang even emit FSHL/FSHR instructions?

  u32x4 fshr32_13(u32x4 val, u64x2 val2)
  {
      return (val << (32 - (13 % 32))) | (val2 >> (13 % 32));
  }

That is literally the contents of the  code comment describing it.

I can do this, though:

  declare <4 x i32> @llvm.fshl.v4i32(<4 x i32> %a, <4 x i32> %b, <4 x i32> %c)
  define <4 x i32> @fshr32_13(<4 x i32> %val1, <4 x i32> %val2) nounwind
  {
    %r = call <4 x i32> @llvm.fshr.v4i32(<4 x i32> %val1, <4 x i32> %val2, <4 x i32> <i32 13, i32 13, i32 13, i32 13>)
    ret <4 x i32> %r
  }


Repository:
  rL LLVM

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

https://reviews.llvm.org/D56474





More information about the llvm-commits mailing list