2 * Copyright © 2019 Intel Corporation
4 * Test based on Mesa-commit 6e184147ddce11e90c269a47af7d7395f5ed9c12
5 * Test generates NIR (vec4-backend):
7 * vec1 32 ssa_0 = load_const (0x00000000 /* 0.000000 */)
8 * vec1 32 ssa_1 = load_const (0x3f800000 /* 1.000000 */)
9 * vec2 32 ssa_2 = load_const (0x00000000 /* 0.000000 */, 0x00000001 /* 0.000000 */)
10 * vec4 32 ssa_3 = intrinsic load_input (ssa_0) (0, 0) /* base=0 */ /* component=0 */
11 * vec1 32 ssa_4 = intrinsic load_uniform (ssa_0) (64, 16) /* base=64 */ /* range=16 */ /* dx */
12 * vec1 32 ssa_5 = intrinsic load_uniform (ssa_0) (80, 16) /* base=80 */ /* range=16 */ /* dy */
13 * vec1 32 ssa_6 = intrinsic load_uniform (ssa_0) (96, 16) /* base=96 */ /* range=16 */ /* xnum */
14 * vec1 32 ssa_7 = load_const (0x00000004 /* 0.000000 */)
15 * vec1 32 ssa_8 = ishl ssa_6, ssa_7
16 * vec2 32 ssa_9 = intrinsic load_uniform (ssa_8) (0, 64) /* base=0 */ /* range=64 */
17 * vec2 32 ssa_9 = intrinsic load_uniform (ssa_8) (0, 64) /* base=0 */ /* range=64 */
18 * vec2 32 ssa_10 = ieq32 ssa_9.xx, ssa_2
19 * r0.x = b32csel ssa_10.y, ssa_4, ssa_0
20 * vec2 32 ssa_12 = ieq32 ssa_9.yy, ssa_2
21 * r0.y = b32csel ssa_12.y, ssa_5.x, ssa_0.x
22 * r0.z = b32csel ssa_10.y, ssa_5.x, ssa_0.x
25 * After optimizations, for NIR:
26 * r0.x = b32csel ssa_10.y, ssa_4, ssa_0
27 * vec2 32 ssa_12 = ieq32 ssa_9.yy, ssa_2
29 * will be generated invalid assembler-code:
30 * cmp.z.f0.0(8) g14<1>.yD g13<4>.xD 1D { align16 1Q };
31 * (+f0.0.x) sel(8) g3<1>.xUD g1<0>.xUD 0x00000000UD { align16 1Q };
33 * \author Sergii Romantsov <sergii.romantsov@globallogic.com>
34 * Checks: https://bugs.freedesktop.org/show_bug.cgi?id=109759
35 * Checks: https://bugs.freedesktop.org/show_bug.cgi?id=110201
48 const uvec2 cell_color_map[] = uvec2[4](
49 uvec2(0, 0), // black -> black rgb(0, 0, 0, 1)
50 uvec2(0, 1), // green -> green rgb(0, 1, 0, 1)
51 uvec2(1, 0), // red -> magenta rgb(1, 0, 1, 1)
52 uvec2(1, 1) // yellow -> white rgb(1, 1, 1, 1)
56 in vec4 piglit_vertex;
59 gl_Position = piglit_vertex;
60 vec2 xpos = vec2(0, dx);
61 vec2 ypos = vec2(0, dy);
62 uvec2 pos = cell_color_map[xnum];
63 color = vec4(xpos[pos.x], ypos[pos.y], ypos[pos.x], 1.0);
70 gl_FragColor = vec4(color.x, color.y, color.z, 1.0);
76 clear color 0.0 0.0 0.0 0.0
94 relative probe rgba (0.25, 0.25) (0.0, 0.0, 0.0, 1.0)
95 relative probe rgba (0.75, 0.25) (0.0, 1.0, 0.0, 1.0)
96 relative probe rgba (0.25, 0.75) (1.0, 0.0, 1.0, 1.0)
97 relative probe rgba (0.75, 0.75) (1.0, 1.0, 1.0, 1.0)