i965/fs: fix lower SIMD width for IVB/BYT's MOV_INDIRECT
authorJuan A. Suarez Romero <jasuarez@igalia.com>
Wed, 3 Aug 2016 11:51:44 +0000 (11:51 +0000)
committerFrancisco Jerez <currojerez@riseup.net>
Fri, 14 Apr 2017 21:56:07 +0000 (14:56 -0700)
commit3198ce3f96848856206e7b2e54a53024bcca7737
treee5808af7f3fd115980b42c8d97ac8f572c20f03e
parent571cbd05ebfb8bef22277c5758afc82f5dd6a3f2
i965/fs: fix lower SIMD width for IVB/BYT's MOV_INDIRECT

According to the IVB and HSW PRMs:

"2.When the destination requires two registers and the sources are
 indirect, the sources must use 1x1 regioning mode."

So for DF instructions the execution size is not limited by the number
of address registers that are available, but by the EU decompression
logic not handling VxH indirect addressing correctly.

This patch limits the SIMD width to 4 in this case.

v2:
- Fix typo (Matt).
- Fix condition (Curro)

v3:
- Add spec quote (Curro)

Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
src/intel/compiler/brw_fs.cpp