xref: /aosp_15_r20/external/angle/third_party/glslang/src/Test/constantUnaryConversion.comp (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1#version 450
2
3#extension GL_EXT_shader_explicit_arithmetic_types : require
4
5const bool bool_init = true;
6const int8_t int8_t_init = int8_t(-1);
7const int16_t int16_t_init = int16_t(-2);
8const int32_t int32_t_init = int32_t(-3);
9const int64_t int64_t_init = int64_t(-4);
10const uint8_t uint8_t_init = uint8_t(1);
11const uint16_t uint16_t_init = uint16_t(2);
12const uint32_t uint32_t_init = uint32_t(3);
13const uint64_t uint64_t_init = uint64_t(4);
14const float16_t float16_t_init = float16_t(42.0);
15const float32_t float32_t_init = float32_t(13.0);
16const float64_t float64_t_init = float64_t(4.0);
17
18const float16_t neg_float16_t_init = float16_t(-42.0);
19const float32_t neg_float32_t_init = float32_t(-13.0);
20const float64_t neg_float64_t_init = float64_t(-4.0);
21
22#define TYPE_TO_TYPE(x, y) \
23    const x y##_to_##x = x(y##_init)
24
25#define TYPE_TO_TYPE_PREFIX(prefix, x, y) \
26    const x prefix##_##y##_to_##x = x(prefix##_##y##_init)
27
28#define TYPE_TO(x)              \
29    TYPE_TO_TYPE(x, bool);      \
30    TYPE_TO_TYPE(x, int8_t);    \
31    TYPE_TO_TYPE(x, int16_t);   \
32    TYPE_TO_TYPE(x, int32_t);   \
33    TYPE_TO_TYPE(x, int64_t);   \
34    TYPE_TO_TYPE(x, uint8_t);   \
35    TYPE_TO_TYPE(x, uint16_t);  \
36    TYPE_TO_TYPE(x, uint32_t);  \
37    TYPE_TO_TYPE(x, uint64_t);  \
38    TYPE_TO_TYPE(x, float16_t); \
39    TYPE_TO_TYPE(x, float32_t); \
40    TYPE_TO_TYPE(x, float64_t)
41
42TYPE_TO(bool);
43TYPE_TO(int8_t);
44TYPE_TO(int16_t);
45TYPE_TO(int32_t);
46TYPE_TO(int64_t);
47TYPE_TO(uint8_t);
48TYPE_TO(uint16_t);
49TYPE_TO(uint32_t);
50TYPE_TO(uint64_t);
51TYPE_TO(float16_t);
52TYPE_TO(float32_t);
53TYPE_TO(float64_t);
54
55#define NEG_FLOAT_TO(x) \
56    TYPE_TO_TYPE_PREFIX(neg, x, float16_t); \
57    TYPE_TO_TYPE_PREFIX(neg, x, float32_t); \
58    TYPE_TO_TYPE_PREFIX(neg, x, float64_t)
59
60NEG_FLOAT_TO(bool);
61NEG_FLOAT_TO(int8_t);
62NEG_FLOAT_TO(int16_t);
63NEG_FLOAT_TO(int32_t);
64NEG_FLOAT_TO(int64_t);
65NEG_FLOAT_TO(float16_t);
66NEG_FLOAT_TO(float32_t);
67NEG_FLOAT_TO(float64_t);
68
69void main() {}
70