aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2021-01-15 15:08:17 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2021-01-15 15:08:31 +0000
commit46aa3c6c331c20b8a4c358488fefab96f944e814 (patch)
tree639b1ec48f839a7cbdc68fefdb07dea585dd9f8d /clang/lib/Frontend/CompilerInvocation.cpp
parent17d0fb7f574ebc8a6449382983d91715b6977c32 (diff)
downloadllvm-46aa3c6c331c20b8a4c358488fefab96f944e814.zip
llvm-46aa3c6c331c20b8a4c358488fefab96f944e814.tar.gz
llvm-46aa3c6c331c20b8a4c358488fefab96f944e814.tar.bz2
[DAG] visitVECTOR_SHUFFLE - MergeInnerShuffle - improve shuffle(shuffle(x,y),shuffle(x,y)) merging
MergeInnerShuffle currently attempts to merge shuffle(shuffle(x,y),z) patterns into a single shuffle, using 1 or 2 of the x,y,z ops. However if we already match 2 ops we might be able to handle the third op if its also a shuffle that references one of the previous ops, allowing us to handle some cases like: shuffle(shuffle(x,y),shuffle(x,y)) shuffle(shuffle(shuffle(x,z),y),z) shuffle(shuffle(x,shuffle(x,y)),z) etc. This isn't an exhaustive match and is dependent on the order the candidate ops are encountered - if one of the matched ops was a shuffle that was peek-able we don't go back and try to split that, I haven't found much need for that amount of analysis yet. This is a preliminary patch that will allow us to later improve x86 HADD/HSUB matching - but needs to be reviewed separately as its in generic code and affects existing Thumb2 tests. Differential Revision: https://reviews.llvm.org/D94671
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions