i965/vec4: implement HW workaround for align16 double to float conversion
authorIago Toral Quiroga <itoral@igalia.com>
Wed, 29 Jun 2016 11:08:25 +0000 (13:08 +0200)
committerSamuel Iglesias Gonsálvez <siglesias@igalia.com>
Tue, 3 Jan 2017 10:26:50 +0000 (11:26 +0100)
commit4b2257623494ea8e7a1c7b6fbb2f4f3e59522468
tree12fead91fe6e073721259904a33fb5349278ebbf
parentbfc1f0f017db6bd11a558237c9a4ebeacf73f5ba
i965/vec4: implement HW workaround for align16 double to float conversion

From the BDW PRM, Workarounds chapter:

   "DF->f format conversion for Align16 has wrong emask calculation when
    source is immediate."

Notice that Broadwell and later are strictly scalar at the moment though, so
this is not really necessary.

v2: Instead of moving the immediate to a vgrf and converting from there, just
    convert the double immediate to float in the compiler and move the result
    to the destination (Matt)

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