[Mesa-dev] [PATCH 2/2] i965: run brw_vec4 optimizations in loop
Juan A. Suarez Romero
jasuarez at igalia.com
Thu Nov 26 07:57:55 PST 2015
On Wed, 2015-11-25 at 16:16 -0800, Matt Turner wrote:
> In the piglit test you cited, opt_vector_float() does this to the
> relevant code:
>
> cmp.nz.f0.0 null:F, vgrf6.xyzz:F, vgrf14.xyzz:F
> -mov vgrf2.0.x:D, 0D
> (+f0.0.any4h) mov vgrf2.0.x:D, -1D
> -mov vgrf2.0.yzw:D, 0D
> +mov vgrf2.0:F, [0F, 0F, 0F, 0F]
> cmp.nz.f0.0 null:D, vgrf2.xyzw:D, 0D
>
Now that you point to this change, is it correct?
Before the change, vgrf2.0.x is initialized to 0, and if the previous
cmp success then assigned -1.
But after the change, the value is initialized to 0 *after* the
conditional check, so it ends up always with 0 (-1D is never assigned).
So seems opt_vector_float() is doing something wrong (probably not
checking if the component can be assigned in a conditional).
Am I missing something?
J.A.
More information about the mesa-dev
mailing list