NIR (SSA form) for fragment shader: shader: MESA_SHADER_FRAGMENT name: GLSL394 inputs: 4 outputs: 0 uniforms: 0 decl_var uniform INTERP_QUALIFIER_NONE sampler2DMS tex1 (0, 0) decl_var shader_in INTERP_QUALIFIER_NONE vec4 gl_FragCoord (VARYING_SLOT_POS, 0) decl_overload main returning void impl main { block block_0: /* preds: */ vec1 ssa_0 = load_const (0x00000000 /* 0.000000 */) vec1 ssa_1 = load_const (0x3c008081 /* 0.007843 */) vec1 ssa_2 = load_const (0xbf000000 /* -0.500000 */) vec1 ssa_3 = load_const (0x00000003 /* 0.000000 */) vec1 ssa_4 = load_const (0x00000002 /* 0.000000 */) vec1 ssa_5 = load_const (0x00000001 /* 0.000000 */) vec1 ssa_6 = load_const (0x3f75dcc7 /* 0.960400 */) vec4 ssa_7 = intrinsic load_input () () (0) /* gl_FragCoord */ vec1 ssa_8 = f2i ssa_7 vec1 ssa_9 = f2i ssa_7.y vec2 ssa_10 = vec2 ssa_8, ssa_9 vec4 ssa_11 = txf_ms ssa_10 (coord), ssa_0 (ms_index), 0 (sampler) vec1 ssa_12 = fadd ssa_11, ssa_2 vec1 ssa_13 = fadd ssa_11.y, ssa_2 vec1 ssa_14 = fadd ssa_11.z, ssa_2 vec1 ssa_15 = fmul ssa_12, ssa_12 vec1 ssa_16 = ffma ssa_13, ssa_13, ssa_15 vec1 ssa_17 = ffma ssa_14, ssa_14, ssa_16 vec1 ssa_18 = fmul ssa_6, ssa_17 vec4 ssa_19 = txf_ms ssa_10 (coord), ssa_5 (ms_index), 0 (sampler) vec1 ssa_20 = fadd ssa_19, ssa_2 vec1 ssa_21 = fadd ssa_19.y, ssa_2 vec1 ssa_22 = fadd ssa_19.z, ssa_2 vec1 ssa_23 = fadd ssa_11.w, -ssa_19.w vec1 ssa_24 = fge ssa_1, abs(ssa_23) /* succs: block_1 block_2 */ if ssa_24 { block block_1: /* preds: block_0 */ vec1 ssa_25 = fmul ssa_20, ssa_12 vec1 ssa_26 = ffma ssa_21, ssa_13, ssa_25 vec1 ssa_27 = ffma ssa_22, ssa_14, ssa_26 vec1 ssa_28 = fmul ssa_27, ssa_27 vec1 ssa_29 = fmul ssa_20, ssa_20 vec1 ssa_30 = ffma ssa_21, ssa_21, ssa_29 vec1 ssa_31 = ffma ssa_22, ssa_22, ssa_30 vec1 ssa_32 = fmul ssa_18, ssa_31 vec1 ssa_33 = fge ssa_28, ssa_32 /* succs: block_3 */ } else { block block_2: /* preds: block_0 */ /* succs: block_3 */ } block block_3: /* preds: block_1 block_2 */ vec1 ssa_34 = phi block_1: ssa_33, block_2: ssa_0 /* succs: block_4 block_14 */ if ssa_34 { block block_4: /* preds: block_3 */ vec4 ssa_35 = txf_ms ssa_10 (coord), ssa_4 (ms_index), 0 (sampler) vec1 ssa_36 = fadd ssa_35, ssa_2 vec1 ssa_37 = fadd ssa_35.y, ssa_2 vec1 ssa_38 = fadd ssa_35.z, ssa_2 vec1 ssa_39 = fadd ssa_11.w, -ssa_35.w vec1 ssa_40 = fge ssa_1, abs(ssa_39) /* succs: block_5 block_6 */ if ssa_40 { block block_5: /* preds: block_4 */ vec1 ssa_41 = fmul ssa_36, ssa_12 vec1 ssa_42 = ffma ssa_37, ssa_13, ssa_41 vec1 ssa_43 = ffma ssa_38, ssa_14, ssa_42 vec1 ssa_44 = fmul ssa_43, ssa_43 vec1 ssa_45 = fmul ssa_36, ssa_36 vec1 ssa_46 = ffma ssa_37, ssa_37, ssa_45 vec1 ssa_47 = ffma ssa_38, ssa_38, ssa_46 vec1 ssa_48 = fmul ssa_18, ssa_47 vec1 ssa_49 = fge ssa_44, ssa_48 /* succs: block_7 */ } else { block block_6: /* preds: block_4 */ /* succs: block_7 */ } block block_7: /* preds: block_5 block_6 */ vec1 ssa_50 = phi block_5: ssa_49, block_6: ssa_0 /* succs: block_8 block_12 */ if ssa_50 { block block_8: /* preds: block_7 */ vec4 ssa_51 = txf_ms ssa_10 (coord), ssa_3 (ms_index), 0 (sampler) vec1 ssa_52 = fadd ssa_51, ssa_2 vec1 ssa_53 = fadd ssa_51.y, ssa_2 vec1 ssa_54 = fadd ssa_51.z, ssa_2 vec1 ssa_55 = fadd ssa_11.w, -ssa_51.w vec1 ssa_56 = fge ssa_1, abs(ssa_55) /* succs: block_9 block_10 */ if ssa_56 { block block_9: /* preds: block_8 */ vec1 ssa_57 = fmul ssa_52, ssa_12 vec1 ssa_58 = ffma ssa_53, ssa_13, ssa_57 vec1 ssa_59 = ffma ssa_54, ssa_14, ssa_58 vec1 ssa_60 = fmul ssa_59, ssa_59 vec1 ssa_61 = fmul ssa_52, ssa_52 vec1 ssa_62 = ffma ssa_53, ssa_53, ssa_61 vec1 ssa_63 = ffma ssa_54, ssa_54, ssa_62 vec1 ssa_64 = fmul ssa_18, ssa_63 vec1 ssa_65 = fge ssa_60, ssa_64 /* succs: block_11 */ } else { block block_10: /* preds: block_8 */ /* succs: block_11 */ } block block_11: /* preds: block_9 block_10 */ vec1 ssa_66 = phi block_9: ssa_65, block_10: ssa_0 intrinsic discard_if (ssa_66) () () /* succs: block_13 */ } else { block block_12: /* preds: block_7 */ /* succs: block_13 */ } block block_13: /* preds: block_11 block_12 */ /* succs: block_15 */ } else { block block_14: /* preds: block_3 */ /* succs: block_15 */ } block block_15: /* preds: block_13 block_14 */ /* succs: block_16 */ block block_16: } NIR (final form) for fragment shader: shader: MESA_SHADER_FRAGMENT name: GLSL394 inputs: 4 outputs: 0 uniforms: 0 decl_var uniform INTERP_QUALIFIER_NONE sampler2DMS tex1 (0, 0) decl_var shader_in INTERP_QUALIFIER_NONE vec4 gl_FragCoord (VARYING_SLOT_POS, 0) decl_overload main returning void impl main { decl_reg vec1 r0 decl_reg vec1 r1 decl_reg vec1 r2 block block_0: /* preds: */ vec1 ssa_0 = load_const (0x00000000 /* 0.000000 */) vec1 ssa_1 = load_const (0x3c008081 /* 0.007843 */) vec1 ssa_2 = load_const (0xbf000000 /* -0.500000 */) vec1 ssa_3 = load_const (0x00000003 /* 0.000000 */) vec1 ssa_4 = load_const (0x00000002 /* 0.000000 */) vec1 ssa_5 = load_const (0x00000001 /* 0.000000 */) vec1 ssa_6 = load_const (0x3f75dcc7 /* 0.960400 */) vec4 ssa_7 = intrinsic load_input () () (0) /* gl_FragCoord */ vec1 ssa_8 = f2i ssa_7 vec1 ssa_9 = f2i ssa_7.y vec2 ssa_10 = vec2 ssa_8, ssa_9 vec4 ssa_11 = txf_ms ssa_10 (coord), ssa_0 (ms_index), 0 (sampler) vec1 ssa_12 = fadd ssa_11, ssa_2 vec1 ssa_13 = fadd ssa_11.y, ssa_2 vec1 ssa_14 = fadd ssa_11.z, ssa_2 vec1 ssa_15 = fmul ssa_12, ssa_12 vec1 ssa_16 = ffma ssa_13, ssa_13, ssa_15 vec1 ssa_17 = ffma ssa_14, ssa_14, ssa_16 vec1 ssa_18 = fmul ssa_6, ssa_17 vec4 ssa_19 = txf_ms ssa_10 (coord), ssa_5 (ms_index), 0 (sampler) vec1 ssa_20 = fadd ssa_19, ssa_2 vec1 ssa_21 = fadd ssa_19.y, ssa_2 vec1 ssa_22 = fadd ssa_19.z, ssa_2 vec1 ssa_23 = fadd ssa_11.w, -ssa_19.w vec1 ssa_24 = fge ssa_1, abs(ssa_23) /* succs: block_1 block_2 */ if ssa_24 { block block_1: /* preds: block_0 */ vec1 ssa_25 = fmul ssa_20, ssa_12 vec1 ssa_26 = ffma ssa_21, ssa_13, ssa_25 vec1 ssa_27 = ffma ssa_22, ssa_14, ssa_26 vec1 ssa_28 = fmul ssa_27, ssa_27 vec1 ssa_29 = fmul ssa_20, ssa_20 vec1 ssa_30 = ffma ssa_21, ssa_21, ssa_29 vec1 ssa_31 = ffma ssa_22, ssa_22, ssa_30 vec1 ssa_32 = fmul ssa_18, ssa_31 r0 = fge ssa_28, ssa_32 /* succs: block_3 */ } else { block block_2: /* preds: block_0 */ r0 = imov ssa_0 /* succs: block_3 */ } block block_3: /* preds: block_1 block_2 */ /* succs: block_4 block_14 */ if r0 { block block_4: /* preds: block_3 */ vec4 ssa_35 = txf_ms ssa_10 (coord), ssa_4 (ms_index), 0 (sampler) vec1 ssa_36 = fadd ssa_35, ssa_2 vec1 ssa_37 = fadd ssa_35.y, ssa_2 vec1 ssa_38 = fadd ssa_35.z, ssa_2 vec1 ssa_39 = fadd ssa_11.w, -ssa_35.w vec1 ssa_40 = fge ssa_1, abs(ssa_39) /* succs: block_5 block_6 */ if ssa_40 { block block_5: /* preds: block_4 */ vec1 ssa_41 = fmul ssa_36, ssa_12 vec1 ssa_42 = ffma ssa_37, ssa_13, ssa_41 vec1 ssa_43 = ffma ssa_38, ssa_14, ssa_42 vec1 ssa_44 = fmul ssa_43, ssa_43 vec1 ssa_45 = fmul ssa_36, ssa_36 vec1 ssa_46 = ffma ssa_37, ssa_37, ssa_45 vec1 ssa_47 = ffma ssa_38, ssa_38, ssa_46 vec1 ssa_48 = fmul ssa_18, ssa_47 r1 = fge ssa_44, ssa_48 /* succs: block_7 */ } else { block block_6: /* preds: block_4 */ r1 = imov ssa_0 /* succs: block_7 */ } block block_7: /* preds: block_5 block_6 */ /* succs: block_8 block_12 */ if r1 { block block_8: /* preds: block_7 */ vec4 ssa_51 = txf_ms ssa_10 (coord), ssa_3 (ms_index), 0 (sampler) vec1 ssa_52 = fadd ssa_51, ssa_2 vec1 ssa_53 = fadd ssa_51.y, ssa_2 vec1 ssa_54 = fadd ssa_51.z, ssa_2 vec1 ssa_55 = fadd ssa_11.w, -ssa_51.w vec1 ssa_56 = fge ssa_1, abs(ssa_55) /* succs: block_9 block_10 */ if ssa_56 { block block_9: /* preds: block_8 */ vec1 ssa_57 = fmul ssa_52, ssa_12 vec1 ssa_58 = ffma ssa_53, ssa_13, ssa_57 vec1 ssa_59 = ffma ssa_54, ssa_14, ssa_58 vec1 ssa_60 = fmul ssa_59, ssa_59 vec1 ssa_61 = fmul ssa_52, ssa_52 vec1 ssa_62 = ffma ssa_53, ssa_53, ssa_61 vec1 ssa_63 = ffma ssa_54, ssa_54, ssa_62 vec1 ssa_64 = fmul ssa_18, ssa_63 r2 = fge ssa_60, ssa_64 /* succs: block_11 */ } else { block block_10: /* preds: block_8 */ r2 = imov ssa_0 /* succs: block_11 */ } block block_11: /* preds: block_9 block_10 */ intrinsic discard_if (r2) () () /* succs: block_13 */ } else { block block_12: /* preds: block_7 */ /* succs: block_13 */ } block block_13: /* preds: block_11 block_12 */ /* succs: block_15 */ } else { block block_14: /* preds: block_3 */ /* succs: block_15 */ } block block_15: /* preds: block_13 block_14 */ /* succs: block_16 */ block block_16: } GLSL IR for native fragment shader 394: ( (declare (location=0 shader_in ) vec4 gl_FragCoord) (declare (location=0 uniform ) sampler2DMS tex1) ( function main (signature void (parameters ) ( (declare (temporary ) float compiler_temp) (declare (temporary ) float compiler_temp@10427) (declare (temporary ) float compiler_temp@10428) (declare () float maxdiff) (declare (temporary ) float compiler_temp@10429) (declare (temporary ) float compiler_temp@10430) (declare (temporary ) float compiler_temp@10431) (declare (temporary ) vec4 compiler_temp@10432) (declare (temporary ) ivec2 compiler_temp@10433) (assign (x) (var_ref compiler_temp@10433) (expression int f2i (swiz x (var_ref gl_FragCoord) )) ) (assign (y) (var_ref compiler_temp@10433) (expression int f2i (swiz y (var_ref gl_FragCoord) )) ) (assign (xyzw) (var_ref compiler_temp@10432) (txf_ms vec4 (var_ref tex1) (var_ref compiler_temp@10433) 0 (constant int (0)) )) (assign (x) (var_ref compiler_temp@10429) (expression float + (swiz x (var_ref compiler_temp@10432) )(constant float (-0.500000)) ) ) (assign (x) (var_ref compiler_temp@10430) (expression float + (swiz y (var_ref compiler_temp@10432) )(constant float (-0.500000)) ) ) (assign (x) (var_ref compiler_temp@10431) (expression float + (swiz z (var_ref compiler_temp@10432) )(constant float (-0.500000)) ) ) (assign (x) (var_ref maxdiff) (expression float * (constant float (0.960400)) (expression float + (expression float * (var_ref compiler_temp@10431) (var_ref compiler_temp@10431) ) (expression float + (expression float * (var_ref compiler_temp@10430) (var_ref compiler_temp@10430) ) (expression float * (var_ref compiler_temp@10429) (var_ref compiler_temp@10429) ) ) ) ) ) (declare (temporary ) vec4 compiler_temp@10434) (declare (temporary ) ivec2 compiler_temp@10435) (assign (x) (var_ref compiler_temp@10435) (expression int f2i (swiz x (var_ref gl_FragCoord) )) ) (assign (y) (var_ref compiler_temp@10435) (expression int f2i (swiz y (var_ref gl_FragCoord) )) ) (assign (xyzw) (var_ref compiler_temp@10434) (txf_ms vec4 (var_ref tex1) (var_ref compiler_temp@10435) 0 (constant int (1)) )) (assign (x) (var_ref compiler_temp) (expression float + (swiz x (var_ref compiler_temp@10434) )(constant float (-0.500000)) ) ) (assign (x) (var_ref compiler_temp@10427) (expression float + (swiz y (var_ref compiler_temp@10434) )(constant float (-0.500000)) ) ) (assign (x) (var_ref compiler_temp@10428) (expression float + (swiz z (var_ref compiler_temp@10434) )(constant float (-0.500000)) ) ) (declare (temporary ) float compiler_temp@10436) (assign (x) (var_ref compiler_temp@10436) (expression float abs (expression float + (swiz w (var_ref compiler_temp@10432) )(expression float neg (swiz w (var_ref compiler_temp@10434) )) ) ) ) (declare (temporary ) bool compiler_temp@10437) (if (expression bool <= (var_ref compiler_temp@10436) (constant float (0.007843)) ) ( (declare (temporary ) float compiler_temp@10438) (assign (x) (var_ref compiler_temp@10438) (expression float + (expression float * (var_ref compiler_temp@10428) (var_ref compiler_temp@10431) ) (expression float + (expression float * (var_ref compiler_temp@10427) (var_ref compiler_temp@10430) ) (expression float * (var_ref compiler_temp) (var_ref compiler_temp@10429) ) ) ) ) (assign (x) (var_ref compiler_temp@10437) (expression bool >= (expression float * (var_ref compiler_temp@10438) (var_ref compiler_temp@10438) ) (expression float * (var_ref maxdiff) (expression float + (expression float * (var_ref compiler_temp@10428) (var_ref compiler_temp@10428) ) (expression float + (expression float * (var_ref compiler_temp@10427) (var_ref compiler_temp@10427) ) (expression float * (var_ref compiler_temp) (var_ref compiler_temp) ) ) ) ) ) ) ) ( (assign (x) (var_ref compiler_temp@10437) (constant bool (0)) ) )) (if (var_ref compiler_temp@10437) ( (declare (temporary ) float compiler_temp@10439) (declare (temporary ) float compiler_temp@10440) (declare (temporary ) float compiler_temp@10441) (declare (temporary ) vec4 compiler_temp@10442) (declare (temporary ) ivec2 compiler_temp@10443) (assign (x) (var_ref compiler_temp@10443) (expression int f2i (swiz x (var_ref gl_FragCoord) )) ) (assign (y) (var_ref compiler_temp@10443) (expression int f2i (swiz y (var_ref gl_FragCoord) )) ) (assign (xyzw) (var_ref compiler_temp@10442) (txf_ms vec4 (var_ref tex1) (var_ref compiler_temp@10443) 0 (constant int (2)) )) (assign (x) (var_ref compiler_temp@10439) (expression float + (swiz x (var_ref compiler_temp@10442) )(constant float (-0.500000)) ) ) (assign (x) (var_ref compiler_temp@10440) (expression float + (swiz y (var_ref compiler_temp@10442) )(constant float (-0.500000)) ) ) (assign (x) (var_ref compiler_temp@10441) (expression float + (swiz z (var_ref compiler_temp@10442) )(constant float (-0.500000)) ) ) (declare (temporary ) float compiler_temp@10444) (assign (x) (var_ref compiler_temp@10444) (expression float abs (expression float + (swiz w (var_ref compiler_temp@10432) )(expression float neg (swiz w (var_ref compiler_temp@10442) )) ) ) ) (declare (temporary ) bool compiler_temp@10445) (if (expression bool <= (var_ref compiler_temp@10444) (constant float (0.007843)) ) ( (declare (temporary ) float compiler_temp@10446) (assign (x) (var_ref compiler_temp@10446) (expression float + (expression float * (var_ref compiler_temp@10441) (var_ref compiler_temp@10431) ) (expression float + (expression float * (var_ref compiler_temp@10440) (var_ref compiler_temp@10430) ) (expression float * (var_ref compiler_temp@10439) (var_ref compiler_temp@10429) ) ) ) ) (assign (x) (var_ref compiler_temp@10445) (expression bool >= (expression float * (var_ref compiler_temp@10446) (var_ref compiler_temp@10446) ) (expression float * (var_ref maxdiff) (expression float + (expression float * (var_ref compiler_temp@10441) (var_ref compiler_temp@10441) ) (expression float + (expression float * (var_ref compiler_temp@10440) (var_ref compiler_temp@10440) ) (expression float * (var_ref compiler_temp@10439) (var_ref compiler_temp@10439) ) ) ) ) ) ) ) ( (assign (x) (var_ref compiler_temp@10445) (constant bool (0)) ) )) (if (var_ref compiler_temp@10445) ( (declare (temporary ) float compiler_temp@10447) (declare (temporary ) float compiler_temp@10448) (declare (temporary ) float compiler_temp@10449) (declare (temporary ) vec4 compiler_temp@10450) (declare (temporary ) ivec2 compiler_temp@10451) (assign (x) (var_ref compiler_temp@10451) (expression int f2i (swiz x (var_ref gl_FragCoord) )) ) (assign (y) (var_ref compiler_temp@10451) (expression int f2i (swiz y (var_ref gl_FragCoord) )) ) (assign (xyzw) (var_ref compiler_temp@10450) (txf_ms vec4 (var_ref tex1) (var_ref compiler_temp@10451) 0 (constant int (3)) )) (assign (x) (var_ref compiler_temp@10447) (expression float + (swiz x (var_ref compiler_temp@10450) )(constant float (-0.500000)) ) ) (assign (x) (var_ref compiler_temp@10448) (expression float + (swiz y (var_ref compiler_temp@10450) )(constant float (-0.500000)) ) ) (assign (x) (var_ref compiler_temp@10449) (expression float + (swiz z (var_ref compiler_temp@10450) )(constant float (-0.500000)) ) ) (declare (temporary ) float compiler_temp@10452) (assign (x) (var_ref compiler_temp@10452) (expression float abs (expression float + (swiz w (var_ref compiler_temp@10432) )(expression float neg (swiz w (var_ref compiler_temp@10450) )) ) ) ) (declare (temporary ) bool compiler_temp@10453) (if (expression bool <= (var_ref compiler_temp@10452) (constant float (0.007843)) ) ( (declare (temporary ) float compiler_temp@10454) (assign (x) (var_ref compiler_temp@10454) (expression float + (expression float * (var_ref compiler_temp@10449) (var_ref compiler_temp@10431) ) (expression float + (expression float * (var_ref compiler_temp@10448) (var_ref compiler_temp@10430) ) (expression float * (var_ref compiler_temp@10447) (var_ref compiler_temp@10429) ) ) ) ) (assign (x) (var_ref compiler_temp@10453) (expression bool >= (expression float * (var_ref compiler_temp@10454) (var_ref compiler_temp@10454) ) (expression float * (var_ref maxdiff) (expression float + (expression float * (var_ref compiler_temp@10449) (var_ref compiler_temp@10449) ) (expression float + (expression float * (var_ref compiler_temp@10448) (var_ref compiler_temp@10448) ) (expression float * (var_ref compiler_temp@10447) (var_ref compiler_temp@10447) ) ) ) ) ) ) ) ( (assign (x) (var_ref compiler_temp@10453) (constant bool (0)) ) )) (discard (var_ref compiler_temp@10453) ) ) ()) ) ()) )) ) ) FS8 estimated execution time: 4 cycles FS16 estimated execution time: 8 cycles Native code for unnamed fragment shader GLSL394 SIMD8 shader: 101 instructions. 0 loops. 554 cycles. 0:0 spills:fills. Promoted 2 constants. Compacted 1616 to 1200 bytes (26%) START B0 add(16) g2<1>UW g1.4<1,4,0>UW 0x11001010V { align1 WE_all 1H }; mov(1) f0.1<1>UW g1.14<0,1,0>UW { align1 WE_all }; mov(1) g29.1<1>F 0.5F { align1 WE_all }; mov(8) g3<1>F g2<8,4,1>UW { align1 1Q }; mov(8) g4<1>F g2.4<8,4,1>UW { align1 1Q }; add(8) g27<1>F g3<8,8,1>F g29.1<0,1,0>F { align1 1Q compacted }; mov(1) g29<1>F [0F, 0F, 0F, 0F]VF { align1 WE_all compacted }; add(8) g28<1>F -g4<8,8,1>F 767.5F { align1 1Q }; mov(8) g4<1>D g27<8,8,1>F { align1 1Q compacted }; mov(8) g2<1>F g29<0,1,0>F { align1 1Q compacted }; mov(8) g3<1>F g29<0,1,0>F { align1 1Q compacted }; mov(8) g12<1>F g29<0,1,0>F { align1 1Q compacted }; mov(8) g13<1>F g29<0,1,0>F { align1 1Q compacted }; mov(8) g5<1>D g28<8,8,1>F { align1 1Q compacted }; mov(8) g14<1>F g4<8,8,1>F { align1 1Q compacted }; mov(8) g15<1>F g5<8,8,1>F { align1 1Q compacted }; send(8) g8<1>UW g2<8,8,1>F sampler ld2dms SIMD8 Surface = 1 Sampler = 0 mlen 4 rlen 4 { align1 1Q }; send(8) g15<1>UW g12<8,8,1>F sampler ld2dms SIMD8 Surface = 1 Sampler = 0 mlen 4 rlen 4 { align1 1Q }; add(8) g12<1>F g8<8,8,1>F -g29.1<0,1,0>F { align1 1Q compacted }; add(8) g13<1>F g9<8,8,1>F -g29.1<0,1,0>F { align1 1Q compacted }; add(8) g14<1>F g10<8,8,1>F -g29.1<0,1,0>F { align1 1Q compacted }; add(8) g6<1>F g15<8,8,1>F -g29.1<0,1,0>F { align1 1Q compacted }; add(8) g7<1>F g16<8,8,1>F -g29.1<0,1,0>F { align1 1Q compacted }; add(8) g19<1>F g17<8,8,1>F -g29.1<0,1,0>F { align1 1Q compacted }; add(8) g20<1>F g11<8,8,1>F -g18<8,8,1>F { align1 1Q compacted }; mul(8) g15<1>F g12<8,8,1>F g12<8,8,1>F { align1 1Q compacted }; mad(8) g16<1>F g15<4,4,1>F g13<4,4,1>F g13<4,4,1>F { align16 1Q }; mad(8) g17<1>F g16<4,4,1>F g14<4,4,1>F g14<4,4,1>F { align16 1Q }; mul(8) g18<1>F g17<8,8,1>F 0.9604F { align1 1Q }; cmp.le.f0(8) null<1>F (abs)g20<8,8,1>F 0.00784314F { align1 1Q switch }; (+f0) if(8) JIP: 17 UIP: 18 { align1 1Q }; END B0 ->B1 ->B2 START B1 <-B0 mul(8) g21<1>F g6<8,8,1>F g12<8,8,1>F { align1 1Q compacted }; mul(8) g25<1>F g6<8,8,1>F g6<8,8,1>F { align1 1Q compacted }; mad(8) g22<1>F g21<4,4,1>F g13<4,4,1>F g7<4,4,1>F { align16 1Q }; mad(8) g26<1>F g25<4,4,1>F g7<4,4,1>F g7<4,4,1>F { align16 1Q }; mad(8) g23<1>F g22<4,4,1>F g14<4,4,1>F g19<4,4,1>F { align16 1Q }; mad(8) g27<1>F g26<4,4,1>F g19<4,4,1>F g19<4,4,1>F { align16 1Q }; mul(8) g24<1>F g23<8,8,1>F g23<8,8,1>F { align1 1Q compacted }; mul(8) g28<1>F g18<8,8,1>F g27<8,8,1>F { align1 1Q compacted }; cmp.ge.f0(8) g6<1>F g24<8,8,1>F g28<8,8,1>F { align1 1Q compacted }; else(8) JIP: 3 { align1 1Q }; END B1 ->B3 START B2 <-B0 mov(8) g6<1>UD 0x00000000UD { align1 1Q compacted }; END B2 ->B3 START B3 <-B2 <-B1 endif(8) JIP: 33 { align1 1Q }; mov.nz.f0(8) null<1>D g6<8,8,1>D { align1 1Q }; (+f0) if(8) JIP: 76 UIP: 76 { align1 1Q }; END B3 ->B4 ->B13 START B4 <-B3 mov(8) g19<1>F g29<0,1,0>F { align1 1Q compacted }; mov(8) g20<1>F g29<0,1,0>F { align1 1Q compacted }; mov(8) g21<1>F g4<8,8,1>F { align1 1Q compacted }; mov(8) g22<1>F g5<8,8,1>F { align1 1Q compacted }; send(8) g19<1>UW g19<8,8,1>F sampler ld2dms SIMD8 Surface = 1 Sampler = 0 mlen 4 rlen 4 { align1 1Q }; add(8) g6<1>F g19<8,8,1>F -g29.1<0,1,0>F { align1 1Q compacted }; add(8) g7<1>F g20<8,8,1>F -g29.1<0,1,0>F { align1 1Q compacted }; add(8) g15<1>F g21<8,8,1>F -g29.1<0,1,0>F { align1 1Q compacted }; add(8) g16<1>F g11<8,8,1>F -g22<8,8,1>F { align1 1Q compacted }; cmp.le.f0(8) null<1>F (abs)g16<8,8,1>F 0.00784314F { align1 1Q switch }; (+f0) if(8) JIP: 17 UIP: 18 { align1 1Q }; END B4 ->B5 ->B6 START B5 <-B4 mul(8) g17<1>F g6<8,8,1>F g12<8,8,1>F { align1 1Q compacted }; mul(8) g22<1>F g6<8,8,1>F g6<8,8,1>F { align1 1Q compacted }; mad(8) g19<1>F g17<4,4,1>F g13<4,4,1>F g7<4,4,1>F { align16 1Q }; mad(8) g23<1>F g22<4,4,1>F g7<4,4,1>F g7<4,4,1>F { align16 1Q }; mad(8) g20<1>F g19<4,4,1>F g14<4,4,1>F g15<4,4,1>F { align16 1Q }; mad(8) g24<1>F g23<4,4,1>F g15<4,4,1>F g15<4,4,1>F { align16 1Q }; mul(8) g21<1>F g20<8,8,1>F g20<8,8,1>F { align1 1Q compacted }; mul(8) g25<1>F g18<8,8,1>F g24<8,8,1>F { align1 1Q compacted }; cmp.ge.f0(8) g7<1>F g21<8,8,1>F g25<8,8,1>F { align1 1Q compacted }; else(8) JIP: 3 { align1 1Q }; END B5 ->B7 START B6 <-B4 mov(8) g7<1>UD 0x00000000UD { align1 1Q compacted }; END B6 ->B7 START B7 <-B6 <-B5 endif(8) JIP: 33 { align1 1Q }; mov.nz.f0(8) null<1>D g7<8,8,1>D { align1 1Q }; (+f0) if(8) JIP: 38 UIP: 38 { align1 1Q }; END B7 ->B8 ->B12 START B8 <-B7 mov(8) g20<1>F g29<0,1,0>F { align1 1Q compacted }; mov(8) g21<1>F g29<0,1,0>F { align1 1Q compacted }; mov(8) g22<1>F g4<8,8,1>F { align1 1Q compacted }; mov(8) g23<1>F g5<8,8,1>F { align1 1Q compacted }; send(8) g2<1>UW g20<8,8,1>F sampler ld2dms SIMD8 Surface = 1 Sampler = 0 mlen 4 rlen 4 { align1 1Q }; add(8) g6<1>F g2<8,8,1>F -g29.1<0,1,0>F { align1 1Q compacted }; add(8) g7<1>F g3<8,8,1>F -g29.1<0,1,0>F { align1 1Q compacted }; add(8) g15<1>F g4<8,8,1>F -g29.1<0,1,0>F { align1 1Q compacted }; add(8) g16<1>F g11<8,8,1>F -g5<8,8,1>F { align1 1Q compacted }; cmp.le.f0(8) null<1>F (abs)g16<8,8,1>F 0.00784314F { align1 1Q switch }; (+f0) if(8) JIP: 17 UIP: 18 { align1 1Q }; END B8 ->B9 ->B10 START B9 <-B8 mul(8) g17<1>F g6<8,8,1>F g12<8,8,1>F { align1 1Q compacted }; mul(8) g22<1>F g6<8,8,1>F g6<8,8,1>F { align1 1Q compacted }; mad(8) g19<1>F g17<4,4,1>F g13<4,4,1>F g7<4,4,1>F { align16 1Q }; mad(8) g23<1>F g22<4,4,1>F g7<4,4,1>F g7<4,4,1>F { align16 1Q }; mad(8) g20<1>F g19<4,4,1>F g14<4,4,1>F g15<4,4,1>F { align16 1Q }; mad(8) g24<1>F g23<4,4,1>F g15<4,4,1>F g15<4,4,1>F { align16 1Q }; mul(8) g21<1>F g20<8,8,1>F g20<8,8,1>F { align1 1Q compacted }; mul(8) g25<1>F g18<8,8,1>F g24<8,8,1>F { align1 1Q compacted }; cmp.ge.f0(8) g8<1>F g21<8,8,1>F g25<8,8,1>F { align1 1Q compacted }; else(8) JIP: 3 { align1 1Q }; END B9 ->B11 START B10 <-B8 mov(8) g8<1>UD 0x00000000UD { align1 1Q compacted }; END B10 ->B11 START B11 <-B10 <-B9 endif(8) JIP: 4 { align1 1Q }; (+f0.1) cmp.z.f0.1(8) null<1>D g8<8,8,1>D 0D { align1 1Q switch }; (-f0.1.any8h) halt(8) JIP: 2 UIP: 8 { align1 WE_all 1Q }; END B11 ->B12 START B12 <-B7 <-B11 endif(8) JIP: 2 { align1 1Q }; END B12 ->B13 START B13 <-B3 <-B12 endif(8) JIP: 2 { align1 1Q }; halt(8) JIP: 2 UIP: 2 { align1 1Q }; mov(1) g1.14<1>UW f0.1<0,1,0>UW { align1 WE_all }; mov(16) g122<1>UD g0<8,8,1>UD { align1 WE_all 1H compacted }; sendc(8) null<1>UW g122<8,8,1>F render RT write SIMD8 LastRT Surface = 0 mlen 6 rlen 0 { align1 1Q EOT }; nop ; END B13 Native code for unnamed fragment shader GLSL394 SIMD16 shader: 119 instructions. 0 loops. 680 cycles. 0:0 spills:fills. Promoted 2 constants. Compacted 1904 to 1456 bytes (24%) START B0 add(16) g2<1>UW g1.4<2,4,0>UW 0x10101010V { align1 1H }; add(16) g3<1>UW g1.5<2,4,0>UW 0x11001100V { align1 1H }; mov(1) f0.1<1>UW g1.14<0,1,0>UW { align1 WE_all }; mov(1) g27.1<1>F 0.5F { align1 WE_all }; mov(16) g29<1>F g2<8,8,1>UW { align1 1H }; mov(16) g31<1>F g3<8,8,1>UW { align1 1H }; add(16) g2<1>F g29<8,8,1>F g27.1<0,1,0>F { align1 1H compacted }; mov(1) g27<1>F [0F, 0F, 0F, 0F]VF { align1 WE_all compacted }; add(16) g4<1>F -g31<8,8,1>F 767.5F { align1 1H }; mov(16) g14<1>D g2<8,8,1>F { align1 1H compacted }; mov(16) g10<1>F g27<0,1,0>F { align1 1H compacted }; mov(16) g12<1>F g27<0,1,0>F { align1 1H compacted }; mov(16) g18<1>F g27<0,1,0>F { align1 1H compacted }; mov(16) g20<1>F g27<0,1,0>F { align1 1H compacted }; mov(16) g16<1>D g4<8,8,1>F { align1 1H compacted }; mov(16) g22<1>F g14<8,8,1>F { align1 1H compacted }; mov(16) g24<1>F g16<8,8,1>F { align1 1H compacted }; send(16) g35<1>UW g10<8,8,1>F sampler ld2dms SIMD16 Surface = 1 Sampler = 0 mlen 8 rlen 8 { align1 1H }; send(16) g2<1>UW g18<8,8,1>F sampler ld2dms SIMD16 Surface = 1 Sampler = 0 mlen 8 rlen 8 { align1 1H }; add(16) g29<1>F g35<8,8,1>F -g27.1<0,1,0>F { align1 1H compacted }; add(16) g43<1>F g37<8,8,1>F -g27.1<0,1,0>F { align1 1H compacted }; add(16) g45<1>F g39<8,8,1>F -g27.1<0,1,0>F { align1 1H compacted }; add(16) g18<1>F g2<8,8,1>F -g27.1<0,1,0>F { align1 1H compacted }; add(16) g20<1>F g4<8,8,1>F -g27.1<0,1,0>F { align1 1H compacted }; add(16) g22<1>F g6<8,8,1>F -g27.1<0,1,0>F { align1 1H compacted }; add(16) g24<1>F g41<8,8,1>F -g8<8,8,1>F { align1 1H compacted }; mul(16) g47<1>F g29<8,8,1>F g29<8,8,1>F { align1 1H compacted }; mad(8) g49<1>F g47<4,4,1>F g43<4,4,1>F g43<4,4,1>F { align16 1Q }; mad(8) g50<1>F g48<4,4,1>F g44<4,4,1>F g44<4,4,1>F { align16 2Q }; mad(8) g51<1>F g49<4,4,1>F g45<4,4,1>F g45<4,4,1>F { align16 1Q }; mad(8) g52<1>F g50<4,4,1>F g46<4,4,1>F g46<4,4,1>F { align16 2Q }; mul(16) g53<1>F g51<8,8,1>F 0.9604F { align1 1H }; cmp.le.f0(16) null<1>D (abs)g24<8,8,1>F 0.00784314F { align1 1H switch }; (+f0) if(16) JIP: 26 UIP: 27 { align1 1H }; END B0 ->B1 ->B2 START B1 <-B0 mul(16) g25<1>F g18<8,8,1>F g29<8,8,1>F { align1 1H compacted }; mul(16) g48<1>F g18<8,8,1>F g18<8,8,1>F { align1 1H compacted }; mad(8) g31<1>F g25<4,4,1>F g43<4,4,1>F g20<4,4,1>F { align16 1Q }; mad(8) g32<1>F g26<4,4,1>F g44<4,4,1>F g21<4,4,1>F { align16 2Q }; mad(8) g50<1>F g48<4,4,1>F g20<4,4,1>F g20<4,4,1>F { align16 1Q }; mad(8) g51<1>F g49<4,4,1>F g21<4,4,1>F g21<4,4,1>F { align16 2Q }; mad(8) g33<1>F g31<4,4,1>F g45<4,4,1>F g22<4,4,1>F { align16 1Q }; mad(8) g34<1>F g32<4,4,1>F g46<4,4,1>F g23<4,4,1>F { align16 2Q }; mad(8) g55<1>F g50<4,4,1>F g22<4,4,1>F g22<4,4,1>F { align16 1Q }; mad(8) g56<1>F g51<4,4,1>F g23<4,4,1>F g23<4,4,1>F { align16 2Q }; mul(16) g47<1>F g33<8,8,1>F g33<8,8,1>F { align1 1H compacted }; mul(16) g57<1>F g53<8,8,1>F g55<8,8,1>F { align1 1H compacted }; cmp.ge.f0(8) g32<1>F g47<8,8,1>F g57<8,8,1>F { align1 1Q compacted }; cmp.ge.f0(8) g33<1>F g48<8,8,1>F g58<8,8,1>F { align1 2Q compacted }; else(16) JIP: 3 { align1 1H }; END B1 ->B3 START B2 <-B0 mov(16) g32<1>UD 0x00000000UD { align1 1H compacted }; END B2 ->B3 START B3 <-B2 <-B1 endif(16) JIP: 42 { align1 1H }; mov.nz.f0(16) null<1>D g32<8,8,1>D { align1 1H }; (+f0) if(16) JIP: 94 UIP: 94 { align1 1H }; END B3 ->B4 ->B13 START B4 <-B3 mov(16) g18<1>F g27<0,1,0>F { align1 1H compacted }; mov(16) g20<1>F g27<0,1,0>F { align1 1H compacted }; mov(16) g22<1>F g14<8,8,1>F { align1 1H compacted }; mov(16) g24<1>F g16<8,8,1>F { align1 1H compacted }; send(16) g2<1>UW g18<8,8,1>F sampler ld2dms SIMD16 Surface = 1 Sampler = 0 mlen 8 rlen 8 { align1 1H }; add(16) g58<1>F g2<8,8,1>F -g27.1<0,1,0>F { align1 1H compacted }; add(16) g60<1>F g4<8,8,1>F -g27.1<0,1,0>F { align1 1H compacted }; add(16) g62<1>F g6<8,8,1>F -g27.1<0,1,0>F { align1 1H compacted }; add(16) g64<1>F g41<8,8,1>F -g8<8,8,1>F { align1 1H compacted }; cmp.le.f0(16) null<1>D (abs)g64<8,8,1>F 0.00784314F { align1 1H switch }; (+f0) if(16) JIP: 26 UIP: 27 { align1 1H }; END B4 ->B5 ->B6 START B5 <-B4 mul(16) g65<1>F g58<8,8,1>F g29<8,8,1>F { align1 1H compacted }; mul(16) g72<1>F g58<8,8,1>F g58<8,8,1>F { align1 1H compacted }; mad(8) g67<1>F g65<4,4,1>F g43<4,4,1>F g60<4,4,1>F { align16 1Q }; mad(8) g68<1>F g66<4,4,1>F g44<4,4,1>F g61<4,4,1>F { align16 2Q }; mad(8) g74<1>F g72<4,4,1>F g60<4,4,1>F g60<4,4,1>F { align16 1Q }; mad(8) g75<1>F g73<4,4,1>F g61<4,4,1>F g61<4,4,1>F { align16 2Q }; mad(8) g69<1>F g67<4,4,1>F g45<4,4,1>F g62<4,4,1>F { align16 1Q }; mad(8) g70<1>F g68<4,4,1>F g46<4,4,1>F g63<4,4,1>F { align16 2Q }; mad(8) g76<1>F g74<4,4,1>F g62<4,4,1>F g62<4,4,1>F { align16 1Q }; mad(8) g77<1>F g75<4,4,1>F g63<4,4,1>F g63<4,4,1>F { align16 2Q }; mul(16) g71<1>F g69<8,8,1>F g69<8,8,1>F { align1 1H compacted }; mul(16) g78<1>F g53<8,8,1>F g76<8,8,1>F { align1 1H compacted }; cmp.ge.f0(8) g33<1>F g71<8,8,1>F g78<8,8,1>F { align1 1Q compacted }; cmp.ge.f0(8) g34<1>F g72<8,8,1>F g79<8,8,1>F { align1 2Q compacted }; else(16) JIP: 3 { align1 1H }; END B5 ->B7 START B6 <-B4 mov(16) g33<1>UD 0x00000000UD { align1 1H compacted }; END B6 ->B7 START B7 <-B6 <-B5 endif(16) JIP: 42 { align1 1H }; mov.nz.f0(16) null<1>D g33<8,8,1>D { align1 1H }; (+f0) if(16) JIP: 47 UIP: 47 { align1 1H }; END B7 ->B8 ->B12 START B8 <-B7 mov(16) g19<1>F g27<0,1,0>F { align1 1H compacted }; mov(16) g21<1>F g27<0,1,0>F { align1 1H compacted }; mov(16) g23<1>F g14<8,8,1>F { align1 1H compacted }; mov(16) g25<1>F g16<8,8,1>F { align1 1H compacted }; send(16) g2<1>UW g19<8,8,1>F sampler ld2dms SIMD16 Surface = 1 Sampler = 0 mlen 8 rlen 8 { align1 1H }; add(16) g10<1>F g2<8,8,1>F -g27.1<0,1,0>F { align1 1H compacted }; add(16) g12<1>F g4<8,8,1>F -g27.1<0,1,0>F { align1 1H compacted }; add(16) g14<1>F g6<8,8,1>F -g27.1<0,1,0>F { align1 1H compacted }; add(16) g16<1>F g41<8,8,1>F -g8<8,8,1>F { align1 1H compacted }; cmp.le.f0(16) null<1>D (abs)g16<8,8,1>F 0.00784314F { align1 1H switch }; (+f0) if(16) JIP: 26 UIP: 27 { align1 1H }; END B8 ->B9 ->B10 START B9 <-B8 mul(16) g17<1>F g10<8,8,1>F g29<8,8,1>F { align1 1H compacted }; mul(16) g24<1>F g10<8,8,1>F g10<8,8,1>F { align1 1H compacted }; mad(8) g19<1>F g17<4,4,1>F g43<4,4,1>F g12<4,4,1>F { align16 1Q }; mad(8) g20<1>F g18<4,4,1>F g44<4,4,1>F g13<4,4,1>F { align16 2Q }; mad(8) g26<1>F g24<4,4,1>F g12<4,4,1>F g12<4,4,1>F { align16 1Q }; mad(8) g27<1>F g25<4,4,1>F g13<4,4,1>F g13<4,4,1>F { align16 2Q }; mad(8) g21<1>F g19<4,4,1>F g45<4,4,1>F g14<4,4,1>F { align16 1Q }; mad(8) g22<1>F g20<4,4,1>F g46<4,4,1>F g15<4,4,1>F { align16 2Q }; mad(8) g28<1>F g26<4,4,1>F g14<4,4,1>F g14<4,4,1>F { align16 1Q }; mad(8) g29<1>F g27<4,4,1>F g15<4,4,1>F g15<4,4,1>F { align16 2Q }; mul(16) g23<1>F g21<8,8,1>F g21<8,8,1>F { align1 1H compacted }; mul(16) g30<1>F g53<8,8,1>F g28<8,8,1>F { align1 1H compacted }; cmp.ge.f0(8) g34<1>F g23<8,8,1>F g30<8,8,1>F { align1 1Q compacted }; cmp.ge.f0(8) g35<1>F g24<8,8,1>F g31<8,8,1>F { align1 2Q compacted }; else(16) JIP: 3 { align1 1H }; END B9 ->B11 START B10 <-B8 mov(16) g34<1>UD 0x00000000UD { align1 1H compacted }; END B10 ->B11 START B11 <-B10 <-B9 endif(16) JIP: 4 { align1 1H }; (+f0.1) cmp.z.f0.1(16) null<1>D g34<8,8,1>D 0D { align1 1H switch }; (-f0.1.any16h) halt(16) JIP: 2 UIP: 8 { align1 WE_all 1H }; END B11 ->B12 START B12 <-B7 <-B11 endif(16) JIP: 2 { align1 1H }; END B12 ->B13 START B13 <-B3 <-B12 endif(16) JIP: 2 { align1 1H }; halt(16) JIP: 2 UIP: 2 { align1 1H }; mov(1) g1.14<1>UW f0.1<0,1,0>UW { align1 WE_all }; mov(16) g118<1>UD g0<8,8,1>UD { align1 WE_all 1H compacted }; sendc(16) null<1>UW g118<8,8,1>F render RT write SIMD16 LastRT Surface = 0 mlen 10 rlen 0 { align1 1H EOT }; END B13