[PATCH] D106376: [SVE] Add support for folding for select + masked loads

Evgeniy via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 3 02:15:07 PDT 2021


ebrevnov added a comment.

In D106376#2921260 <https://reviews.llvm.org/D106376#2921260>, @srj wrote:

> F18311746: foo.ll.zip <https://reviews.llvm.org/F18311746>
>
> Here's a repro case that is quite large, but hopefully useful:
>
> Uncompress and run:
>
>   /path/to/llvm/bin/opt foo.ll -S -passes='default<O3>' --verify-each
>
> With this change removed, I get a transformed .ll out, as expected.
>
> With this change in place, I get something like:
>
>   Assertion failed: (Op0->getType() == Op1->getType() && "Mismatched binop types"), function simplifyLogicOfAddSub, file /Users/srj/GitHub/llvm-project/13/llvm/lib/Analysis/InstructionSimplify.cpp, line 1983.
>   PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace.
>   Stack dump:
>   0.  Program arguments: /Users/srj/llvm-13-install/bin/opt /tmp/foo.ll -S -passes=default<O3> --verify-each
>   Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
>   0  opt                      0x0000000106dddf87 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 39
>   1  opt                      0x0000000106ddcd58 llvm::sys::RunSignalHandlers() + 248
>   2  opt                      0x0000000106dde5c0 SignalHandler(int) + 272
>   3  libsystem_platform.dylib 0x00007fff203b6d7d _sigtramp + 29
>   4  libsystem_platform.dylib 0x00007ffeead70e20 _sigtramp + 18446744072813781184
>   5  libsystem_c.dylib        0x00007fff202c6406 abort + 125
>   6  libsystem_c.dylib        0x00007fff202c57d8 err + 0
>   7  opt                      0x0000000107c245d3 simplifyLogicOfAddSub(llvm::Value*, llvm::Value*, llvm::Instruction::BinaryOps) (.cold.2) + 35
>   8  opt                      0x0000000105d4bf07 simplifyLogicOfAddSub(llvm::Value*, llvm::Value*, llvm::Instruction::BinaryOps) + 231
>   9  opt                      0x0000000105d3a404 SimplifyAndInst(llvm::Value*, llvm::Value*, llvm::SimplifyQuery const&, unsigned int) + 388
>   10 opt                      0x00000001068888a9 llvm::InstCombinerImpl::visitSelectInst(llvm::SelectInst&) + 25145
>   11 opt                      0x00000001067e0ae5 llvm::InstCombinerImpl::run() + 2021
>   12 opt                      0x00000001067e296e combineInstructionsOverFunction(llvm::Function&, llvm::InstCombineWorklist&, llvm::AAResults*, llvm::AssumptionCache&, llvm::TargetLibraryInfo&, llvm::TargetTransformInfo&, llvm::DominatorTree&, llvm::OptimizationRemarkEmitter&, llvm::BlockFrequencyInfo*, llvm::ProfileSummaryInfo*, unsigned int, llvm::LoopInfo*) + 894
>   13 opt                      0x00000001067e22a0 llvm::InstCombinePass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) + 1040
>   14 opt                      0x00000001070b26f2 llvm::detail::PassModel<llvm::Function, llvm::InstCombinePass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) + 18
>   15 opt                      0x000000010658387c llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) + 524
>   16 opt                      0x00000001054844a2 llvm::detail::PassModel<llvm::Function, llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function> >, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) + 18
>   17 opt                      0x0000000106588548 llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) + 664
>   18 opt                      0x0000000104e9c512 llvm::detail::PassModel<llvm::Module, llvm::ModuleToFunctionPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) + 18
>   19 opt                      0x000000010658245e llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) + 574
>   20 opt                      0x0000000104e9363c llvm::runPassPipeline(llvm::StringRef, llvm::Module&, llvm::TargetMachine*, llvm::TargetLibraryInfoImpl*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::StringRef, llvm::ArrayRef<llvm::StringRef>, llvm::opt_tool::OutputKind, llvm::opt_tool::VerifierKind, bool, bool, bool, bool, bool) + 12236
>   21 opt                      0x0000000104ea7d6f main + 15775
>   22 libdyld.dylib            0x00007fff2038cf3d start + 1
>   Abort trap: 6

We are observing this as well. Please fix it ASAP since it blocks us.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D106376



More information about the llvm-commits mailing list