Skip to content

[X86] Assertion failure in tile copy lowering #209512

Description

@nikic
target triple = "x86_64-unknown-linux-gnu"

define void @test(ptr %arg) #0 !dbg !4 {
    #dbg_declare(ptr %arg, !12, !DIExpression(), !15)
  %2 = call x86_amx @llvm.x86.cast.vector.to.tile.v1024i8(<1024 x i8> zeroinitializer)
  %3 = call x86_amx @llvm.x86.tdpbssd.internal(i16 0, i16 0, i16 0, x86_amx %2, x86_amx %2, x86_amx %2)
  ret void
}

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(none)
declare x86_amx @llvm.x86.cast.vector.to.tile.v1024i8(<1024 x i8>) #1

; Function Attrs: nounwind
declare x86_amx @llvm.x86.tdpbssd.internal(i16, i16, i16, x86_amx, x86_amx, x86_amx) #2

attributes #0 = { "target-features"="+amx-int8" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(none) }
attributes #2 = { nounwind }

!llvm.module.flags = !{!0}
!llvm.dbg.cu = !{!1}

!0 = !{i32 2, !"Debug Info Version", i32 3}
!1 = distinct !DICompileUnit(language: DW_LANG_Rust, file: !2, producer: "clang LLVM (rustc version 1.99.0-dev)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !3, globals: !3, splitDebugInlining: false, nameTableKind: None)
!2 = !DIFile(filename: "crates/core_arch/src/lib.rs/@/2tlafumm37hx4gaarhyxt9xzr", directory: "/home/npopov/repos/stdarch")
!3 = !{}
!4 = distinct !DISubprogram(name: "__tile_dpbssd", linkageName: "_RNvNtNtNtCs1WCDp2EkfSt_9core_arch9core_arch6x86_643amx13___tile_dpbssd", scope: !6, file: !5, line: 229, type: !10, scopeLine: 229, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !1, templateParams: !3, retainedNodes: !3)
!5 = !DIFile(filename: "crates/core_arch/src/x86_64/amx.rs", directory: "/home/npopov/repos/stdarch", checksumkind: CSK_MD5, checksum: "815d75d7ef230563b49fa3c8cf15526c")
!6 = !DINamespace(name: "amx", scope: !7)
!7 = !DINamespace(name: "x86_64", scope: !8)
!8 = !DINamespace(name: "core_arch", scope: !9)
!9 = !DINamespace(name: "core_arch", scope: null)
!10 = distinct !DISubroutineType(types: !11)
!11 = !{null}
!12 = !DILocalVariable(name: "a", arg: 2, scope: !4, file: !5, line: 229, type: !13)
!13 = !DICompositeType(tag: DW_TAG_structure_type, name: "__tile1024i", scope: !7, file: !14, size: 16384, align: 8192, flags: DIFlagPublic, elements: !3, templateParams: !3, identifier: "89cf09f73db3108c19b1cb79c6722ba3")
!14 = !DIFile(filename: "<unknown>", directory: "")
!15 = !DILocation(line: 229, column: 52, scope: !4)

Results in:

llc: /home/npopov/repos/llvm-project/llvm/lib/CodeGen/LiveRegUnits.cpp:46: void llvm::LiveRegUnits::stepBackward(const MachineInstr &): Assertion `!MI.isDebugInstr() && "Debug instructions must not affect liveness calculation"' failed.

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions