1#version 450 2 3#extension GL_EXT_shader_explicit_arithmetic_types: enable 4 5int64_t func(int8_t a, int16_t b, int16_t c) 6{ 7 return int64_t(a | b + c); 8} 9 10int64_t func(int8_t a, int16_t b, int32_t c) 11{ 12 return int64_t(a | b - c); 13} 14 15int64_t func(int32_t a, int32_t b, int32_t c) 16{ 17 return int64_t(a / b + c); 18} 19 20int64_t func(float16_t a, float16_t b, float32_t c) 21{ 22 return int64_t(a - b * c); 23} 24 25int64_t func(float16_t a, int16_t b, float32_t c) 26{ 27 return int64_t(a - b * c); 28} 29 30void main() 31{ 32 int8_t x; 33 int16_t y; 34 int32_t z; 35 int64_t w; 36 float16_t f16; 37 float64_t f64; 38 int64_t b1 = func(x, y, z); 39 int64_t b2 = func(y, y, z); // tie 40 int64_t b3 = func(y, y, w); // No match 41 int64_t b4 = func(y, z, f16); // No match 42 int64_t b5 = func(y, y, f16); 43 int64_t b7 = func(f16, f16, y); 44 int64_t b8 = func(f16, f16, f64); // No match 45 int64_t b9 = func(f16, x, f16); // tie 46} 47