intel/vec4: Reswizzle VF immediates too
authorIan Romanick <ian.d.romanick@intel.com>
Wed, 12 Jun 2019 20:19:25 +0000 (13:19 -0700)
committerIan Romanick <ian.d.romanick@intel.com>
Mon, 8 Jul 2019 18:30:10 +0000 (11:30 -0700)
commit47c2aa5b481389bfc68d688f02aa1fd4f095713a
tree1ce7f9d1c63d253e4a215fcc5e41ab775361d9ad
parentb08d7040518cdf76792952ceef72cadaa54d0179
intel/vec4: Reswizzle VF immediates too

Previously, an instruction like

mul(8) vgrf29.xy:F, vgrf25.yxxx:F, [-1F, 1F, 0F, 0F]

would get rewritten as

mul(8) vgrf0.yz:F, vgrf25.yyxx:F, [-1F, 1F, 0F, 0F]

The latter does not produce the correct result.  The VF immediate in the
second should be either [-1F, -1F, 1F, 1F] or [0F, -1F, 1F, 0F].  This
commit produces the former.

Fixes: 1ee1d8ab468 ("i965/vec4: Reswizzle sources when necessary.")
Reviewed-by: Matt Turner <mattst88@gmail.com>
src/intel/compiler/brw_vec4.cpp