File: spv.coopvec2.comp

package info (click to toggle)
glslang 16.2.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 51,720 kB
  • sloc: cpp: 92,305; yacc: 4,320; sh: 603; python: 305; ansic: 94; javascript: 74; makefile: 17
file content (60 lines) | stat: -rw-r--r-- 1,621 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#version 450 core
#extension GL_KHR_memory_scope_semantics : enable
#extension GL_NV_cooperative_vector : enable
#extension GL_EXT_shader_explicit_arithmetic_types : enable
#extension GL_EXT_buffer_reference : enable
#extension GL_EXT_nonuniform_qualifier : enable

layout (local_size_x = 64, local_size_y = 1, local_size_z = 1) in;

layout(constant_id = 0) const uint N = 3;

void main()
{
    float16_t f1 = float16_t(1.0);
    float16_t f2 = float16_t(2.0);
    float16_t f3 = float16_t(3.0);

    coopvecNV<float16_t, N> v  = coopvecNV<float16_t, N>(1.0);
    coopvecNV<float16_t, N> v2 = coopvecNV<float16_t, N>(f2);
    coopvecNV<float16_t, N> v3 = coopvecNV<float16_t, N>(1.0, 2.0, 3.0);
    coopvecNV<float16_t, N> v4 = coopvecNV<float16_t, N>(f1, f2, f3);
    coopvecNV<float16_t, N> v5 = coopvecNV<float16_t, N>(1.0);
    coopvecNV<float16_t, N> v6 = coopvecNV<float16_t, N>(1.0, 2.0, 3.0);

    coopvecNV<float, N> v7 = coopvecNV<float, N>(1);
    v7 *= 2.0;

    coopvecNV<uint32_t, N> v8 = coopvecNV<uint32_t, N>(1);
    v8 *= 2;

    coopvecNV<uint32_t, N> v9 = v8 * 2;
    coopvecNV<uint32_t, N> v10 = 2 * v8;

    v8 = v8 & v9;
    v8 = v8 | v9;
    v8 = v8 ^ ~v9;
    v8 = v8 >> v9;
    v8 = v8 << v9;

    v8 &= v9;
    v8 |= v9;
    v8 ^= v9;
    v8 >>= v9;
    v8 <<= v9;

    v = coopvecNV<float16_t, N>(v);

    coopvecNV<int32_t, 1> v11;
    coopvecNV<uint8_t, 1>(v11);

    coopvecNV<int32_t, 4> v12;
    coopvecNV<uint8_t, 4>(v12);

    coopvecNV<float32_t, 4> v13;
    coopvecNV<int8_t, 4>(v13);
}

void foo(coopvecNV<float32_t, 4> v)
{
}