| Issue |
178331
|
| Summary |
[Hexagon] matrix-test-types fails to build: operand #0 must have type i32, but has type v128i8
|
| Labels |
backend:Hexagon,
regression
|
| Assignees |
quic-asaravan
|
| Reporter |
androm3da
|
In 22.1.0-rc1, we see this regression on matrix-test-types.cpp with `-mv79 -mhvx -mhvx-ieee-fp -O2`.
* [matrix-types-spec-ab0a4a.cpp](https://github.com/user-attachments/files/24897864/matrix-types-spec-ab0a4a.cpp)
* [matrix-types-spec-ab0a4a.sh](https://github.com/user-attachments/files/24897863/matrix-types-spec-ab0a4a.sh)
```
fatal error: error in backend: invalid node: operand #0 must have type i32, but has type v128i8
t18153: v128i8 = HexagonISD::AT_PCREL TargetConstantPool:v128i8<<128 x i8> <i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1>> 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-function-declaration -Wno-implicit-int -fenable-matrix -MD -MT SingleSource/UnitTests/CMakeFiles/matrix-types-spec.dir/matrix-types-spec.cpp.o -MF SingleSource/UnitTests/CMakeFiles/matrix-types-spec.dir/matrix-types-spec.cpp.o.d -o SingleSource/UnitTests/CMakeFiles/matrix-types-spec.dir/matrix-types-spec.cpp.o -c /home/brian/src/toolchain_for_hexagon/llvm-test-suite/SingleSource/UnitTests/matrix-types-spec.cpp
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/UnitTests/matrix-types-spec.cpp'.
4. Running pass 'Hexagon DAG->DAG Pattern Instruction Selection' on function '@_Z13testTransposeIfLj31ELj17EEvv'
#0 0x000060093a1d1c28 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 0x000060093a1cf3b5 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 0x000060093a13f0e7 (anonymous namespace)::CrashRecoveryContextImpl::HandleCrash(int, unsigned long) CrashRecoveryContext.cpp:0:0
#3 0x000060093a13f07f 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 0x000060093a1cc267 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 0x0000600938fda773 (/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 0x000060093a1469e7 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 0x000060093a146abe (/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 0x000060093bb60383 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 0x000060093bc04496 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 0x0000600939017a7c llvm::HexagonTargetLowering::LowerConstantPool(llvm::SDValue, llvm::SelectionDAG&) const HexagonISelLowering.cpp:0:0
#11 0x000060093902f000 llvm::HexagonTargetLowering::buildHvxVectorReg(llvm::ArrayRef<llvm::SDValue>, llvm::SDLoc const&, llvm::MVT, llvm::SelectionDAG&) const HexagonISelLoweringHVX.cpp:0:0
#12 0x000060093903190d llvm::HexagonTargetLowering::buildHvxVectorPred(llvm::ArrayRef<llvm::SDValue>, llvm::SDLoc const&, llvm::MVT, llvm::SelectionDAG&) const HexagonISelLoweringHVX.cpp:0:0
#13 0x00006009390365a9 llvm::HexagonTargetLowering::LowerHvxBuildVector(llvm::SDValue, llvm::SelectionDAG&) const HexagonISelLoweringHVX.cpp:0:0
#14 0x0000600939044577 llvm::HexagonTargetLowering::LowerHvxOperation(llvm::SDValue, llvm::SelectionDAG&) const HexagonISelLoweringHVX.cpp:0:0
#15 0x0000600939024847 llvm::HexagonTargetLowering::LowerOperation(llvm::SDValue, llvm::SelectionDAG&) const HexagonISelLowering.cpp:0:0
#16 0x000060093bd656f4 (anonymous namespace)::SelectionDAGLegalize::LegalizeOp(llvm::SDNode*) LegalizeDAG.cpp:0:0
#17 0x000060093bd64994 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)
#18 0x000060093bc51514 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)
#19 0x000060093bc4f83e 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)
#20 0x000060093bc4c970 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)
#21 0x000060093910f707 llvm::HexagonDAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) HexagonISelDAGToDAG.cpp:0:0
#22 0x000060093bc4a430 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)
#23 0x00006009395dd593 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)
#24 0x0000600939c7b0b8 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)
#25 0x0000600939c828d2 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)
#26 0x0000600939c7bb8e 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)
#27 0x000060093a938c20 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)
#28 0x000060093a94df78 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)
#29 0x000060093c3e17d9 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)
#30 0x000060093ae7bdf6 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)
#31 0x000060093adf070d 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)
#32 0x000060093af672e6 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)
#33 0x0000600938fd9adc 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)
#34 0x0000600938fd6735 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>) driver.cpp:0:0
#35 0x0000600938fd889d 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
#36 0x000060093ac6cc19 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
#37 0x000060093a13f01e 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)
#38 0x000060093ac6c283 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)
#39 0x000060093ac2dfe2 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)
#40 0x000060093ac2e20e 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)
#41 0x000060093ac4964f 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)
#42 0x0000600938fd5dab 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)
#43 0x0000600938fe48f7 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)
#44 0x000075394c829d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#45 0x000075394c829e40 call_init ./csu/../csu/libc-start.c:128:20
#46 0x000075394c829e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#47 0x0000600938fd42a5 _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
hexagon-unknown-linux-musl-clang++: note: diagnostic msg:
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
hexagon-unknown-linux-musl-clang++: note: diagnostic msg: /tmp/matrix-types-spec-ab0a4a.cpp
hexagon-unknown-linux-musl-clang++: note: diagnostic msg: /tmp/matrix-types-spec-ab0a4a.sh
hexagon-unknown-linux-musl-clang++: note: diagnostic msg:
********************
```
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs