yum-mirror/glslang
git clone https://git.yummers.dev/yum-mirror/glslang
968eb87c
main
1#version 460 2#extension GL_NV_explicit_typecast : enable 3#extension GL_NV_gpu_shader5 : enable 4#extension GL_EXT_buffer_reference : enable 5#extension GL_EXT_buffer_reference_uvec2 : enable 6 7layout (buffer_reference )buffer BufRef 8{ 9vec4 inp ; 10vec4 op ; 11}; 12 13float func (float a ,vec2 b ) 14{ 15return dot (b ,vec2 (a )); 16} 17void main () 18{ 19float f_0 ; 20uint u_0 ; 21int i_0 ; 22float16_t f16_0 ; 23uint8_t u8_0 ; 24int8_t i8_0 ; 25uint64_t u64_0 ; 26 27u8vec2 u8v2_0 ; 28u8vec4 u8v4_0 ; 29vec4 v4_0 ; 30f16vec3 f16v3_0 ; 31u64vec2 u64v2_0 ; 32vec3 v3_0 ; 33vec2 v2_0 ; 34 35mat2 m2_0 ,m2_1 ; 36mat3x2 m32_0 ; 37mat3 m3_0 ; 38mat4x4 m4_0 ; 39dmat2 d2_0 ; 40 41 42// Type cast scalars 43f_0 = (float )f_0 ; 44f_0 = (float )u_0 ; 45u_0 = (uint )i_0 ; 46i_0 = (int )f16_0 ; 47f16_0 = (float16_t )u64_0 ; 48u8_0 = (uint8_t )f16_0 ; 49i8_0 = (int8_t )f16_0 ; 50u64_0 = (uint64_t )f_0 ; 51 52// Type cast vectors 53v4_0 = (vec4 )v4_0 ; 54v4_0 = (vec4 )u8v4_0 ; 55f16v3_0 = (f16vec3 )v3_0 ; 56u64v2_0 = (u64vec2 )u8v2_0 ; 57 58// Narrowing vector cast 59 60v3_0 = (vec3 )u8v4_0 ; 61u64v2_0 = (u64vec2 )(v4_0 ); 62 63// Widening vector cast 64 65v4_0 = (vec4 )u8_0 ; 66u64v2_0 = (u64vec2 )f16_0 ; 67 68// Type cast matrix 69 70m2_0 = (mat2 )m2_1 ; 71d2_0 = (dmat2 )m2_0 ; 72m2_0 = (mat2 )f16_0 ; 73 74// Type cast matrix slices 75m4_0 = (mat4 )m3_0 ; 76m3_0 = (mat3 )m4_0 ; 77 78// Type cast buffer reference 79BufRef B = (BufRef )u64_0 ; 80BufRef B2 = (BufRef ) (uvec2 )v2_0 ; 81// Type cast right to left 82u8_0 = (uint8_t )(float )(int )f16_0 ; 83 84// Type cast unary expression 85v3_0 = (vec3 )(1.0f ,2.0f ,3.0f ); 86f16v3_0 = (f16vec3 )(u8_0 ,f16_0 ,i8_0 ); 87func ((float )u8_0 , (vec2 )u64v2_0 ); 88 89 90}