i965/vec4: Fix UBO loads for 64-bit data
authorIago Toral Quiroga <itoral@igalia.com>
Wed, 13 Jul 2016 10:10:18 +0000 (12:10 +0200)
committerSamuel Iglesias Gonsálvez <siglesias@igalia.com>
Tue, 3 Jan 2017 10:26:51 +0000 (11:26 +0100)
commit4486c90aaeb08f424ce17f842f46d24d1ceaadcb
treeb4967cc5a72784ff66fe3007e6a6b850f547d1bd
parentd8e123cc5d66022069f3aee53318bfd1075bcc53
i965/vec4: Fix UBO loads for 64-bit data

We need to emit 2 32-bit load messages to load a full dvec4. If only
1 or 2 double components are needed dead-code-elimination will remove
the second one.

We also need to shuffle the result of the 32-bit messages to form
valid 64-bit SIMD4x2 data.

v2:
 - use byte_offset() instead of offset() (Iago)
 - keep the const. offset as an immediate like the original code did (Juan)

Reviewed-by: Matt Turner <mattst88@gmail.com>
src/mesa/drivers/dri/i965/brw_vec4_nir.cpp