Skip to content

[hexagon - hvx] Cannot select: t50: v4i16 = bswap t96, ../examples/dr_wav.h:1190:16 #62474

@androm3da

Description

@androm3da

"Cannot select" failure compiling common.cpp from https://github.com/ggerganov/whisper.cpp/blob/9c61f5f58555bb136b71b391b40f956328f18dd5/examples/common.cpp -

$ hexagon-unknown-linux-musl-clang++ -DGGML_SHARED -DWHISPER_SHARED -I../examples -I../. -mv67 -O2 -mhvx -fvectorize -Wall -Wextra -Wpedantic -Wcast-qual -g -fPIC -MD -MT examples/CMakeFiles/common.dir/common.cpp.o -MF examples/CMakeFiles/common.dir/common.cpp.o.d -o examples/CMakeFiles/common.dir/common.cpp.o -c ../examples/common.cpp
fatal error: error in backend: Cannot select: t50: v4i16 = bswap t96, ../examples/dr_wav.h:1190:16 @[ ../examples/dr_wav.h:1257:25 @[ ../examples/dr_wav.h:1264:29 @[ ../examples/dr_wav.h:1411:13 @[ ../examples/dr_wav.h:3626:9 ] ] ] ]
  t96: v4i16 = bitcast t344, ../examples/dr_wav.h:1264:46 @[ ../examples/dr_wav.h:1411:13 @[ ../examples/dr_wav.h:3626:9 ] ]
    t344: i64 = HexagonISD::COMBINE t210, t204, ../examples/dr_wav.h:1264:46 @[ ../examples/dr_wav.h:1411:13 @[ ../examples/dr_wav.h:3626:9 ] ]
      t210: i32 = or t209, t207, ../examples/dr_wav.h:1264:46 @[ ../examples/dr_wav.h:1411:13 @[ ../examples/dr_wav.h:3626:9 ] ]
        t209: i32 = shl t208, Constant:i32<16>, ../examples/dr_wav.h:1264:46 @[ ../examples/dr_wav.h:1411:13 @[ ../examples/dr_wav.h:3626:9 ] ]
          t208: i32,ch = load<(load (s16) from %ir.cgep185 + 6, !tbaa !21531), zext from i16> t0, t260, undef:i32, ../examples/dr_wav.h:1264:46 @[ ../examples/dr_wav.h:1411:13 @[ ../examples/dr_wav.h:3626:9 ] ]
            t260: i32 = add t8, Constant:i32<6>, ../examples/dr_wav.h:1264:46 @[ ../examples/dr_wav.h:1411:13 @[ ../examples/dr_wav.h:3626:9 ] ]
              t8: i32 = add t5, t7
                t5: i32,ch = CopyFromReg t0, Register:i32 %56
                  t4: i32 = Register %56
                t7: i32 = shl t3, Constant:i32<1>
                  t3: i32 = truncate t2, ../examples/dr_wav.h:1263:5 @[ ../examples/dr_wav.h:1411:13 @[ ../examples/dr_wav.h:3626:9 ] ]

                  t6: i32 = Constant<1>
              t259: i32 = Constant<6>
            t10: i32 = undef
          t33: i32 = Constant<16>
        t207: i32,ch = load<(load (s16) from %ir.cgep185 + 4, !tbaa !21531), zext from i16> t0, t100, undef:i32, ../examples/dr_wav.h:1264:46 @[ ../examples/dr_wav.h:1411:13 @[ ../examples/dr_wav.h:3626:9 ] ]
          t100: i32 = add nuw t8, Constant:i32<4>, ../examples/dr_wav.h:1264:46 @[ ../examples/dr_wav.h:1411:13 @[ ../examples/dr_wav.h:3626:9 ] ]
            t8: i32 = add t5, t7
              t5: i32,ch = CopyFromReg t0, Register:i32 %56
                t4: i32 = Register %56
              t7: i32 = shl t3, Constant:i32<1>
                t3: i32 = truncate t2, ../examples/dr_wav.h:1263:5 @[ ../examples/dr_wav.h:1411:13 @[ ../examples/dr_wav.h:3626:9 ] ]
                  t2: i64,ch = CopyFromReg t0, Register:i64 %50, ../examples/dr_wav.h:1263:5 @[ ../examples/dr_wav.h:1411:13 @[ ../examples/dr_wav.h:3626:9 ] ]

                t6: i32 = Constant<1>
            t99: i32 = Constant<4>
          t10: i32 = undef
      t204: i32 = or t203, t201, ../examples/dr_wav.h:1264:46 @[ ../examples/dr_wav.h:1411:13 @[ ../examples/dr_wav.h:3626:9 ] ]
        t203: i32 = shl t202, Constant:i32<16>, ../examples/dr_wav.h:1264:46 @[ ../examples/dr_wav.h:1411:13 @[ ../examples/dr_wav.h:3626:9 ] ]
          t202: i32,ch = load<(load (s16) from %ir.cgep185 + 2, !tbaa !21531), zext from i16> t0, t182, undef:i32, ../examples/dr_wav.h:1264:46 @[ ../examples/dr_wav.h:1411:13 @[ ../examples/dr_wav.h:3626:9 ] ]
            t182: i32 = add nuw t8, Constant:i32<2>, ../examples/dr_wav.h:1264:46 @[ ../examples/dr_wav.h:1411:13 @[ ../examples/dr_wav.h:3626:9 ] ]
              t8: i32 = add t5, t7
                t5: i32,ch = CopyFromReg t0, Register:i32 %56
                  t4: i32 = Register %56
                t7: i32 = shl t3, Constant:i32<1>
                  t3: i32 = truncate t2, ../examples/dr_wav.h:1263:5 @[ ../examples/dr_wav.h:1411:13 @[ ../examples/dr_wav.h:3626:9 ] ]

                  t6: i32 = Constant<1>
              t146: i32 = Constant<2>
            t10: i32 = undef
          t33: i32 = Constant<16>
        t201: i32,ch = load<(load (s16) from %ir.cgep185, !tbaa !21531), zext from i16> t0, t8, undef:i32, ../examples/dr_wav.h:1264:46 @[ ../examples/dr_wav.h:1411:13 @[ ../examples/dr_wav.h:3626:9 ] ]
          t8: i32 = add t5, t7
            t5: i32,ch = CopyFromReg t0, Register:i32 %56
              t4: i32 = Register %56
            t7: i32 = shl t3, Constant:i32<1>
              t3: i32 = truncate t2, ../examples/dr_wav.h:1263:5 @[ ../examples/dr_wav.h:1411:13 @[ ../examples/dr_wav.h:3626:9 ] ]
                t2: i64,ch = CopyFromReg t0, Register:i64 %50, ../examples/dr_wav.h:1263:5 @[ ../examples/dr_wav.h:1411:13 @[ ../examples/dr_wav.h:3626:9 ] ]
                  t1: i64 = Register %50
              t6: i32 = Constant<1>
          t10: i32 = undef
In function: drwav_read_pcm_frames_be
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: /pkg/qct/software/llvm/build_tools/clang+llvm-16.0.0-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang++ -DGGML_SHARED -DWHISPER_SHARED -I../examples -I../. -mv67 -O2 -mhvx -fvectorize -Wall -Wextra -Wpedantic -Wcast-qual -g -fPIC -MD -MT examples/CMakeFiles/common.dir/common.cpp.o -MF examples/CMakeFiles/common.dir/common.cpp.o.d -o examples/CMakeFiles/common.dir/common.cpp.o -c ../examples/common.cpp
1.	<eof> parser at end of file
2.	Code generation
3.	Running pass 'Function Pass Manager' on module '../examples/common.cpp'.
4.	Running pass 'Hexagon DAG->DAG Pattern Instruction Selection' on function '@drwav_read_pcm_frames_be'
 #0 0x00000000030c3d72 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/pkg/qct/software/llvm/build_tools/clang+llvm-16.0.0-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+++0x30c3d72)
 #1 0x00000000030c1c6e llvm::sys::RunSignalHandlers() (/pkg/qct/software/llvm/build_tools/clang+llvm-16.0.0-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+++0x30c1c6e)
 #2 0x00000000030c31ad llvm::sys::CleanupOnSignal(unsigned long) (/pkg/qct/software/llvm/build_tools/clang+llvm-16.0.0-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+++0x30c31ad)
 #3 0x0000000003054606 (anonymous namespace)::CrashRecoveryContextImpl::HandleCrash(int, unsigned long) CrashRecoveryContext.cpp:0:0
 #4 0x00000000030545b9 llvm::CrashRecoveryContext::HandleExit(int) (/pkg/qct/software/llvm/build_tools/clang+llvm-16.0.0-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+++0x30545b9)
 #5 0x00000000030bdf97 llvm::sys::Process::Exit(int, bool) (/pkg/qct/software/llvm/build_tools/clang+llvm-16.0.0-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+++0x30bdf97)
 #6 0x0000000001f67282 (/pkg/qct/software/llvm/build_tools/clang+llvm-16.0.0-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+++0x1f67282)
 #7 0x0000000003058c06 llvm::report_fatal_error(llvm::Twine const&, bool) (/pkg/qct/software/llvm/build_tools/clang+llvm-16.0.0-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+++0x3058c06)
 #8 0x00000000041087e0 llvm::SelectionDAGISel::CannotYetSelect(llvm::SDNode*) (/pkg/qct/software/llvm/build_tools/clang+llvm-16.0.0-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+++0x41087e0)
 #9 0x0000000004107a66 llvm::SelectionDAGISel::SelectCodeCommon(llvm::SDNode*, unsigned char const*, unsigned int) (/pkg/qct/software/llvm/build_tools/clang+llvm-16.0.0-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+++0x4107a66)
#10 0x00000000040fce97 llvm::SelectionDAGISel::DoInstructionSelection() (/pkg/qct/software/llvm/build_tools/clang+llvm-16.0.0-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+++0x40fce97)
#11 0x00000000040fbf18 llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/pkg/qct/software/llvm/build_tools/clang+llvm-16.0.0-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+++0x40fbf18)
#12 0x00000000040f9da0 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/pkg/qct/software/llvm/build_tools/clang+llvm-16.0.0-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+++0x40f9da0)
#13 0x00000000040f6afc llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/pkg/qct/software/llvm/build_tools/clang+llvm-16.0.0-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+++0x40f6afc)
#14 0x0000000002009f24 llvm::HexagonDAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) HexagonISelDAGToDAG.cpp:0:0
#15 0x00000000024bcec8 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/pkg/qct/software/llvm/build_tools/clang+llvm-16.0.0-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+++0x24bcec8)
#16 0x00000000029d0672 llvm::FPPassManager::runOnFunction(llvm::Function&) (/pkg/qct/software/llvm/build_tools/clang+llvm-16.0.0-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+++0x29d0672)
#17 0x00000000029d68f1 llvm::FPPassManager::runOnModule(llvm::Module&) (/pkg/qct/software/llvm/build_tools/clang+llvm-16.0.0-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+++0x29d68f1)
#18 0x00000000029d0c48 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/pkg/qct/software/llvm/build_tools/clang+llvm-16.0.0-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+++0x29d0c48)
#19 0x00000000033dfe5c clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>) (/pkg/qct/software/llvm/build_tools/clang+llvm-16.0.0-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+++0x33dfe5c)
#20 0x0000000003de7f3a clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) CodeGenAction.cpp:0:0
#21 0x0000000004ea0540 clang::ParseAST(clang::Sema&, bool, bool) (/pkg/qct/software/llvm/build_tools/clang+llvm-16.0.0-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+++0x4ea0540)
#22 0x0000000003d22910 clang::FrontendAction::Execute() (/pkg/qct/software/llvm/build_tools/clang+llvm-16.0.0-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+++0x3d22910)
#23 0x0000000003c927cf clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/pkg/qct/software/llvm/build_tools/clang+llvm-16.0.0-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+++0x3c927cf)
#24 0x0000000003de0d51 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/pkg/qct/software/llvm/build_tools/clang+llvm-16.0.0-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+++0x3de0d51)
#25 0x0000000001f66db5 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/pkg/qct/software/llvm/build_tools/clang+llvm-16.0.0-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+++0x1f66db5)
#26 0x0000000001f62b17 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) driver.cpp:0:0
#27 0x0000000003afcf92 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::$_1>(long) Job.cpp:0:0
#28 0x000000000305456b llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/pkg/qct/software/llvm/build_tools/clang+llvm-16.0.0-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+++0x305456b)
#29 0x0000000003afc90e clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (/pkg/qct/software/llvm/build_tools/clang+llvm-16.0.0-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+++0x3afc90e)
#30 0x0000000003ab92a4 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/pkg/qct/software/llvm/build_tools/clang+llvm-16.0.0-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+++0x3ab92a4)
#31 0x0000000003ab959e clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/pkg/qct/software/llvm/build_tools/clang+llvm-16.0.0-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+++0x3ab959e)
#32 0x0000000003ada6c0 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/pkg/qct/software/llvm/build_tools/clang+llvm-16.0.0-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+++0x3ada6c0)
#33 0x0000000001f618e6 clang_main(int, char**) (/pkg/qct/software/llvm/build_tools/clang+llvm-16.0.0-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+++0x1f618e6)
#34 0x00007f2c39df4083 __libc_start_main /build/glibc-SzIz7B/glibc-2.31/csu/../csu/libc-start.c:342:3
#35 0x0000000001f5ecaa _start (/pkg/qct/software/llvm/build_tools/clang+llvm-16.0.0-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin/hexagon-unknown-linux-musl-clang+++0x1f5ecaa)
clang-16: error: clang frontend command failed with exit code 70 (use -v to see invocation)
clang version 16.0.0
Target: hexagon-unknown-linux-musl
Thread model: posix
InstalledDir: /pkg/qct/software/llvm/build_tools/clang+llvm-16.0.0-cross-hexagon-unknown-linux-musl/x86_64-linux-gnu/bin
clang-16: note: diagnostic msg: 
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang-16: note: diagnostic msg: /tmp/common-cb81a3.cpp
clang-16: note: diagnostic msg: /tmp/common-cb81a3.sh
clang-16: note: diagnostic msg: 

********************

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions