[llvm] [CodeGenPrepare] Don't sink icmp eq (and X, mask), 0 into return blocks (PR #200460)
via llvm-commits
llvm-commits at lists.llvm.org
Sat Aug 15 03:25:40 PDT 2026
github-actions[bot] wrote:
<!--PREMERGE ADVISOR COMMENT: Windows-->
# :window: Windows x64 Test Results
* 136480 tests passed
* 3666 tests skipped
All executed tests passed, but another part of the build **failed**. Click on a failure below to see the details.
<details>
<summary>[code=4294967295] tools/clang/tools/extra/clangd/unittests/ClangdTests.exe</summary>
```
FAILED: [code=4294967295] tools/clang/tools/extra/clangd/unittests/ClangdTests.exe
C:\Windows\system32\cmd.exe /C "cd . && C:\BuildTools\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -E vs_link_exe --msvc-ver=1944 --intdir=tools\clang\tools\extra\clangd\unittests\CMakeFiles\ClangdTests.dir --rc="C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\x64\rc.exe" --mt="C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\x64\mt.exe" --manifests -- C:\clang\clang-msvc\bin\lld-link.exe /nologo @CMakeFiles\ClangdTests.rsp /out:tools\clang\tools\extra\clangd\unittests\ClangdTests.exe /implib:tools\clang\tools\extra\clangd\unittests\ClangdTests.lib /pdb:tools\clang\tools\extra\clangd\unittests\ClangdTests.pdb /version:0.0 /MANIFEST:NO /Brepro /INCREMENTAL:NO /subsystem:console /STACK:10000000 && cd ."
LINK: command "C:\clang\clang-msvc\bin\lld-link.exe /nologo @CMakeFiles\ClangdTests.rsp /out:tools\clang\tools\extra\clangd\unittests\ClangdTests.exe /implib:tools\clang\tools\extra\clangd\unittests\ClangdTests.lib /pdb:tools\clang\tools\extra\clangd\unittests\ClangdTests.pdb /version:0.0 /MANIFEST:NO /Brepro /INCREMENTAL:NO /subsystem:console /STACK:10000000" failed (exit code 1) with the following output:
lld-link: error: undefined symbol: public: class llvm::opt::Option const __cdecl llvm::opt::OptTable::getOption(class llvm::opt::OptSpecifier) const
>>> referenced by clangFrontend.lib(CompilerInvocation.cpp.obj):(private: static void __cdecl clang::CompilerInvocationBase::GenerateCodeGenArgs(class clang::CodeGenOptions const &, class llvm::function_ref<void __cdecl(class llvm::Twine const &)>, class llvm::Triple const &, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &, class clang::LangOptions const *))
>>> referenced by clangFrontend.lib(CompilerInvocation.cpp.obj):(private: static void __cdecl clang::CompilerInvocationBase::GenerateCodeGenArgs(class clang::CodeGenOptions const &, class llvm::function_ref<void __cdecl(class llvm::Twine const &)>, class llvm::Triple const &, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &, class clang::LangOptions const *))
>>> referenced by clangFrontend.lib(CompilerInvocation.cpp.obj):(private: static void __cdecl clang::CompilerInvocationBase::GenerateCodeGenArgs(class clang::CodeGenOptions const &, class llvm::function_ref<void __cdecl(class llvm::Twine const &)>, class llvm::Triple const &, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &, class clang::LangOptions const *))
>>> referenced 174 more times
lld-link: error: undefined symbol: public: bool __cdecl llvm::opt::Option::matches(class llvm::opt::OptSpecifier) const
>>> referenced by clangFrontend.lib(CompilerInvocation.cpp.obj):(private: static bool __cdecl clang::CompilerInvocation::ParseCodeGenArgs(class clang::CodeGenOptions &, class llvm::opt::ArgList &, class clang::InputKind, class clang::DiagnosticsEngine &, class llvm::Triple const &, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &, class clang::LangOptions const &))
>>> referenced by clangFrontend.lib(CompilerInvocation.cpp.obj):(private: static bool __cdecl clang::CompilerInvocation::ParseCodeGenArgs(class clang::CodeGenOptions &, class llvm::opt::ArgList &, class clang::InputKind, class clang::DiagnosticsEngine &, class llvm::Triple const &, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &, class clang::LangOptions const &))
>>> referenced by clangFrontend.lib(CompilerInvocation.cpp.obj):(private: static bool __cdecl clang::CompilerInvocation::ParseCodeGenArgs(class clang::CodeGenOptions &, class llvm::opt::ArgList &, class clang::InputKind, class clang::DiagnosticsEngine &, class llvm::Triple const &, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &, class clang::LangOptions const &))
>>> referenced 1241 more times
lld-link: error: undefined symbol: public: class std::vector<class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>>, class std::allocator<class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>>>> __cdecl llvm::opt::ArgList::getAllArgValues(class llvm::opt::OptSpecifier) const
>>> referenced by clangFrontend.lib(CompilerInvocation.cpp.obj):(private: static bool __cdecl clang::CompilerInvocation::ParseCodeGenArgs(class clang::CodeGenOptions &, class llvm::opt::ArgList &, class clang::InputKind, class clang::DiagnosticsEngine &, class llvm::Triple const &, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &, class clang::LangOptions const &))
>>> referenced by clangFrontend.lib(CompilerInvocation.cpp.obj):(private: static bool __cdecl clang::CompilerInvocation::ParseCodeGenArgs(class clang::CodeGenOptions &, class llvm::opt::ArgList &, class clang::InputKind, class clang::DiagnosticsEngine &, class llvm::Triple const &, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &, class clang::LangOptions const &))
>>> referenced by clangFrontend.lib(CompilerInvocation.cpp.obj):(private: static bool __cdecl clang::CompilerInvocation::ParseCodeGenArgs(class clang::CodeGenOptions &, class llvm::opt::ArgList &, class clang::InputKind, class clang::DiagnosticsEngine &, class llvm::Triple const &, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &, class clang::LangOptions const &))
>>> referenced 97 more times
lld-link: error: undefined symbol: public: class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> __cdecl llvm::opt::Arg::getAsString(class llvm::opt::ArgList const &) const
>>> referenced by clangFrontend.lib(CompilerInvocation.cpp.obj):(private: static bool __cdecl clang::CompilerInvocation::ParseCodeGenArgs(class clang::CodeGenOptions &, class llvm::opt::ArgList &, class clang::InputKind, class clang::DiagnosticsEngine &, class llvm::Triple const &, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &, class clang::LangOptions const &))
>>> referenced by clangFrontend.lib(CompilerInvocation.cpp.obj):(private: static bool __cdecl clang::CompilerInvocation::ParseCodeGenArgs(class clang::CodeGenOptions &, class llvm::opt::ArgList &, class clang::InputKind, class clang::DiagnosticsEngine &, class llvm::Triple const &, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &, class clang::LangOptions const &))
>>> referenced by clangFrontend.lib(CompilerInvocation.cpp.obj):(private: static bool __cdecl clang::CompilerInvocation::ParseCodeGenArgs(class clang::CodeGenOptions &, class llvm::opt::ArgList &, class clang::InputKind, class clang::DiagnosticsEngine &, class llvm::Triple const &, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &, class clang::LangOptions const &))
>>> referenced 271 more times
lld-link: error: undefined symbol: public: bool __cdecl llvm::opt::ArgList::hasFlag(class llvm::opt::OptSpecifier, class llvm::opt::OptSpecifier, bool) const
>>> referenced by clangFrontend.lib(CompilerInvocation.cpp.obj):(private: static bool __cdecl clang::CompilerInvocation::ParseCodeGenArgs(class clang::CodeGenOptions &, class llvm::opt::ArgList &, class clang::InputKind, class clang::DiagnosticsEngine &, class llvm::Triple const &, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &, class clang::LangOptions const &))
>>> referenced by clangFrontend.lib(CompilerInvocation.cpp.obj):(private: static bool __cdecl clang::CompilerInvocation::ParseCodeGenArgs(class clang::CodeGenOptions &, class llvm::opt::ArgList &, class clang::InputKind, class clang::DiagnosticsEngine &, class llvm::Triple const &, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &, class clang::LangOptions const &))
>>> referenced by clangFrontend.lib(CompilerInvocation.cpp.obj):(private: static bool __cdecl clang::CompilerInvocation::ParseCodeGenArgs(class clang::CodeGenOptions &, class llvm::opt::ArgList &, class clang::InputKind, class clang::DiagnosticsEngine &, class llvm::Triple const &, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &, class clang::LangOptions const &))
>>> referenced 436 more times
lld-link: error: undefined symbol: public: class llvm::StringRef __cdecl llvm::opt::ArgList::getLastArgValue(class llvm::opt::OptSpecifier, class llvm::StringRef) const
>>> referenced by clangFrontend.lib(CompilerInvocation.cpp.obj):(private: static bool __cdecl clang::CompilerInvocation::ParseCodeGenArgs(class clang::CodeGenOptions &, class llvm::opt::ArgList &, class clang::InputKind, class clang::DiagnosticsEngine &, class llvm::Triple const &, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &, class clang::LangOptions const &))
>>> referenced by clangFrontend.lib(CompilerInvocation.cpp.obj):(private: static bool __cdecl clang::CompilerInvocation::ParseCodeGenArgs(class clang::CodeGenOptions &, class llvm::opt::ArgList &, class clang::InputKind, class clang::DiagnosticsEngine &, class llvm::Triple const &, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &, class clang::LangOptions const &))
>>> referenced by clangFrontend.lib(CompilerInvocation.cpp.obj):(private: static bool __cdecl clang::CompilerInvocation::ParseCodeGenArgs(class clang::CodeGenOptions &, class llvm::opt::ArgList &, class clang::InputKind, class clang::DiagnosticsEngine &, class llvm::Triple const &, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &, class clang::LangOptions const &))
>>> referenced 71 more times
lld-link: error: undefined symbol: public: void __cdecl llvm::opt::Arg::render(class llvm::opt::ArgList const &, class llvm::SmallVector<char const *, 16> &) const
>>> referenced by clangFrontend.lib(CompilerInvocation.cpp.obj):(private: static bool __cdecl clang::CompilerInvocation::ParseCodeGenArgs(class clang::CodeGenOptions &, class llvm::opt::ArgList &, class clang::InputKind, class clang::DiagnosticsEngine &, class llvm::Triple const &, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &, class clang::LangOptions const &))
>>> referenced by clangDriver.lib(Driver.cpp.obj):(void __cdecl printArgList(class llvm::raw_ostream &, class llvm::opt::ArgList const &))
>>> referenced by clangDriver.lib(AMDGPU.cpp.obj):(public: virtual void __cdecl clang::driver::toolchains::AMDGPUToolChain::addClangTargetOptions(class llvm::opt::ArgList const &, class llvm::SmallVector<char const *, 16> &, struct clang::BoundArch, enum clang::driver::Action::OffloadKind) const)
>>> referenced 256 more times
lld-link: error: undefined symbol: private: struct std::pair<unsigned int, unsigned int> __cdecl llvm::opt::ArgList::getRange(class std::initializer_list<class llvm::opt::OptSpecifier>) const
>>> referenced by clangFrontend.lib(CompilerInvocation.cpp.obj):(private: static bool __cdecl clang::CompilerInvocation::ParseCodeGenArgs(class clang::CodeGenOptions &, class llvm::opt::ArgList &, class clang::InputKind, class clang::DiagnosticsEngine &, class llvm::Triple const &, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> const &, class clang::LangOptions const &))
>>> referenced by clangFrontend.lib(CompilerInvocation.cpp.obj):(public: class llvm::opt::Arg * __cdecl llvm::opt::ArgList::getLastArg<enum clang::options::ID>(enum clang::options::ID) const)
>>> referenced by clangFrontend.lib(CompilerInvocation.cpp.obj):(public: class llvm::iterator_range<class llvm::opt::arg_iterator<class llvm::opt::Arg *const *, 2>> __cdecl llvm::opt::ArgList::filtered<enum clang::options::ID, enum clang::options::ID>(enum clang::options::ID, enum clang::options::ID) const)
>>> referenced 128 more times
lld-link: error: undefined symbol: public: class llvm::opt::InputArgList __cdecl llvm::opt::OptTable::ParseArgs(class llvm::ArrayRef<char const *>, unsigned int &, unsigned int &, class llvm::opt::Visibility) const
>>> referenced by clangFrontend.lib(CompilerInvocation.cpp.obj):(class std::unique_ptr<class clang::DiagnosticOptions, struct std::default_delete<class clang::DiagnosticOptions>> __cdecl clang::CreateAndPopulateDiagOpts(class llvm::ArrayRef<char const *>))
>>> referenced by clangFrontend.lib(CompilerInvocation.cpp.obj):(private: static bool __cdecl clang::CompilerInvocation::CreateFromArgsImpl(class clang::CompilerInvocation &, class llvm::ArrayRef<char const *>, class clang::DiagnosticsEngine &, char const *))
>>> referenced by clangDaemon.lib(CompileCommands.cpp.obj):(public: void __cdecl clang::clangd::CommandMangler::operator()(struct clang::tooling::CompileCommand &, class llvm::StringRef) const)
>>> referenced 1 more times
lld-link: error: undefined symbol: private: void __cdecl llvm::opt::InputArgList::releaseMemory(void)
>>> referenced by clangFrontend.lib(CompilerInvocation.cpp.obj):(public: __cdecl llvm::opt::InputArgList::~InputArgList(void))
>>> referenced by clangTooling.lib(Tooling.cpp.obj)
>>> referenced by clangDaemon.lib(CompileCommands.cpp.obj):(public: void __cdecl clang::clangd::CommandMangler::operator()(struct clang::tooling::CompileCommand &, class llvm::StringRef) const)
>>> referenced 1 more times
lld-link: error: undefined symbol: public: unsigned int __cdecl llvm::opt::OptTable::findNearest(class llvm::StringRef, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> &, class llvm::opt::Visibility, unsigned int, unsigned int) const
>>> referenced by clangFrontend.lib(CompilerInvocation.cpp.obj):(private: static bool __cdecl clang::CompilerInvocation::CreateFromArgsImpl(class clang::CompilerInvocation &, class llvm::ArrayRef<char const *>, class clang::DiagnosticsEngine &, char const *))
>>> referenced by clangDriver.lib(Driver.cpp.obj):(public: class llvm::opt::InputArgList __cdecl clang::driver::Driver::ParseArgStrings(class llvm::ArrayRef<char const *>, bool, bool &) const)
>>> referenced by clangDriver.lib(Driver.cpp.obj):(public: class llvm::opt::InputArgList __cdecl clang::driver::Driver::ParseArgStrings(class llvm::ArrayRef<char const *>, bool, bool &) const)
>>> referenced 3 more times
lld-link: error: undefined symbol: public: virtual char const * __cdecl llvm::opt::InputArgList::MakeArgStringRef(class llvm::StringRef) const
>>> referenced by clangDaemon.lib(CompileCommands.cpp.obj):(const llvm::opt::InputArgList::`vftable')
>>> referenced by clangDriver.lib(Driver.cpp.obj)
>>> referenced by clangTooling.lib(InterpolatingCompilationDatabase.cpp.obj)
lld-link: error: undefined symbol: public: virtual __cdecl llvm::opt::OptTable::~OptTable(void)
>>> referenced by clangOptions.lib(DriverOptions.cpp.obj):(void __cdecl `dynamic atexit destructor for '`class llvm::opt::OptTable const & __cdecl clang::getDriverOptTable(void)'::`2'::Table''(void))
>>> referenced by clangOptions.lib(DriverOptions.cpp.obj):(public: virtual void * __cdecl llvm::opt::PrecomputedOptTable::`scalar deleting dtor'(unsigned int))
>>> referenced by clangOptions.lib(DriverOptions.cpp.obj):(public: virtual void * __cdecl `anonymous namespace'::DriverOptTable::`scalar deleting dtor'(unsigned int))
lld-link: error: undefined symbol: protected: __cdecl llvm::opt::OptTable::OptTable(class llvm::StringTable const &, class llvm::ArrayRef<class llvm::StringTable::Offset>, class llvm::ArrayRef<struct llvm::opt::OptTable::Info>, bool, class llvm::ArrayRef<struct llvm::opt::OptTable::SubCommand>, class llvm::ArrayRef<unsigned int>)
>>> referenced by clangOptions.lib(DriverOptions.cpp.obj):(protected: __cdecl llvm::opt::PrecomputedOptTable::PrecomputedOptTable(class llvm::StringTable const &, class llvm::ArrayRef<class llvm::StringTable::Offset>, class llvm::ArrayRef<struct llvm::opt::OptTable::Info>, class llvm::ArrayRef<class llvm::StringTable::Offset>, bool, class llvm::ArrayRef<struct llvm::opt::OptTable::SubCommand>, class llvm::ArrayRef<unsigned int>))
lld-link: error: undefined symbol: protected: void __cdecl llvm::opt::OptTable::buildPrefixChars(void)
>>> referenced by clangOptions.lib(DriverOptions.cpp.obj):(protected: __cdecl llvm::opt::PrecomputedOptTable::PrecomputedOptTable(class llvm::StringTable const &, class llvm::ArrayRef<class llvm::StringTable::Offset>, class llvm::ArrayRef<struct llvm::opt::OptTable::Info>, class llvm::ArrayRef<class llvm::StringTable::Offset>, bool, class llvm::ArrayRef<struct llvm::opt::OptTable::SubCommand>, class llvm::ArrayRef<unsigned int>))
lld-link: error: undefined symbol: public: unsigned int __cdecl llvm::opt::InputArgList::MakeIndex(class llvm::StringRef) const
>>> referenced by clangDriver.lib(Driver.cpp.obj):(class llvm::opt::Arg * __cdecl clang::driver::makeInputArg(class llvm::opt::DerivedArgList &, class llvm::opt::OptTable const &, class llvm::StringRef, bool))
>>> referenced by clangDriver.lib(Driver.cpp.obj):(private: class llvm::opt::DerivedArgList * __cdecl clang::driver::Driver::TranslateInputArgs(class llvm::opt::InputArgList const &) const)
>>> referenced by clangDriver.lib(Driver.cpp.obj):(public: void __cdecl clang::driver::Driver::CreateOffloadingDeviceToolChains(class clang::driver::Compilation &, class llvm::SmallVector<struct std::pair<enum clang::driver::types::ID, class llvm::opt::Arg const *>, 16> &))
>>> referenced 8 more times
lld-link: error: undefined symbol: public: __cdecl llvm::opt::Arg::Arg(class llvm::opt::Option, class llvm::StringRef, unsigned int, char const *, class llvm::opt::Arg const *)
>>> referenced by clangDriver.lib(Driver.cpp.obj):(class llvm::opt::Arg * __cdecl clang::driver::makeInputArg(class llvm::opt::DerivedArgList &, class llvm::opt::OptTable const &, class llvm::StringRef, bool))
>>> referenced by clangDriver.lib(Driver.cpp.obj):(private: class llvm::opt::DerivedArgList * __cdecl clang::driver::Driver::TranslateInputArgs(class llvm::opt::InputArgList const &) const)
>>> referenced by clangDriver.lib(Driver.cpp.obj):(public: void __cdecl clang::driver::Driver::BuildInputs(class clang::driver::ToolChain const &, class llvm::opt::DerivedArgList &, class llvm::SmallVector<struct std::pair<enum clang::driver::types::ID, class llvm::opt::Arg const *>, 16> &) const)
>>> referenced 3 more times
lld-link: error: undefined symbol: public: void __cdecl llvm::opt::DerivedArgList::AddSynthesizedArg(class llvm::opt::Arg *)
>>> referenced by clangDriver.lib(Driver.cpp.obj):(class llvm::opt::Arg * __cdecl clang::driver::makeInputArg(class llvm::opt::DerivedArgList &, class llvm::opt::OptTable const &, class llvm::StringRef, bool))
>>> referenced by clangDriver.lib(Driver.cpp.obj):(private: class llvm::opt::DerivedArgList * __cdecl clang::driver::Driver::TranslateInputArgs(class llvm::opt::InputArgList const &) const)
>>> referenced by clangDriver.lib(Driver.cpp.obj):(public: void __cdecl clang::driver::Driver::CreateOffloadingDeviceToolChains(class clang::driver::Compilation &, class llvm::SmallVector<struct std::pair<enum clang::driver::types::ID, class llvm::opt::Arg const *>, 16> &))
>>> referenced 6 more times
lld-link: error: undefined symbol: public: __cdecl llvm::opt::DerivedArgList::DerivedArgList(class llvm::opt::InputArgList const &)
>>> referenced by clangDriver.lib(Driver.cpp.obj):(private: class llvm::opt::DerivedArgList * __cdecl clang::driver::Driver::TranslateInputArgs(class llvm::opt::InputArgList const &) const)
>>> referenced by clangDriver.lib(Driver.cpp.obj):(public: class clang::driver::Compilation * __cdecl clang::driver::Driver::BuildCompilation(class llvm::ArrayRef<char const *>))
>>> referenced by clangDriver.lib(ToolChain.cpp.obj):(public: virtual class llvm::opt::DerivedArgList * __cdecl clang::driver::ToolChain::TranslateOpenMPTargetArgs(class llvm::opt::DerivedArgList const &, bool, class llvm::SmallVectorImpl<class llvm::opt::Arg *> &) const)
>>> referenced 9 more times
lld-link: error: undefined symbol: public: class llvm::opt::Arg * __cdecl llvm::opt::DerivedArgList::MakeFlagArg(class llvm::opt::Arg const *, class llvm::opt::Option) const
>>> referenced by clangDriver.lib(Driver.cpp.obj):(private: class llvm::opt::DerivedArgList * __cdecl clang::driver::Driver::TranslateInputArgs(class llvm::opt::InputArgList const &) const)
>>> referenced by clangDriver.lib(Driver.cpp.obj):(private: class llvm::opt::DerivedArgList * __cdecl clang::driver::Driver::TranslateInputArgs(class llvm::opt::InputArgList const &) const)
>>> referenced by clangDriver.lib(Driver.cpp.obj):(private: class llvm::opt::DerivedArgList * __cdecl clang::driver::Driver::TranslateInputArgs(class llvm::opt::InputArgList const &) const)
>>> referenced 21 more times
lld-link: error: too many errors emitted, stopping now (use /errorlimit:0 to see all errors)
```
</details>
If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the `infrastructure` label.
https://github.com/llvm/llvm-project/pull/200460
More information about the llvm-commits
mailing list