Add test cases for redundant type conversions

These redundant type conversions were generating illegal SPIR-V when
only the 8-bit/16-bit storage extensions and not the corresponding
arithmetic extensions were enabled.
This commit is contained in:
Arcady Goldmints-Orlov 2024-06-20 17:13:09 -04:00 committed by arcady-lunarg
parent a05c4eca74
commit 2d8b71fc63
10 changed files with 120 additions and 5 deletions

View File

@ -1,9 +1,10 @@
spv.16bitstorage-int.frag
// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 171
// Id's are bound by 187
Capability Shader
Capability Int16
Capability StorageUniformBufferBlock16
Capability StorageUniform16
Extension "SPV_KHR_16bit_storage"
@ -335,5 +336,24 @@ spv.16bitstorage-int.frag
169: 6(int16_t) SConvert 58
170: 28(ptr) AccessChain 19(b2) 21
Store 170 169
171: 28(ptr) AccessChain 27(b1) 21
172: 6(int16_t) Load 171
173: 28(ptr) AccessChain 19(b2) 21
Store 173 172
174: 42(ptr) AccessChain 27(b1) 32
175: 7(i16vec2) Load 174
176: 6(int16_t) CompositeExtract 175 0
177: 6(int16_t) CompositeExtract 175 1
178: 7(i16vec2) CompositeConstruct 176 177
179: 42(ptr) AccessChain 19(b2) 32
Store 179 178
180: 34(ptr) AccessChain 27(b1) 33
181: 8(i16vec3) Load 180
182: 6(int16_t) CompositeExtract 181 0
183: 6(int16_t) CompositeExtract 181 1
184: 6(int16_t) CompositeExtract 181 2
185: 8(i16vec3) CompositeConstruct 182 183 184
186: 34(ptr) AccessChain 19(b2) 33
Store 186 185
Return
FunctionEnd

View File

@ -1,9 +1,10 @@
spv.16bitstorage-uint.frag
// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 173
// Id's are bound by 189
Capability Shader
Capability Int16
Capability StorageUniformBufferBlock16
Capability StorageUniform16
Extension "SPV_KHR_16bit_storage"
@ -337,5 +338,24 @@ spv.16bitstorage-uint.frag
171: 6(int16_t) UConvert 170
172: 28(ptr) AccessChain 19(b2) 21
Store 172 171
173: 28(ptr) AccessChain 27(b1) 21
174: 6(int16_t) Load 173
175: 28(ptr) AccessChain 19(b2) 21
Store 175 174
176: 42(ptr) AccessChain 27(b1) 32
177: 7(i16vec2) Load 176
178: 6(int16_t) CompositeExtract 177 0
179: 6(int16_t) CompositeExtract 177 1
180: 7(i16vec2) CompositeConstruct 178 179
181: 42(ptr) AccessChain 19(b2) 32
Store 181 180
182: 34(ptr) AccessChain 27(b1) 33
183: 8(i16vec3) Load 182
184: 6(int16_t) CompositeExtract 183 0
185: 6(int16_t) CompositeExtract 183 1
186: 6(int16_t) CompositeExtract 183 2
187: 8(i16vec3) CompositeConstruct 184 185 186
188: 34(ptr) AccessChain 19(b2) 33
Store 188 187
Return
FunctionEnd

View File

@ -1,9 +1,10 @@
spv.16bitstorage.frag
// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 173
// Id's are bound by 189
Capability Shader
Capability Float16
Capability StorageUniformBufferBlock16
Capability StorageUniform16
Extension "SPV_KHR_16bit_storage"
@ -337,5 +338,24 @@ spv.16bitstorage.frag
171:6(float16_t) FConvert 170
172: 28(ptr) AccessChain 19(b2) 21
Store 172 171
173: 28(ptr) AccessChain 27(b1) 21
174:6(float16_t) Load 173
175: 28(ptr) AccessChain 19(b2) 21
Store 175 174
176: 43(ptr) AccessChain 27(b1) 32
177: 7(f16vec2) Load 176
178:6(float16_t) CompositeExtract 177 0
179:6(float16_t) CompositeExtract 177 1
180: 7(f16vec2) CompositeConstruct 178 179
181: 43(ptr) AccessChain 19(b2) 32
Store 181 180
182: 34(ptr) AccessChain 27(b1) 33
183: 8(f16vec3) Load 182
184:6(float16_t) CompositeExtract 183 0
185:6(float16_t) CompositeExtract 183 1
186:6(float16_t) CompositeExtract 183 2
187: 8(f16vec3) CompositeConstruct 184 185 186
188: 34(ptr) AccessChain 19(b2) 33
Store 188 187
Return
FunctionEnd

View File

@ -1,9 +1,10 @@
spv.8bitstorage-int.frag
// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 171
// Id's are bound by 187
Capability Shader
Capability Int8
Capability UniformAndStorageBuffer8BitAccess
Extension "SPV_KHR_8bit_storage"
1: ExtInstImport "GLSL.std.450"
@ -334,5 +335,24 @@ spv.8bitstorage-int.frag
169: 6(int8_t) SConvert 58
170: 28(ptr) AccessChain 19(b2) 21
Store 170 169
171: 28(ptr) AccessChain 27(b1) 21
172: 6(int8_t) Load 171
173: 28(ptr) AccessChain 19(b2) 21
Store 173 172
174: 42(ptr) AccessChain 27(b1) 32
175: 7(i8vec2) Load 174
176: 6(int8_t) CompositeExtract 175 0
177: 6(int8_t) CompositeExtract 175 1
178: 7(i8vec2) CompositeConstruct 176 177
179: 42(ptr) AccessChain 19(b2) 32
Store 179 178
180: 34(ptr) AccessChain 27(b1) 33
181: 8(i8vec3) Load 180
182: 6(int8_t) CompositeExtract 181 0
183: 6(int8_t) CompositeExtract 181 1
184: 6(int8_t) CompositeExtract 181 2
185: 8(i8vec3) CompositeConstruct 182 183 184
186: 34(ptr) AccessChain 19(b2) 33
Store 186 185
Return
FunctionEnd

View File

@ -1,9 +1,10 @@
spv.8bitstorage-uint.frag
// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 173
// Id's are bound by 189
Capability Shader
Capability Int8
Capability UniformAndStorageBuffer8BitAccess
Extension "SPV_KHR_8bit_storage"
1: ExtInstImport "GLSL.std.450"
@ -336,5 +337,24 @@ spv.8bitstorage-uint.frag
171: 6(int8_t) UConvert 170
172: 28(ptr) AccessChain 19(b2) 21
Store 172 171
173: 28(ptr) AccessChain 27(b1) 21
174: 6(int8_t) Load 173
175: 28(ptr) AccessChain 19(b2) 21
Store 175 174
176: 42(ptr) AccessChain 27(b1) 32
177: 7(i8vec2) Load 176
178: 6(int8_t) CompositeExtract 177 0
179: 6(int8_t) CompositeExtract 177 1
180: 7(i8vec2) CompositeConstruct 178 179
181: 42(ptr) AccessChain 19(b2) 32
Store 181 180
182: 34(ptr) AccessChain 27(b1) 33
183: 8(i8vec3) Load 182
184: 6(int8_t) CompositeExtract 183 0
185: 6(int8_t) CompositeExtract 183 1
186: 6(int8_t) CompositeExtract 183 2
187: 8(i8vec3) CompositeConstruct 184 185 186
188: 34(ptr) AccessChain 19(b2) 33
Store 188 187
Return
FunctionEnd

View File

@ -86,5 +86,8 @@ void main()
b2.o = b2.p.x;
b2.p = i16vec2(ivec2(1, 2));
b2.o = int16_t(3);
b2.o = int16_t(b1.a);
b2.p = i16vec2(b1.b);
b2.q = i16vec3(b1.c);
}

View File

@ -86,5 +86,8 @@ void main()
b2.o = b2.p.x;
b2.p = u16vec2(uvec2(1, 2));
b2.o = uint16_t(3u);
b2.o = uint16_t(b1.a);
b2.p = u16vec2(b1.b);
b2.q = u16vec3(b1.c);
}

View File

@ -86,5 +86,8 @@ void main()
b2.o = b2.p.x;
b2.p = f16vec2(vec2(1.0, 2.0));
b2.o = float16_t(3.0);
b2.o = float16_t(b1.a);
b2.p = f16vec2(b1.b);
b2.q = f16vec3(b1.c);
}

View File

@ -86,5 +86,8 @@ void main()
b2.o = b2.p.x;
b2.p = i8vec2(ivec2(1, 2));
b2.o = int8_t(3);
b2.o = int8_t(b1.a);
b2.p = i8vec2(b1.b);
b2.q = i8vec3(b1.c);
}

View File

@ -86,5 +86,8 @@ void main()
b2.o = b2.p.x;
b2.p = u8vec2(uvec2(1, 2));
b2.o = uint8_t(3u);
b2.o = uint8_t(b1.a);
b2.p = u8vec2(b1.b);
b2.q = u8vec3(b1.c);
}