xemu/subprojects/glslang/Test/spv.coopvec2.comp

61 lines
1.6 KiB
Plaintext

#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)
{
}