aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp
diff options
context:
space:
mode:
authorIvan Chikish <nekotekina@gmail.com>2023-05-15 11:25:32 +0100
committerSimon Pilgrim <llvm-dev@redking.me.uk>2023-05-15 11:25:32 +0100
commit579812c081a23f70804b7214d59776f59d056914 (patch)
treef925fac82daf9c5fe2757c074494609a5ea2803c /clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp
parentb5d1ea9d2b771b25df4a0997e600beab7684800f (diff)
downloadllvm-579812c081a23f70804b7214d59776f59d056914.zip
llvm-579812c081a23f70804b7214d59776f59d056914.tar.gz
llvm-579812c081a23f70804b7214d59776f59d056914.tar.bz2
[X86] LowerRotate: prefer unpack-based algorithm
Splitting and improving from the https://reviews.llvm.org/D146357 When running tests for LowerShift, I discovered some poor codegen in rotate and funnel shift tests. This patch attempts to address some of them. Using unpack for splitting and using double-bitwidth shifts may improve performance according to https://uica.uops.info tests. No cross-lane shuffles No dirtying double-width registers Massive improvement for AVX2 rotates in some cases (var_funnnel_v8i16, var_funnnel_v16i16) — because unpack is currently only used for vXi8 vectors. Differential Revision: https://reviews.llvm.org/D149071
Diffstat (limited to 'clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp')
0 files changed, 0 insertions, 0 deletions