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:
parent
a05c4eca74
commit
2d8b71fc63
10 changed files with 120 additions and 5 deletions
|
|
@ -1,9 +1,10 @@
|
||||||
spv.16bitstorage-int.frag
|
spv.16bitstorage-int.frag
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 8000b
|
// Generated by (magic number): 8000b
|
||||||
// Id's are bound by 171
|
// Id's are bound by 187
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
|
Capability Int16
|
||||||
Capability StorageUniformBufferBlock16
|
Capability StorageUniformBufferBlock16
|
||||||
Capability StorageUniform16
|
Capability StorageUniform16
|
||||||
Extension "SPV_KHR_16bit_storage"
|
Extension "SPV_KHR_16bit_storage"
|
||||||
|
|
@ -335,5 +336,24 @@ spv.16bitstorage-int.frag
|
||||||
169: 6(int16_t) SConvert 58
|
169: 6(int16_t) SConvert 58
|
||||||
170: 28(ptr) AccessChain 19(b2) 21
|
170: 28(ptr) AccessChain 19(b2) 21
|
||||||
Store 170 169
|
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
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,10 @@
|
||||||
spv.16bitstorage-uint.frag
|
spv.16bitstorage-uint.frag
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 8000b
|
// Generated by (magic number): 8000b
|
||||||
// Id's are bound by 173
|
// Id's are bound by 189
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
|
Capability Int16
|
||||||
Capability StorageUniformBufferBlock16
|
Capability StorageUniformBufferBlock16
|
||||||
Capability StorageUniform16
|
Capability StorageUniform16
|
||||||
Extension "SPV_KHR_16bit_storage"
|
Extension "SPV_KHR_16bit_storage"
|
||||||
|
|
@ -337,5 +338,24 @@ spv.16bitstorage-uint.frag
|
||||||
171: 6(int16_t) UConvert 170
|
171: 6(int16_t) UConvert 170
|
||||||
172: 28(ptr) AccessChain 19(b2) 21
|
172: 28(ptr) AccessChain 19(b2) 21
|
||||||
Store 172 171
|
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
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,10 @@
|
||||||
spv.16bitstorage.frag
|
spv.16bitstorage.frag
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 8000b
|
// Generated by (magic number): 8000b
|
||||||
// Id's are bound by 173
|
// Id's are bound by 189
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
|
Capability Float16
|
||||||
Capability StorageUniformBufferBlock16
|
Capability StorageUniformBufferBlock16
|
||||||
Capability StorageUniform16
|
Capability StorageUniform16
|
||||||
Extension "SPV_KHR_16bit_storage"
|
Extension "SPV_KHR_16bit_storage"
|
||||||
|
|
@ -337,5 +338,24 @@ spv.16bitstorage.frag
|
||||||
171:6(float16_t) FConvert 170
|
171:6(float16_t) FConvert 170
|
||||||
172: 28(ptr) AccessChain 19(b2) 21
|
172: 28(ptr) AccessChain 19(b2) 21
|
||||||
Store 172 171
|
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
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,10 @@
|
||||||
spv.8bitstorage-int.frag
|
spv.8bitstorage-int.frag
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 8000b
|
// Generated by (magic number): 8000b
|
||||||
// Id's are bound by 171
|
// Id's are bound by 187
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
|
Capability Int8
|
||||||
Capability UniformAndStorageBuffer8BitAccess
|
Capability UniformAndStorageBuffer8BitAccess
|
||||||
Extension "SPV_KHR_8bit_storage"
|
Extension "SPV_KHR_8bit_storage"
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
|
@ -334,5 +335,24 @@ spv.8bitstorage-int.frag
|
||||||
169: 6(int8_t) SConvert 58
|
169: 6(int8_t) SConvert 58
|
||||||
170: 28(ptr) AccessChain 19(b2) 21
|
170: 28(ptr) AccessChain 19(b2) 21
|
||||||
Store 170 169
|
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
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,10 @@
|
||||||
spv.8bitstorage-uint.frag
|
spv.8bitstorage-uint.frag
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 8000b
|
// Generated by (magic number): 8000b
|
||||||
// Id's are bound by 173
|
// Id's are bound by 189
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
|
Capability Int8
|
||||||
Capability UniformAndStorageBuffer8BitAccess
|
Capability UniformAndStorageBuffer8BitAccess
|
||||||
Extension "SPV_KHR_8bit_storage"
|
Extension "SPV_KHR_8bit_storage"
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
|
@ -336,5 +337,24 @@ spv.8bitstorage-uint.frag
|
||||||
171: 6(int8_t) UConvert 170
|
171: 6(int8_t) UConvert 170
|
||||||
172: 28(ptr) AccessChain 19(b2) 21
|
172: 28(ptr) AccessChain 19(b2) 21
|
||||||
Store 172 171
|
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
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
|
|
||||||
|
|
@ -86,5 +86,8 @@ void main()
|
||||||
b2.o = b2.p.x;
|
b2.o = b2.p.x;
|
||||||
b2.p = i16vec2(ivec2(1, 2));
|
b2.p = i16vec2(ivec2(1, 2));
|
||||||
b2.o = int16_t(3);
|
b2.o = int16_t(3);
|
||||||
|
b2.o = int16_t(b1.a);
|
||||||
|
b2.p = i16vec2(b1.b);
|
||||||
|
b2.q = i16vec3(b1.c);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -86,5 +86,8 @@ void main()
|
||||||
b2.o = b2.p.x;
|
b2.o = b2.p.x;
|
||||||
b2.p = u16vec2(uvec2(1, 2));
|
b2.p = u16vec2(uvec2(1, 2));
|
||||||
b2.o = uint16_t(3u);
|
b2.o = uint16_t(3u);
|
||||||
|
b2.o = uint16_t(b1.a);
|
||||||
|
b2.p = u16vec2(b1.b);
|
||||||
|
b2.q = u16vec3(b1.c);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -86,5 +86,8 @@ void main()
|
||||||
b2.o = b2.p.x;
|
b2.o = b2.p.x;
|
||||||
b2.p = f16vec2(vec2(1.0, 2.0));
|
b2.p = f16vec2(vec2(1.0, 2.0));
|
||||||
b2.o = float16_t(3.0);
|
b2.o = float16_t(3.0);
|
||||||
|
b2.o = float16_t(b1.a);
|
||||||
|
b2.p = f16vec2(b1.b);
|
||||||
|
b2.q = f16vec3(b1.c);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -86,5 +86,8 @@ void main()
|
||||||
b2.o = b2.p.x;
|
b2.o = b2.p.x;
|
||||||
b2.p = i8vec2(ivec2(1, 2));
|
b2.p = i8vec2(ivec2(1, 2));
|
||||||
b2.o = int8_t(3);
|
b2.o = int8_t(3);
|
||||||
|
b2.o = int8_t(b1.a);
|
||||||
|
b2.p = i8vec2(b1.b);
|
||||||
|
b2.q = i8vec3(b1.c);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -86,5 +86,8 @@ void main()
|
||||||
b2.o = b2.p.x;
|
b2.o = b2.p.x;
|
||||||
b2.p = u8vec2(uvec2(1, 2));
|
b2.p = u8vec2(uvec2(1, 2));
|
||||||
b2.o = uint8_t(3u);
|
b2.o = uint8_t(3u);
|
||||||
|
b2.o = uint8_t(b1.a);
|
||||||
|
b2.p = u8vec2(b1.b);
|
||||||
|
b2.q = u8vec3(b1.c);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue