--- /tmp/before.txt 2019-02-27 07:34:09.920317794 -0800 +++ /tmp/after.txt 2019-02-27 07:35:02.383373119 -0800 @@ -1774,8 +1774,8 @@ [6] VARYING_SLOT_VAR4 Native code for unnamed vertex shader GLSL4: -VS vec4 shader: 304 instructions. 0 loops. 1512 cycles. 0:0 spills:fills. Compacted 4864 to 3840 bytes (21%) - START B0 (436 cycles) +VS vec4 shader: 301 instructions. 0 loops. 1466 cycles. 0:0 spills:fills. Compacted 4816 to 3792 bytes (21%) + START B0 (406 cycles) mov(8) g28<1>.xUD 0x00000000UD { align16 1Q compacted }; mov(8) g29<1>.xUD 0x00000008UD { align16 1Q compacted }; mov(8) g8<1>.zwF 0x30000000VF /* [0F, 0F, 0F, 1F]VF */ { align16 1Q }; @@ -1798,6 +1798,7 @@ mov(8) g63<1>.xUD 0x00000000UD { align16 1Q compacted }; mov(8) g67<1>.xUD 0x00000000UD { align16 1Q compacted }; add(8) g74<1>.xD g5<4>.zD g5<4>.xD { align16 1Q }; +mov(8) g77<1>.yD g30<4>.yD { align16 1Q }; mov(8) g82<1>.xUD 0x00000010UD { align16 1Q compacted }; mov(8) g86<1>.xUD 0x00000020UD { align16 1Q compacted }; mov(8) g87<1>UD g3<4>UD { align16 1Q }; @@ -1839,11 +1840,10 @@ add(8) g94<1>.xD g93<4>.xD g90<4>.zD { align16 1Q }; mul(8) acc0<1>D g49<4>.xD g47<4>.wD { align16 1Q }; mov(8) g68<1>.xF g49<4>.xUD { align16 1Q compacted }; -cmp.z.f0.0(8) g77<1>.yD g76<4>.xD 1D { align16 1Q }; +cmp.z.f0.0(8) null<1>.xD g76<4>.xD 1D { align16 1Q switch }; shl(8) g95<1>.xD g94<4>.xD 0x00000004UD { align16 1Q }; mach(8) null<1>D g49<4>.xD g47<4>.wD { align16 1Q AccWrEnable }; mad(8) g69<1>.xF g62<4,4,1>.yF g66<4,4,1>.wF -g68<4,4,1>.xF { align16 1Q }; -cmp.nz.f0.0(8) null<1>.xD g77<4>.yD 0D { align16 1Q switch }; add(8) g26<1>.xUD g95<4>.xUD 0x00000040UD { align16 1Q compacted }; mov(8) g50<1>.xD acc0<4>D { align16 1Q }; add(8) g71<1>.xF g69<4>.xF -g66<4>.wF { align16 1Q }; @@ -1856,7 +1856,6 @@ add(8) g70<1>.xF g59<4>.xF g56<4>.zF { align16 1Q }; (+f0.0.x) sel(8) g8<1>.xUD g70<4>.xUD g59<4>.xUD { align16 1Q }; cmp.z.f0.0(8) g78<1>.yD g76<4>.yD 1D { align16 1Q }; -cmp.nz.f0.0(8) null<1>.yD g78<4>.yD 0D { align16 1Q switch }; (+f0.0.y) sel(8) g8<1>.yUD g71<4>.xUD g69<4>.xUD { align16 1Q }; cmp.z.f0.0(8) g110<1>.xD g51<4>.xD g108<4>.wD { align16 1Q }; cmp.z.f0.0(8) g111<1>.xD g51<4>.xD g104<4>.yD { align16 1Q }; @@ -1870,8 +1869,7 @@ cmp.nz.f0.0(8) null<1>.xD g30<4>.zD 0D { align16 1Q switch }; (+f0.0.x) sel(8) g44<1>.xUD g2<4>.zUD g32<4>.xUD { align16 1Q }; and(8) g46<1>.xUD g44<4>.xUD 0x000000ffUD { align16 1Q compacted }; -cmp.z.f0.0(8) g45<1>.yD g97<4>.xD 1D { align16 1Q }; -cmp.nz.f0.0(8) null<1>.xD g45<4>.yD 0D { align16 1Q switch }; +cmp.z.f0.0(8) null<1>.xD g97<4>.xD 1D { align16 1Q switch }; (+f0.0.x) sel(8) g6<1>.xUD g85<4>.xUD g81<4>.wUD { align16 1Q }; cmp.z.f0.0(8) null<1>.xD g46<4>.xD 1D { align16 1Q switch }; (+f0.0.x) if(8) JIP: 12 UIP: 19 { align16 1Q }; @@ -1896,7 +1894,7 @@ START B4 <-B2 <-B3 (2 cycles) endif(8) JIP: 2 { align16 1Q }; END B4 ->B5 - START B5 <-B4 <-B1 (276 cycles) + START B5 <-B4 <-B1 (260 cycles) endif(8) JIP: 2 { align16 1Q }; shr(8) g57<1>.xUD g6<4>.xUD g37<4>.xUD { align16 1Q compacted }; mov(8) g61<1>.xD 998277249D { align16 1Q }; @@ -1941,8 +1939,7 @@ cmp.nz.f0.0(8) null<1>.xD g85<4>.zD 0D { align16 1Q switch }; (+f0.0.x) sel(8) g88<1>.xUD g27<4>.zUD g86<4>.xUD { align16 1Q }; and(8) g90<1>.xUD g88<4>.xUD g36<4>.xUD { align16 1Q compacted }; -cmp.z.f0.0(8) g89<1>.yD g96<4>.xD g31<4>.yD { align16 1Q }; -cmp.nz.f0.0(8) null<1>.xD g89<4>.yD 0D { align16 1Q switch }; +cmp.z.f0.0(8) null<1>.xD g96<4>.xD g31<4>.yD { align16 1Q switch }; (+f0.0.x) sel(8) g7<1>.xUD g84<4>.xUD g80<4>.xUD { align16 1Q }; cmp.z.f0.0(8) null<1>.xD g33<4>.xD g90<4>.xD { align16 1Q switch }; (+f0.0.x) if(8) JIP: 12 UIP: 19 { align16 1Q }; @@ -2637,8 +2634,8 @@ [2] VARYING_SLOT_VAR0 Native code for unnamed vertex shader GLSL7: -VS vec4 shader: 88 instructions. 0 loops. 600 cycles. 0:0 spills:fills. Compacted 1408 to 1152 bytes (18%) - START B0 (394 cycles) +VS vec4 shader: 85 instructions. 0 loops. 568 cycles. 0:0 spills:fills. Compacted 1360 to 1104 bytes (19%) + START B0 (362 cycles) mov(8) g8<1>.xUD 0x00000008UD { align16 1Q compacted }; mov(8) g5<1>.zwF 0x30000000VF /* [0F, 0F, 0F, 1F]VF */ { align16 1Q }; mov(8) g13<1>.yzD 0x403000VF /* [0F, 1F, 2F, 0F]VF */ { align16 1Q }; @@ -2679,11 +2676,10 @@ add(8) g67<1>.xD g66<4>.xD g62<4>.zD { align16 1Q }; mul(8) acc0<1>D g22<4>.xD g20<4>.wD { align16 1Q }; mov(8) g41<1>.xF g22<4>.xUD { align16 1Q compacted }; -cmp.z.f0.0(8) g50<1>.yD g49<4>.xD 1D { align16 1Q }; +cmp.z.f0.0(8) null<1>.xD g49<4>.xD 1D { align16 1Q switch }; shl(8) g68<1>.xD g67<4>.xD 0x00000004UD { align16 1Q }; mach(8) null<1>D g22<4>.xD g20<4>.wD { align16 1Q AccWrEnable }; mad(8) g42<1>.xF g35<4,4,1>.yF g39<4,4,1>.wF -g41<4,4,1>.xF { align16 1Q }; -cmp.nz.f0.0(8) null<1>.xD g50<4>.yD 0D { align16 1Q switch }; add(8) g99<1>.xUD g68<4>.xUD 0x00000040UD { align16 1Q compacted }; mov(8) g29<1>.xD acc0<4>D { align16 1Q }; add(8) g44<1>.xF g42<4>.xF -g39<4>.wF { align16 1Q }; @@ -2695,8 +2691,7 @@ mad(8) g32<1>.xF g24<4,4,1>.xF g27<4,4,1>.zF g31<4,4,1>.xF { align16 1Q }; add(8) g43<1>.xF g32<4>.xF g27<4>.zF { align16 1Q }; (+f0.0.x) sel(8) g5<1>.xUD g43<4>.xUD g32<4>.xUD { align16 1Q }; -cmp.z.f0.0(8) g51<1>.yD g49<4>.yD 1D { align16 1Q }; -cmp.nz.f0.0(8) null<1>.yD g51<4>.yD 0D { align16 1Q switch }; +cmp.z.f0.0(8) null<1>.yD g49<4>.yD 1D { align16 1Q switch }; (+f0.0.y) sel(8) g5<1>.yUD g44<4>.xUD g42<4>.xUD { align16 1Q }; cmp.z.f0.0(8) g72<1>.yzD g70<4>.xD g13<4>.yyzzD { align16 1Q }; cmp.nz.f0.0(8) null<1>.xD g72<4>.yD 0D { align16 1Q switch }; @@ -2704,8 +2699,7 @@ cmp.nz.f0.0(8) null<1>.xD g72<4>.zD 0D { align16 1Q switch }; (+f0.0.x) sel(8) g74<1>.xUD g1<4>.zUD g73<4>.xUD { align16 1Q }; and(8) g76<1>.xUD g74<4>.xUD 0x000000ffUD { align16 1Q compacted }; -cmp.z.f0.0(8) g75<1>.yD g70<4>.xD 1D { align16 1Q }; -cmp.nz.f0.0(8) null<1>.xD g75<4>.yD 0D { align16 1Q switch }; +cmp.z.f0.0(8) null<1>.xD g70<4>.xD 1D { align16 1Q switch }; (+f0.0.x) sel(8) g4<1>.xUD g58<4>.xUD g54<4>.wUD { align16 1Q }; cmp.z.f0.0(8) null<1>.xD g76<4>.xD 1D { align16 1Q switch }; (+f0.0.x) if(8) JIP: 12 UIP: 19 { align16 1Q }; @@ -3413,8 +3407,8 @@ [2] VARYING_SLOT_VAR0 Native code for unnamed vertex shader GLSL10: -VS vec4 shader: 135 instructions. 0 loops. 708 cycles. 0:0 spills:fills. Compacted 2160 to 1712 bytes (21%) - START B0 (416 cycles) +VS vec4 shader: 132 instructions. 0 loops. 676 cycles. 0:0 spills:fills. Compacted 2112 to 1664 bytes (21%) + START B0 (384 cycles) mov(8) g11<1>.xUD 0x00000008UD { align16 1Q compacted }; mov(8) g6<1>.zwF 0x30000000VF /* [0F, 0F, 0F, 1F]VF */ { align16 1Q }; mov(8) g15<1>.xUD 0x00000001UD { align16 1Q compacted }; @@ -3466,11 +3460,10 @@ add(8) g71<1>.xD g70<4>.xD g66<4>.zD { align16 1Q }; mul(8) acc0<1>D g26<4>.xD g24<4>.wD { align16 1Q }; mov(8) g45<1>.xF g26<4>.xUD { align16 1Q compacted }; -cmp.z.f0.0(8) g54<1>.yD g53<4>.xD 1D { align16 1Q }; +cmp.z.f0.0(8) null<1>.xD g53<4>.xD 1D { align16 1Q switch }; shl(8) g72<1>.xD g71<4>.xD 0x00000004UD { align16 1Q }; mach(8) null<1>D g26<4>.xD g24<4>.wD { align16 1Q AccWrEnable }; mad(8) g46<1>.xF g39<4,4,1>.yF g43<4,4,1>.wF -g45<4,4,1>.xF { align16 1Q }; -cmp.nz.f0.0(8) null<1>.xD g54<4>.yD 0D { align16 1Q switch }; add(8) g52<1>.xUD g72<4>.xUD 0x00000040UD { align16 1Q compacted }; mov(8) g27<1>.xD acc0<4>D { align16 1Q }; add(8) g48<1>.xF g46<4>.xF -g43<4>.wF { align16 1Q }; @@ -3482,8 +3475,7 @@ mad(8) g36<1>.xF g30<4,4,1>.xF g33<4,4,1>.zF g35<4,4,1>.xF { align16 1Q }; add(8) g47<1>.xF g36<4>.xF g33<4>.zF { align16 1Q }; (+f0.0.x) sel(8) g6<1>.xUD g47<4>.xUD g36<4>.xUD { align16 1Q }; -cmp.z.f0.0(8) g55<1>.yD g53<4>.yD 1D { align16 1Q }; -cmp.nz.f0.0(8) null<1>.yD g55<4>.yD 0D { align16 1Q switch }; +cmp.z.f0.0(8) null<1>.yD g53<4>.yD 1D { align16 1Q switch }; (+f0.0.y) sel(8) g6<1>.yUD g48<4>.xUD g46<4>.xUD { align16 1Q }; cmp.z.f0.0(8) g87<1>.xD g28<4>.xD g85<4>.wD { align16 1Q }; cmp.z.f0.0(8) g88<1>.xD g28<4>.xD g81<4>.yD { align16 1Q }; @@ -3497,8 +3489,7 @@ cmp.nz.f0.0(8) null<1>.xD g94<4>.zD 0D { align16 1Q switch }; (+f0.0.x) sel(8) g96<1>.xUD g1<4>.zUD g95<4>.xUD { align16 1Q }; and(8) g98<1>.xUD g96<4>.xUD 0x000000ffUD { align16 1Q compacted }; -cmp.z.f0.0(8) g97<1>.yD g74<4>.xD 1D { align16 1Q }; -cmp.nz.f0.0(8) null<1>.xD g97<4>.yD 0D { align16 1Q switch }; +cmp.z.f0.0(8) null<1>.xD g74<4>.xD 1D { align16 1Q switch }; (+f0.0.x) sel(8) g5<1>.xUD g62<4>.xUD g58<4>.wUD { align16 1Q }; cmp.z.f0.0(8) null<1>.xD g98<4>.xD 1D { align16 1Q switch }; (+f0.0.x) if(8) JIP: 12 UIP: 19 { align16 1Q }; @@ -4889,8 +4880,8 @@ [6] VARYING_SLOT_VAR4 Native code for unnamed vertex shader GLSL13: -VS vec4 shader: 276 instructions. 0 loops. 1420 cycles. 0:0 spills:fills. Compacted 4416 to 3520 bytes (20%) - START B0 (434 cycles) +VS vec4 shader: 273 instructions. 0 loops. 1374 cycles. 0:0 spills:fills. Compacted 4368 to 3472 bytes (21%) + START B0 (404 cycles) mov(8) g25<1>.xUD 0x00000000UD { align16 1Q compacted }; mov(8) g26<1>.xUD 0x00000008UD { align16 1Q compacted }; mov(8) g8<1>.zwF 0x30000000VF /* [0F, 0F, 0F, 1F]VF */ { align16 1Q }; @@ -4913,6 +4904,7 @@ mov(8) g60<1>.xUD 0x00000000UD { align16 1Q compacted }; mov(8) g64<1>.xUD 0x00000000UD { align16 1Q compacted }; add(8) g71<1>.xD g5<4>.zD g5<4>.xD { align16 1Q }; +mov(8) g74<1>.yD g100<4>.yD { align16 1Q }; mov(8) g79<1>.xUD 0x00000010UD { align16 1Q compacted }; mov(8) g83<1>.xUD 0x00000020UD { align16 1Q compacted }; mov(8) g84<1>UD g3<4>UD { align16 1Q }; @@ -4952,11 +4944,10 @@ add(8) g91<1>.xD g90<4>.xD g87<4>.zD { align16 1Q }; mul(8) acc0<1>D g46<4>.xD g44<4>.wD { align16 1Q }; mov(8) g65<1>.xF g46<4>.xUD { align16 1Q compacted }; -cmp.z.f0.0(8) g74<1>.yD g73<4>.xD 1D { align16 1Q }; +cmp.z.f0.0(8) null<1>.xD g73<4>.xD 1D { align16 1Q switch }; shl(8) g92<1>.xD g91<4>.xD 0x00000004UD { align16 1Q }; mach(8) null<1>D g46<4>.xD g44<4>.wD { align16 1Q AccWrEnable }; mad(8) g66<1>.xF g59<4,4,1>.yF g63<4,4,1>.wF -g65<4,4,1>.xF { align16 1Q }; -cmp.nz.f0.0(8) null<1>.xD g74<4>.yD 0D { align16 1Q switch }; add(8) g97<1>.xUD g92<4>.xUD 0x00000040UD { align16 1Q compacted }; mov(8) g47<1>.xD acc0<4>D { align16 1Q }; add(8) g68<1>.xF g66<4>.xF -g63<4>.wF { align16 1Q }; @@ -4971,7 +4962,6 @@ add(8) g67<1>.xF g56<4>.xF g53<4>.zF { align16 1Q }; (+f0.0.x) sel(8) g8<1>.xUD g67<4>.xUD g56<4>.xUD { align16 1Q }; cmp.z.f0.0(8) g75<1>.yD g73<4>.yD 1D { align16 1Q }; -cmp.nz.f0.0(8) null<1>.yD g75<4>.yD 0D { align16 1Q switch }; (+f0.0.y) sel(8) g8<1>.yUD g68<4>.xUD g66<4>.xUD { align16 1Q }; cmp.z.f0.0(8) g107<1>.xD g48<4>.xD g105<4>.wD { align16 1Q }; cmp.z.f0.0(8) g108<1>.xD g48<4>.xD g101<4>.yD { align16 1Q }; @@ -4985,8 +4975,7 @@ cmp.nz.f0.0(8) null<1>.xD g27<4>.zD 0D { align16 1Q switch }; (+f0.0.x) sel(8) g41<1>.xUD g2<4>.zUD g29<4>.xUD { align16 1Q }; and(8) g43<1>.xUD g41<4>.xUD 0x000000ffUD { align16 1Q compacted }; -cmp.z.f0.0(8) g42<1>.yD g94<4>.xD 1D { align16 1Q }; -cmp.nz.f0.0(8) null<1>.xD g42<4>.yD 0D { align16 1Q switch }; +cmp.z.f0.0(8) null<1>.xD g94<4>.xD 1D { align16 1Q switch }; (+f0.0.x) sel(8) g6<1>.xUD g82<4>.xUD g78<4>.wUD { align16 1Q }; cmp.z.f0.0(8) null<1>.xD g43<4>.xD 1D { align16 1Q switch }; (+f0.0.x) if(8) JIP: 12 UIP: 19 { align16 1Q }; @@ -5011,7 +5000,7 @@ START B4 <-B2 <-B3 (2 cycles) endif(8) JIP: 2 { align16 1Q }; END B4 ->B5 - START B5 <-B4 <-B1 (276 cycles) + START B5 <-B4 <-B1 (260 cycles) endif(8) JIP: 2 { align16 1Q }; shr(8) g54<1>.xUD g6<4>.xUD g34<4>.xUD { align16 1Q compacted }; mov(8) g58<1>.xD 998277249D { align16 1Q }; @@ -5056,8 +5045,7 @@ cmp.nz.f0.0(8) null<1>.xD g82<4>.zD 0D { align16 1Q switch }; (+f0.0.x) sel(8) g85<1>.xUD g24<4>.zUD g83<4>.xUD { align16 1Q }; and(8) g87<1>.xUD g85<4>.xUD g33<4>.xUD { align16 1Q compacted }; -cmp.z.f0.0(8) g86<1>.yD g93<4>.xD g28<4>.yD { align16 1Q }; -cmp.nz.f0.0(8) null<1>.xD g86<4>.yD 0D { align16 1Q switch }; +cmp.z.f0.0(8) null<1>.xD g93<4>.xD g28<4>.yD { align16 1Q switch }; (+f0.0.x) sel(8) g7<1>.xUD g81<4>.xUD g77<4>.xUD { align16 1Q }; cmp.z.f0.0(8) null<1>.xD g30<4>.xD g87<4>.xD { align16 1Q switch }; (+f0.0.x) if(8) JIP: 12 UIP: 19 { align16 1Q }; @@ -5551,19 +5539,17 @@ [1] VARYING_SLOT_POS Native code for unnamed vertex shader GLSL22: -VS vec4 shader: 15 instructions. 0 loops. 164 cycles. 0:0 spills:fills. Compacted 240 to 240 bytes (0%) - START B0 (164 cycles) +VS vec4 shader: 13 instructions. 0 loops. 132 cycles. 0:0 spills:fills. Compacted 208 to 208 bytes (0%) + START B0 (132 cycles) mov(8) g3<1>.zwF 0x30000000VF /* [0F, 0F, 0F, 1F]VF */ { align16 1Q }; add(8) g10<1>.xD g2<4>.zD g2<4>.xD { align16 1Q }; mov(8) g114<1>UD 0x00000000UD { align16 1Q compacted }; shl(8) g17<1>.xD g10<4>.xD 0x00000004UD { align16 1Q }; send(8) g13<1>UD g17<4>.xUD 0x02107000 sampler MsgDesc: ld SIMD4x2 Surface = 0 Sampler = 0 mlen 1 rlen 1 { align16 1Q }; -cmp.z.f0.0(8) g14<1>.yD g13<4>.xD 1D { align16 1Q }; -cmp.nz.f0.0(8) null<1>.xD g14<4>.yD 0D { align16 1Q switch }; +cmp.z.f0.0(8) null<1>.xD g13<4>.xD 1D { align16 1Q switch }; (+f0.0.x) sel(8) g3<1>.xUD g1<0>.zUD g1<0>.xUD { align16 1Q }; -cmp.z.f0.0(8) g15<1>.yD g13<4>.yD 1D { align16 1Q }; -cmp.nz.f0.0(8) null<1>.yD g15<4>.yD 0D { align16 1Q switch }; +cmp.z.f0.0(8) null<1>.yD g13<4>.yD 1D { align16 1Q switch }; (+f0.0.y) sel(8) g3<1>.yUD g1<0>.wUD g1<0>.yUD { align16 1Q }; mov(8) g115<1>F g3<4>F { align16 1Q }; mov(8) g113<1>UD g0<4>UD { align16 WE_all 1Q };