aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorAndrew Wei <weiwei64@huawei.com>2021-10-18 21:11:24 +0800
committerAndrew Wei <weiwei64@huawei.com>2021-10-18 21:24:45 +0800
commitf5056c8c16bb732a83ec12776e01915af717917b (patch)
tree8a7229415430b2bd6faa2be6b4c65cd6344d5b6e /clang/lib/Frontend/CompilerInvocation.cpp
parent1ef6bd9b1bffb3f0314840ad95cd554366fdbda7 (diff)
downloadllvm-f5056c8c16bb732a83ec12776e01915af717917b.zip
llvm-f5056c8c16bb732a83ec12776e01915af717917b.tar.gz
llvm-f5056c8c16bb732a83ec12776e01915af717917b.tar.bz2
[AArch64] Improve shuffle vector by using wider types
Try to widen element type to get a new mask value for a better permutation sequence, so that we can use NEON shuffle instructions, such as zip1/2, UZP1/2, TRN1/2, REV, INS, etc. For example: shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 6, i32 7, i32 2, i32 3> is equivalent to: shufflevector <2 x i64> %a, <2 x i64> %b, <2 x i32> <i32 3, i32 1> Finally, we can get: mov v0.d[0], v1.d[1] Reviewed By: dmgreen Differential Revision: https://reviews.llvm.org/D111619
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions