Skip to content

[DirectX] Indexing into TGSM flattened arrays of vectors is incorrect #145370

@Icohedron

Description

@Icohedron

Indexing into an array of vectors located in thread group shared memory are incorrect

https://godbolt.org/z/nq5Pq88eh
https://godbolt.org/z/9fesTfKre

// compile args: -E CSMain -T cs_6_4 -enable-16bit-types
groupshared uint2 g[2];
[numthreads(2, 1, 1)]
void CSMain(uint3 Tid: SV_GroupThreadId) {
  g[1][1] = 0;
}
@g.scalarized.1dim = local_unnamed_addr addrspace(3) global [4 x i32] zeroinitializer, align 8

; Function Attrs: noinline nounwind memory(write, argmem: none, inaccessiblemem: none)
define void @CSMain() local_unnamed_addr #0 {
    #dbg_value(<3 x i32> poison, !29, !DIExpression(DW_OP_LLVM_fragment, 0, 96), !39)
  store i32 0, ptr addrspace(3) @g.scalarized.1dim, align 4, !dbg !40
  ret void
}

This is potentially the cause of some cases of #140417

Metadata

Metadata

Assignees

Type

Projects

Status

Active

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions