yum-mirror/glslang

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

Jeff BolzAdd missing error checks for float8 math (#4000)eb77189a

main
1.8 KiB83 linesraw
1#version 450 core
2
3#extension GL_EXT_bfloat16 : require
4#extension GL_EXT_float_e4m3 : require
5#extension GL_KHR_cooperative_matrix : enable
6#extension GL_KHR_memory_scope_semantics : enable
7#extension GL_EXT_shader_explicit_arithmetic_types : enable
8#extension GL_EXT_scalar_block_layout : enable
9#extension GL_NV_cooperative_matrix2 : enable
10layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
11
12floate4m3_t funcfp8(floate4m3_t x)
13{
14    return x;
15}
16
17void main()
18{
19    floate4m3_t b;
20    uint8_t u8 = uint8_t(5);
21    uint16_t u16 = uint16_t(5);
22    uint32_t u32 = 5;
23    uint64_t u64 = 5;
24    int8_t i8 = int8_t(6);
25    int16_t i16 = int16_t(6);
26    int32_t i32 = 6;
27    int64_t i64 = 6;
28    floate4m3_t fp8 = floate4m3_t(7);
29    float16_t f16 = float16_t(7);
30    float32_t f32 = 7;
31    float64_t f64 = 7;
32    b = (u8);
33    b = (u16);
34    b = (u32);
35    b = (u64);
36    b = (i8);
37    b = (i16);
38    b = (i32);
39    b = (i64);
40    b = (fp8); // not an error
41    b = (f16);
42    b = (f32);
43    b = (f64);
44    u8 = (b);
45    u16 = (b);
46    u32 = (b);
47    u64 = (b);
48    i8 = (b);
49    i16 = (b);
50    i32 = (b);
51    i64 = (b);
52    fp8 = (b); // not an error
53    f16 = (b); // not an error
54    f32 = (b); // not an error
55    f64 = (b); // not an error
56
57    dot(b2, f16vec2(0));
58
59    funcfp8(f16);
60    funcfp8(f32);
61    funcfp8(f64);
62
63    bool bl = bool(b);
64    b = floate4m3_t(bl);
65
66    b++;
67    b--;
68    -b;
69
70    bfloat16_t bf16 = bfloat16_t(7);
71    b = (bf16);
72    bf16 = b;
73
74    saturatedConvertEXT(b, b);
75    saturatedConvertEXT(b, f16, f16);
76    saturatedConvertEXT(b, f16vec2(f16));
77    saturatedConvertEXT(u8, u8);
78
79    b+b;
80    coopmat<floate4m3_t, gl_ScopeSubgroup, 16, 16, gl_MatrixUseA> cmA;
81    cmA+cmA;
82}
83