[DirectX] RawBuffer Loads of double vectors indices are incorrect
- 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
Assessment
This issue has not been assessed yet.