[Bisected] i965: CS:GO crashes in emit_deref_copy_load_store with debug Mesa
csgo_linux64: ../src/compiler/nir/nir_lower_var_copies.c:89: emit_deref_copy_load_store: Assertion glsl_type_is_vector_or_scalar(dst_deref->type) failed.
Stack trace (click me)
#3 0x00007f9885c31026 in __assert_fail () from /usr/lib/libc.so.6
#4 0x00007f98846c126e in emit_deref_copy_load_store (b=0x7fff670871a0, dst_deref=0x562c6cf89e90, dst_deref_arr=0x0, src_deref=0x562c6cf89d70, src_deref_arr=0x0, dst_access=(unknown: 0),
src_access=(unknown: 0)) at ../src/compiler/nir/nir_lower_var_copies.c:89
#5 0x00007f98846c1412 in nir_lower_deref_copy_instr (b=0x7fff670871a0, copy=0x562c6cf89fb0) at ../src/compiler/nir/nir_lower_var_copies.c:112
#6 0x00007f98846be60e in lower_copies_to_load_store (node=0x562c6cc52560, state=0x7fff670872b0) at ../src/compiler/nir/nir_lower_vars_to_ssa.c:514
#7 0x00007f98846bdd32 in foreach_deref_node_worker (node=0x562c6cc52560, path=0x562c6cc525a8, cb=0x7f98846be58a <lower_copies_to_load_store>, state=0x7fff670872b0)
at ../src/compiler/nir/nir_lower_vars_to_ssa.c:258
#8 0x00007f98846bdf00 in foreach_deref_node_match (path=0x562c6cc52578, cb=0x7f98846be58a <lower_copies_to_load_store>, state=0x7fff670872b0)
at ../src/compiler/nir/nir_lower_vars_to_ssa.c:314
#9 0x00007f98846bf13f in nir_lower_vars_to_ssa_impl (impl=0x562c6ce1afa0) at ../src/compiler/nir/nir_lower_vars_to_ssa.c:749
--Type <RET> for more, q to quit, c to continue without paging--
#10 0x00007f98846bf497 in nir_lower_vars_to_ssa (shader=0x562c6cb90660) at ../src/compiler/nir/nir_lower_vars_to_ssa.c:818
#11 0x00007f98840c0a46 in brw_nir_lower_legacy_clipping (nir=0x562c6cb90660, nr_userclip_plane_consts=1, prog_data=0x7fff67087520) at ../src/mesa/drivers/dri/i965/brw_nir_uniforms.cpp:414
#12 0x00007f98840cf028 in brw_codegen_vs_prog (brw=0x562c6c3c1e80, vp=0x562c6cba8420, key=0x7fff670876e0) at ../src/mesa/drivers/dri/i965/brw_vs.c:153
#13 0x00007f98840cf7d2 in brw_upload_vs_prog (brw=0x562c6c3c1e80) at ../src/mesa/drivers/dri/i965/brw_vs.c:320
#14 0x00007f98840ca49e in brw_upload_programs (brw=0x562c6c3c1e80, pipeline=BRW_RENDER_PIPELINE) at ../src/mesa/drivers/dri/i965/brw_state_upload.c:533
#15 0x00007f98840cacb1 in brw_upload_pipeline_state (brw=0x562c6c3c1e80, pipeline=BRW_RENDER_PIPELINE) at ../src/mesa/drivers/dri/i965/brw_state_upload.c:683
#16 0x00007f98840cb03a in brw_upload_render_state (brw=0x562c6c3c1e80) at ../src/mesa/drivers/dri/i965/brw_state_upload.c:744
#17 0x00007f98840b3038 in brw_draw_single_prim (ctx=0x562c6c3c1e80, prim=0x7fff67087ac0, prim_id=0, xfb_obj=0x0, stream=0, indirect=0x0) at ../src/mesa/drivers/dri/i965/brw_draw.c:1062
#18 0x00007f98840b35d6 in brw_draw_prims (ctx=0x562c6c3c1e80, prims=0x7fff67087ac0, nr_prims=1, ib=0x0, index_bounds_valid=1 '\001', min_index=0, max_index=3, gl_xfb_obj=0x0, stream=0,
indirect=0x0) at ../src/mesa/drivers/dri/i965/brw_draw.c:1185
It doesn't crash in release but I think it just doesn't compile shader correctly. It doesn't crash on Iris but I think Iris and RadeonSI will be affected if there were well crafted test.
Bisected to bcd14756:
bcd14756eec808f2f04d38a8880488188eb0eef0 is the first bad commit
commit bcd14756eec808f2f04d38a8880488188eb0eef0
Author: Rhys Perry <pendingchaos02@gmail.com>
Date: Fri May 17 15:04:39 2019 +0100
nir/lower_io_to_vector: add flat mode
This has lower_io_to_vector try to turn variables into arrays of 4-sized
vectors when possible and fall back to the old approach when that isn't
possible.
This is so that lower_io_to_vector can guarantee that only one variable is
used for each fragment shader output.
v2: handle dual-source blending
v3: don't try to merge structs and non-32-bit types in get_flat_type()
v3: fix per-vertex inputs
v3: fix and cleanup location advancement in get_flat_type() and it's
calling code
v4: prioritize the original mode over the flat mode
v4: don't create flat variables to merge only one variable
v5: don't skip an entire slot when encountering structs in the old mode
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Could be reproduced with test_crash_v2.shader_test. I didn't manage to considerably reduce vertex shader where it crashes. Also having user clipping enabled is important for that reproducer.
The crash happens because array deref comes into emit_deref_copy_load_store
which is unexpected.
dst_deref (click me)
instr = {nir_instr}
node = {struct exec_node}
block = {struct nir_block * | 0x558f07620970} 0x558f07620970
type = {nir_instr_type} nir_instr_type_deref
pass_flags = {uint8_t} 0 '\000'
index = {unsigned int} 0
deref_type = {nir_deref_type} nir_deref_type_var
mode = {nir_variable_mode} nir_var_shader_out
type = {const struct glsl_type * | 0x558f0766ab80} 0x558f0766ab80
gl_type = {GLenum} 35666
base_type = {enum glsl_base_type} GLSL_TYPE_ARRAY
sampled_type = {enum glsl_base_type} GLSL_TYPE_VOID
sampler_dimensionality = {unsigned int} 0
sampler_shadow = {unsigned int} 0
sampler_array = {unsigned int} 0
interface_packing = {unsigned int} 0
interface_row_major = {unsigned int} 0
packed = {unsigned int} 0
vector_elements = {uint8_t} 0 '\000'
matrix_columns = {uint8_t} 0 '\000'
length = {unsigned int} 1
name = {const char * | 0x558f076a6250} "vec4[1]"
explicit_stride = {unsigned int} 0
NIR at the moment of crash (click me)
shader: MESA_SHADER_VERTEX
name: GLSL3
inputs: 0
outputs: 1
uniforms: 816
shared: 0
decl_var uniform INTERP_MODE_NONE coherent restrict vec4[48] vc (0, 0, 0)
decl_var uniform INTERP_MODE_NONE coherent restrict vec4[3] vcbones (1, 768, 0)
decl_var shader_in INTERP_MODE_NONE coherent restrict vec4 v0 (VERT_ATTRIB_GENERIC0, 0, 0)
decl_var shader_in INTERP_MODE_NONE coherent restrict vec4 v1 (VERT_ATTRIB_GENERIC1, 0, 0)
decl_var shader_in INTERP_MODE_NONE coherent restrict vec4 v2 (VERT_ATTRIB_GENERIC2, 0, 0)
decl_var shader_in INTERP_MODE_NONE coherent restrict vec4 v3 (VERT_ATTRIB_GENERIC3, 0, 0)
decl_var shader_in INTERP_MODE_NONE coherent restrict vec4 v4 (VERT_ATTRIB_GENERIC4, 0, 0)
decl_var shader_in INTERP_MODE_NONE coherent restrict vec4 v5 (VERT_ATTRIB_GENERIC5, 0, 0)
decl_var shader_out INTERP_MODE_NONE coherent restrict vec4 gl_Position (VARYING_SLOT_POS, 0, 0)
decl_var shader_out INTERP_MODE_NONE coherent restrict vec4 gl_FrontColor (VARYING_SLOT_COL0, 0, 0)
decl_var shader_out INTERP_MODE_NONE coherent restrict float oT0 (VARYING_SLOT_VAR0.x, 0, 0)
decl_var shader_out INTERP_MODE_NONE coherent restrict float oT0@0 (VARYING_SLOT_VAR0.z, 0, 0)
decl_var centroid shader_out INTERP_MODE_NONE coherent restrict float oT2 (VARYING_SLOT_VAR6.x, 0, 0)
decl_var centroid shader_out INTERP_MODE_NONE coherent restrict float oT2@1 (VARYING_SLOT_VAR6.y, 0, 0)
decl_var centroid shader_out INTERP_MODE_NONE coherent restrict float oT2@2 (VARYING_SLOT_VAR6.z, 0, 0)
decl_var centroid shader_out INTERP_MODE_NONE coherent restrict float oT2@3 (VARYING_SLOT_VAR6.w, 0, 0)
decl_var centroid shader_out INTERP_MODE_NONE coherent restrict float oT3 (VARYING_SLOT_VAR7.x, 0, 0)
decl_var centroid shader_out INTERP_MODE_NONE coherent restrict float oT3@4 (VARYING_SLOT_VAR7.y, 0, 0)
decl_var centroid shader_out INTERP_MODE_NONE coherent restrict float oT3@5 (VARYING_SLOT_VAR7.z, 0, 0)
decl_var centroid shader_out INTERP_MODE_NONE coherent restrict float oT3@6 (VARYING_SLOT_VAR7.w, 0, 0)
decl_var shader_out INTERP_MODE_NONE coherent restrict float oT4 (VARYING_SLOT_VAR1.x, 0, 0)
decl_var shader_out INTERP_MODE_NONE coherent restrict float oT4@7 (VARYING_SLOT_VAR1.y, 0, 0)
decl_var shader_out INTERP_MODE_NONE coherent restrict float oT4@8 (VARYING_SLOT_VAR1.z, 0, 0)
decl_var shader_out INTERP_MODE_NONE coherent restrict float oT5 (VARYING_SLOT_VAR2.z, 0, 0)
decl_var shader_out INTERP_MODE_NONE coherent restrict float oT5@9 (VARYING_SLOT_VAR2.w, 0, 0)
decl_var shader_out INTERP_MODE_NONE coherent restrict float oT7 (VARYING_SLOT_VAR4.x, 0, 0)
decl_var shader_out INTERP_MODE_NONE coherent restrict float oT7@10 (VARYING_SLOT_VAR4.y, 0, 0)
decl_var shader_out INTERP_MODE_NONE coherent restrict float oT7@11 (VARYING_SLOT_VAR4.z, 0, 0)
decl_var shader_out INTERP_MODE_NONE coherent restrict float oT7@12 (VARYING_SLOT_VAR4.w, 0, 0)
decl_var shader_out INTERP_MODE_NONE coherent restrict float oT8 (VARYING_SLOT_VAR5.x, 0, 0)
decl_var shader_out INTERP_MODE_NONE coherent restrict float oT8@13 (VARYING_SLOT_VAR5.y, 0, 0)
decl_var shader_out INTERP_MODE_NONE coherent restrict float oT8@14 (VARYING_SLOT_VAR5.w, 0, 0)
decl_var shader_out INTERP_MODE_NONE coherent restrict vec3 oT4@15 (VARYING_SLOT_VAR1.xyz, 0, 0)
decl_var shader_out INTERP_MODE_NONE coherent restrict vec2 oT5@16 (VARYING_SLOT_VAR2.zw, 0, 0)
decl_var shader_out INTERP_MODE_NONE coherent restrict vec4 oT7@17 (VARYING_SLOT_VAR4, 0, 0)
decl_var shader_out INTERP_MODE_NONE coherent restrict vec2 oT8@18 (VARYING_SLOT_VAR5.xy, 0, 0)
decl_var centroid shader_out INTERP_MODE_NONE coherent restrict vec4 oT2@19 (VARYING_SLOT_VAR6, 0, 0)
decl_var centroid shader_out INTERP_MODE_NONE coherent restrict vec4 oT3@20 (VARYING_SLOT_VAR7, 0, 0)
decl_var shader_out INTERP_MODE_NONE coherent restrict vec4[1] oT0@21 (VARYING_SLOT_VAR0, 0, 0)
decl_var shader_out INTERP_MODE_NONE coherent restrict vec4[1] oT8@22 (VARYING_SLOT_VAR5, 0, 0)
decl_var shader_out INTERP_MODE_NONE vec4 clipdist_0 (VARYING_SLOT_CLIP_DIST0, 0, 0)
decl_function main (0 params)
impl main {
decl_var INTERP_MODE_NONE coherent restrict vec4 out@gl_Position-temp
decl_var INTERP_MODE_NONE coherent restrict vec4 out@gl_FrontColor-temp
decl_var INTERP_MODE_NONE coherent restrict vec4 out@gl_ClipVertex-temp
decl_var INTERP_MODE_NONE coherent restrict float out@oT0-temp
decl_var INTERP_MODE_NONE coherent restrict float out@oT0-temp@23
decl_var centroid INTERP_MODE_NONE coherent restrict float out@oT2-temp
decl_var centroid INTERP_MODE_NONE coherent restrict float out@oT2-temp@24
decl_var centroid INTERP_MODE_NONE coherent restrict float out@oT2-temp@25
decl_var centroid INTERP_MODE_NONE coherent restrict float out@oT2-temp@26
decl_var centroid INTERP_MODE_NONE coherent restrict float out@oT3-temp
decl_var centroid INTERP_MODE_NONE coherent restrict float out@oT3-temp@27
decl_var centroid INTERP_MODE_NONE coherent restrict float out@oT3-temp@28
decl_var centroid INTERP_MODE_NONE coherent restrict float out@oT3-temp@29
decl_var INTERP_MODE_NONE coherent restrict float out@oT4-temp
decl_var INTERP_MODE_NONE coherent restrict float out@oT4-temp@30
decl_var INTERP_MODE_NONE coherent restrict float out@oT4-temp@31
decl_var INTERP_MODE_NONE coherent restrict float out@oT5-temp
decl_var INTERP_MODE_NONE coherent restrict float out@oT5-temp@32
decl_var INTERP_MODE_NONE coherent restrict float out@oT7-temp
decl_var INTERP_MODE_NONE coherent restrict float out@oT7-temp@33
decl_var INTERP_MODE_NONE coherent restrict float out@oT7-temp@34
decl_var INTERP_MODE_NONE coherent restrict float out@oT7-temp@35
decl_var INTERP_MODE_NONE coherent restrict float out@oT8-temp
decl_var INTERP_MODE_NONE coherent restrict float out@oT8-temp@36
decl_var INTERP_MODE_NONE coherent restrict float out@oT8-temp@37
decl_var INTERP_MODE_NONE coherent restrict vec3 out@oT4-temp@38
decl_var INTERP_MODE_NONE coherent restrict vec2 out@oT5-temp@39
decl_var INTERP_MODE_NONE coherent restrict vec4 out@oT7-temp@40
decl_var INTERP_MODE_NONE coherent restrict vec2 out@oT8-temp@41
decl_var centroid INTERP_MODE_NONE coherent restrict vec4 out@oT2-temp@42
decl_var centroid INTERP_MODE_NONE coherent restrict vec4 out@oT3-temp@43
decl_var INTERP_MODE_NONE coherent restrict vec4[1] out@oT0-temp@44
decl_var INTERP_MODE_NONE coherent restrict vec4[1] out@oT8-temp@45
decl_var INTERP_MODE_NONE coherent restrict vec4 gl_ClipVertex
decl_var INTERP_MODE_NONE coherent restrict vec4 out@gl_Position-temp@46
decl_var INTERP_MODE_NONE coherent restrict vec4 out@gl_FrontColor-temp@47
decl_var INTERP_MODE_NONE coherent restrict float out@oT0-temp@48
decl_var INTERP_MODE_NONE coherent restrict float out@oT0-temp@49
decl_var centroid INTERP_MODE_NONE coherent restrict float out@oT2-temp@50
decl_var centroid INTERP_MODE_NONE coherent restrict float out@oT2-temp@51
decl_var centroid INTERP_MODE_NONE coherent restrict float out@oT2-temp@52
decl_var centroid INTERP_MODE_NONE coherent restrict float out@oT2-temp@53
decl_var centroid INTERP_MODE_NONE coherent restrict float out@oT3-temp@54
decl_var centroid INTERP_MODE_NONE coherent restrict float out@oT3-temp@55
decl_var centroid INTERP_MODE_NONE coherent restrict float out@oT3-temp@56
decl_var centroid INTERP_MODE_NONE coherent restrict float out@oT3-temp@57
decl_var INTERP_MODE_NONE coherent restrict float out@oT4-temp@58
decl_var INTERP_MODE_NONE coherent restrict float out@oT4-temp@59
decl_var INTERP_MODE_NONE coherent restrict float out@oT4-temp@60
decl_var INTERP_MODE_NONE coherent restrict float out@oT5-temp@61
decl_var INTERP_MODE_NONE coherent restrict float out@oT5-temp@62
decl_var INTERP_MODE_NONE coherent restrict float out@oT7-temp@63
decl_var INTERP_MODE_NONE coherent restrict float out@oT7-temp@64
decl_var INTERP_MODE_NONE coherent restrict float out@oT7-temp@65
decl_var INTERP_MODE_NONE coherent restrict float out@oT7-temp@66
decl_var INTERP_MODE_NONE coherent restrict float out@oT8-temp@67
decl_var INTERP_MODE_NONE coherent restrict float out@oT8-temp@68
decl_var INTERP_MODE_NONE coherent restrict float out@oT8-temp@69
decl_var INTERP_MODE_NONE coherent restrict vec3 out@oT4-temp@70
decl_var INTERP_MODE_NONE coherent restrict vec2 out@oT5-temp@71
decl_var INTERP_MODE_NONE coherent restrict vec4 out@oT7-temp@72
decl_var INTERP_MODE_NONE coherent restrict vec2 out@oT8-temp@73
decl_var centroid INTERP_MODE_NONE coherent restrict vec4 out@oT2-temp@74
decl_var centroid INTERP_MODE_NONE coherent restrict vec4 out@oT3-temp@75
decl_var INTERP_MODE_NONE coherent restrict vec4[1] out@oT0-temp@76
decl_var INTERP_MODE_NONE coherent restrict vec4[1] out@oT8-temp@77
decl_var INTERP_MODE_NONE vec4 out@clipdist_0-temp
block block_0:
/* preds: */
vec1 32 ssa_0 = undefined
vec1 32 ssa_1 = undefined
vec1 32 ssa_2 = undefined
vec1 32 ssa_3 = undefined
vec1 32 ssa_4 = undefined
vec1 32 ssa_5 = undefined
vec1 32 ssa_6 = undefined
vec1 32 ssa_7 = undefined
vec1 32 ssa_8 = undefined
vec1 32 ssa_9 = undefined
vec1 32 ssa_10 = undefined
vec1 32 ssa_11 = undefined
vec1 32 ssa_12 = undefined
vec1 32 ssa_13 = undefined
vec1 32 ssa_14 = undefined
vec1 32 ssa_15 = undefined
vec1 32 ssa_16 = undefined
vec1 32 ssa_17 = undefined
vec1 32 ssa_18 = undefined
vec1 32 ssa_19 = undefined
vec1 32 ssa_20 = undefined
vec1 32 ssa_21 = undefined
vec1 32 ssa_22 = undefined
vec1 32 ssa_23 = undefined
vec1 32 ssa_24 = undefined
vec1 32 ssa_25 = undefined
vec1 32 ssa_26 = undefined
vec1 32 ssa_27 = undefined
vec1 32 ssa_28 = undefined
vec1 32 ssa_29 = undefined
vec1 32 ssa_30 = undefined
vec1 32 ssa_31 = undefined
vec1 32 ssa_32 = undefined
vec1 32 ssa_33 = undefined
vec1 32 ssa_34 = undefined
vec1 32 ssa_35 = undefined
vec1 32 ssa_36 = undefined
vec1 32 ssa_37 = undefined
vec1 32 ssa_38 = undefined
vec1 32 ssa_39 = undefined
vec1 32 ssa_40 = undefined
vec1 32 ssa_41 = undefined
vec1 32 ssa_42 = undefined
vec1 32 ssa_43 = undefined
vec1 32 ssa_44 = undefined
vec1 32 ssa_45 = undefined
vec1 32 ssa_46 = undefined
vec1 32 ssa_47 = undefined
vec1 32 ssa_48 = undefined
vec1 32 ssa_49 = undefined
vec1 32 ssa_50 = undefined
vec1 32 ssa_51 = undefined
vec1 32 ssa_52 = undefined
vec1 32 ssa_53 = undefined
vec1 32 ssa_54 = undefined
vec1 32 ssa_55 = undefined
vec1 32 ssa_56 = undefined
vec1 32 ssa_57 = undefined
vec1 32 ssa_58 = undefined
vec1 32 ssa_59 = undefined
vec1 32 ssa_60 = undefined
vec1 32 ssa_61 = undefined
vec1 32 ssa_62 = load_const (0x00000000 /* 0.000000 */)
vec4 32 ssa_63 = intrinsic load_uniform (ssa_62) (0, 768, 160) /* base=0 */ /* range=768 */ /* type=float32 */ /* vc */
vec1 32 ssa_64 = deref_var &v0 (shader_in vec4)
vec4 32 ssa_65 = intrinsic load_deref (ssa_64) (3) /* access=3 */
vec1 32 ssa_66 = fmul ssa_65.x, ssa_63.y
vec1 32 ssa_67 = fmul ssa_65.y, ssa_63.y
vec1 32 ssa_68 = fmul ssa_65.z, ssa_63.y
vec1 32 ssa_69 = fmul ssa_65.x, ssa_63.x
vec1 32 ssa_70 = fadd ssa_66, ssa_63.x
vec1 32 ssa_71 = fadd ssa_67, ssa_63.x
vec1 32 ssa_72 = fadd ssa_68, ssa_63.x
vec1 32 ssa_73 = fadd ssa_69, ssa_63.y
vec4 32 ssa_74 = intrinsic load_uniform (ssa_62) (768, 48, 160) /* base=768 */ /* range=48 */ /* type=float32 */ /* vcbones */
vec1 32 ssa_75 = fmul ssa_70, ssa_74.x
vec1 32 ssa_76 = fmul ssa_71, ssa_74.y
vec1 32 ssa_77 = fadd ssa_75, ssa_76
vec1 32 ssa_78 = fmul ssa_72, ssa_74.z
vec1 32 ssa_79 = fadd ssa_77, ssa_78
vec1 32 ssa_80 = fmul ssa_73, ssa_74.w
vec1 32 ssa_81 = fadd ssa_79, ssa_80
vec1 32 ssa_82 = load_const (0x00000010 /* 0.000000 */)
vec4 32 ssa_83 = intrinsic load_uniform (ssa_82) (768, 48, 160) /* base=768 */ /* range=48 */ /* type=float32 */ /* vcbones */
vec1 32 ssa_84 = fmul ssa_70, ssa_83.x
vec1 32 ssa_85 = fmul ssa_71, ssa_83.y
vec1 32 ssa_86 = fadd ssa_84, ssa_85
vec1 32 ssa_87 = fmul ssa_72, ssa_83.z
vec1 32 ssa_88 = fadd ssa_86, ssa_87
vec1 32 ssa_89 = fmul ssa_73, ssa_83.w
vec1 32 ssa_90 = fadd ssa_88, ssa_89
vec1 32 ssa_91 = load_const (0x00000020 /* 0.000000 */)
vec4 32 ssa_92 = intrinsic load_uniform (ssa_91) (768, 48, 160) /* base=768 */ /* range=48 */ /* type=float32 */ /* vcbones */
vec1 32 ssa_93 = fmul ssa_70, ssa_92.x
vec1 32 ssa_94 = fmul ssa_71, ssa_92.y
vec1 32 ssa_95 = fadd ssa_93, ssa_94
vec1 32 ssa_96 = fmul ssa_72, ssa_92.z
vec1 32 ssa_97 = fadd ssa_95, ssa_96
vec1 32 ssa_98 = fmul ssa_73, ssa_92.w
vec1 32 ssa_99 = fadd ssa_97, ssa_98
vec1 32 ssa_100 = load_const (0x00000080 /* 0.000000 */)
vec4 32 ssa_101 = intrinsic load_uniform (ssa_100) (0, 768, 160) /* base=0 */ /* range=768 */ /* type=float32 */ /* vc */
vec1 32 ssa_102 = fmul ssa_81, ssa_101.x
vec1 32 ssa_103 = fmul ssa_90, ssa_101.y
vec1 32 ssa_104 = fadd ssa_102, ssa_103
vec1 32 ssa_105 = fmul ssa_99, ssa_101.z
vec1 32 ssa_106 = fadd ssa_104, ssa_105
vec1 32 ssa_107 = fmul ssa_63.y, ssa_101.w
vec1 32 ssa_108 = fadd ssa_106, ssa_107
vec1 32 ssa_109 = load_const (0x00000090 /* 0.000000 */)
vec4 32 ssa_110 = intrinsic load_uniform (ssa_109) (0, 768, 160) /* base=0 */ /* range=768 */ /* type=float32 */ /* vc */
vec1 32 ssa_111 = fmul ssa_81, ssa_110.x
vec1 32 ssa_112 = fmul ssa_90, ssa_110.y
vec1 32 ssa_113 = fadd ssa_111, ssa_112
vec1 32 ssa_114 = fmul ssa_99, ssa_110.z
vec1 32 ssa_115 = fadd ssa_113, ssa_114
vec1 32 ssa_116 = fmul ssa_63.y, ssa_110.w
vec1 32 ssa_117 = fadd ssa_115, ssa_116
vec1 32 ssa_118 = load_const (0x000000b0 /* 0.000000 */)
vec4 32 ssa_119 = intrinsic load_uniform (ssa_118) (0, 768, 160) /* base=0 */ /* range=768 */ /* type=float32 */ /* vc */
vec1 32 ssa_120 = fmul ssa_81, ssa_119.x
vec1 32 ssa_121 = fmul ssa_90, ssa_119.y
vec1 32 ssa_122 = fadd ssa_120, ssa_121
vec1 32 ssa_123 = fmul ssa_99, ssa_119.z
vec1 32 ssa_124 = fadd ssa_122, ssa_123
vec1 32 ssa_125 = fmul ssa_63.y, ssa_119.w
vec1 32 ssa_126 = fadd ssa_124, ssa_125
vec1 32 ssa_127 = load_const (0x000000a0 /* 0.000000 */)
vec4 32 ssa_128 = intrinsic load_uniform (ssa_127) (0, 768, 160) /* base=0 */ /* range=768 */ /* type=float32 */ /* vc */
vec1 32 ssa_129 = fmul ssa_81, ssa_128.x
vec1 32 ssa_130 = fmul ssa_90, ssa_128.y
vec1 32 ssa_131 = fadd ssa_129, ssa_130
vec1 32 ssa_132 = fmul ssa_99, ssa_128.z
vec1 32 ssa_133 = fadd ssa_131, ssa_132
vec1 32 ssa_134 = fmul ssa_63.y, ssa_128.w
vec1 32 ssa_135 = fadd ssa_133, ssa_134
vec1 32 ssa_136 = deref_var &v1 (shader_in vec4)
vec4 32 ssa_137 = intrinsic load_deref (ssa_136) (3) /* access=3 */
vec1 32 ssa_138 = fmul ssa_137.x, ssa_74.x
vec1 32 ssa_139 = fmul ssa_137.y, ssa_74.y
vec1 32 ssa_140 = fadd ssa_138, ssa_139
vec1 32 ssa_141 = fmul ssa_137.z, ssa_74.z
vec1 32 ssa_142 = fadd ssa_140, ssa_141
vec1 32 ssa_143 = fmul ssa_137.x, ssa_83.x
vec1 32 ssa_144 = fmul ssa_137.y, ssa_83.y
vec1 32 ssa_145 = fadd ssa_143, ssa_144
vec1 32 ssa_146 = fmul ssa_137.z, ssa_83.z
vec1 32 ssa_147 = fadd ssa_145, ssa_146
vec1 32 ssa_148 = fmul ssa_137.x, ssa_92.x
vec1 32 ssa_149 = fmul ssa_137.y, ssa_92.y
vec1 32 ssa_150 = fadd ssa_148, ssa_149
vec1 32 ssa_151 = fmul ssa_137.z, ssa_92.z
vec1 32 ssa_152 = fadd ssa_150, ssa_151
vec1 32 ssa_153 = deref_var &v4 (shader_in vec4)
vec4 32 ssa_154 = intrinsic load_deref (ssa_153) (3) /* access=3 */
vec1 32 ssa_155 = deref_var &v3 (shader_in vec4)
vec4 32 ssa_156 = intrinsic load_deref (ssa_155) (3) /* access=3 */
vec1 32 ssa_157 = fadd ssa_154.x, ssa_156.x
vec1 32 ssa_158 = fadd ssa_154.y, ssa_156.y
vec1 32 ssa_159 = fadd ssa_158, ssa_154.y
vec1 32 ssa_160 = fadd ssa_157, ssa_154.x
vec1 32 ssa_161 = fadd ssa_160, ssa_154.x
vec1 32 ssa_162 = fadd ssa_159, ssa_154.y
vec1 32 ssa_163 = deref_var &v2 (shader_in vec4)
vec4 32 ssa_164 = intrinsic load_deref (ssa_163) (3) /* access=3 */
vec1 32 ssa_165 = deref_var &v5 (shader_in vec4)
vec4 32 ssa_166 = intrinsic load_deref (ssa_165) (3) /* access=3 */
vec1 32 ssa_167 = fmul ssa_63.x, ssa_166.w
vec1 32 ssa_168 = fmul ssa_63.y, ssa_166.w
vec1 32 ssa_169 = fmul ssa_63.x, ssa_164.x
vec1 32 ssa_170 = fmul ssa_63.y, ssa_164.x
vec1 32 ssa_171 = fmul ssa_63.y, ssa_164.y
vec1 32 ssa_172 = load_const (0x000002f0 /* 0.000000 */)
vec4 32 ssa_173 = intrinsic load_uniform (ssa_172) (0, 768, 160) /* base=0 */ /* range=768 */ /* type=float32 */ /* vc */
vec1 32 ssa_174 = fmul ssa_173.w, ssa_63.x
vec1 32 ssa_175 = fmul ssa_173.w, ssa_63.y
vec1 32 ssa_176 = fadd ssa_174, ssa_63.y
vec1 32 ssa_177 = fadd ssa_175, ssa_63.x
vec1 32 ssa_178 = deref_var &out@gl_Position-temp (function_temp vec4)
vec4 32 ssa_179 = vec4 ssa_108, ssa_117, ssa_135, ssa_126
intrinsic store_deref (ssa_178, ssa_179) (15, 0) /* wrmask=xyzw */ /* access=0 */
vec1 32 ssa_180 = deref_var &out@gl_FrontColor-temp (function_temp vec4)
vec4 32 ssa_181 = vec4 ssa_176, ssa_176, ssa_176, ssa_177
intrinsic store_deref (ssa_180, ssa_181) (15, 0) /* wrmask=xyzw */ /* access=0 */
vec1 32 ssa_182 = deref_var &out@gl_ClipVertex-temp (function_temp vec4)
intrinsic store_deref (ssa_182, ssa_179) (15, 0) /* wrmask=xyzw */ /* access=0 */
vec1 32 ssa_183 = deref_var &out@oT0-temp (function_temp float)
vec1 32 ssa_184 = mov ssa_164.x
vec1 32 ssa_185 = deref_var &out@oT0-temp@44 (function_temp vec4[1])
vec1 32 ssa_186 = load_const (0x00000000 /* 0.000000 */)
vec1 32 ssa_187 = deref_array &(*ssa_185)[0] (function_temp vec4) /* &out@oT0-temp@44[0] */
vec4 32 ssa_188 = vec4 ssa_184, ssa_61, ssa_60, ssa_59
vec1 32 ssa_189 = mov ssa_164.y
vec1 32 ssa_190 = deref_var &out@oT0-temp@23 (function_temp float)
vec1 32 ssa_191 = deref_var &out@oT0-temp@44 (function_temp vec4[1])
vec1 32 ssa_192 = load_const (0x00000000 /* 0.000000 */)
vec1 32 ssa_193 = deref_array &(*ssa_191)[0] (function_temp vec4) /* &out@oT0-temp@44[0] */
vec4 32 ssa_194 = vec4 ssa_58, ssa_57, ssa_184, ssa_56
vec1 32 ssa_195 = mov ssa_188.x
vec1 32 ssa_196 = mov ssa_194.z
vec4 32 ssa_197 = vec4 ssa_195, ssa_1, ssa_196, ssa_0
intrinsic store_deref (ssa_193, ssa_197) (5, 0) /* wrmask=xz */ /* access=0 */
vec1 32 ssa_198 = deref_var &out@oT2-temp (function_temp float)
vec1 32 ssa_199 = deref_var &out@oT2-temp@42 (function_temp vec4)
vec4 32 ssa_200 = vec4 ssa_157, ssa_55, ssa_54, ssa_53
vec1 32 ssa_201 = deref_var &out@oT2-temp@24 (function_temp float)
vec1 32 ssa_202 = deref_var &out@oT2-temp@42 (function_temp vec4)
vec4 32 ssa_203 = vec4 ssa_52, ssa_158, ssa_51, ssa_50
vec1 32 ssa_204 = deref_var &out@oT2-temp@25 (function_temp float)
vec1 32 ssa_205 = deref_var &out@oT2-temp@42 (function_temp vec4)
vec4 32 ssa_206 = vec4 ssa_49, ssa_48, ssa_159, ssa_47
vec1 32 ssa_207 = deref_var &out@oT2-temp@26 (function_temp float)
vec1 32 ssa_208 = deref_var &out@oT2-temp@42 (function_temp vec4)
vec4 32 ssa_209 = vec4 ssa_46, ssa_45, ssa_44, ssa_160
vec1 32 ssa_210 = mov ssa_200.x
vec1 32 ssa_211 = mov ssa_203.y
vec1 32 ssa_212 = mov ssa_206.z
vec1 32 ssa_213 = mov ssa_209.w
vec4 32 ssa_214 = vec4 ssa_210, ssa_211, ssa_212, ssa_213
intrinsic store_deref (ssa_208, ssa_214) (15, 0) /* wrmask=xyzw */ /* access=0 */
vec1 32 ssa_215 = deref_var &out@oT3-temp (function_temp float)
vec1 32 ssa_216 = deref_var &out@oT3-temp@43 (function_temp vec4)
vec4 32 ssa_217 = vec4 ssa_161, ssa_43, ssa_42, ssa_41
vec1 32 ssa_218 = deref_var &out@oT3-temp@27 (function_temp float)
vec1 32 ssa_219 = deref_var &out@oT3-temp@43 (function_temp vec4)
vec4 32 ssa_220 = vec4 ssa_40, ssa_162, ssa_39, ssa_38
vec1 32 ssa_221 = deref_var &out@oT3-temp@28 (function_temp float)
vec1 32 ssa_222 = deref_var &out@oT3-temp@43 (function_temp vec4)
vec4 32 ssa_223 = vec4 ssa_37, ssa_36, ssa_184, ssa_35
vec1 32 ssa_224 = deref_var &out@oT3-temp@29 (function_temp float)
vec1 32 ssa_225 = deref_var &out@oT3-temp@43 (function_temp vec4)
vec4 32 ssa_226 = vec4 ssa_34, ssa_33, ssa_32, ssa_189
vec1 32 ssa_227 = mov ssa_217.x
vec1 32 ssa_228 = mov ssa_220.y
vec1 32 ssa_229 = mov ssa_223.z
vec1 32 ssa_230 = mov ssa_226.w
vec4 32 ssa_231 = vec4 ssa_227, ssa_228, ssa_229, ssa_230
intrinsic store_deref (ssa_225, ssa_231) (15, 0) /* wrmask=xyzw */ /* access=0 */
vec1 32 ssa_232 = deref_var &out@oT4-temp (function_temp float)
vec1 32 ssa_233 = deref_var &out@oT4-temp@38 (function_temp vec3)
vec3 32 ssa_234 = vec3 ssa_81, ssa_31, ssa_30
vec1 32 ssa_235 = deref_var &out@oT4-temp@30 (function_temp float)
vec1 32 ssa_236 = deref_var &out@oT4-temp@38 (function_temp vec3)
vec3 32 ssa_237 = vec3 ssa_29, ssa_90, ssa_28
vec1 32 ssa_238 = deref_var &out@oT4-temp@31 (function_temp float)
vec1 32 ssa_239 = deref_var &out@oT4-temp@38 (function_temp vec3)
vec3 32 ssa_240 = vec3 ssa_27, ssa_26, ssa_99
vec1 32 ssa_241 = mov ssa_234.x
vec1 32 ssa_242 = mov ssa_237.y
vec1 32 ssa_243 = mov ssa_240.z
vec3 32 ssa_244 = vec3 ssa_241, ssa_242, ssa_243
intrinsic store_deref (ssa_239, ssa_244) (7, 0) /* wrmask=xyz */ /* access=0 */
vec1 32 ssa_245 = deref_var &out@oT5-temp (function_temp float)
vec1 32 ssa_246 = deref_var &out@oT5-temp@39 (function_temp vec2)
vec2 32 ssa_247 = vec2 ssa_167, ssa_25
vec1 32 ssa_248 = deref_var &out@oT5-temp@32 (function_temp float)
vec1 32 ssa_249 = deref_var &out@oT5-temp@39 (function_temp vec2)
vec2 32 ssa_250 = vec2 ssa_24, ssa_168
vec1 32 ssa_251 = mov ssa_247.x
vec1 32 ssa_252 = mov ssa_250.y
vec2 32 ssa_253 = vec2 ssa_251, ssa_252
intrinsic store_deref (ssa_249, ssa_253) (3, 0) /* wrmask=xy */ /* access=0 */
vec1 32 ssa_254 = deref_var &out@oT7-temp (function_temp float)
vec1 32 ssa_255 = deref_var &out@oT7-temp@40 (function_temp vec4)
vec4 32 ssa_256 = vec4 ssa_142, ssa_23, ssa_22, ssa_21
vec1 32 ssa_257 = deref_var &out@oT7-temp@33 (function_temp float)
vec1 32 ssa_258 = deref_var &out@oT7-temp@40 (function_temp vec4)
vec4 32 ssa_259 = vec4 ssa_20, ssa_147, ssa_19, ssa_18
vec1 32 ssa_260 = deref_var &out@oT7-temp@34 (function_temp float)
vec1 32 ssa_261 = deref_var &out@oT7-temp@40 (function_temp vec4)
vec4 32 ssa_262 = vec4 ssa_17, ssa_16, ssa_152, ssa_15
vec1 32 ssa_263 = deref_var &out@oT7-temp@35 (function_temp float)
vec1 32 ssa_264 = deref_var &out@oT7-temp@40 (function_temp vec4)
vec4 32 ssa_265 = vec4 ssa_14, ssa_13, ssa_12, ssa_189
vec1 32 ssa_266 = mov ssa_256.x
vec1 32 ssa_267 = mov ssa_259.y
vec1 32 ssa_268 = mov ssa_262.z
vec1 32 ssa_269 = mov ssa_265.w
vec4 32 ssa_270 = vec4 ssa_266, ssa_267, ssa_268, ssa_269
intrinsic store_deref (ssa_264, ssa_270) (15, 0) /* wrmask=xyzw */ /* access=0 */
vec1 32 ssa_271 = deref_var &out@oT8-temp (function_temp float)
vec1 32 ssa_272 = deref_var &out@oT8-temp@45 (function_temp vec4[1])
vec1 32 ssa_273 = load_const (0x00000000 /* 0.000000 */)
vec1 32 ssa_274 = deref_array &(*ssa_272)[0] (function_temp vec4) /* &out@oT8-temp@45[0] */
vec4 32 ssa_275 = vec4 ssa_170, ssa_11, ssa_10, ssa_9
vec1 32 ssa_276 = deref_var &out@oT8-temp@36 (function_temp float)
vec1 32 ssa_277 = deref_var &out@oT8-temp@45 (function_temp vec4[1])
vec1 32 ssa_278 = load_const (0x00000000 /* 0.000000 */)
vec1 32 ssa_279 = deref_array &(*ssa_277)[0] (function_temp vec4) /* &out@oT8-temp@45[0] */
vec4 32 ssa_280 = vec4 ssa_8, ssa_171, ssa_7, ssa_6
vec1 32 ssa_281 = deref_var &out@oT8-temp@37 (function_temp float)
vec1 32 ssa_282 = deref_var &out@oT8-temp@45 (function_temp vec4[1])
vec1 32 ssa_283 = load_const (0x00000000 /* 0.000000 */)
vec1 32 ssa_284 = deref_array &(*ssa_282)[0] (function_temp vec4) /* &out@oT8-temp@45[0] */
vec4 32 ssa_285 = vec4 ssa_5, ssa_4, ssa_3, ssa_169
vec1 32 ssa_286 = mov ssa_275.x
vec1 32 ssa_287 = mov ssa_280.y
vec1 32 ssa_288 = mov ssa_285.w
vec4 32 ssa_289 = vec4 ssa_286, ssa_287, ssa_2, ssa_288
intrinsic store_deref (ssa_284, ssa_289) (11, 0) /* wrmask=xyw */ /* access=0 */
vec1 32 ssa_290 = deref_var &out@gl_Position-temp (function_temp vec4)
vec1 32 ssa_291 = deref_var &out@gl_Position-temp@46 (function_temp vec4)
vec4 32 ssa_292 = intrinsic load_deref (ssa_290) (0) /* access=0 */
intrinsic store_deref (ssa_291, ssa_292) (15, 0) /* wrmask=xyzw */ /* access=0 */
vec1 32 ssa_293 = deref_var &out@gl_FrontColor-temp (function_temp vec4)
vec1 32 ssa_294 = deref_var &out@gl_FrontColor-temp@47 (function_temp vec4)
vec4 32 ssa_295 = intrinsic load_deref (ssa_293) (0) /* access=0 */
intrinsic store_deref (ssa_294, ssa_295) (15, 0) /* wrmask=xyzw */ /* access=0 */
vec1 32 ssa_296 = deref_var &out@gl_ClipVertex-temp (function_temp vec4)
vec1 32 ssa_297 = deref_var &gl_ClipVertex (function_temp vec4)
vec4 32 ssa_298 = intrinsic load_deref (ssa_296) (0) /* access=0 */
intrinsic store_deref (ssa_297, ssa_298) (15, 0) /* wrmask=xyzw */ /* access=0 */
vec1 32 ssa_299 = deref_var &out@oT0-temp (function_temp float)
vec1 32 ssa_300 = deref_var &out@oT0-temp@48 (function_temp float)
vec1 32 ssa_301 = intrinsic load_deref (ssa_299) (0) /* access=0 */
intrinsic store_deref (ssa_300, ssa_301) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_302 = deref_var &out@oT0-temp@23 (function_temp float)
vec1 32 ssa_303 = deref_var &out@oT0-temp@49 (function_temp float)
vec1 32 ssa_304 = intrinsic load_deref (ssa_302) (0) /* access=0 */
intrinsic store_deref (ssa_303, ssa_304) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_305 = deref_var &out@oT2-temp (function_temp float)
vec1 32 ssa_306 = deref_var &out@oT2-temp@50 (function_temp float)
vec1 32 ssa_307 = intrinsic load_deref (ssa_305) (0) /* access=0 */
intrinsic store_deref (ssa_306, ssa_307) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_308 = deref_var &out@oT2-temp@24 (function_temp float)
vec1 32 ssa_309 = deref_var &out@oT2-temp@51 (function_temp float)
vec1 32 ssa_310 = intrinsic load_deref (ssa_308) (0) /* access=0 */
intrinsic store_deref (ssa_309, ssa_310) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_311 = deref_var &out@oT2-temp@25 (function_temp float)
vec1 32 ssa_312 = deref_var &out@oT2-temp@52 (function_temp float)
vec1 32 ssa_313 = intrinsic load_deref (ssa_311) (0) /* access=0 */
intrinsic store_deref (ssa_312, ssa_313) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_314 = deref_var &out@oT2-temp@26 (function_temp float)
vec1 32 ssa_315 = deref_var &out@oT2-temp@53 (function_temp float)
vec1 32 ssa_316 = intrinsic load_deref (ssa_314) (0) /* access=0 */
intrinsic store_deref (ssa_315, ssa_316) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_317 = deref_var &out@oT3-temp (function_temp float)
vec1 32 ssa_318 = deref_var &out@oT3-temp@54 (function_temp float)
vec1 32 ssa_319 = intrinsic load_deref (ssa_317) (0) /* access=0 */
intrinsic store_deref (ssa_318, ssa_319) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_320 = deref_var &out@oT3-temp@27 (function_temp float)
vec1 32 ssa_321 = deref_var &out@oT3-temp@55 (function_temp float)
vec1 32 ssa_322 = intrinsic load_deref (ssa_320) (0) /* access=0 */
intrinsic store_deref (ssa_321, ssa_322) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_323 = deref_var &out@oT3-temp@28 (function_temp float)
vec1 32 ssa_324 = deref_var &out@oT3-temp@56 (function_temp float)
vec1 32 ssa_325 = intrinsic load_deref (ssa_323) (0) /* access=0 */
intrinsic store_deref (ssa_324, ssa_325) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_326 = deref_var &out@oT3-temp@29 (function_temp float)
vec1 32 ssa_327 = deref_var &out@oT3-temp@57 (function_temp float)
vec1 32 ssa_328 = intrinsic load_deref (ssa_326) (0) /* access=0 */
intrinsic store_deref (ssa_327, ssa_328) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_329 = deref_var &out@oT4-temp (function_temp float)
vec1 32 ssa_330 = deref_var &out@oT4-temp@58 (function_temp float)
vec1 32 ssa_331 = intrinsic load_deref (ssa_329) (0) /* access=0 */
intrinsic store_deref (ssa_330, ssa_331) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_332 = deref_var &out@oT4-temp@30 (function_temp float)
vec1 32 ssa_333 = deref_var &out@oT4-temp@59 (function_temp float)
vec1 32 ssa_334 = intrinsic load_deref (ssa_332) (0) /* access=0 */
intrinsic store_deref (ssa_333, ssa_334) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_335 = deref_var &out@oT4-temp@31 (function_temp float)
vec1 32 ssa_336 = deref_var &out@oT4-temp@60 (function_temp float)
vec1 32 ssa_337 = intrinsic load_deref (ssa_335) (0) /* access=0 */
intrinsic store_deref (ssa_336, ssa_337) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_338 = deref_var &out@oT5-temp (function_temp float)
vec1 32 ssa_339 = deref_var &out@oT5-temp@61 (function_temp float)
vec1 32 ssa_340 = intrinsic load_deref (ssa_338) (0) /* access=0 */
intrinsic store_deref (ssa_339, ssa_340) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_341 = deref_var &out@oT5-temp@32 (function_temp float)
vec1 32 ssa_342 = deref_var &out@oT5-temp@62 (function_temp float)
vec1 32 ssa_343 = intrinsic load_deref (ssa_341) (0) /* access=0 */
intrinsic store_deref (ssa_342, ssa_343) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_344 = deref_var &out@oT7-temp (function_temp float)
vec1 32 ssa_345 = deref_var &out@oT7-temp@63 (function_temp float)
vec1 32 ssa_346 = intrinsic load_deref (ssa_344) (0) /* access=0 */
intrinsic store_deref (ssa_345, ssa_346) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_347 = deref_var &out@oT7-temp@33 (function_temp float)
vec1 32 ssa_348 = deref_var &out@oT7-temp@64 (function_temp float)
vec1 32 ssa_349 = intrinsic load_deref (ssa_347) (0) /* access=0 */
intrinsic store_deref (ssa_348, ssa_349) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_350 = deref_var &out@oT7-temp@34 (function_temp float)
vec1 32 ssa_351 = deref_var &out@oT7-temp@65 (function_temp float)
vec1 32 ssa_352 = intrinsic load_deref (ssa_350) (0) /* access=0 */
intrinsic store_deref (ssa_351, ssa_352) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_353 = deref_var &out@oT7-temp@35 (function_temp float)
vec1 32 ssa_354 = deref_var &out@oT7-temp@66 (function_temp float)
vec1 32 ssa_355 = intrinsic load_deref (ssa_353) (0) /* access=0 */
intrinsic store_deref (ssa_354, ssa_355) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_356 = deref_var &out@oT8-temp (function_temp float)
vec1 32 ssa_357 = deref_var &out@oT8-temp@67 (function_temp float)
vec1 32 ssa_358 = intrinsic load_deref (ssa_356) (0) /* access=0 */
intrinsic store_deref (ssa_357, ssa_358) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_359 = deref_var &out@oT8-temp@36 (function_temp float)
vec1 32 ssa_360 = deref_var &out@oT8-temp@68 (function_temp float)
vec1 32 ssa_361 = intrinsic load_deref (ssa_359) (0) /* access=0 */
intrinsic store_deref (ssa_360, ssa_361) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_362 = deref_var &out@oT8-temp@37 (function_temp float)
vec1 32 ssa_363 = deref_var &out@oT8-temp@69 (function_temp float)
vec1 32 ssa_364 = intrinsic load_deref (ssa_362) (0) /* access=0 */
intrinsic store_deref (ssa_363, ssa_364) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_365 = deref_var &out@oT4-temp@38 (function_temp vec3)
vec1 32 ssa_366 = deref_var &out@oT4-temp@70 (function_temp vec3)
vec3 32 ssa_367 = intrinsic load_deref (ssa_365) (0) /* access=0 */
intrinsic store_deref (ssa_366, ssa_367) (7, 0) /* wrmask=xyz */ /* access=0 */
vec1 32 ssa_368 = deref_var &out@oT5-temp@39 (function_temp vec2)
vec1 32 ssa_369 = deref_var &out@oT5-temp@71 (function_temp vec2)
vec2 32 ssa_370 = intrinsic load_deref (ssa_368) (0) /* access=0 */
intrinsic store_deref (ssa_369, ssa_370) (3, 0) /* wrmask=xy */ /* access=0 */
vec1 32 ssa_371 = deref_var &out@oT7-temp@40 (function_temp vec4)
vec1 32 ssa_372 = deref_var &out@oT7-temp@72 (function_temp vec4)
vec4 32 ssa_373 = intrinsic load_deref (ssa_371) (0) /* access=0 */
intrinsic store_deref (ssa_372, ssa_373) (15, 0) /* wrmask=xyzw */ /* access=0 */
vec1 32 ssa_374 = deref_var &out@oT8-temp@41 (function_temp vec2)
vec1 32 ssa_375 = deref_var &out@oT8-temp@73 (function_temp vec2)
vec2 32 ssa_376 = intrinsic load_deref (ssa_374) (0) /* access=0 */
intrinsic store_deref (ssa_375, ssa_376) (3, 0) /* wrmask=xy */ /* access=0 */
vec1 32 ssa_377 = deref_var &out@oT2-temp@42 (function_temp vec4)
vec1 32 ssa_378 = deref_var &out@oT2-temp@74 (function_temp vec4)
vec4 32 ssa_379 = intrinsic load_deref (ssa_377) (0) /* access=0 */
intrinsic store_deref (ssa_378, ssa_379) (15, 0) /* wrmask=xyzw */ /* access=0 */
vec1 32 ssa_380 = deref_var &out@oT3-temp@43 (function_temp vec4)
vec1 32 ssa_381 = deref_var &out@oT3-temp@75 (function_temp vec4)
vec4 32 ssa_382 = intrinsic load_deref (ssa_380) (0) /* access=0 */
intrinsic store_deref (ssa_381, ssa_382) (15, 0) /* wrmask=xyzw */ /* access=0 */
vec1 32 ssa_383 = deref_var &out@oT0-temp@44 (function_temp vec4[1])
vec1 32 ssa_384 = deref_var &out@oT0-temp@76 (function_temp vec4[1])
vec1 32 ssa_385 = load_const (0x00000000 /* 0.000000 */)
vec1 32 ssa_386 = deref_array &(*ssa_383)[0] (function_temp vec4) /* &out@oT0-temp@44[0] */
vec1 32 ssa_387 = load_const (0x00000000 /* 0.000000 */)
vec1 32 ssa_388 = deref_array &(*ssa_384)[0] (function_temp vec4) /* &out@oT0-temp@76[0] */
vec4 32 ssa_389 = intrinsic load_deref (ssa_386) (0) /* access=0 */
intrinsic store_deref (ssa_388, ssa_389) (15, 0) /* wrmask=xyzw */ /* access=0 */
vec1 32 ssa_390 = deref_var &out@oT8-temp@45 (function_temp vec4[1])
vec1 32 ssa_391 = deref_var &out@oT8-temp@77 (function_temp vec4[1])
vec1 32 ssa_392 = load_const (0x00000000 /* 0.000000 */)
vec1 32 ssa_393 = deref_array &(*ssa_390)[0] (function_temp vec4) /* &out@oT8-temp@45[0] */
vec1 32 ssa_394 = load_const (0x00000000 /* 0.000000 */)
vec1 32 ssa_395 = deref_array &(*ssa_391)[0] (function_temp vec4) /* &out@oT8-temp@77[0] */
vec4 32 ssa_396 = intrinsic load_deref (ssa_393) (0) /* access=0 */
intrinsic store_deref (ssa_395, ssa_396) (15, 0) /* wrmask=xyzw */ /* access=0 */
vec1 32 ssa_397 = deref_var &gl_ClipVertex (function_temp vec4)
vec4 32 ssa_398 = intrinsic load_deref (ssa_397) (0) /* access=0 */
vec4 32 ssa_399 = intrinsic load_user_clip_plane () (0) /* ucp-id=0 */
vec1 32 ssa_400 = fdot4 ssa_399, ssa_398
vec1 32 ssa_401 = load_const (0x00000000 /* 0.000000 */)
vec1 32 ssa_402 = load_const (0x00000000 /* 0.000000 */)
vec1 32 ssa_403 = load_const (0x00000000 /* 0.000000 */)
vec1 32 ssa_404 = load_const (0x00000000 /* 0.000000 */)
vec1 32 ssa_405 = load_const (0x00000000 /* 0.000000 */)
vec1 32 ssa_406 = load_const (0x00000000 /* 0.000000 */)
vec1 32 ssa_407 = load_const (0x00000000 /* 0.000000 */)
vec4 32 ssa_408 = vec4 ssa_400, ssa_401, ssa_402, ssa_403
vec1 32 ssa_409 = deref_var &out@clipdist_0-temp (function_temp vec4)
intrinsic store_deref (ssa_409, ssa_408) (15, 0) /* wrmask=xyzw */ /* access=0 */
vec1 32 ssa_410 = deref_var &out@gl_Position-temp@46 (function_temp vec4)
vec1 32 ssa_411 = deref_var &gl_Position (shader_out vec4)
vec4 32 ssa_476 = intrinsic load_deref (ssa_410) (0) /* access=0 */
intrinsic store_deref (ssa_411, ssa_476) (15, 0) /* wrmask=xyzw */ /* access=0 */
vec1 32 ssa_412 = deref_var &out@gl_FrontColor-temp@47 (function_temp vec4)
vec1 32 ssa_413 = deref_var &gl_FrontColor (shader_out vec4)
vec4 32 ssa_477 = intrinsic load_deref (ssa_412) (0) /* access=0 */
intrinsic store_deref (ssa_413, ssa_477) (15, 0) /* wrmask=xyzw */ /* access=0 */
vec1 32 ssa_414 = deref_var &out@oT0-temp@48 (function_temp float)
vec1 32 ssa_415 = deref_var &oT0 (shader_out float)
vec1 32 ssa_478 = intrinsic load_deref (ssa_414) (0) /* access=0 */
intrinsic store_deref (ssa_415, ssa_478) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_416 = deref_var &out@oT0-temp@49 (function_temp float)
vec1 32 ssa_417 = deref_var &oT0@0 (shader_out float)
vec1 32 ssa_479 = intrinsic load_deref (ssa_416) (0) /* access=0 */
intrinsic store_deref (ssa_417, ssa_479) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_418 = deref_var &out@oT2-temp@50 (function_temp float)
vec1 32 ssa_419 = deref_var &oT2 (shader_out float)
vec1 32 ssa_480 = intrinsic load_deref (ssa_418) (0) /* access=0 */
intrinsic store_deref (ssa_419, ssa_480) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_420 = deref_var &out@oT2-temp@51 (function_temp float)
vec1 32 ssa_421 = deref_var &oT2@1 (shader_out float)
vec1 32 ssa_481 = intrinsic load_deref (ssa_420) (0) /* access=0 */
intrinsic store_deref (ssa_421, ssa_481) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_422 = deref_var &out@oT2-temp@52 (function_temp float)
vec1 32 ssa_423 = deref_var &oT2@2 (shader_out float)
vec1 32 ssa_482 = intrinsic load_deref (ssa_422) (0) /* access=0 */
intrinsic store_deref (ssa_423, ssa_482) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_424 = deref_var &out@oT2-temp@53 (function_temp float)
vec1 32 ssa_425 = deref_var &oT2@3 (shader_out float)
vec1 32 ssa_483 = intrinsic load_deref (ssa_424) (0) /* access=0 */
intrinsic store_deref (ssa_425, ssa_483) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_426 = deref_var &out@oT3-temp@54 (function_temp float)
vec1 32 ssa_427 = deref_var &oT3 (shader_out float)
vec1 32 ssa_484 = intrinsic load_deref (ssa_426) (0) /* access=0 */
intrinsic store_deref (ssa_427, ssa_484) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_428 = deref_var &out@oT3-temp@55 (function_temp float)
vec1 32 ssa_429 = deref_var &oT3@4 (shader_out float)
vec1 32 ssa_485 = intrinsic load_deref (ssa_428) (0) /* access=0 */
intrinsic store_deref (ssa_429, ssa_485) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_430 = deref_var &out@oT3-temp@56 (function_temp float)
vec1 32 ssa_431 = deref_var &oT3@5 (shader_out float)
vec1 32 ssa_486 = intrinsic load_deref (ssa_430) (0) /* access=0 */
intrinsic store_deref (ssa_431, ssa_486) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_432 = deref_var &out@oT3-temp@57 (function_temp float)
vec1 32 ssa_433 = deref_var &oT3@6 (shader_out float)
vec1 32 ssa_487 = intrinsic load_deref (ssa_432) (0) /* access=0 */
intrinsic store_deref (ssa_433, ssa_487) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_434 = deref_var &out@oT4-temp@58 (function_temp float)
vec1 32 ssa_435 = deref_var &oT4 (shader_out float)
vec1 32 ssa_488 = intrinsic load_deref (ssa_434) (0) /* access=0 */
intrinsic store_deref (ssa_435, ssa_488) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_436 = deref_var &out@oT4-temp@59 (function_temp float)
vec1 32 ssa_437 = deref_var &oT4@7 (shader_out float)
vec1 32 ssa_489 = intrinsic load_deref (ssa_436) (0) /* access=0 */
intrinsic store_deref (ssa_437, ssa_489) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_438 = deref_var &out@oT4-temp@60 (function_temp float)
vec1 32 ssa_439 = deref_var &oT4@8 (shader_out float)
vec1 32 ssa_490 = intrinsic load_deref (ssa_438) (0) /* access=0 */
intrinsic store_deref (ssa_439, ssa_490) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_440 = deref_var &out@oT5-temp@61 (function_temp float)
vec1 32 ssa_441 = deref_var &oT5 (shader_out float)
vec1 32 ssa_491 = intrinsic load_deref (ssa_440) (0) /* access=0 */
intrinsic store_deref (ssa_441, ssa_491) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_442 = deref_var &out@oT5-temp@62 (function_temp float)
vec1 32 ssa_443 = deref_var &oT5@9 (shader_out float)
vec1 32 ssa_492 = intrinsic load_deref (ssa_442) (0) /* access=0 */
intrinsic store_deref (ssa_443, ssa_492) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_444 = deref_var &out@oT7-temp@63 (function_temp float)
vec1 32 ssa_445 = deref_var &oT7 (shader_out float)
vec1 32 ssa_493 = intrinsic load_deref (ssa_444) (0) /* access=0 */
intrinsic store_deref (ssa_445, ssa_493) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_446 = deref_var &out@oT7-temp@64 (function_temp float)
vec1 32 ssa_447 = deref_var &oT7@10 (shader_out float)
vec1 32 ssa_494 = intrinsic load_deref (ssa_446) (0) /* access=0 */
intrinsic store_deref (ssa_447, ssa_494) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_448 = deref_var &out@oT7-temp@65 (function_temp float)
vec1 32 ssa_449 = deref_var &oT7@11 (shader_out float)
vec1 32 ssa_495 = intrinsic load_deref (ssa_448) (0) /* access=0 */
intrinsic store_deref (ssa_449, ssa_495) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_450 = deref_var &out@oT7-temp@66 (function_temp float)
vec1 32 ssa_451 = deref_var &oT7@12 (shader_out float)
vec1 32 ssa_496 = intrinsic load_deref (ssa_450) (0) /* access=0 */
intrinsic store_deref (ssa_451, ssa_496) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_452 = deref_var &out@oT8-temp@67 (function_temp float)
vec1 32 ssa_453 = deref_var &oT8 (shader_out float)
vec1 32 ssa_497 = intrinsic load_deref (ssa_452) (0) /* access=0 */
intrinsic store_deref (ssa_453, ssa_497) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_454 = deref_var &out@oT8-temp@68 (function_temp float)
vec1 32 ssa_455 = deref_var &oT8@13 (shader_out float)
vec1 32 ssa_498 = intrinsic load_deref (ssa_454) (0) /* access=0 */
intrinsic store_deref (ssa_455, ssa_498) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_456 = deref_var &out@oT8-temp@69 (function_temp float)
vec1 32 ssa_457 = deref_var &oT8@14 (shader_out float)
vec1 32 ssa_499 = intrinsic load_deref (ssa_456) (0) /* access=0 */
intrinsic store_deref (ssa_457, ssa_499) (1, 0) /* wrmask=x */ /* access=0 */
vec1 32 ssa_458 = deref_var &out@oT4-temp@70 (function_temp vec3)
vec1 32 ssa_459 = deref_var &oT4@15 (shader_out vec3)
vec3 32 ssa_500 = intrinsic load_deref (ssa_458) (0) /* access=0 */
intrinsic store_deref (ssa_459, ssa_500) (7, 0) /* wrmask=xyz */ /* access=0 */
vec1 32 ssa_460 = deref_var &out@oT5-temp@71 (function_temp vec2)
vec1 32 ssa_461 = deref_var &oT5@16 (shader_out vec2)
vec2 32 ssa_501 = intrinsic load_deref (ssa_460) (0) /* access=0 */
intrinsic store_deref (ssa_461, ssa_501) (3, 0) /* wrmask=xy */ /* access=0 */
vec1 32 ssa_462 = deref_var &out@oT7-temp@72 (function_temp vec4)
vec1 32 ssa_463 = deref_var &oT7@17 (shader_out vec4)
vec4 32 ssa_502 = intrinsic load_deref (ssa_462) (0) /* access=0 */
intrinsic store_deref (ssa_463, ssa_502) (15, 0) /* wrmask=xyzw */ /* access=0 */
vec1 32 ssa_464 = deref_var &out@oT8-temp@73 (function_temp vec2)
vec1 32 ssa_465 = deref_var &oT8@18 (shader_out vec2)
vec2 32 ssa_503 = intrinsic load_deref (ssa_464) (0) /* access=0 */
intrinsic store_deref (ssa_465, ssa_503) (3, 0) /* wrmask=xy */ /* access=0 */
vec1 32 ssa_466 = deref_var &out@oT2-temp@74 (function_temp vec4)
vec1 32 ssa_467 = deref_var &oT2@19 (shader_out vec4)
vec4 32 ssa_504 = intrinsic load_deref (ssa_466) (0) /* access=0 */
intrinsic store_deref (ssa_467, ssa_504) (15, 0) /* wrmask=xyzw */ /* access=0 */
vec1 32 ssa_468 = deref_var &out@oT3-temp@75 (function_temp vec4)
vec1 32 ssa_469 = deref_var &oT3@20 (shader_out vec4)
vec4 32 ssa_505 = intrinsic load_deref (ssa_468) (0) /* access=0 */
intrinsic store_deref (ssa_469, ssa_505) (15, 0) /* wrmask=xyzw */ /* access=0 */
vec1 32 ssa_470 = deref_var &out@oT0-temp@76 (function_temp vec4[1])
vec1 32 ssa_471 = deref_var &oT0@21 (shader_out vec4[1])
intrinsic copy_deref (ssa_471, ssa_470) (0, 0) /* src-access=0 */ /* dst-access=0 */
vec1 32 ssa_472 = deref_var &out@oT8-temp@77 (function_temp vec4[1])
vec1 32 ssa_473 = deref_var &oT8@22 (shader_out vec4[1])
intrinsic copy_deref (ssa_473, ssa_472) (0, 0) /* src-access=0 */ /* dst-access=0 */
vec1 32 ssa_474 = deref_var &out@clipdist_0-temp (function_temp vec4)
vec1 32 ssa_475 = deref_var &clipdist_0 (shader_out vec4)
vec4 32 ssa_506 = intrinsic load_deref (ssa_474) (0) /* access=0 */
intrinsic store_deref (ssa_475, ssa_506) (15, 0) /* wrmask=xyzw */ /* access=0 */
/* succs: block_1 */
block block_1:
}
This deref was created by "flat" mode merge. I'm not sure why emit_deref_copy_load_store
doesn't expect array derefs, aren't there other places creating them? Or should they have been dealt with before this stage?