GLSL IR for native vertex shader 3: ( (declare (shader_out ) vec4 gl_Position) (declare (shader_out ) vec4 color) (declare (shader_in ) vec4 piglit_vertex) (declare () (array vec4 6) temps) (function main (signature void (parameters ) ( (declare () int n) (assign (xyzw) (array_ref (var_ref temps) (constant int (0)) ) (constant vec4 (0.200000 0.000000 0.000000 0.000000)) ) (assign (xyzw) (array_ref (var_ref temps) (constant int (1)) ) (constant vec4 (0.000000 0.200000 0.000000 0.000000)) ) (assign (xyzw) (array_ref (var_ref temps) (constant int (2)) ) (constant vec4 (0.000000 0.000000 0.200000 0.000000)) ) (assign (xyzw) (array_ref (var_ref temps) (constant int (3)) ) (constant vec4 (0.200000 0.200000 0.000000 0.000000)) ) (assign (xyzw) (array_ref (var_ref temps) (constant int (4)) ) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) (assign (xyzw) (array_ref (var_ref temps) (constant int (5)) ) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) (assign (x) (var_ref n) (constant int (0)) ) (loop ( (if (expression bool >= (var_ref n) (constant int (4)) ) ( break ) ()) (assign (xyzw) (array_ref (var_ref temps) (constant int (4)) ) (expression vec4 + (array_ref (var_ref temps) (constant int (4)) ) (array_ref (var_ref temps) (swiz x (expression ivec4 bitcast_f2i (swiz xxxx (array_ref (var_ref temps) (constant int (5)) ) )) )) ) ) (assign (x) (array_ref (var_ref temps) (constant int (5)) ) (expression float bitcast_i2f (expression int + (var_ref n) (constant int (1)) ) ) ) (assign (x) (var_ref n) (expression int bitcast_f2i (swiz x (array_ref (var_ref temps) (constant int (5)) ) )) ) )) (assign (xyzw) (var_ref gl_Position) (var_ref piglit_vertex) ) (assign (xyzw) (var_ref color) (array_ref (var_ref temps) (constant int (4)) ) ) )) ) ) VS estimated execution time: 30 cycles Native code for unnamed vertex shader 3: VS vec4 shader: 82 instructions. 1 loops. Compacted 1312 to 1056 bytes (20%) START B0 mov(8) g6<1>.xF 0.2F { align16 NoDDClr 1Q }; mov(8) g6<1>.yzwF [0F, 0F, 0F, 0F]VF { align16 NoDDChk 1Q }; mov(8) g125<1>UD g0<4,4,1>UD { align16 WE_all 1Q }; mov(1) g126<1>UD 0x00000000UD { align1 WE_all compacted }; mov(1) g126.4<1>UD 0x00000001UD { align1 WE_all compacted }; mov(8) g127<1>D g6<4,4,1>D { align16 1Q }; send(8) g0<1>F g125<4,4,1>F data ( DC OWORD dual block write, 255, 0) mlen 3 rlen 0 { align16 1Q }; mov(8) g7<1>.xzwF [0F, 0F, 0F, 0F]VF { align16 NoDDClr 1Q }; mov(8) g7<1>.yF 0.2F { align16 NoDDChk 1Q }; mov(8) g125<1>UD g0<4,4,1>UD { align16 WE_all 1Q }; mov(1) g126<1>UD 0x00000002UD { align1 WE_all compacted }; mov(1) g126.4<1>UD 0x00000003UD { align1 WE_all compacted }; mov(8) g127<1>D g7<4,4,1>D { align16 1Q }; send(8) g0<1>F g125<4,4,1>F data ( DC OWORD dual block write, 255, 0) mlen 3 rlen 0 { align16 1Q }; mov(8) g8<1>.xywF [0F, 0F, 0F, 0F]VF { align16 NoDDClr 1Q }; mov(8) g8<1>.zF 0.2F { align16 NoDDChk 1Q }; mov(8) g125<1>UD g0<4,4,1>UD { align16 WE_all 1Q }; mov(1) g126<1>UD 0x00000004UD { align1 WE_all compacted }; mov(1) g126.4<1>UD 0x00000005UD { align1 WE_all compacted }; mov(8) g127<1>D g8<4,4,1>D { align16 1Q }; send(8) g0<1>F g125<4,4,1>F data ( DC OWORD dual block write, 255, 0) mlen 3 rlen 0 { align16 1Q }; mov(8) g9<1>.xyF 0.2F { align16 NoDDClr 1Q }; mov(8) g9<1>.zwF [0F, 0F, 0F, 0F]VF { align16 NoDDChk 1Q }; mov(8) g125<1>UD g0<4,4,1>UD { align16 WE_all 1Q }; mov(1) g126<1>UD 0x00000006UD { align1 WE_all compacted }; mov(1) g126.4<1>UD 0x00000007UD { align1 WE_all compacted }; mov(8) g127<1>D g9<4,4,1>D { align16 1Q }; send(8) g0<1>F g125<4,4,1>F data ( DC OWORD dual block write, 255, 0) mlen 3 rlen 0 { align16 1Q }; mov(8) g24<1>F [0F, 0F, 0F, 0F]VF { align16 1Q compacted }; mov(8) g125<1>UD g0<4,4,1>UD { align16 WE_all 1Q }; mov(1) g126<1>UD 0x00000008UD { align1 WE_all compacted }; mov(1) g126.4<1>UD 0x00000009UD { align1 WE_all compacted }; mov(8) g127<1>D g24<4,4,1>D { align16 1Q }; send(8) g0<1>F g125<4,4,1>F data ( DC OWORD dual block write, 255, 0) mlen 3 rlen 0 { align16 1Q }; mov(8) g25<1>F [0F, 0F, 0F, 0F]VF { align16 1Q compacted }; mov(8) g125<1>UD g0<4,4,1>UD { align16 WE_all 1Q }; mov(1) g126<1>UD 0x0000000aUD { align1 WE_all compacted }; mov(1) g126.4<1>UD 0x0000000bUD { align1 WE_all compacted }; mov(8) g127<1>D g25<4,4,1>D { align16 1Q }; send(8) g0<1>F g125<4,4,1>F data ( DC OWORD dual block write, 255, 0) mlen 3 rlen 0 { align16 1Q }; mov(8) g5<1>.xUD 0x00000000UD { align16 1Q compacted }; END B0 ->B1 START B1 <-B0 <-B3 cmp.ge.f0(8) null g5<4,4,1>.xD 4D { align16 1Q switch }; (+f0) if(8) JIP: 4 UIP: 4 { align16 1Q }; END B1 ->B2 ->B3 START B2 <-B1 break(8) JIP: 2 UIP: 41 { align16 1Q }; END B2 ->B4 START B3 <-B1 endif(8) JIP: 39 { align16 1Q }; mov(8) g126<1>UD g0<4,4,1>UD { align16 WE_all 1Q }; mov(1) g127<1>UD 0x00000008UD { align1 WE_all compacted }; mov(1) g127.4<1>UD 0x00000009UD { align1 WE_all compacted }; send(8) g27<1>F g126<4,4,1>F data ( DC OWORD dual block read, 255, 0) mlen 2 rlen 1 { align16 1Q }; mul(8) g29<1>.xD g37<4,4,1>.xD 2D { align16 1Q compacted }; mov(8) g126<1>UD g0<4,4,1>UD { align16 WE_all 1Q }; mov(1) g127<1>D g29<0,1,0>D { align1 WE_all compacted }; add(1) g127.4<1>D g29.4<0,1,0>D 1D { align1 WE_all compacted }; send(8) g28<1>F g126<4,4,1>F data ( DC OWORD dual block read, 255, 0) mlen 2 rlen 1 { align16 1Q }; add(8) g26<1>F g27<4,4,1>F g28<4,4,1>F { align16 1Q compacted }; mov(8) g125<1>UD g0<4,4,1>UD { align16 WE_all 1Q }; mov(1) g126<1>UD 0x00000008UD { align1 WE_all compacted }; mov(1) g126.4<1>UD 0x00000009UD { align1 WE_all compacted }; mov(8) g127<1>D g26<4,4,1>D { align16 1Q }; send(8) g0<1>F g125<4,4,1>F data ( DC OWORD dual block write, 255, 0) mlen 3 rlen 0 { align16 1Q }; add(8) g30<1>.xD g5<4,4,1>.xD 1D { align16 1Q compacted }; mov(8) g125<1>UD g0<4,4,1>UD { align16 WE_all 1Q }; mov(1) g126<1>UD 0x0000000aUD { align1 WE_all compacted }; mov(1) g126.4<1>UD 0x0000000bUD { align1 WE_all compacted }; mov(8) g127<1>D g30<4,4,1>.xD { align16 1Q compacted }; send(8) g0<1>.xF g125<4,4,1>F data ( DC OWORD dual block write, 255, 0) mlen 3 rlen 0 { align16 1Q }; mov(8) g126<1>UD g0<4,4,1>UD { align16 WE_all 1Q }; mov(1) g127<1>UD 0x0000000aUD { align1 WE_all compacted }; mov(1) g127.4<1>UD 0x0000000bUD { align1 WE_all compacted }; send(8) g31<1>F g126<4,4,1>F data ( DC OWORD dual block read, 255, 0) mlen 2 rlen 1 { align16 1Q }; mov(8) g5<1>.xD g31<4,4,1>.xD { align16 1Q compacted }; while(8) JIP: -45 { align16 1Q }; END B3 ->B1 START B4 <-B2 mov(8) g126<1>UD g0<4,4,1>UD { align16 WE_all 1Q }; mov(1) g127<1>UD 0x00000008UD { align1 WE_all compacted }; mov(1) g127.4<1>UD 0x00000009UD { align1 WE_all compacted }; send(8) g32<1>F g126<4,4,1>F data ( DC OWORD dual block read, 255, 0) mlen 2 rlen 1 { align16 1Q }; mov(8) g114<1>UD 0x00000000UD { align16 1Q compacted }; mov(8) g115<1>F g1<4,4,1>F { align16 1Q }; mov(8) g116<1>F g32<4,4,1>F { align16 1Q }; mov(8) g113<1>UD g0<4,4,1>UD { align16 WE_all 1Q }; or(1) g113.5<1>UD g0.5<0,1,0>UD 0x0000ff00UD { align1 WE_all }; nop ; send(8) null g113<4,4,1>F urb 0 write HWord interleave complete mlen 5 rlen 0 { align16 1Q EOT }; END B4