| Issue |
178332
|
| Summary |
[Hexagon] pr68532 fails to build: operand #0 must have type i32, but has type v64i16
|
| Labels |
backend:Hexagon,
regression
|
| Assignees |
quic-asaravan
|
| Reporter |
androm3da
|
In 22.1.0-rc1, we see this regression on pr68532.c with `-mv79 -mhvx -mhvx-ieee-fp -O2`.
No artifacts were dumped. So to reproduce the issue a convenient way would be to take the source file from the test suite in `llvm-test-suite/SingleSource/Regression/C/gcc-c-torture/execute/pr68532.c` and build it with the command-line args below and the toolchain from https://github.com/quic/toolchain_for_hexagon/releases/tag/v22.1.0-rc1_
```
fatal error: error in backend: invalid node: operand #0 must have type i32, but has type v64i16
t359: v64i16 = HexagonISD::AT_PCREL TargetConstantPool:v64i16<<64 x i16> <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7, i16 8, i16 9, i16 10, i16 11, i16 12, i16 13, i16 14, i16 15, i16 16, i16 17, i16 18, i16 19, i16 20, i16 21, i16 22, i16 23, i16 24, i16 25, i16 26, i16 27, i16 28, i16 29, i16 30, i16 31, i16 32, i16 33, i16 34, i16 35, i16 36, i16 37, i16 38, i16 39, i16 40, i16 41, i16 42, i16 43, i16 44, i16 45, i16 46, i16 47, i16 48, i16 49, i16 50, i16 51, i16 52, i16 53, i16 54, i16 55, i16 56, i16 57, i16 58, i16 59, i16 60, i16 61, i16 62, i16 63>> 0 [TF=1]
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: /home/brian/src/toolchain_for_hexagon/clang+llvm-22.1.0-rc1-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang --target=hexagon-unknown-linux-musl -DNDEBUG -mv79 -mhvx -mhvx-ieee-fp -O2 -w -Werror=date-time -Wno-implicit-int -Wno-int-conversion -Wno-implicit-function-declaration -w -O2 -ftree-vectorize -fno-vect-cost-model -Wno-error=incompatible-pointer-types -MD -MT SingleSource/Regression/C/gcc-c-torture/execute/CMakeFiles/GCC-C-execute-pr68532.dir/pr68532.c.o -MF SingleSource/Regression/C/gcc-c-torture/execute/CMakeFiles/GCC-C-execute-pr68532.dir/pr68532.c.o.d -o SingleSource/Regression/C/gcc-c-torture/execute/CMakeFiles/GCC-C-execute-pr68532.dir/pr68532.c.o -c /home/brian/src/toolchain_for_hexagon/llvm-test-suite/SingleSource/Regression/C/gcc-c-torture/execute/pr68532.c
1. <eof> parser at end of file
2. Code generation
3. Running pass 'Function Pass Manager' on module '/home/brian/src/toolchain_for_hexagon/llvm-test-suite/SingleSource/Regression/C/gcc-c-torture/execute/pr68532.c'.
4. Running pass 'Hexagon DAG->DAG Pattern Instruction Selection' on function '@main'
#0 0x00005b3469583c28 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/brian/src/toolchain_for_hexagon/clang+llvm-22.1.0-rc1-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+0x3ec3c28)
#1 0x00005b34695813b5 llvm::sys::RunSignalHandlers() (/home/brian/src/toolchain_for_hexagon/clang+llvm-22.1.0-rc1-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+0x3ec13b5)
#2 0x00005b34694f10e7 (anonymous namespace)::CrashRecoveryContextImpl::HandleCrash(int, unsigned long) CrashRecoveryContext.cpp:0:0
#3 0x00005b34694f107f llvm::CrashRecoveryContext::HandleExit(int) (/home/brian/src/toolchain_for_hexagon/clang+llvm-22.1.0-rc1-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+0x3e3107f)
#4 0x00005b346957e267 llvm::sys::Process::Exit(int, bool) (/home/brian/src/toolchain_for_hexagon/clang+llvm-22.1.0-rc1-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+0x3ebe267)
#5 0x00005b346838c773 (/home/brian/src/toolchain_for_hexagon/clang+llvm-22.1.0-rc1-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+0x2ccc773)
#6 0x00005b34694f89e7 llvm::report_fatal_error(llvm::Twine const&, bool) (/home/brian/src/toolchain_for_hexagon/clang+llvm-22.1.0-rc1-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+0x3e389e7)
#7 0x00005b34694f8abe (/home/brian/src/toolchain_for_hexagon/clang+llvm-22.1.0-rc1-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+0x3e38abe)
#8 0x00005b346af12383 llvm::SDNodeInfo::verifyNode(llvm::SelectionDAG const&, llvm::SDNode const*) const (/home/brian/src/toolchain_for_hexagon/clang+llvm-22.1.0-rc1-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+0x5852383)
#9 0x00005b346afb6496 llvm::SelectionDAG::getNode(unsigned int, llvm::SDLoc const&, llvm::EVT, llvm::SDValue, llvm::SDNodeFlags) (/home/brian/src/toolchain_for_hexagon/clang+llvm-22.1.0-rc1-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+0x58f6496)
#10 0x00005b34683c9a7c llvm::HexagonTargetLowering::LowerConstantPool(llvm::SDValue, llvm::SelectionDAG&) const HexagonISelLowering.cpp:0:0
#11 0x00005b34683e1000 llvm::HexagonTargetLowering::buildHvxVectorReg(llvm::ArrayRef<llvm::SDValue>, llvm::SDLoc const&, llvm::MVT, llvm::SelectionDAG&) const HexagonISelLoweringHVX.cpp:0:0
#12 0x00005b34683e8792 llvm::HexagonTargetLowering::LowerHvxBuildVector(llvm::SDValue, llvm::SelectionDAG&) const HexagonISelLoweringHVX.cpp:0:0
#13 0x00005b34683f6577 llvm::HexagonTargetLowering::LowerHvxOperation(llvm::SDValue, llvm::SelectionDAG&) const HexagonISelLoweringHVX.cpp:0:0
#14 0x00005b34683d6847 llvm::HexagonTargetLowering::LowerOperation(llvm::SDValue, llvm::SelectionDAG&) const HexagonISelLowering.cpp:0:0
#15 0x00005b346b1176f4 (anonymous namespace)::SelectionDAGLegalize::LegalizeOp(llvm::SDNode*) LegalizeDAG.cpp:0:0
#16 0x00005b346b116994 llvm::SelectionDAG::Legalize() (/home/brian/src/toolchain_for_hexagon/clang+llvm-22.1.0-rc1-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+0x5a56994)
#17 0x00005b346b003514 llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/home/brian/src/toolchain_for_hexagon/clang+llvm-22.1.0-rc1-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+0x5943514)
#18 0x00005b346b00183e llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/home/brian/src/toolchain_for_hexagon/clang+llvm-22.1.0-rc1-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+0x594183e)
#19 0x00005b346affe970 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/home/brian/src/toolchain_for_hexagon/clang+llvm-22.1.0-rc1-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+0x593e970)
#20 0x00005b34684c1707 llvm::HexagonDAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) HexagonISelDAGToDAG.cpp:0:0
#21 0x00005b346affc430 llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&) (/home/brian/src/toolchain_for_hexagon/clang+llvm-22.1.0-rc1-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+0x593c430)
#22 0x00005b346898f593 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/home/brian/src/toolchain_for_hexagon/clang+llvm-22.1.0-rc1-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+0x32cf593)
#23 0x00005b346902d0b8 llvm::FPPassManager::runOnFunction(llvm::Function&) (/home/brian/src/toolchain_for_hexagon/clang+llvm-22.1.0-rc1-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+0x396d0b8)
#24 0x00005b34690348d2 llvm::FPPassManager::runOnModule(llvm::Module&) (/home/brian/src/toolchain_for_hexagon/clang+llvm-22.1.0-rc1-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+0x39748d2)
#25 0x00005b346902db8e llvm::legacy::PassManagerImpl::run(llvm::Module&) (/home/brian/src/toolchain_for_hexagon/clang+llvm-22.1.0-rc1-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+0x396db8e)
#26 0x00005b3469ceac20 clang::emitBackendOutput(clang::CompilerInstance&, clang::CodeGenOptions&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::__1::unique_ptr<llvm::raw_pwrite_stream, std::__1::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) (/home/brian/src/toolchain_for_hexagon/clang+llvm-22.1.0-rc1-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+0x462ac20)
#27 0x00005b3469cfff78 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/home/brian/src/toolchain_for_hexagon/clang+llvm-22.1.0-rc1-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+0x463ff78)
#28 0x00005b346b7937d9 clang::ParseAST(clang::Sema&, bool, bool) (/home/brian/src/toolchain_for_hexagon/clang+llvm-22.1.0-rc1-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+0x60d37d9)
#29 0x00005b346a22ddf6 clang::FrontendAction::Execute() (/home/brian/src/toolchain_for_hexagon/clang+llvm-22.1.0-rc1-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+0x4b6ddf6)
#30 0x00005b346a1a270d clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/home/brian/src/toolchain_for_hexagon/clang+llvm-22.1.0-rc1-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+0x4ae270d)
#31 0x00005b346a3192e6 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/home/brian/src/toolchain_for_hexagon/clang+llvm-22.1.0-rc1-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+0x4c592e6)
#32 0x00005b346838badc cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/home/brian/src/toolchain_for_hexagon/clang+llvm-22.1.0-rc1-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+0x2ccbadc)
#33 0x00005b3468388735 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>) driver.cpp:0:0
#34 0x00005b346838a89d int llvm::function_ref<int (llvm::SmallVectorImpl<char const*>&)>::callback_fn<clang_main(int, char**, llvm::ToolContext const&)::$_0>(long, llvm::SmallVectorImpl<char const*>&) driver.cpp:0:0
#35 0x00005b346a01ec19 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::__1::optional<llvm::StringRef>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*, bool*) const::$_0>(long) Job.cpp:0:0
#36 0x00005b34694f101e llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/home/brian/src/toolchain_for_hexagon/clang+llvm-22.1.0-rc1-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+0x3e3101e)
#37 0x00005b346a01e283 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::__1::optional<llvm::StringRef>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*, bool*) const (/home/brian/src/toolchain_for_hexagon/clang+llvm-22.1.0-rc1-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+0x495e283)
#38 0x00005b3469fdffe2 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/home/brian/src/toolchain_for_hexagon/clang+llvm-22.1.0-rc1-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+0x491ffe2)
#39 0x00005b3469fe020e clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::__1::pair<int, clang::driver::Command const*>>&, bool) const (/home/brian/src/toolchain_for_hexagon/clang+llvm-22.1.0-rc1-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+0x492020e)
#40 0x00005b3469ffb64f clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::__1::pair<int, clang::driver::Command const*>>&) (/home/brian/src/toolchain_for_hexagon/clang+llvm-22.1.0-rc1-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+0x493b64f)
#41 0x00005b3468387dab clang_main(int, char**, llvm::ToolContext const&) (/home/brian/src/toolchain_for_hexagon/clang+llvm-22.1.0-rc1-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+0x2cc7dab)
#42 0x00005b34683968f7 main (/home/brian/src/toolchain_for_hexagon/clang+llvm-22.1.0-rc1-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+0x2cd68f7)
#43 0x000071bcda029d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#44 0x000071bcda029e40 call_init ./csu/../csu/libc-start.c:128:20
#45 0x000071bcda029e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#46 0x00005b34683862a5 _start (/home/brian/src/toolchain_for_hexagon/clang+llvm-22.1.0-rc1-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+0x2cc62a5)
hexagon-unknown-linux-musl-clang: error: clang frontend command failed with exit code 70 (use -v to see invocation)
clang version 22.1.0-rc1 (https://github.com/llvm/llvm-project 1d9c2e50753c1626f66e89222797806dae582d34)
Target: hexagon-unknown-linux-musl
Thread model: posix
InstalledDir: /home/brian/src/toolchain_for_hexagon/clang+llvm-22.1.0-rc1-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin
Build config: +assertions
```
Similar to #176176
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs