llvm / llvm/llvm-project

[DirectX] RawBuffer Loads of double vectors indices are incorrect

Open
#224,684 0 comments 0 reactions 1 assignee Claimed by @farzonl View on GitHub
backend:DirectX
Dominant language
LLVM
Stars
40.5k
Forks
18.7k
PR merge metrics
PR metrics pending

Description

This looks similar to https://github.com/llvm/llvm-project/issues/223558 because it is the inverse problem.

Fixing that bug fixed
```hlsl
ByteAddressBuffer In0 : register(t0);
ByteAddressBuffer In1 : register(t1);
RWByteAddressBuffer Out : register(u2);

[numthreads(1,1,1)]
void main() {
Out.Store >(0, asdouble(In0.Load >(0),
In1.Load >(0)));
}

```

Because we are only storing a double, but FMA loads and stores doubles
```hlsl
ByteAddressBuffer In0 : register(t0);
ByteAddressBuffer In1 : register(t1);
ByteAddressBuffer In2 : register(t2);
RWByteAddressBuffer Out : register(u3);

[numthreads(1,1,1)]
void main() {
Out.Store >(0,
fma(In0.Load >(0),
In1.Load >(0),
In2.Load >(0)));
}
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.