Skip to content

Commit

Permalink
Add test cases for redundant type conversions
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
arcady-lunarg committed Jun 21, 2024
1 parent a05c4ec commit 2d8b71f
Show file tree
Hide file tree
Showing 10 changed files with 120 additions and 5 deletions.
22 changes: 21 additions & 1 deletion Test/baseResults/spv.16bitstorage-int.frag.out
Original file line number Diff line number Diff line change
@@ -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"
Expand Down Expand Up @@ -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
22 changes: 21 additions & 1 deletion Test/baseResults/spv.16bitstorage-uint.frag.out
Original file line number Diff line number Diff line change
@@ -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"
Expand Down Expand Up @@ -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
22 changes: 21 additions & 1 deletion Test/baseResults/spv.16bitstorage.frag.out
Original file line number Diff line number Diff line change
@@ -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"
Expand Down Expand Up @@ -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
22 changes: 21 additions & 1 deletion Test/baseResults/spv.8bitstorage-int.frag.out
Original file line number Diff line number Diff line change
@@ -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"
Expand Down Expand Up @@ -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
22 changes: 21 additions & 1 deletion Test/baseResults/spv.8bitstorage-uint.frag.out
Original file line number Diff line number Diff line change
@@ -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"
Expand Down Expand Up @@ -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
3 changes: 3 additions & 0 deletions Test/spv.16bitstorage-int.frag
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

3 changes: 3 additions & 0 deletions Test/spv.16bitstorage-uint.frag
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

3 changes: 3 additions & 0 deletions Test/spv.16bitstorage.frag
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

3 changes: 3 additions & 0 deletions Test/spv.8bitstorage-int.frag
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

3 changes: 3 additions & 0 deletions Test/spv.8bitstorage-uint.frag
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

0 comments on commit 2d8b71f

Please sign in to comment.