yum-mirror/glslang

git clone https://git.yummers.dev/yum-mirror/glslang

Jeff BolzImplement GL_EXT_ocp_microscaling_types62f5430e

main
1.2 KiB48 linesraw
1#version 450 core
2
3#extension GL_EXT_float_e2m1 : require
4#extension GL_EXT_float_e3m2 : require
5#extension GL_EXT_float_e2m3 : require
6#extension GL_EXT_float_ue8m0 : require
7#extension GL_EXT_float_mxint8 : require
8#extension GL_KHR_memory_scope_semantics : enable
9#extension GL_EXT_shader_explicit_arithmetic_types : enable
10#extension GL_EXT_scalar_block_layout : enable
11#extension GL_EXT_long_vector : enable
12
13layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
14
15struct NestedSubByte { floate2m1_t value; };
16
17layout(scalar) buffer B {
18    floate2m1_t b1;
19    floate3m2_t b2;
20    floate2m3_t b3;
21    NestedSubByte nested;
22} buf;
23
24shared floate2m1_t s1;
25shared floate3m2_t s2;
26shared floate2m3_t s3;
27shared NestedSubByte s4;
28
29floate2m1_t funcfe2m1(floate2m1_t x)
30{
31    return x;
32}
33
34void main()
35{
36    float f = 2.0;
37    funcfe2m1(f);
38
39    floatue8m0_t ue8m0 = 1.0fue8m0;
40    float implicitFloat = ue8m0;
41    double implicitDouble = ue8m0;
42
43    floate2m1_t fe2m1 = floate2m1_t(f);
44    floate3m2_t fe3m2 = floate3m2_t(f);
45    floate2m3_t fe2m3 = floate2m3_t(f);
46    floatue8m0_t fue8m0 = floatue8m0_t(f);
47    floatmxint8_t fmxint8 = floatmxint8_t(f);
48}