| Issue |
170241
|
| Summary |
[HLSL][SPIRV] Storing to vector swizzles crash on ptrcast handling
|
| Labels |
new issue
|
| Assignees |
|
| Reporter |
Icohedron
|
Attempting to store to a vector swizzle trips up SPIRVLegalizePointerCast. This happens in `transformStore`, where we call `findDeducedElementType`, but because the swizzle accesses individual elements of the vector we don't find a type for things like the `.y` component of that vector (that is, a gep into the vector).
https://hlsl.godbolt.org/z/489d4xYWW
```hlsl
StructuredBuffer<int4> In : register(t0);
RWStructuredBuffer<int4> Out : register(u1);
[numthreads(1,1,1)]
void main() {
Out[0].xy = In[0].xy;
}
```
Regression as of llvm/llvm-project#169090
This affects a large number of tests on the offload test suite:
- Feature/HLSLLib/abs.32.test
- Feature/HLSLLib/abs.int16.test
- Feature/HLSLLib/abs.int64.test
- Feature/HLSLLib/countbits.32.test
- Feature/HLSLLib/isinf.16.test
- Feature/HLSLLib/isinf.32.test
- Feature/HLSLLib/saturate.32.test
- Feature/HLSLLib/sign.32.test
- Feature/HLSLLib/sign.fp16.test
- Feature/HLSLLib/sign.fp64.test
- Feature/HLSLLib/sign.int16.test
- Feature/HLSLLib/sign.int64.test
- Feature/StructuredBuffer/layout.test
- Feature/TypedBuffer/dynamic-load.test
- WaveOps/WaveReadLaneAt.16.test
- WaveOps/WaveReadLaneAt.32.test
- WaveOps/WaveReadLaneAt.Float.64.test
- WaveOps/WaveReadLaneAt.Int.64.test
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs