Merge pull request #1597 from sheredom/add_conversion_folding
Add conversion folding when the source is a constant.
This commit is contained in:
		
						commit
						2173c650ac
					
				
							
								
								
									
										645
									
								
								Test/baseResults/constantUnaryConversion.comp.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										645
									
								
								Test/baseResults/constantUnaryConversion.comp.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,645 @@
 | 
				
			|||||||
 | 
					constantUnaryConversion.comp
 | 
				
			||||||
 | 
					Shader version: 450
 | 
				
			||||||
 | 
					Requested GL_KHX_shader_explicit_arithmetic_types
 | 
				
			||||||
 | 
					local_size = (1, 1, 1)
 | 
				
			||||||
 | 
					0:? Sequence
 | 
				
			||||||
 | 
					0:48  Function Definition: main( ( global void)
 | 
				
			||||||
 | 
					0:48    Function Parameters: 
 | 
				
			||||||
 | 
					0:?   Linker Objects
 | 
				
			||||||
 | 
					0:?     'bool_init' ( const bool)
 | 
				
			||||||
 | 
					0:?       true (const bool)
 | 
				
			||||||
 | 
					0:?     'int8_t_init' ( const int8_t)
 | 
				
			||||||
 | 
					0:?       -1 (const int)
 | 
				
			||||||
 | 
					0:?     'int16_t_init' ( const int16_t)
 | 
				
			||||||
 | 
					0:?       -2 (const int)
 | 
				
			||||||
 | 
					0:?     'int32_t_init' ( const int)
 | 
				
			||||||
 | 
					0:?       -3 (const int)
 | 
				
			||||||
 | 
					0:?     'int64_t_init' ( const int64_t)
 | 
				
			||||||
 | 
					0:?       -4 (const int64_t)
 | 
				
			||||||
 | 
					0:?     'uint8_t_init' ( const uint8_t)
 | 
				
			||||||
 | 
					0:?       1 (const int)
 | 
				
			||||||
 | 
					0:?     'uint16_t_init' ( const uint16_t)
 | 
				
			||||||
 | 
					0:?       2 (const int)
 | 
				
			||||||
 | 
					0:?     'uint32_t_init' ( const uint)
 | 
				
			||||||
 | 
					0:?       3 (const uint)
 | 
				
			||||||
 | 
					0:?     'uint64_t_init' ( const uint64_t)
 | 
				
			||||||
 | 
					0:?       4 (const uint64_t)
 | 
				
			||||||
 | 
					0:?     'float16_t_init' ( const float16_t)
 | 
				
			||||||
 | 
					0:?       42.000000
 | 
				
			||||||
 | 
					0:?     'float32_t_init' ( const float)
 | 
				
			||||||
 | 
					0:?       13.000000
 | 
				
			||||||
 | 
					0:?     'float64_t_init' ( const double)
 | 
				
			||||||
 | 
					0:?       -4.000000
 | 
				
			||||||
 | 
					0:?     'bool_to_bool' ( const bool)
 | 
				
			||||||
 | 
					0:?       true (const bool)
 | 
				
			||||||
 | 
					0:?     'int8_t_to_bool' ( const bool)
 | 
				
			||||||
 | 
					0:?       -1 (const int)
 | 
				
			||||||
 | 
					0:?     'int16_t_to_bool' ( const bool)
 | 
				
			||||||
 | 
					0:?       -2 (const int)
 | 
				
			||||||
 | 
					0:?     'int32_t_to_bool' ( const bool)
 | 
				
			||||||
 | 
					0:?       true (const bool)
 | 
				
			||||||
 | 
					0:?     'int64_t_to_bool' ( const bool)
 | 
				
			||||||
 | 
					0:?       true (const bool)
 | 
				
			||||||
 | 
					0:?     'uint8_t_to_bool' ( const bool)
 | 
				
			||||||
 | 
					0:?       1 (const int)
 | 
				
			||||||
 | 
					0:?     'uint16_t_to_bool' ( const bool)
 | 
				
			||||||
 | 
					0:?       2 (const int)
 | 
				
			||||||
 | 
					0:?     'uint32_t_to_bool' ( const bool)
 | 
				
			||||||
 | 
					0:?       true (const bool)
 | 
				
			||||||
 | 
					0:?     'uint64_t_to_bool' ( const bool)
 | 
				
			||||||
 | 
					0:?       true (const bool)
 | 
				
			||||||
 | 
					0:?     'float16_t_to_bool' ( const bool)
 | 
				
			||||||
 | 
					0:?       true (const bool)
 | 
				
			||||||
 | 
					0:?     'float32_t_to_bool' ( const bool)
 | 
				
			||||||
 | 
					0:?       true (const bool)
 | 
				
			||||||
 | 
					0:?     'float64_t_to_bool' ( const bool)
 | 
				
			||||||
 | 
					0:?       true (const bool)
 | 
				
			||||||
 | 
					0:?     'bool_to_int8_t' ( const int8_t)
 | 
				
			||||||
 | 
					0:?       true (const bool)
 | 
				
			||||||
 | 
					0:?     'int8_t_to_int8_t' ( const int8_t)
 | 
				
			||||||
 | 
					0:?       -1 (const int)
 | 
				
			||||||
 | 
					0:?     'int16_t_to_int8_t' ( const int8_t)
 | 
				
			||||||
 | 
					0:?       -2 (const int)
 | 
				
			||||||
 | 
					0:?     'int32_t_to_int8_t' ( const int8_t)
 | 
				
			||||||
 | 
					0:?       -3 (const int)
 | 
				
			||||||
 | 
					0:?     'int64_t_to_int8_t' ( const int8_t)
 | 
				
			||||||
 | 
					0:?       -4 (const int64_t)
 | 
				
			||||||
 | 
					0:?     'uint8_t_to_int8_t' ( const int8_t)
 | 
				
			||||||
 | 
					0:?       1 (const int)
 | 
				
			||||||
 | 
					0:?     'uint16_t_to_int8_t' ( const int8_t)
 | 
				
			||||||
 | 
					0:?       2 (const int)
 | 
				
			||||||
 | 
					0:?     'uint32_t_to_int8_t' ( const int8_t)
 | 
				
			||||||
 | 
					0:?       3 (const uint)
 | 
				
			||||||
 | 
					0:?     'uint64_t_to_int8_t' ( const int8_t)
 | 
				
			||||||
 | 
					0:?       4 (const uint64_t)
 | 
				
			||||||
 | 
					0:?     'float16_t_to_int8_t' ( const int8_t)
 | 
				
			||||||
 | 
					0:?       42.000000
 | 
				
			||||||
 | 
					0:?     'float32_t_to_int8_t' ( const int8_t)
 | 
				
			||||||
 | 
					0:?       13.000000
 | 
				
			||||||
 | 
					0:?     'float64_t_to_int8_t' ( const int8_t)
 | 
				
			||||||
 | 
					0:?       -4.000000
 | 
				
			||||||
 | 
					0:?     'bool_to_int16_t' ( const int16_t)
 | 
				
			||||||
 | 
					0:?       true (const bool)
 | 
				
			||||||
 | 
					0:?     'int8_t_to_int16_t' ( const int16_t)
 | 
				
			||||||
 | 
					0:?       -1 (const int)
 | 
				
			||||||
 | 
					0:?     'int16_t_to_int16_t' ( const int16_t)
 | 
				
			||||||
 | 
					0:?       -2 (const int)
 | 
				
			||||||
 | 
					0:?     'int32_t_to_int16_t' ( const int16_t)
 | 
				
			||||||
 | 
					0:?       -3 (const int)
 | 
				
			||||||
 | 
					0:?     'int64_t_to_int16_t' ( const int16_t)
 | 
				
			||||||
 | 
					0:?       -4 (const int64_t)
 | 
				
			||||||
 | 
					0:?     'uint8_t_to_int16_t' ( const int16_t)
 | 
				
			||||||
 | 
					0:?       1 (const int)
 | 
				
			||||||
 | 
					0:?     'uint16_t_to_int16_t' ( const int16_t)
 | 
				
			||||||
 | 
					0:?       2 (const int)
 | 
				
			||||||
 | 
					0:?     'uint32_t_to_int16_t' ( const int16_t)
 | 
				
			||||||
 | 
					0:?       3 (const uint)
 | 
				
			||||||
 | 
					0:?     'uint64_t_to_int16_t' ( const int16_t)
 | 
				
			||||||
 | 
					0:?       4 (const uint64_t)
 | 
				
			||||||
 | 
					0:?     'float16_t_to_int16_t' ( const int16_t)
 | 
				
			||||||
 | 
					0:?       42.000000
 | 
				
			||||||
 | 
					0:?     'float32_t_to_int16_t' ( const int16_t)
 | 
				
			||||||
 | 
					0:?       13.000000
 | 
				
			||||||
 | 
					0:?     'float64_t_to_int16_t' ( const int16_t)
 | 
				
			||||||
 | 
					0:?       -4.000000
 | 
				
			||||||
 | 
					0:?     'bool_to_int32_t' ( const int)
 | 
				
			||||||
 | 
					0:?       1 (const int)
 | 
				
			||||||
 | 
					0:?     'int8_t_to_int32_t' ( const int)
 | 
				
			||||||
 | 
					0:?       -1 (const int)
 | 
				
			||||||
 | 
					0:?     'int16_t_to_int32_t' ( const int)
 | 
				
			||||||
 | 
					0:?       -2 (const int)
 | 
				
			||||||
 | 
					0:?     'int32_t_to_int32_t' ( const int)
 | 
				
			||||||
 | 
					0:?       -3 (const int)
 | 
				
			||||||
 | 
					0:?     'int64_t_to_int32_t' ( const int)
 | 
				
			||||||
 | 
					0:?       -4 (const int)
 | 
				
			||||||
 | 
					0:?     'uint8_t_to_int32_t' ( const int)
 | 
				
			||||||
 | 
					0:?       1 (const int)
 | 
				
			||||||
 | 
					0:?     'uint16_t_to_int32_t' ( const int)
 | 
				
			||||||
 | 
					0:?       2 (const int)
 | 
				
			||||||
 | 
					0:?     'uint32_t_to_int32_t' ( const int)
 | 
				
			||||||
 | 
					0:?       3 (const int)
 | 
				
			||||||
 | 
					0:?     'uint64_t_to_int32_t' ( const int)
 | 
				
			||||||
 | 
					0:?       4 (const int)
 | 
				
			||||||
 | 
					0:?     'float16_t_to_int32_t' ( const int)
 | 
				
			||||||
 | 
					0:?       42 (const int)
 | 
				
			||||||
 | 
					0:?     'float32_t_to_int32_t' ( const int)
 | 
				
			||||||
 | 
					0:?       13 (const int)
 | 
				
			||||||
 | 
					0:?     'float64_t_to_int32_t' ( const int)
 | 
				
			||||||
 | 
					0:?       -4 (const int)
 | 
				
			||||||
 | 
					0:?     'bool_to_int64_t' ( const int64_t)
 | 
				
			||||||
 | 
					0:?       1 (const int64_t)
 | 
				
			||||||
 | 
					0:?     'int8_t_to_int64_t' ( const int64_t)
 | 
				
			||||||
 | 
					0:?       -1 (const int)
 | 
				
			||||||
 | 
					0:?     'int16_t_to_int64_t' ( const int64_t)
 | 
				
			||||||
 | 
					0:?       -2 (const int)
 | 
				
			||||||
 | 
					0:?     'int32_t_to_int64_t' ( const int64_t)
 | 
				
			||||||
 | 
					0:?       -3 (const int64_t)
 | 
				
			||||||
 | 
					0:?     'int64_t_to_int64_t' ( const int64_t)
 | 
				
			||||||
 | 
					0:?       -4 (const int64_t)
 | 
				
			||||||
 | 
					0:?     'uint8_t_to_int64_t' ( const int64_t)
 | 
				
			||||||
 | 
					0:?       1 (const int)
 | 
				
			||||||
 | 
					0:?     'uint16_t_to_int64_t' ( const int64_t)
 | 
				
			||||||
 | 
					0:?       2 (const int)
 | 
				
			||||||
 | 
					0:?     'uint32_t_to_int64_t' ( const int64_t)
 | 
				
			||||||
 | 
					0:?       3 (const int64_t)
 | 
				
			||||||
 | 
					0:?     'uint64_t_to_int64_t' ( const int64_t)
 | 
				
			||||||
 | 
					0:?       4 (const int64_t)
 | 
				
			||||||
 | 
					0:?     'float16_t_to_int64_t' ( const int64_t)
 | 
				
			||||||
 | 
					0:?       42 (const int64_t)
 | 
				
			||||||
 | 
					0:?     'float32_t_to_int64_t' ( const int64_t)
 | 
				
			||||||
 | 
					0:?       13 (const int64_t)
 | 
				
			||||||
 | 
					0:?     'float64_t_to_int64_t' ( const int64_t)
 | 
				
			||||||
 | 
					0:?       -4 (const int64_t)
 | 
				
			||||||
 | 
					0:?     'bool_to_uint8_t' ( const uint8_t)
 | 
				
			||||||
 | 
					0:?       true (const bool)
 | 
				
			||||||
 | 
					0:?     'int8_t_to_uint8_t' ( const uint8_t)
 | 
				
			||||||
 | 
					0:?       -1 (const int)
 | 
				
			||||||
 | 
					0:?     'int16_t_to_uint8_t' ( const uint8_t)
 | 
				
			||||||
 | 
					0:?       -2 (const int)
 | 
				
			||||||
 | 
					0:?     'int32_t_to_uint8_t' ( const uint8_t)
 | 
				
			||||||
 | 
					0:?       -3 (const int)
 | 
				
			||||||
 | 
					0:?     'int64_t_to_uint8_t' ( const uint8_t)
 | 
				
			||||||
 | 
					0:?       -4 (const int64_t)
 | 
				
			||||||
 | 
					0:?     'uint8_t_to_uint8_t' ( const uint8_t)
 | 
				
			||||||
 | 
					0:?       1 (const int)
 | 
				
			||||||
 | 
					0:?     'uint16_t_to_uint8_t' ( const uint8_t)
 | 
				
			||||||
 | 
					0:?       2 (const int)
 | 
				
			||||||
 | 
					0:?     'uint32_t_to_uint8_t' ( const uint8_t)
 | 
				
			||||||
 | 
					0:?       3 (const uint)
 | 
				
			||||||
 | 
					0:?     'uint64_t_to_uint8_t' ( const uint8_t)
 | 
				
			||||||
 | 
					0:?       4 (const uint64_t)
 | 
				
			||||||
 | 
					0:?     'float16_t_to_uint8_t' ( const uint8_t)
 | 
				
			||||||
 | 
					0:?       42.000000
 | 
				
			||||||
 | 
					0:?     'float32_t_to_uint8_t' ( const uint8_t)
 | 
				
			||||||
 | 
					0:?       13.000000
 | 
				
			||||||
 | 
					0:?     'float64_t_to_uint8_t' ( const uint8_t)
 | 
				
			||||||
 | 
					0:?       -4.000000
 | 
				
			||||||
 | 
					0:?     'bool_to_uint16_t' ( const uint16_t)
 | 
				
			||||||
 | 
					0:?       true (const bool)
 | 
				
			||||||
 | 
					0:?     'int8_t_to_uint16_t' ( const uint16_t)
 | 
				
			||||||
 | 
					0:?       -1 (const int)
 | 
				
			||||||
 | 
					0:?     'int16_t_to_uint16_t' ( const uint16_t)
 | 
				
			||||||
 | 
					0:?       -2 (const int)
 | 
				
			||||||
 | 
					0:?     'int32_t_to_uint16_t' ( const uint16_t)
 | 
				
			||||||
 | 
					0:?       -3 (const int)
 | 
				
			||||||
 | 
					0:?     'int64_t_to_uint16_t' ( const uint16_t)
 | 
				
			||||||
 | 
					0:?       -4 (const int64_t)
 | 
				
			||||||
 | 
					0:?     'uint8_t_to_uint16_t' ( const uint16_t)
 | 
				
			||||||
 | 
					0:?       1 (const int)
 | 
				
			||||||
 | 
					0:?     'uint16_t_to_uint16_t' ( const uint16_t)
 | 
				
			||||||
 | 
					0:?       2 (const int)
 | 
				
			||||||
 | 
					0:?     'uint32_t_to_uint16_t' ( const uint16_t)
 | 
				
			||||||
 | 
					0:?       3 (const uint)
 | 
				
			||||||
 | 
					0:?     'uint64_t_to_uint16_t' ( const uint16_t)
 | 
				
			||||||
 | 
					0:?       4 (const uint64_t)
 | 
				
			||||||
 | 
					0:?     'float16_t_to_uint16_t' ( const uint16_t)
 | 
				
			||||||
 | 
					0:?       42.000000
 | 
				
			||||||
 | 
					0:?     'float32_t_to_uint16_t' ( const uint16_t)
 | 
				
			||||||
 | 
					0:?       13.000000
 | 
				
			||||||
 | 
					0:?     'float64_t_to_uint16_t' ( const uint16_t)
 | 
				
			||||||
 | 
					0:?       -4.000000
 | 
				
			||||||
 | 
					0:?     'bool_to_uint32_t' ( const uint)
 | 
				
			||||||
 | 
					0:?       1 (const uint)
 | 
				
			||||||
 | 
					0:?     'int8_t_to_uint32_t' ( const uint)
 | 
				
			||||||
 | 
					0:?       -1 (const int)
 | 
				
			||||||
 | 
					0:?     'int16_t_to_uint32_t' ( const uint)
 | 
				
			||||||
 | 
					0:?       -2 (const int)
 | 
				
			||||||
 | 
					0:?     'int32_t_to_uint32_t' ( const uint)
 | 
				
			||||||
 | 
					0:?       4294967293 (const uint)
 | 
				
			||||||
 | 
					0:?     'int64_t_to_uint32_t' ( const uint)
 | 
				
			||||||
 | 
					0:?       4294967292 (const uint)
 | 
				
			||||||
 | 
					0:?     'uint8_t_to_uint32_t' ( const uint)
 | 
				
			||||||
 | 
					0:?       1 (const int)
 | 
				
			||||||
 | 
					0:?     'uint16_t_to_uint32_t' ( const uint)
 | 
				
			||||||
 | 
					0:?       2 (const int)
 | 
				
			||||||
 | 
					0:?     'uint32_t_to_uint32_t' ( const uint)
 | 
				
			||||||
 | 
					0:?       3 (const uint)
 | 
				
			||||||
 | 
					0:?     'uint64_t_to_uint32_t' ( const uint)
 | 
				
			||||||
 | 
					0:?       4 (const uint)
 | 
				
			||||||
 | 
					0:?     'float16_t_to_uint32_t' ( const uint)
 | 
				
			||||||
 | 
					0:?       42 (const uint)
 | 
				
			||||||
 | 
					0:?     'float32_t_to_uint32_t' ( const uint)
 | 
				
			||||||
 | 
					0:?       13 (const uint)
 | 
				
			||||||
 | 
					0:?     'float64_t_to_uint32_t' ( const uint)
 | 
				
			||||||
 | 
					0:?       4294967292 (const uint)
 | 
				
			||||||
 | 
					0:?     'bool_to_uint64_t' ( const uint64_t)
 | 
				
			||||||
 | 
					0:?       1 (const uint64_t)
 | 
				
			||||||
 | 
					0:?     'int8_t_to_uint64_t' ( const uint64_t)
 | 
				
			||||||
 | 
					0:?       -1 (const int)
 | 
				
			||||||
 | 
					0:?     'int16_t_to_uint64_t' ( const uint64_t)
 | 
				
			||||||
 | 
					0:?       -2 (const int)
 | 
				
			||||||
 | 
					0:?     'int32_t_to_uint64_t' ( const uint64_t)
 | 
				
			||||||
 | 
					0:?       18446744073709551613 (const uint64_t)
 | 
				
			||||||
 | 
					0:?     'int64_t_to_uint64_t' ( const uint64_t)
 | 
				
			||||||
 | 
					0:?       18446744073709551612 (const uint64_t)
 | 
				
			||||||
 | 
					0:?     'uint8_t_to_uint64_t' ( const uint64_t)
 | 
				
			||||||
 | 
					0:?       1 (const int)
 | 
				
			||||||
 | 
					0:?     'uint16_t_to_uint64_t' ( const uint64_t)
 | 
				
			||||||
 | 
					0:?       2 (const int)
 | 
				
			||||||
 | 
					0:?     'uint32_t_to_uint64_t' ( const uint64_t)
 | 
				
			||||||
 | 
					0:?       3 (const uint64_t)
 | 
				
			||||||
 | 
					0:?     'uint64_t_to_uint64_t' ( const uint64_t)
 | 
				
			||||||
 | 
					0:?       4 (const uint64_t)
 | 
				
			||||||
 | 
					0:?     'float16_t_to_uint64_t' ( const uint64_t)
 | 
				
			||||||
 | 
					0:?       42 (const uint64_t)
 | 
				
			||||||
 | 
					0:?     'float32_t_to_uint64_t' ( const uint64_t)
 | 
				
			||||||
 | 
					0:?       13 (const uint64_t)
 | 
				
			||||||
 | 
					0:?     'float64_t_to_uint64_t' ( const uint64_t)
 | 
				
			||||||
 | 
					0:?       18446744073709551612 (const uint64_t)
 | 
				
			||||||
 | 
					0:?     'bool_to_float16_t' ( const float16_t)
 | 
				
			||||||
 | 
					0:?       1.000000
 | 
				
			||||||
 | 
					0:?     'int8_t_to_float16_t' ( const float16_t)
 | 
				
			||||||
 | 
					0:?       -1 (const int)
 | 
				
			||||||
 | 
					0:?     'int16_t_to_float16_t' ( const float16_t)
 | 
				
			||||||
 | 
					0:?       -2 (const int)
 | 
				
			||||||
 | 
					0:?     'int32_t_to_float16_t' ( const float16_t)
 | 
				
			||||||
 | 
					0:?       -3.000000
 | 
				
			||||||
 | 
					0:?     'int64_t_to_float16_t' ( const float16_t)
 | 
				
			||||||
 | 
					0:?       -4.000000
 | 
				
			||||||
 | 
					0:?     'uint8_t_to_float16_t' ( const float16_t)
 | 
				
			||||||
 | 
					0:?       1 (const int)
 | 
				
			||||||
 | 
					0:?     'uint16_t_to_float16_t' ( const float16_t)
 | 
				
			||||||
 | 
					0:?       2 (const int)
 | 
				
			||||||
 | 
					0:?     'uint32_t_to_float16_t' ( const float16_t)
 | 
				
			||||||
 | 
					0:?       3.000000
 | 
				
			||||||
 | 
					0:?     'uint64_t_to_float16_t' ( const float16_t)
 | 
				
			||||||
 | 
					0:?       4.000000
 | 
				
			||||||
 | 
					0:?     'float16_t_to_float16_t' ( const float16_t)
 | 
				
			||||||
 | 
					0:?       42.000000
 | 
				
			||||||
 | 
					0:?     'float32_t_to_float16_t' ( const float16_t)
 | 
				
			||||||
 | 
					0:?       13.000000
 | 
				
			||||||
 | 
					0:?     'float64_t_to_float16_t' ( const float16_t)
 | 
				
			||||||
 | 
					0:?       -4.000000
 | 
				
			||||||
 | 
					0:?     'bool_to_float32_t' ( const float)
 | 
				
			||||||
 | 
					0:?       1.000000
 | 
				
			||||||
 | 
					0:?     'int8_t_to_float32_t' ( const float)
 | 
				
			||||||
 | 
					0:?       -1 (const int)
 | 
				
			||||||
 | 
					0:?     'int16_t_to_float32_t' ( const float)
 | 
				
			||||||
 | 
					0:?       -2 (const int)
 | 
				
			||||||
 | 
					0:?     'int32_t_to_float32_t' ( const float)
 | 
				
			||||||
 | 
					0:?       -3.000000
 | 
				
			||||||
 | 
					0:?     'int64_t_to_float32_t' ( const float)
 | 
				
			||||||
 | 
					0:?       -4.000000
 | 
				
			||||||
 | 
					0:?     'uint8_t_to_float32_t' ( const float)
 | 
				
			||||||
 | 
					0:?       1 (const int)
 | 
				
			||||||
 | 
					0:?     'uint16_t_to_float32_t' ( const float)
 | 
				
			||||||
 | 
					0:?       2 (const int)
 | 
				
			||||||
 | 
					0:?     'uint32_t_to_float32_t' ( const float)
 | 
				
			||||||
 | 
					0:?       3.000000
 | 
				
			||||||
 | 
					0:?     'uint64_t_to_float32_t' ( const float)
 | 
				
			||||||
 | 
					0:?       4.000000
 | 
				
			||||||
 | 
					0:?     'float16_t_to_float32_t' ( const float)
 | 
				
			||||||
 | 
					0:?       42.000000
 | 
				
			||||||
 | 
					0:?     'float32_t_to_float32_t' ( const float)
 | 
				
			||||||
 | 
					0:?       13.000000
 | 
				
			||||||
 | 
					0:?     'float64_t_to_float32_t' ( const float)
 | 
				
			||||||
 | 
					0:?       -4.000000
 | 
				
			||||||
 | 
					0:?     'bool_to_float64_t' ( const double)
 | 
				
			||||||
 | 
					0:?       1.000000
 | 
				
			||||||
 | 
					0:?     'int8_t_to_float64_t' ( const double)
 | 
				
			||||||
 | 
					0:?       -1 (const int)
 | 
				
			||||||
 | 
					0:?     'int16_t_to_float64_t' ( const double)
 | 
				
			||||||
 | 
					0:?       -2 (const int)
 | 
				
			||||||
 | 
					0:?     'int32_t_to_float64_t' ( const double)
 | 
				
			||||||
 | 
					0:?       -3.000000
 | 
				
			||||||
 | 
					0:?     'int64_t_to_float64_t' ( const double)
 | 
				
			||||||
 | 
					0:?       -4.000000
 | 
				
			||||||
 | 
					0:?     'uint8_t_to_float64_t' ( const double)
 | 
				
			||||||
 | 
					0:?       1 (const int)
 | 
				
			||||||
 | 
					0:?     'uint16_t_to_float64_t' ( const double)
 | 
				
			||||||
 | 
					0:?       2 (const int)
 | 
				
			||||||
 | 
					0:?     'uint32_t_to_float64_t' ( const double)
 | 
				
			||||||
 | 
					0:?       3.000000
 | 
				
			||||||
 | 
					0:?     'uint64_t_to_float64_t' ( const double)
 | 
				
			||||||
 | 
					0:?       4.000000
 | 
				
			||||||
 | 
					0:?     'float16_t_to_float64_t' ( const double)
 | 
				
			||||||
 | 
					0:?       42.000000
 | 
				
			||||||
 | 
					0:?     'float32_t_to_float64_t' ( const double)
 | 
				
			||||||
 | 
					0:?       13.000000
 | 
				
			||||||
 | 
					0:?     'float64_t_to_float64_t' ( const double)
 | 
				
			||||||
 | 
					0:?       -4.000000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Linked compute stage:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Shader version: 450
 | 
				
			||||||
 | 
					Requested GL_KHX_shader_explicit_arithmetic_types
 | 
				
			||||||
 | 
					local_size = (1, 1, 1)
 | 
				
			||||||
 | 
					0:? Sequence
 | 
				
			||||||
 | 
					0:48  Function Definition: main( ( global void)
 | 
				
			||||||
 | 
					0:48    Function Parameters: 
 | 
				
			||||||
 | 
					0:?   Linker Objects
 | 
				
			||||||
 | 
					0:?     'bool_init' ( const bool)
 | 
				
			||||||
 | 
					0:?       true (const bool)
 | 
				
			||||||
 | 
					0:?     'int8_t_init' ( const int8_t)
 | 
				
			||||||
 | 
					0:?       -1 (const int)
 | 
				
			||||||
 | 
					0:?     'int16_t_init' ( const int16_t)
 | 
				
			||||||
 | 
					0:?       -2 (const int)
 | 
				
			||||||
 | 
					0:?     'int32_t_init' ( const int)
 | 
				
			||||||
 | 
					0:?       -3 (const int)
 | 
				
			||||||
 | 
					0:?     'int64_t_init' ( const int64_t)
 | 
				
			||||||
 | 
					0:?       -4 (const int64_t)
 | 
				
			||||||
 | 
					0:?     'uint8_t_init' ( const uint8_t)
 | 
				
			||||||
 | 
					0:?       1 (const int)
 | 
				
			||||||
 | 
					0:?     'uint16_t_init' ( const uint16_t)
 | 
				
			||||||
 | 
					0:?       2 (const int)
 | 
				
			||||||
 | 
					0:?     'uint32_t_init' ( const uint)
 | 
				
			||||||
 | 
					0:?       3 (const uint)
 | 
				
			||||||
 | 
					0:?     'uint64_t_init' ( const uint64_t)
 | 
				
			||||||
 | 
					0:?       4 (const uint64_t)
 | 
				
			||||||
 | 
					0:?     'float16_t_init' ( const float16_t)
 | 
				
			||||||
 | 
					0:?       42.000000
 | 
				
			||||||
 | 
					0:?     'float32_t_init' ( const float)
 | 
				
			||||||
 | 
					0:?       13.000000
 | 
				
			||||||
 | 
					0:?     'float64_t_init' ( const double)
 | 
				
			||||||
 | 
					0:?       -4.000000
 | 
				
			||||||
 | 
					0:?     'bool_to_bool' ( const bool)
 | 
				
			||||||
 | 
					0:?       true (const bool)
 | 
				
			||||||
 | 
					0:?     'int8_t_to_bool' ( const bool)
 | 
				
			||||||
 | 
					0:?       -1 (const int)
 | 
				
			||||||
 | 
					0:?     'int16_t_to_bool' ( const bool)
 | 
				
			||||||
 | 
					0:?       -2 (const int)
 | 
				
			||||||
 | 
					0:?     'int32_t_to_bool' ( const bool)
 | 
				
			||||||
 | 
					0:?       true (const bool)
 | 
				
			||||||
 | 
					0:?     'int64_t_to_bool' ( const bool)
 | 
				
			||||||
 | 
					0:?       true (const bool)
 | 
				
			||||||
 | 
					0:?     'uint8_t_to_bool' ( const bool)
 | 
				
			||||||
 | 
					0:?       1 (const int)
 | 
				
			||||||
 | 
					0:?     'uint16_t_to_bool' ( const bool)
 | 
				
			||||||
 | 
					0:?       2 (const int)
 | 
				
			||||||
 | 
					0:?     'uint32_t_to_bool' ( const bool)
 | 
				
			||||||
 | 
					0:?       true (const bool)
 | 
				
			||||||
 | 
					0:?     'uint64_t_to_bool' ( const bool)
 | 
				
			||||||
 | 
					0:?       true (const bool)
 | 
				
			||||||
 | 
					0:?     'float16_t_to_bool' ( const bool)
 | 
				
			||||||
 | 
					0:?       true (const bool)
 | 
				
			||||||
 | 
					0:?     'float32_t_to_bool' ( const bool)
 | 
				
			||||||
 | 
					0:?       true (const bool)
 | 
				
			||||||
 | 
					0:?     'float64_t_to_bool' ( const bool)
 | 
				
			||||||
 | 
					0:?       true (const bool)
 | 
				
			||||||
 | 
					0:?     'bool_to_int8_t' ( const int8_t)
 | 
				
			||||||
 | 
					0:?       true (const bool)
 | 
				
			||||||
 | 
					0:?     'int8_t_to_int8_t' ( const int8_t)
 | 
				
			||||||
 | 
					0:?       -1 (const int)
 | 
				
			||||||
 | 
					0:?     'int16_t_to_int8_t' ( const int8_t)
 | 
				
			||||||
 | 
					0:?       -2 (const int)
 | 
				
			||||||
 | 
					0:?     'int32_t_to_int8_t' ( const int8_t)
 | 
				
			||||||
 | 
					0:?       -3 (const int)
 | 
				
			||||||
 | 
					0:?     'int64_t_to_int8_t' ( const int8_t)
 | 
				
			||||||
 | 
					0:?       -4 (const int64_t)
 | 
				
			||||||
 | 
					0:?     'uint8_t_to_int8_t' ( const int8_t)
 | 
				
			||||||
 | 
					0:?       1 (const int)
 | 
				
			||||||
 | 
					0:?     'uint16_t_to_int8_t' ( const int8_t)
 | 
				
			||||||
 | 
					0:?       2 (const int)
 | 
				
			||||||
 | 
					0:?     'uint32_t_to_int8_t' ( const int8_t)
 | 
				
			||||||
 | 
					0:?       3 (const uint)
 | 
				
			||||||
 | 
					0:?     'uint64_t_to_int8_t' ( const int8_t)
 | 
				
			||||||
 | 
					0:?       4 (const uint64_t)
 | 
				
			||||||
 | 
					0:?     'float16_t_to_int8_t' ( const int8_t)
 | 
				
			||||||
 | 
					0:?       42.000000
 | 
				
			||||||
 | 
					0:?     'float32_t_to_int8_t' ( const int8_t)
 | 
				
			||||||
 | 
					0:?       13.000000
 | 
				
			||||||
 | 
					0:?     'float64_t_to_int8_t' ( const int8_t)
 | 
				
			||||||
 | 
					0:?       -4.000000
 | 
				
			||||||
 | 
					0:?     'bool_to_int16_t' ( const int16_t)
 | 
				
			||||||
 | 
					0:?       true (const bool)
 | 
				
			||||||
 | 
					0:?     'int8_t_to_int16_t' ( const int16_t)
 | 
				
			||||||
 | 
					0:?       -1 (const int)
 | 
				
			||||||
 | 
					0:?     'int16_t_to_int16_t' ( const int16_t)
 | 
				
			||||||
 | 
					0:?       -2 (const int)
 | 
				
			||||||
 | 
					0:?     'int32_t_to_int16_t' ( const int16_t)
 | 
				
			||||||
 | 
					0:?       -3 (const int)
 | 
				
			||||||
 | 
					0:?     'int64_t_to_int16_t' ( const int16_t)
 | 
				
			||||||
 | 
					0:?       -4 (const int64_t)
 | 
				
			||||||
 | 
					0:?     'uint8_t_to_int16_t' ( const int16_t)
 | 
				
			||||||
 | 
					0:?       1 (const int)
 | 
				
			||||||
 | 
					0:?     'uint16_t_to_int16_t' ( const int16_t)
 | 
				
			||||||
 | 
					0:?       2 (const int)
 | 
				
			||||||
 | 
					0:?     'uint32_t_to_int16_t' ( const int16_t)
 | 
				
			||||||
 | 
					0:?       3 (const uint)
 | 
				
			||||||
 | 
					0:?     'uint64_t_to_int16_t' ( const int16_t)
 | 
				
			||||||
 | 
					0:?       4 (const uint64_t)
 | 
				
			||||||
 | 
					0:?     'float16_t_to_int16_t' ( const int16_t)
 | 
				
			||||||
 | 
					0:?       42.000000
 | 
				
			||||||
 | 
					0:?     'float32_t_to_int16_t' ( const int16_t)
 | 
				
			||||||
 | 
					0:?       13.000000
 | 
				
			||||||
 | 
					0:?     'float64_t_to_int16_t' ( const int16_t)
 | 
				
			||||||
 | 
					0:?       -4.000000
 | 
				
			||||||
 | 
					0:?     'bool_to_int32_t' ( const int)
 | 
				
			||||||
 | 
					0:?       1 (const int)
 | 
				
			||||||
 | 
					0:?     'int8_t_to_int32_t' ( const int)
 | 
				
			||||||
 | 
					0:?       -1 (const int)
 | 
				
			||||||
 | 
					0:?     'int16_t_to_int32_t' ( const int)
 | 
				
			||||||
 | 
					0:?       -2 (const int)
 | 
				
			||||||
 | 
					0:?     'int32_t_to_int32_t' ( const int)
 | 
				
			||||||
 | 
					0:?       -3 (const int)
 | 
				
			||||||
 | 
					0:?     'int64_t_to_int32_t' ( const int)
 | 
				
			||||||
 | 
					0:?       -4 (const int)
 | 
				
			||||||
 | 
					0:?     'uint8_t_to_int32_t' ( const int)
 | 
				
			||||||
 | 
					0:?       1 (const int)
 | 
				
			||||||
 | 
					0:?     'uint16_t_to_int32_t' ( const int)
 | 
				
			||||||
 | 
					0:?       2 (const int)
 | 
				
			||||||
 | 
					0:?     'uint32_t_to_int32_t' ( const int)
 | 
				
			||||||
 | 
					0:?       3 (const int)
 | 
				
			||||||
 | 
					0:?     'uint64_t_to_int32_t' ( const int)
 | 
				
			||||||
 | 
					0:?       4 (const int)
 | 
				
			||||||
 | 
					0:?     'float16_t_to_int32_t' ( const int)
 | 
				
			||||||
 | 
					0:?       42 (const int)
 | 
				
			||||||
 | 
					0:?     'float32_t_to_int32_t' ( const int)
 | 
				
			||||||
 | 
					0:?       13 (const int)
 | 
				
			||||||
 | 
					0:?     'float64_t_to_int32_t' ( const int)
 | 
				
			||||||
 | 
					0:?       -4 (const int)
 | 
				
			||||||
 | 
					0:?     'bool_to_int64_t' ( const int64_t)
 | 
				
			||||||
 | 
					0:?       1 (const int64_t)
 | 
				
			||||||
 | 
					0:?     'int8_t_to_int64_t' ( const int64_t)
 | 
				
			||||||
 | 
					0:?       -1 (const int)
 | 
				
			||||||
 | 
					0:?     'int16_t_to_int64_t' ( const int64_t)
 | 
				
			||||||
 | 
					0:?       -2 (const int)
 | 
				
			||||||
 | 
					0:?     'int32_t_to_int64_t' ( const int64_t)
 | 
				
			||||||
 | 
					0:?       -3 (const int64_t)
 | 
				
			||||||
 | 
					0:?     'int64_t_to_int64_t' ( const int64_t)
 | 
				
			||||||
 | 
					0:?       -4 (const int64_t)
 | 
				
			||||||
 | 
					0:?     'uint8_t_to_int64_t' ( const int64_t)
 | 
				
			||||||
 | 
					0:?       1 (const int)
 | 
				
			||||||
 | 
					0:?     'uint16_t_to_int64_t' ( const int64_t)
 | 
				
			||||||
 | 
					0:?       2 (const int)
 | 
				
			||||||
 | 
					0:?     'uint32_t_to_int64_t' ( const int64_t)
 | 
				
			||||||
 | 
					0:?       3 (const int64_t)
 | 
				
			||||||
 | 
					0:?     'uint64_t_to_int64_t' ( const int64_t)
 | 
				
			||||||
 | 
					0:?       4 (const int64_t)
 | 
				
			||||||
 | 
					0:?     'float16_t_to_int64_t' ( const int64_t)
 | 
				
			||||||
 | 
					0:?       42 (const int64_t)
 | 
				
			||||||
 | 
					0:?     'float32_t_to_int64_t' ( const int64_t)
 | 
				
			||||||
 | 
					0:?       13 (const int64_t)
 | 
				
			||||||
 | 
					0:?     'float64_t_to_int64_t' ( const int64_t)
 | 
				
			||||||
 | 
					0:?       -4 (const int64_t)
 | 
				
			||||||
 | 
					0:?     'bool_to_uint8_t' ( const uint8_t)
 | 
				
			||||||
 | 
					0:?       true (const bool)
 | 
				
			||||||
 | 
					0:?     'int8_t_to_uint8_t' ( const uint8_t)
 | 
				
			||||||
 | 
					0:?       -1 (const int)
 | 
				
			||||||
 | 
					0:?     'int16_t_to_uint8_t' ( const uint8_t)
 | 
				
			||||||
 | 
					0:?       -2 (const int)
 | 
				
			||||||
 | 
					0:?     'int32_t_to_uint8_t' ( const uint8_t)
 | 
				
			||||||
 | 
					0:?       -3 (const int)
 | 
				
			||||||
 | 
					0:?     'int64_t_to_uint8_t' ( const uint8_t)
 | 
				
			||||||
 | 
					0:?       -4 (const int64_t)
 | 
				
			||||||
 | 
					0:?     'uint8_t_to_uint8_t' ( const uint8_t)
 | 
				
			||||||
 | 
					0:?       1 (const int)
 | 
				
			||||||
 | 
					0:?     'uint16_t_to_uint8_t' ( const uint8_t)
 | 
				
			||||||
 | 
					0:?       2 (const int)
 | 
				
			||||||
 | 
					0:?     'uint32_t_to_uint8_t' ( const uint8_t)
 | 
				
			||||||
 | 
					0:?       3 (const uint)
 | 
				
			||||||
 | 
					0:?     'uint64_t_to_uint8_t' ( const uint8_t)
 | 
				
			||||||
 | 
					0:?       4 (const uint64_t)
 | 
				
			||||||
 | 
					0:?     'float16_t_to_uint8_t' ( const uint8_t)
 | 
				
			||||||
 | 
					0:?       42.000000
 | 
				
			||||||
 | 
					0:?     'float32_t_to_uint8_t' ( const uint8_t)
 | 
				
			||||||
 | 
					0:?       13.000000
 | 
				
			||||||
 | 
					0:?     'float64_t_to_uint8_t' ( const uint8_t)
 | 
				
			||||||
 | 
					0:?       -4.000000
 | 
				
			||||||
 | 
					0:?     'bool_to_uint16_t' ( const uint16_t)
 | 
				
			||||||
 | 
					0:?       true (const bool)
 | 
				
			||||||
 | 
					0:?     'int8_t_to_uint16_t' ( const uint16_t)
 | 
				
			||||||
 | 
					0:?       -1 (const int)
 | 
				
			||||||
 | 
					0:?     'int16_t_to_uint16_t' ( const uint16_t)
 | 
				
			||||||
 | 
					0:?       -2 (const int)
 | 
				
			||||||
 | 
					0:?     'int32_t_to_uint16_t' ( const uint16_t)
 | 
				
			||||||
 | 
					0:?       -3 (const int)
 | 
				
			||||||
 | 
					0:?     'int64_t_to_uint16_t' ( const uint16_t)
 | 
				
			||||||
 | 
					0:?       -4 (const int64_t)
 | 
				
			||||||
 | 
					0:?     'uint8_t_to_uint16_t' ( const uint16_t)
 | 
				
			||||||
 | 
					0:?       1 (const int)
 | 
				
			||||||
 | 
					0:?     'uint16_t_to_uint16_t' ( const uint16_t)
 | 
				
			||||||
 | 
					0:?       2 (const int)
 | 
				
			||||||
 | 
					0:?     'uint32_t_to_uint16_t' ( const uint16_t)
 | 
				
			||||||
 | 
					0:?       3 (const uint)
 | 
				
			||||||
 | 
					0:?     'uint64_t_to_uint16_t' ( const uint16_t)
 | 
				
			||||||
 | 
					0:?       4 (const uint64_t)
 | 
				
			||||||
 | 
					0:?     'float16_t_to_uint16_t' ( const uint16_t)
 | 
				
			||||||
 | 
					0:?       42.000000
 | 
				
			||||||
 | 
					0:?     'float32_t_to_uint16_t' ( const uint16_t)
 | 
				
			||||||
 | 
					0:?       13.000000
 | 
				
			||||||
 | 
					0:?     'float64_t_to_uint16_t' ( const uint16_t)
 | 
				
			||||||
 | 
					0:?       -4.000000
 | 
				
			||||||
 | 
					0:?     'bool_to_uint32_t' ( const uint)
 | 
				
			||||||
 | 
					0:?       1 (const uint)
 | 
				
			||||||
 | 
					0:?     'int8_t_to_uint32_t' ( const uint)
 | 
				
			||||||
 | 
					0:?       -1 (const int)
 | 
				
			||||||
 | 
					0:?     'int16_t_to_uint32_t' ( const uint)
 | 
				
			||||||
 | 
					0:?       -2 (const int)
 | 
				
			||||||
 | 
					0:?     'int32_t_to_uint32_t' ( const uint)
 | 
				
			||||||
 | 
					0:?       4294967293 (const uint)
 | 
				
			||||||
 | 
					0:?     'int64_t_to_uint32_t' ( const uint)
 | 
				
			||||||
 | 
					0:?       4294967292 (const uint)
 | 
				
			||||||
 | 
					0:?     'uint8_t_to_uint32_t' ( const uint)
 | 
				
			||||||
 | 
					0:?       1 (const int)
 | 
				
			||||||
 | 
					0:?     'uint16_t_to_uint32_t' ( const uint)
 | 
				
			||||||
 | 
					0:?       2 (const int)
 | 
				
			||||||
 | 
					0:?     'uint32_t_to_uint32_t' ( const uint)
 | 
				
			||||||
 | 
					0:?       3 (const uint)
 | 
				
			||||||
 | 
					0:?     'uint64_t_to_uint32_t' ( const uint)
 | 
				
			||||||
 | 
					0:?       4 (const uint)
 | 
				
			||||||
 | 
					0:?     'float16_t_to_uint32_t' ( const uint)
 | 
				
			||||||
 | 
					0:?       42 (const uint)
 | 
				
			||||||
 | 
					0:?     'float32_t_to_uint32_t' ( const uint)
 | 
				
			||||||
 | 
					0:?       13 (const uint)
 | 
				
			||||||
 | 
					0:?     'float64_t_to_uint32_t' ( const uint)
 | 
				
			||||||
 | 
					0:?       4294967292 (const uint)
 | 
				
			||||||
 | 
					0:?     'bool_to_uint64_t' ( const uint64_t)
 | 
				
			||||||
 | 
					0:?       1 (const uint64_t)
 | 
				
			||||||
 | 
					0:?     'int8_t_to_uint64_t' ( const uint64_t)
 | 
				
			||||||
 | 
					0:?       -1 (const int)
 | 
				
			||||||
 | 
					0:?     'int16_t_to_uint64_t' ( const uint64_t)
 | 
				
			||||||
 | 
					0:?       -2 (const int)
 | 
				
			||||||
 | 
					0:?     'int32_t_to_uint64_t' ( const uint64_t)
 | 
				
			||||||
 | 
					0:?       18446744073709551613 (const uint64_t)
 | 
				
			||||||
 | 
					0:?     'int64_t_to_uint64_t' ( const uint64_t)
 | 
				
			||||||
 | 
					0:?       18446744073709551612 (const uint64_t)
 | 
				
			||||||
 | 
					0:?     'uint8_t_to_uint64_t' ( const uint64_t)
 | 
				
			||||||
 | 
					0:?       1 (const int)
 | 
				
			||||||
 | 
					0:?     'uint16_t_to_uint64_t' ( const uint64_t)
 | 
				
			||||||
 | 
					0:?       2 (const int)
 | 
				
			||||||
 | 
					0:?     'uint32_t_to_uint64_t' ( const uint64_t)
 | 
				
			||||||
 | 
					0:?       3 (const uint64_t)
 | 
				
			||||||
 | 
					0:?     'uint64_t_to_uint64_t' ( const uint64_t)
 | 
				
			||||||
 | 
					0:?       4 (const uint64_t)
 | 
				
			||||||
 | 
					0:?     'float16_t_to_uint64_t' ( const uint64_t)
 | 
				
			||||||
 | 
					0:?       42 (const uint64_t)
 | 
				
			||||||
 | 
					0:?     'float32_t_to_uint64_t' ( const uint64_t)
 | 
				
			||||||
 | 
					0:?       13 (const uint64_t)
 | 
				
			||||||
 | 
					0:?     'float64_t_to_uint64_t' ( const uint64_t)
 | 
				
			||||||
 | 
					0:?       18446744073709551612 (const uint64_t)
 | 
				
			||||||
 | 
					0:?     'bool_to_float16_t' ( const float16_t)
 | 
				
			||||||
 | 
					0:?       1.000000
 | 
				
			||||||
 | 
					0:?     'int8_t_to_float16_t' ( const float16_t)
 | 
				
			||||||
 | 
					0:?       -1 (const int)
 | 
				
			||||||
 | 
					0:?     'int16_t_to_float16_t' ( const float16_t)
 | 
				
			||||||
 | 
					0:?       -2 (const int)
 | 
				
			||||||
 | 
					0:?     'int32_t_to_float16_t' ( const float16_t)
 | 
				
			||||||
 | 
					0:?       -3.000000
 | 
				
			||||||
 | 
					0:?     'int64_t_to_float16_t' ( const float16_t)
 | 
				
			||||||
 | 
					0:?       -4.000000
 | 
				
			||||||
 | 
					0:?     'uint8_t_to_float16_t' ( const float16_t)
 | 
				
			||||||
 | 
					0:?       1 (const int)
 | 
				
			||||||
 | 
					0:?     'uint16_t_to_float16_t' ( const float16_t)
 | 
				
			||||||
 | 
					0:?       2 (const int)
 | 
				
			||||||
 | 
					0:?     'uint32_t_to_float16_t' ( const float16_t)
 | 
				
			||||||
 | 
					0:?       3.000000
 | 
				
			||||||
 | 
					0:?     'uint64_t_to_float16_t' ( const float16_t)
 | 
				
			||||||
 | 
					0:?       4.000000
 | 
				
			||||||
 | 
					0:?     'float16_t_to_float16_t' ( const float16_t)
 | 
				
			||||||
 | 
					0:?       42.000000
 | 
				
			||||||
 | 
					0:?     'float32_t_to_float16_t' ( const float16_t)
 | 
				
			||||||
 | 
					0:?       13.000000
 | 
				
			||||||
 | 
					0:?     'float64_t_to_float16_t' ( const float16_t)
 | 
				
			||||||
 | 
					0:?       -4.000000
 | 
				
			||||||
 | 
					0:?     'bool_to_float32_t' ( const float)
 | 
				
			||||||
 | 
					0:?       1.000000
 | 
				
			||||||
 | 
					0:?     'int8_t_to_float32_t' ( const float)
 | 
				
			||||||
 | 
					0:?       -1 (const int)
 | 
				
			||||||
 | 
					0:?     'int16_t_to_float32_t' ( const float)
 | 
				
			||||||
 | 
					0:?       -2 (const int)
 | 
				
			||||||
 | 
					0:?     'int32_t_to_float32_t' ( const float)
 | 
				
			||||||
 | 
					0:?       -3.000000
 | 
				
			||||||
 | 
					0:?     'int64_t_to_float32_t' ( const float)
 | 
				
			||||||
 | 
					0:?       -4.000000
 | 
				
			||||||
 | 
					0:?     'uint8_t_to_float32_t' ( const float)
 | 
				
			||||||
 | 
					0:?       1 (const int)
 | 
				
			||||||
 | 
					0:?     'uint16_t_to_float32_t' ( const float)
 | 
				
			||||||
 | 
					0:?       2 (const int)
 | 
				
			||||||
 | 
					0:?     'uint32_t_to_float32_t' ( const float)
 | 
				
			||||||
 | 
					0:?       3.000000
 | 
				
			||||||
 | 
					0:?     'uint64_t_to_float32_t' ( const float)
 | 
				
			||||||
 | 
					0:?       4.000000
 | 
				
			||||||
 | 
					0:?     'float16_t_to_float32_t' ( const float)
 | 
				
			||||||
 | 
					0:?       42.000000
 | 
				
			||||||
 | 
					0:?     'float32_t_to_float32_t' ( const float)
 | 
				
			||||||
 | 
					0:?       13.000000
 | 
				
			||||||
 | 
					0:?     'float64_t_to_float32_t' ( const float)
 | 
				
			||||||
 | 
					0:?       -4.000000
 | 
				
			||||||
 | 
					0:?     'bool_to_float64_t' ( const double)
 | 
				
			||||||
 | 
					0:?       1.000000
 | 
				
			||||||
 | 
					0:?     'int8_t_to_float64_t' ( const double)
 | 
				
			||||||
 | 
					0:?       -1 (const int)
 | 
				
			||||||
 | 
					0:?     'int16_t_to_float64_t' ( const double)
 | 
				
			||||||
 | 
					0:?       -2 (const int)
 | 
				
			||||||
 | 
					0:?     'int32_t_to_float64_t' ( const double)
 | 
				
			||||||
 | 
					0:?       -3.000000
 | 
				
			||||||
 | 
					0:?     'int64_t_to_float64_t' ( const double)
 | 
				
			||||||
 | 
					0:?       -4.000000
 | 
				
			||||||
 | 
					0:?     'uint8_t_to_float64_t' ( const double)
 | 
				
			||||||
 | 
					0:?       1 (const int)
 | 
				
			||||||
 | 
					0:?     'uint16_t_to_float64_t' ( const double)
 | 
				
			||||||
 | 
					0:?       2 (const int)
 | 
				
			||||||
 | 
					0:?     'uint32_t_to_float64_t' ( const double)
 | 
				
			||||||
 | 
					0:?       3.000000
 | 
				
			||||||
 | 
					0:?     'uint64_t_to_float64_t' ( const double)
 | 
				
			||||||
 | 
					0:?       4.000000
 | 
				
			||||||
 | 
					0:?     'float16_t_to_float64_t' ( const double)
 | 
				
			||||||
 | 
					0:?       42.000000
 | 
				
			||||||
 | 
					0:?     'float32_t_to_float64_t' ( const double)
 | 
				
			||||||
 | 
					0:?       13.000000
 | 
				
			||||||
 | 
					0:?     'float64_t_to_float64_t' ( const double)
 | 
				
			||||||
 | 
					0:?       -4.000000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1,7 +1,7 @@
 | 
				
			|||||||
spv.16bitstorage-int.frag
 | 
					spv.16bitstorage-int.frag
 | 
				
			||||||
// Module Version 10000
 | 
					// Module Version 10000
 | 
				
			||||||
// Generated by (magic number): 80007
 | 
					// Generated by (magic number): 80007
 | 
				
			||||||
// Id's are bound by 171
 | 
					// Id's are bound by 172
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                              Capability Shader
 | 
					                              Capability Shader
 | 
				
			||||||
                              Capability StorageUniformBufferBlock16
 | 
					                              Capability StorageUniformBufferBlock16
 | 
				
			||||||
@ -204,7 +204,10 @@ spv.16bitstorage-int.frag
 | 
				
			|||||||
             114:     20(int) Constant 7
 | 
					             114:     20(int) Constant 7
 | 
				
			||||||
             115:     20(int) Constant 6
 | 
					             115:     20(int) Constant 6
 | 
				
			||||||
             116:             TypePointer Uniform 20(int)
 | 
					             116:             TypePointer Uniform 20(int)
 | 
				
			||||||
             166:   39(ivec2) ConstantComposite 32 33
 | 
					             166:  6(int16_t) Constant 1
 | 
				
			||||||
 | 
					             167:  6(int16_t) Constant 2
 | 
				
			||||||
 | 
					             168:  7(i16vec2) ConstantComposite 166 167
 | 
				
			||||||
 | 
					             170:  6(int16_t) Constant 3
 | 
				
			||||||
         4(main):           2 Function None 3
 | 
					         4(main):           2 Function None 3
 | 
				
			||||||
               5:             Label
 | 
					               5:             Label
 | 
				
			||||||
          69(x0):     68(ptr) Variable Function
 | 
					          69(x0):     68(ptr) Variable Function
 | 
				
			||||||
@ -324,11 +327,9 @@ spv.16bitstorage-int.frag
 | 
				
			|||||||
             164:  6(int16_t) Load 163
 | 
					             164:  6(int16_t) Load 163
 | 
				
			||||||
             165:     28(ptr) AccessChain 19(b2) 21
 | 
					             165:     28(ptr) AccessChain 19(b2) 21
 | 
				
			||||||
                              Store 165 164
 | 
					                              Store 165 164
 | 
				
			||||||
             167:  7(i16vec2) SConvert 166
 | 
					             169:     42(ptr) AccessChain 19(b2) 32
 | 
				
			||||||
             168:     42(ptr) AccessChain 19(b2) 32
 | 
					                              Store 169 168
 | 
				
			||||||
                              Store 168 167
 | 
					             171:     28(ptr) AccessChain 19(b2) 21
 | 
				
			||||||
             169:  6(int16_t) SConvert 58
 | 
					                              Store 171 170
 | 
				
			||||||
             170:     28(ptr) AccessChain 19(b2) 21
 | 
					 | 
				
			||||||
                              Store 170 169
 | 
					 | 
				
			||||||
                              Return
 | 
					                              Return
 | 
				
			||||||
                              FunctionEnd
 | 
					                              FunctionEnd
 | 
				
			||||||
 | 
				
			|||||||
@ -205,8 +205,10 @@ spv.16bitstorage-uint.frag
 | 
				
			|||||||
             115:     20(int) Constant 7
 | 
					             115:     20(int) Constant 7
 | 
				
			||||||
             116:     20(int) Constant 6
 | 
					             116:     20(int) Constant 6
 | 
				
			||||||
             117:             TypePointer Uniform 9(int)
 | 
					             117:             TypePointer Uniform 9(int)
 | 
				
			||||||
             167:   39(ivec2) ConstantComposite 82 10
 | 
					             167:  6(int16_t) Constant 1
 | 
				
			||||||
             170:      9(int) Constant 3
 | 
					             168:  6(int16_t) Constant 2
 | 
				
			||||||
 | 
					             169:  7(i16vec2) ConstantComposite 167 168
 | 
				
			||||||
 | 
					             171:  6(int16_t) Constant 3
 | 
				
			||||||
         4(main):           2 Function None 3
 | 
					         4(main):           2 Function None 3
 | 
				
			||||||
               5:             Label
 | 
					               5:             Label
 | 
				
			||||||
          69(x0):     68(ptr) Variable Function
 | 
					          69(x0):     68(ptr) Variable Function
 | 
				
			||||||
@ -326,10 +328,8 @@ spv.16bitstorage-uint.frag
 | 
				
			|||||||
             165:  6(int16_t) Load 164
 | 
					             165:  6(int16_t) Load 164
 | 
				
			||||||
             166:     28(ptr) AccessChain 19(b2) 21
 | 
					             166:     28(ptr) AccessChain 19(b2) 21
 | 
				
			||||||
                              Store 166 165
 | 
					                              Store 166 165
 | 
				
			||||||
             168:  7(i16vec2) UConvert 167
 | 
					             170:     42(ptr) AccessChain 19(b2) 32
 | 
				
			||||||
             169:     42(ptr) AccessChain 19(b2) 32
 | 
					                              Store 170 169
 | 
				
			||||||
                              Store 169 168
 | 
					 | 
				
			||||||
             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
 | 
				
			||||||
                              Return
 | 
					                              Return
 | 
				
			||||||
 | 
				
			|||||||
@ -1,7 +1,7 @@
 | 
				
			|||||||
spv.16bitstorage.frag
 | 
					spv.16bitstorage.frag
 | 
				
			||||||
// Module Version 10000
 | 
					// Module Version 10000
 | 
				
			||||||
// Generated by (magic number): 80007
 | 
					// Generated by (magic number): 80007
 | 
				
			||||||
// Id's are bound by 173
 | 
					// Id's are bound by 172
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                              Capability Shader
 | 
					                              Capability Shader
 | 
				
			||||||
                              Capability StorageUniformBufferBlock16
 | 
					                              Capability StorageUniformBufferBlock16
 | 
				
			||||||
@ -204,9 +204,10 @@ spv.16bitstorage.frag
 | 
				
			|||||||
             114:     20(int) Constant 7
 | 
					             114:     20(int) Constant 7
 | 
				
			||||||
             115:     20(int) Constant 6
 | 
					             115:     20(int) Constant 6
 | 
				
			||||||
             116:             TypePointer Uniform 20(int)
 | 
					             116:             TypePointer Uniform 20(int)
 | 
				
			||||||
             166:   37(float) Constant 1073741824
 | 
					             166:6(float16_t) Constant 15360
 | 
				
			||||||
             167:   40(fvec2) ConstantComposite 83 166
 | 
					             167:6(float16_t) Constant 16384
 | 
				
			||||||
             170:   37(float) Constant 1077936128
 | 
					             168:  7(f16vec2) ConstantComposite 166 167
 | 
				
			||||||
 | 
					             170:6(float16_t) Constant 16896
 | 
				
			||||||
         4(main):           2 Function None 3
 | 
					         4(main):           2 Function None 3
 | 
				
			||||||
               5:             Label
 | 
					               5:             Label
 | 
				
			||||||
          70(x0):     69(ptr) Variable Function
 | 
					          70(x0):     69(ptr) Variable Function
 | 
				
			||||||
@ -326,11 +327,9 @@ spv.16bitstorage.frag
 | 
				
			|||||||
             164:6(float16_t) Load 163
 | 
					             164:6(float16_t) Load 163
 | 
				
			||||||
             165:     28(ptr) AccessChain 19(b2) 21
 | 
					             165:     28(ptr) AccessChain 19(b2) 21
 | 
				
			||||||
                              Store 165 164
 | 
					                              Store 165 164
 | 
				
			||||||
             168:  7(f16vec2) FConvert 167
 | 
					 | 
				
			||||||
             169:     43(ptr) AccessChain 19(b2) 32
 | 
					             169:     43(ptr) AccessChain 19(b2) 32
 | 
				
			||||||
                              Store 169 168
 | 
					                              Store 169 168
 | 
				
			||||||
             171:6(float16_t) FConvert 170
 | 
					             171:     28(ptr) AccessChain 19(b2) 21
 | 
				
			||||||
             172:     28(ptr) AccessChain 19(b2) 21
 | 
					                              Store 171 170
 | 
				
			||||||
                              Store 172 171
 | 
					 | 
				
			||||||
                              Return
 | 
					                              Return
 | 
				
			||||||
                              FunctionEnd
 | 
					                              FunctionEnd
 | 
				
			||||||
 | 
				
			|||||||
@ -1,7 +1,7 @@
 | 
				
			|||||||
spv.8bitstorage-int.frag
 | 
					spv.8bitstorage-int.frag
 | 
				
			||||||
// Module Version 10000
 | 
					// Module Version 10000
 | 
				
			||||||
// Generated by (magic number): 80007
 | 
					// Generated by (magic number): 80007
 | 
				
			||||||
// Id's are bound by 171
 | 
					// Id's are bound by 172
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                              Capability Shader
 | 
					                              Capability Shader
 | 
				
			||||||
                              Capability CapabilityUniformAndStorageBuffer8BitAccess
 | 
					                              Capability CapabilityUniformAndStorageBuffer8BitAccess
 | 
				
			||||||
@ -203,7 +203,10 @@ spv.8bitstorage-int.frag
 | 
				
			|||||||
             114:     20(int) Constant 7
 | 
					             114:     20(int) Constant 7
 | 
				
			||||||
             115:     20(int) Constant 6
 | 
					             115:     20(int) Constant 6
 | 
				
			||||||
             116:             TypePointer Uniform 20(int)
 | 
					             116:             TypePointer Uniform 20(int)
 | 
				
			||||||
             166:   39(ivec2) ConstantComposite 32 33
 | 
					             166:   6(int8_t) Constant 1
 | 
				
			||||||
 | 
					             167:   6(int8_t) Constant 2
 | 
				
			||||||
 | 
					             168:   7(i8vec2) ConstantComposite 166 167
 | 
				
			||||||
 | 
					             170:   6(int8_t) Constant 3
 | 
				
			||||||
         4(main):           2 Function None 3
 | 
					         4(main):           2 Function None 3
 | 
				
			||||||
               5:             Label
 | 
					               5:             Label
 | 
				
			||||||
          69(x0):     68(ptr) Variable Function
 | 
					          69(x0):     68(ptr) Variable Function
 | 
				
			||||||
@ -323,11 +326,9 @@ spv.8bitstorage-int.frag
 | 
				
			|||||||
             164:   6(int8_t) Load 163
 | 
					             164:   6(int8_t) Load 163
 | 
				
			||||||
             165:     28(ptr) AccessChain 19(b2) 21
 | 
					             165:     28(ptr) AccessChain 19(b2) 21
 | 
				
			||||||
                              Store 165 164
 | 
					                              Store 165 164
 | 
				
			||||||
             167:   7(i8vec2) SConvert 166
 | 
					             169:     42(ptr) AccessChain 19(b2) 32
 | 
				
			||||||
             168:     42(ptr) AccessChain 19(b2) 32
 | 
					                              Store 169 168
 | 
				
			||||||
                              Store 168 167
 | 
					             171:     28(ptr) AccessChain 19(b2) 21
 | 
				
			||||||
             169:   6(int8_t) SConvert 58
 | 
					                              Store 171 170
 | 
				
			||||||
             170:     28(ptr) AccessChain 19(b2) 21
 | 
					 | 
				
			||||||
                              Store 170 169
 | 
					 | 
				
			||||||
                              Return
 | 
					                              Return
 | 
				
			||||||
                              FunctionEnd
 | 
					                              FunctionEnd
 | 
				
			||||||
 | 
				
			|||||||
@ -204,8 +204,10 @@ spv.8bitstorage-uint.frag
 | 
				
			|||||||
             115:     20(int) Constant 7
 | 
					             115:     20(int) Constant 7
 | 
				
			||||||
             116:     20(int) Constant 6
 | 
					             116:     20(int) Constant 6
 | 
				
			||||||
             117:             TypePointer Uniform 9(int)
 | 
					             117:             TypePointer Uniform 9(int)
 | 
				
			||||||
             167:   39(ivec2) ConstantComposite 82 10
 | 
					             167:   6(int8_t) Constant 1
 | 
				
			||||||
             170:      9(int) Constant 3
 | 
					             168:   6(int8_t) Constant 2
 | 
				
			||||||
 | 
					             169:   7(i8vec2) ConstantComposite 167 168
 | 
				
			||||||
 | 
					             171:   6(int8_t) Constant 3
 | 
				
			||||||
         4(main):           2 Function None 3
 | 
					         4(main):           2 Function None 3
 | 
				
			||||||
               5:             Label
 | 
					               5:             Label
 | 
				
			||||||
          69(x0):     68(ptr) Variable Function
 | 
					          69(x0):     68(ptr) Variable Function
 | 
				
			||||||
@ -325,10 +327,8 @@ spv.8bitstorage-uint.frag
 | 
				
			|||||||
             165:   6(int8_t) Load 164
 | 
					             165:   6(int8_t) Load 164
 | 
				
			||||||
             166:     28(ptr) AccessChain 19(b2) 21
 | 
					             166:     28(ptr) AccessChain 19(b2) 21
 | 
				
			||||||
                              Store 166 165
 | 
					                              Store 166 165
 | 
				
			||||||
             168:   7(i8vec2) UConvert 167
 | 
					             170:     42(ptr) AccessChain 19(b2) 32
 | 
				
			||||||
             169:     42(ptr) AccessChain 19(b2) 32
 | 
					                              Store 170 169
 | 
				
			||||||
                              Store 169 168
 | 
					 | 
				
			||||||
             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
 | 
				
			||||||
                              Return
 | 
					                              Return
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										48
									
								
								Test/constantUnaryConversion.comp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								Test/constantUnaryConversion.comp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,48 @@
 | 
				
			|||||||
 | 
					#version 450
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#extension GL_KHX_shader_explicit_arithmetic_types : require
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const bool bool_init = true;
 | 
				
			||||||
 | 
					const int8_t int8_t_init = int8_t(-1);
 | 
				
			||||||
 | 
					const int16_t int16_t_init = int16_t(-2);
 | 
				
			||||||
 | 
					const int32_t int32_t_init = int32_t(-3);
 | 
				
			||||||
 | 
					const int64_t int64_t_init = int64_t(-4);
 | 
				
			||||||
 | 
					const uint8_t uint8_t_init = uint8_t(1);
 | 
				
			||||||
 | 
					const uint16_t uint16_t_init = uint16_t(2);
 | 
				
			||||||
 | 
					const uint32_t uint32_t_init = uint32_t(3);
 | 
				
			||||||
 | 
					const uint64_t uint64_t_init = uint64_t(4);
 | 
				
			||||||
 | 
					const float16_t float16_t_init = float16_t(42.0);
 | 
				
			||||||
 | 
					const float32_t float32_t_init = float32_t(13.0);
 | 
				
			||||||
 | 
					const float64_t float64_t_init = float64_t(-4.0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define TYPE_TO_TYPE(x, y) \
 | 
				
			||||||
 | 
					    const x y##_to_##x = x(y##_init)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define TYPE_TO(x)              \
 | 
				
			||||||
 | 
					    TYPE_TO_TYPE(x, bool);      \
 | 
				
			||||||
 | 
					    TYPE_TO_TYPE(x, int8_t);    \
 | 
				
			||||||
 | 
					    TYPE_TO_TYPE(x, int16_t);   \
 | 
				
			||||||
 | 
					    TYPE_TO_TYPE(x, int32_t);   \
 | 
				
			||||||
 | 
					    TYPE_TO_TYPE(x, int64_t);   \
 | 
				
			||||||
 | 
					    TYPE_TO_TYPE(x, uint8_t);   \
 | 
				
			||||||
 | 
					    TYPE_TO_TYPE(x, uint16_t);  \
 | 
				
			||||||
 | 
					    TYPE_TO_TYPE(x, uint32_t);  \
 | 
				
			||||||
 | 
					    TYPE_TO_TYPE(x, uint64_t);  \
 | 
				
			||||||
 | 
					    TYPE_TO_TYPE(x, float16_t); \
 | 
				
			||||||
 | 
					    TYPE_TO_TYPE(x, float32_t); \
 | 
				
			||||||
 | 
					    TYPE_TO_TYPE(x, float64_t)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TYPE_TO(bool);
 | 
				
			||||||
 | 
					TYPE_TO(int8_t);
 | 
				
			||||||
 | 
					TYPE_TO(int16_t);
 | 
				
			||||||
 | 
					TYPE_TO(int32_t);
 | 
				
			||||||
 | 
					TYPE_TO(int64_t);
 | 
				
			||||||
 | 
					TYPE_TO(uint8_t);
 | 
				
			||||||
 | 
					TYPE_TO(uint16_t);
 | 
				
			||||||
 | 
					TYPE_TO(uint32_t);
 | 
				
			||||||
 | 
					TYPE_TO(uint64_t);
 | 
				
			||||||
 | 
					TYPE_TO(float16_t);
 | 
				
			||||||
 | 
					TYPE_TO(float32_t);
 | 
				
			||||||
 | 
					TYPE_TO(float64_t);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void main() {}
 | 
				
			||||||
@ -670,6 +670,279 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, const TType& returnType)
 | 
				
			|||||||
            break;
 | 
					            break;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        case EOpConvInt8ToBool:
 | 
				
			||||||
 | 
					            newConstArray[i].setBConst(unionArray[i].getI8Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvUint8ToBool:
 | 
				
			||||||
 | 
					            newConstArray[i].setBConst(unionArray[i].getU8Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvInt16ToBool:
 | 
				
			||||||
 | 
					            newConstArray[i].setBConst(unionArray[i].getI16Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvUint16ToBool:
 | 
				
			||||||
 | 
					            newConstArray[i].setBConst(unionArray[i].getU16Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvIntToBool:
 | 
				
			||||||
 | 
					            newConstArray[i].setBConst(unionArray[i].getIConst()); break;
 | 
				
			||||||
 | 
					        case EOpConvUintToBool:
 | 
				
			||||||
 | 
					            newConstArray[i].setBConst(unionArray[i].getUConst()); break;
 | 
				
			||||||
 | 
					        case EOpConvInt64ToBool:
 | 
				
			||||||
 | 
					            newConstArray[i].setBConst(unionArray[i].getI64Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvUint64ToBool:
 | 
				
			||||||
 | 
					            newConstArray[i].setBConst(unionArray[i].getI64Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvFloat16ToBool:
 | 
				
			||||||
 | 
					            newConstArray[i].setBConst(unionArray[i].getDConst()); break;
 | 
				
			||||||
 | 
					        case EOpConvFloatToBool:
 | 
				
			||||||
 | 
					            newConstArray[i].setBConst(unionArray[i].getDConst()); break;
 | 
				
			||||||
 | 
					        case EOpConvDoubleToBool:
 | 
				
			||||||
 | 
					            newConstArray[i].setBConst(unionArray[i].getDConst()); break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        case EOpConvBoolToInt8:
 | 
				
			||||||
 | 
					            newConstArray[i].setI8Const(unionArray[i].getBConst()); break;
 | 
				
			||||||
 | 
					        case EOpConvBoolToUint8:
 | 
				
			||||||
 | 
					            newConstArray[i].setU8Const(unionArray[i].getBConst()); break;
 | 
				
			||||||
 | 
					        case EOpConvBoolToInt16:
 | 
				
			||||||
 | 
					            newConstArray[i].setI16Const(unionArray[i].getBConst()); break;
 | 
				
			||||||
 | 
					        case EOpConvBoolToUint16:
 | 
				
			||||||
 | 
					            newConstArray[i].setU16Const(unionArray[i].getBConst()); break;
 | 
				
			||||||
 | 
					        case EOpConvBoolToInt:
 | 
				
			||||||
 | 
					            newConstArray[i].setIConst(unionArray[i].getBConst()); break;
 | 
				
			||||||
 | 
					        case EOpConvBoolToUint:
 | 
				
			||||||
 | 
					            newConstArray[i].setUConst(unionArray[i].getBConst()); break;
 | 
				
			||||||
 | 
					        case EOpConvBoolToInt64:
 | 
				
			||||||
 | 
					            newConstArray[i].setI64Const(unionArray[i].getBConst()); break;
 | 
				
			||||||
 | 
					        case EOpConvBoolToUint64:
 | 
				
			||||||
 | 
					            newConstArray[i].setU64Const(unionArray[i].getBConst()); break;
 | 
				
			||||||
 | 
					        case EOpConvBoolToFloat16:
 | 
				
			||||||
 | 
					            newConstArray[i].setDConst(unionArray[i].getBConst()); break;
 | 
				
			||||||
 | 
					        case EOpConvBoolToFloat:
 | 
				
			||||||
 | 
					            newConstArray[i].setDConst(unionArray[i].getBConst()); break;
 | 
				
			||||||
 | 
					        case EOpConvBoolToDouble:
 | 
				
			||||||
 | 
					            newConstArray[i].setDConst(unionArray[i].getBConst()); break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        case EOpConvInt8ToInt16:
 | 
				
			||||||
 | 
					            newConstArray[i].setI16Const(unionArray[i].getI8Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvInt8ToInt:
 | 
				
			||||||
 | 
					            newConstArray[i].setIConst(unionArray[i].getI8Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvInt8ToInt64:
 | 
				
			||||||
 | 
					            newConstArray[i].setI64Const(unionArray[i].getI8Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvInt8ToUint8:
 | 
				
			||||||
 | 
					            newConstArray[i].setU8Const(unionArray[i].getI8Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvInt8ToUint16:
 | 
				
			||||||
 | 
					            newConstArray[i].setU16Const(unionArray[i].getI8Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvInt8ToUint:
 | 
				
			||||||
 | 
					            newConstArray[i].setUConst(unionArray[i].getI8Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvInt8ToUint64:
 | 
				
			||||||
 | 
					            newConstArray[i].setU64Const(unionArray[i].getI8Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvUint8ToInt8:
 | 
				
			||||||
 | 
					            newConstArray[i].setI8Const(unionArray[i].getU8Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvUint8ToInt16:
 | 
				
			||||||
 | 
					            newConstArray[i].setI16Const(unionArray[i].getU8Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvUint8ToInt:
 | 
				
			||||||
 | 
					            newConstArray[i].setIConst(unionArray[i].getU8Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvUint8ToInt64:
 | 
				
			||||||
 | 
					            newConstArray[i].setI64Const(unionArray[i].getU8Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvUint8ToUint16:
 | 
				
			||||||
 | 
					            newConstArray[i].setU16Const(unionArray[i].getU8Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvUint8ToUint:
 | 
				
			||||||
 | 
					            newConstArray[i].setUConst(unionArray[i].getU8Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvUint8ToUint64:
 | 
				
			||||||
 | 
					            newConstArray[i].setU64Const(unionArray[i].getU8Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvInt8ToFloat16:
 | 
				
			||||||
 | 
					            newConstArray[i].setDConst(unionArray[i].getI8Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvInt8ToFloat:
 | 
				
			||||||
 | 
					            newConstArray[i].setDConst(unionArray[i].getI8Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvInt8ToDouble:
 | 
				
			||||||
 | 
					            newConstArray[i].setDConst(unionArray[i].getI8Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvUint8ToFloat16:
 | 
				
			||||||
 | 
					            newConstArray[i].setDConst(unionArray[i].getU8Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvUint8ToFloat:
 | 
				
			||||||
 | 
					            newConstArray[i].setDConst(unionArray[i].getU8Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvUint8ToDouble:
 | 
				
			||||||
 | 
					            newConstArray[i].setDConst(unionArray[i].getU8Const()); break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        case EOpConvInt16ToInt8:
 | 
				
			||||||
 | 
					            newConstArray[i].setI8Const(static_cast<int8_t>(unionArray[i].getI16Const())); break;
 | 
				
			||||||
 | 
					        case EOpConvInt16ToInt:
 | 
				
			||||||
 | 
					            newConstArray[i].setIConst(unionArray[i].getI16Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvInt16ToInt64:
 | 
				
			||||||
 | 
					            newConstArray[i].setI64Const(unionArray[i].getI16Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvInt16ToUint8:
 | 
				
			||||||
 | 
					            newConstArray[i].setU8Const(static_cast<uint8_t>(unionArray[i].getI16Const())); break;
 | 
				
			||||||
 | 
					        case EOpConvInt16ToUint16:
 | 
				
			||||||
 | 
					            newConstArray[i].setU16Const(unionArray[i].getI16Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvInt16ToUint:
 | 
				
			||||||
 | 
					            newConstArray[i].setUConst(unionArray[i].getI16Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvInt16ToUint64:
 | 
				
			||||||
 | 
					            newConstArray[i].setU64Const(unionArray[i].getI16Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvUint16ToInt8:
 | 
				
			||||||
 | 
					            newConstArray[i].setI8Const(static_cast<int8_t>(unionArray[i].getU16Const())); break;
 | 
				
			||||||
 | 
					        case EOpConvUint16ToInt16:
 | 
				
			||||||
 | 
					            newConstArray[i].setI16Const(unionArray[i].getU16Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvUint16ToInt:
 | 
				
			||||||
 | 
					            newConstArray[i].setIConst(unionArray[i].getU16Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvUint16ToInt64:
 | 
				
			||||||
 | 
					            newConstArray[i].setI64Const(unionArray[i].getU16Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvUint16ToUint8:
 | 
				
			||||||
 | 
					            newConstArray[i].setU8Const(static_cast<uint8_t>(unionArray[i].getU16Const())); break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        case EOpConvUint16ToUint:
 | 
				
			||||||
 | 
					            newConstArray[i].setUConst(unionArray[i].getU16Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvUint16ToUint64:
 | 
				
			||||||
 | 
					            newConstArray[i].setU64Const(unionArray[i].getU16Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvInt16ToFloat16:
 | 
				
			||||||
 | 
					            newConstArray[i].setDConst(unionArray[i].getI16Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvInt16ToFloat:
 | 
				
			||||||
 | 
					            newConstArray[i].setDConst(unionArray[i].getI16Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvInt16ToDouble:
 | 
				
			||||||
 | 
					            newConstArray[i].setDConst(unionArray[i].getI16Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvUint16ToFloat16:
 | 
				
			||||||
 | 
					            newConstArray[i].setDConst(unionArray[i].getU16Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvUint16ToFloat:
 | 
				
			||||||
 | 
					            newConstArray[i].setDConst(unionArray[i].getU16Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvUint16ToDouble:
 | 
				
			||||||
 | 
					            newConstArray[i].setDConst(unionArray[i].getU16Const()); break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        case EOpConvIntToInt8:
 | 
				
			||||||
 | 
					            newConstArray[i].setI8Const(unionArray[i].getIConst()); break;
 | 
				
			||||||
 | 
					        case EOpConvIntToInt16:
 | 
				
			||||||
 | 
					            newConstArray[i].setI16Const(unionArray[i].getIConst()); break;
 | 
				
			||||||
 | 
					        case EOpConvIntToInt64:
 | 
				
			||||||
 | 
					            newConstArray[i].setI64Const(unionArray[i].getIConst()); break;
 | 
				
			||||||
 | 
					        case EOpConvIntToUint8:
 | 
				
			||||||
 | 
					            newConstArray[i].setU8Const(unionArray[i].getIConst()); break;
 | 
				
			||||||
 | 
					        case EOpConvIntToUint16:
 | 
				
			||||||
 | 
					            newConstArray[i].setU16Const(unionArray[i].getIConst()); break;
 | 
				
			||||||
 | 
					        case EOpConvIntToUint:
 | 
				
			||||||
 | 
					            newConstArray[i].setUConst(unionArray[i].getIConst()); break;
 | 
				
			||||||
 | 
					        case EOpConvIntToUint64:
 | 
				
			||||||
 | 
					            newConstArray[i].setU64Const(unionArray[i].getIConst()); break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        case EOpConvUintToInt8:
 | 
				
			||||||
 | 
					            newConstArray[i].setI8Const(unionArray[i].getUConst()); break;
 | 
				
			||||||
 | 
					        case EOpConvUintToInt16:
 | 
				
			||||||
 | 
					            newConstArray[i].setI16Const(unionArray[i].getUConst()); break;
 | 
				
			||||||
 | 
					        case EOpConvUintToInt:
 | 
				
			||||||
 | 
					            newConstArray[i].setIConst(unionArray[i].getUConst()); break;
 | 
				
			||||||
 | 
					        case EOpConvUintToInt64:
 | 
				
			||||||
 | 
					            newConstArray[i].setI64Const(unionArray[i].getUConst()); break;
 | 
				
			||||||
 | 
					        case EOpConvUintToUint8:
 | 
				
			||||||
 | 
					            newConstArray[i].setU8Const(unionArray[i].getUConst()); break;
 | 
				
			||||||
 | 
					        case EOpConvUintToUint16:
 | 
				
			||||||
 | 
					            newConstArray[i].setU16Const(unionArray[i].getUConst()); break;
 | 
				
			||||||
 | 
					        case EOpConvUintToUint64:
 | 
				
			||||||
 | 
					            newConstArray[i].setU64Const(unionArray[i].getUConst()); break;
 | 
				
			||||||
 | 
					        case EOpConvIntToFloat16:
 | 
				
			||||||
 | 
					            newConstArray[i].setDConst(unionArray[i].getIConst()); break;
 | 
				
			||||||
 | 
					        case EOpConvIntToFloat:
 | 
				
			||||||
 | 
					            newConstArray[i].setDConst(unionArray[i].getIConst()); break;
 | 
				
			||||||
 | 
					        case EOpConvIntToDouble:
 | 
				
			||||||
 | 
					            newConstArray[i].setDConst(unionArray[i].getIConst()); break;
 | 
				
			||||||
 | 
					        case EOpConvUintToFloat16:
 | 
				
			||||||
 | 
					            newConstArray[i].setDConst(unionArray[i].getUConst()); break;
 | 
				
			||||||
 | 
					        case EOpConvUintToFloat:
 | 
				
			||||||
 | 
					            newConstArray[i].setDConst(unionArray[i].getUConst()); break;
 | 
				
			||||||
 | 
					        case EOpConvUintToDouble:
 | 
				
			||||||
 | 
					            newConstArray[i].setDConst(unionArray[i].getUConst()); break;
 | 
				
			||||||
 | 
					        case EOpConvInt64ToInt8:
 | 
				
			||||||
 | 
					            newConstArray[i].setI8Const(static_cast<int8_t>(unionArray[i].getI64Const())); break;
 | 
				
			||||||
 | 
					        case EOpConvInt64ToInt16:
 | 
				
			||||||
 | 
					            newConstArray[i].setI16Const(static_cast<int16_t>(unionArray[i].getI64Const())); break;
 | 
				
			||||||
 | 
					        case EOpConvInt64ToInt:
 | 
				
			||||||
 | 
					            newConstArray[i].setIConst(static_cast<int32_t>(unionArray[i].getI64Const())); break;
 | 
				
			||||||
 | 
					        case EOpConvInt64ToUint8:
 | 
				
			||||||
 | 
					            newConstArray[i].setU8Const(static_cast<uint8_t>(unionArray[i].getI64Const())); break;
 | 
				
			||||||
 | 
					        case EOpConvInt64ToUint16:
 | 
				
			||||||
 | 
					            newConstArray[i].setU16Const(static_cast<uint16_t>(unionArray[i].getI64Const())); break;
 | 
				
			||||||
 | 
					        case EOpConvInt64ToUint:
 | 
				
			||||||
 | 
					            newConstArray[i].setUConst(static_cast<uint32_t>(unionArray[i].getI64Const())); break;
 | 
				
			||||||
 | 
					        case EOpConvInt64ToUint64:
 | 
				
			||||||
 | 
					            newConstArray[i].setU64Const(unionArray[i].getI64Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvUint64ToInt8:
 | 
				
			||||||
 | 
					            newConstArray[i].setI8Const(static_cast<int8_t>(unionArray[i].getU64Const())); break;
 | 
				
			||||||
 | 
					        case EOpConvUint64ToInt16:
 | 
				
			||||||
 | 
					            newConstArray[i].setI16Const(static_cast<int16_t>(unionArray[i].getU64Const())); break;
 | 
				
			||||||
 | 
					        case EOpConvUint64ToInt:
 | 
				
			||||||
 | 
					            newConstArray[i].setIConst(static_cast<int32_t>(unionArray[i].getU64Const())); break;
 | 
				
			||||||
 | 
					        case EOpConvUint64ToInt64:
 | 
				
			||||||
 | 
					            newConstArray[i].setI64Const(unionArray[i].getU64Const()); break;
 | 
				
			||||||
 | 
					        case EOpConvUint64ToUint8:
 | 
				
			||||||
 | 
					            newConstArray[i].setU8Const(static_cast<uint8_t>(unionArray[i].getU64Const())); break;
 | 
				
			||||||
 | 
					        case EOpConvUint64ToUint16:
 | 
				
			||||||
 | 
					            newConstArray[i].setU16Const(static_cast<uint16_t>(unionArray[i].getU64Const())); break;
 | 
				
			||||||
 | 
					        case EOpConvUint64ToUint:
 | 
				
			||||||
 | 
					            newConstArray[i].setUConst(static_cast<uint32_t>(unionArray[i].getU64Const())); break;
 | 
				
			||||||
 | 
					        case EOpConvInt64ToFloat16:
 | 
				
			||||||
 | 
					            newConstArray[i].setDConst(static_cast<double>(unionArray[i].getI64Const())); break;
 | 
				
			||||||
 | 
					        case EOpConvInt64ToFloat:
 | 
				
			||||||
 | 
					            newConstArray[i].setDConst(static_cast<double>(unionArray[i].getI64Const())); break;
 | 
				
			||||||
 | 
					        case EOpConvInt64ToDouble:
 | 
				
			||||||
 | 
					            newConstArray[i].setDConst(static_cast<double>(unionArray[i].getI64Const())); break;
 | 
				
			||||||
 | 
					        case EOpConvUint64ToFloat16:
 | 
				
			||||||
 | 
					            newConstArray[i].setDConst(static_cast<double>(unionArray[i].getU64Const())); break;
 | 
				
			||||||
 | 
					        case EOpConvUint64ToFloat:
 | 
				
			||||||
 | 
					            newConstArray[i].setDConst(static_cast<double>(unionArray[i].getU64Const())); break;
 | 
				
			||||||
 | 
					        case EOpConvUint64ToDouble:
 | 
				
			||||||
 | 
					            newConstArray[i].setDConst(static_cast<double>(unionArray[i].getU64Const())); break;
 | 
				
			||||||
 | 
					        case EOpConvFloat16ToInt8:
 | 
				
			||||||
 | 
					            newConstArray[i].setI8Const(static_cast<int8_t>(unionArray[i].getDConst())); break;
 | 
				
			||||||
 | 
					        case EOpConvFloat16ToInt16:
 | 
				
			||||||
 | 
					            newConstArray[i].setI16Const(static_cast<int16_t>(unionArray[i].getDConst())); break;
 | 
				
			||||||
 | 
					        case EOpConvFloat16ToInt:
 | 
				
			||||||
 | 
					            newConstArray[i].setIConst(static_cast<int32_t>(unionArray[i].getDConst())); break;
 | 
				
			||||||
 | 
					        case EOpConvFloat16ToInt64:
 | 
				
			||||||
 | 
					            newConstArray[i].setI64Const(static_cast<int64_t>(unionArray[i].getDConst())); break;
 | 
				
			||||||
 | 
					        case EOpConvFloat16ToUint8:
 | 
				
			||||||
 | 
					            newConstArray[i].setU8Const(static_cast<uint8_t>(unionArray[i].getDConst())); break;
 | 
				
			||||||
 | 
					        case EOpConvFloat16ToUint16:
 | 
				
			||||||
 | 
					            newConstArray[i].setU16Const(static_cast<uint16_t>(unionArray[i].getDConst())); break;
 | 
				
			||||||
 | 
					        case EOpConvFloat16ToUint:
 | 
				
			||||||
 | 
					            newConstArray[i].setUConst(static_cast<uint32_t>(unionArray[i].getDConst())); break;
 | 
				
			||||||
 | 
					        case EOpConvFloat16ToUint64:
 | 
				
			||||||
 | 
					            newConstArray[i].setU64Const(static_cast<uint64_t>(unionArray[i].getDConst())); break;
 | 
				
			||||||
 | 
					        case EOpConvFloat16ToFloat:
 | 
				
			||||||
 | 
					            newConstArray[i].setDConst(unionArray[i].getDConst()); break;
 | 
				
			||||||
 | 
					        case EOpConvFloat16ToDouble:
 | 
				
			||||||
 | 
					            newConstArray[i].setDConst(unionArray[i].getDConst()); break;
 | 
				
			||||||
 | 
					        case EOpConvFloatToInt8:
 | 
				
			||||||
 | 
					            newConstArray[i].setI8Const(static_cast<int8_t>(unionArray[i].getDConst())); break;
 | 
				
			||||||
 | 
					        case EOpConvFloatToInt16:
 | 
				
			||||||
 | 
					            newConstArray[i].setI16Const(static_cast<int16_t>(unionArray[i].getDConst())); break;
 | 
				
			||||||
 | 
					        case EOpConvFloatToInt:
 | 
				
			||||||
 | 
					            newConstArray[i].setIConst(static_cast<int32_t>(unionArray[i].getDConst())); break;
 | 
				
			||||||
 | 
					        case EOpConvFloatToInt64:
 | 
				
			||||||
 | 
					            newConstArray[i].setI64Const(static_cast<int64_t>(unionArray[i].getDConst())); break;
 | 
				
			||||||
 | 
					        case EOpConvFloatToUint8:
 | 
				
			||||||
 | 
					            newConstArray[i].setU8Const(static_cast<uint8_t>(unionArray[i].getDConst())); break;
 | 
				
			||||||
 | 
					        case EOpConvFloatToUint16:
 | 
				
			||||||
 | 
					            newConstArray[i].setU16Const(static_cast<uint16_t>(unionArray[i].getDConst())); break;
 | 
				
			||||||
 | 
					        case EOpConvFloatToUint:
 | 
				
			||||||
 | 
					            newConstArray[i].setUConst(static_cast<uint32_t>(unionArray[i].getDConst())); break;
 | 
				
			||||||
 | 
					        case EOpConvFloatToUint64:
 | 
				
			||||||
 | 
					            newConstArray[i].setU64Const(static_cast<uint64_t>(unionArray[i].getDConst())); break;
 | 
				
			||||||
 | 
					        case EOpConvFloatToFloat16:
 | 
				
			||||||
 | 
					            newConstArray[i].setDConst(unionArray[i].getDConst()); break;
 | 
				
			||||||
 | 
					        case EOpConvFloatToDouble:
 | 
				
			||||||
 | 
					            newConstArray[i].setDConst(unionArray[i].getDConst()); break;
 | 
				
			||||||
 | 
					        case EOpConvDoubleToInt8:
 | 
				
			||||||
 | 
					            newConstArray[i].setI8Const(static_cast<int8_t>(unionArray[i].getDConst())); break;
 | 
				
			||||||
 | 
					        case EOpConvDoubleToInt16:
 | 
				
			||||||
 | 
					            newConstArray[i].setI16Const(static_cast<int16_t>(unionArray[i].getDConst())); break;
 | 
				
			||||||
 | 
					        case EOpConvDoubleToInt:
 | 
				
			||||||
 | 
					            newConstArray[i].setIConst(static_cast<int32_t>(unionArray[i].getDConst())); break;
 | 
				
			||||||
 | 
					        case EOpConvDoubleToInt64:
 | 
				
			||||||
 | 
					            newConstArray[i].setI64Const(static_cast<int64_t>(unionArray[i].getDConst())); break;
 | 
				
			||||||
 | 
					        case EOpConvDoubleToUint8:
 | 
				
			||||||
 | 
					            newConstArray[i].setU8Const(static_cast<uint8_t>(unionArray[i].getDConst())); break;
 | 
				
			||||||
 | 
					        case EOpConvDoubleToUint16:
 | 
				
			||||||
 | 
					            newConstArray[i].setU16Const(static_cast<uint16_t>(unionArray[i].getDConst())); break;
 | 
				
			||||||
 | 
					        case EOpConvDoubleToUint:
 | 
				
			||||||
 | 
					            newConstArray[i].setUConst(static_cast<uint32_t>(unionArray[i].getDConst())); break;
 | 
				
			||||||
 | 
					        case EOpConvDoubleToUint64:
 | 
				
			||||||
 | 
					            newConstArray[i].setU64Const(static_cast<uint64_t>(unionArray[i].getDConst())); break;
 | 
				
			||||||
 | 
					        case EOpConvDoubleToFloat16:
 | 
				
			||||||
 | 
					            newConstArray[i].setDConst(unionArray[i].getDConst()); break;
 | 
				
			||||||
 | 
					        case EOpConvDoubleToFloat:
 | 
				
			||||||
 | 
					            newConstArray[i].setDConst(unionArray[i].getDConst()); break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // TODO: 3.0 Functionality: unary constant folding: the rest of the ops have to be fleshed out
 | 
					        // TODO: 3.0 Functionality: unary constant folding: the rest of the ops have to be fleshed out
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        case EOpSinh:
 | 
					        case EOpSinh:
 | 
				
			||||||
 | 
				
			|||||||
@ -489,7 +489,7 @@ bool TIntermediate::isConversionAllowed(TOperator op, TIntermTyped* node) const
 | 
				
			|||||||
// This is 'mechanism' here, it does any conversion told.
 | 
					// This is 'mechanism' here, it does any conversion told.
 | 
				
			||||||
// It is about basic type, not about shape.
 | 
					// It is about basic type, not about shape.
 | 
				
			||||||
// The policy comes from the shader or the calling code.
 | 
					// The policy comes from the shader or the calling code.
 | 
				
			||||||
TIntermUnary* TIntermediate::createConversion(TBasicType convertTo, TIntermTyped* node) const
 | 
					TIntermTyped* TIntermediate::createConversion(TBasicType convertTo, TIntermTyped* node) const
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    //
 | 
					    //
 | 
				
			||||||
    // Add a new newNode for the conversion.
 | 
					    // Add a new newNode for the conversion.
 | 
				
			||||||
@ -712,7 +712,11 @@ TIntermUnary* TIntermediate::createConversion(TBasicType convertTo, TIntermTyped
 | 
				
			|||||||
    TType newType(convertTo, EvqTemporary, node->getVectorSize(), node->getMatrixCols(), node->getMatrixRows());
 | 
					    TType newType(convertTo, EvqTemporary, node->getVectorSize(), node->getMatrixCols(), node->getMatrixRows());
 | 
				
			||||||
    newNode = addUnaryNode(newOp, node, node->getLoc(), newType);
 | 
					    newNode = addUnaryNode(newOp, node, node->getLoc(), newType);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // TODO: it seems that some unary folding operations should occur here, but are not
 | 
					    if (node->getAsConstantUnion()) {
 | 
				
			||||||
 | 
					        TIntermTyped* folded = node->getAsConstantUnion()->fold(newOp, newType);
 | 
				
			||||||
 | 
					        if (folded)
 | 
				
			||||||
 | 
					            return folded;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Propagate specialization-constant-ness, if allowed
 | 
					    // Propagate specialization-constant-ness, if allowed
 | 
				
			||||||
    if (node->getType().getQualifier().isSpecConstant() && isSpecializationOperation(*newNode))
 | 
					    if (node->getType().getQualifier().isSpecConstant() && isSpecializationOperation(*newNode))
 | 
				
			||||||
@ -1021,7 +1025,7 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt
 | 
				
			|||||||
    //
 | 
					    //
 | 
				
			||||||
    // Add a new newNode for the conversion.
 | 
					    // Add a new newNode for the conversion.
 | 
				
			||||||
    //
 | 
					    //
 | 
				
			||||||
    TIntermUnary* newNode = createConversion(promoteTo, node);
 | 
					    TIntermTyped* newNode = createConversion(promoteTo, node);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return newNode;
 | 
					    return newNode;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -732,7 +732,7 @@ protected:
 | 
				
			|||||||
    bool specConstantPropagates(const TIntermTyped&, const TIntermTyped&);
 | 
					    bool specConstantPropagates(const TIntermTyped&, const TIntermTyped&);
 | 
				
			||||||
    void performTextureUpgradeAndSamplerRemovalTransformation(TIntermNode* root);
 | 
					    void performTextureUpgradeAndSamplerRemovalTransformation(TIntermNode* root);
 | 
				
			||||||
    bool isConversionAllowed(TOperator op, TIntermTyped* node) const;
 | 
					    bool isConversionAllowed(TOperator op, TIntermTyped* node) const;
 | 
				
			||||||
    TIntermUnary* createConversion(TBasicType convertTo, TIntermTyped* node) const;
 | 
					    TIntermTyped* createConversion(TBasicType convertTo, TIntermTyped* node) const;
 | 
				
			||||||
    std::tuple<TBasicType, TBasicType> getConversionDestinatonType(TBasicType type0, TBasicType type1, TOperator op) const;
 | 
					    std::tuple<TBasicType, TBasicType> getConversionDestinatonType(TBasicType type0, TBasicType type1, TOperator op) const;
 | 
				
			||||||
    bool extensionRequested(const char *extension) const {return requestedExtensions.find(extension) != requestedExtensions.end();}
 | 
					    bool extensionRequested(const char *extension) const {return requestedExtensions.find(extension) != requestedExtensions.end();}
 | 
				
			||||||
    static const char* getResourceName(TResourceType);
 | 
					    static const char* getResourceName(TResourceType);
 | 
				
			||||||
 | 
				
			|||||||
@ -231,6 +231,7 @@ INSTANTIATE_TEST_CASE_P(
 | 
				
			|||||||
        "precise_struct_block.vert",
 | 
					        "precise_struct_block.vert",
 | 
				
			||||||
        "maxClipDistances.vert",
 | 
					        "maxClipDistances.vert",
 | 
				
			||||||
        "findFunction.frag",
 | 
					        "findFunction.frag",
 | 
				
			||||||
 | 
					        "constantUnaryConversion.comp"
 | 
				
			||||||
    })),
 | 
					    })),
 | 
				
			||||||
    FileNameAsCustomTestSuffix
 | 
					    FileNameAsCustomTestSuffix
 | 
				
			||||||
);
 | 
					);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user