i965: expose BRW_OPCODE_[F32TO16/F16TO32] name on gen8+
authorAlejandro Piñeiro <apinheiro@igalia.com>
Tue, 28 Mar 2017 17:24:12 +0000 (19:24 +0200)
committerAlejandro Piñeiro <apinheiro@igalia.com>
Wed, 29 Mar 2017 15:34:15 +0000 (17:34 +0200)
commit2f8d6bd57844f86547b95d1381c82aaceb83c356
tree92d211097bd8019210053fd1992418f6c0e7db7c
parenta2db9f9ff42435bc952ae1897b76b42610aeb7b7
i965: expose BRW_OPCODE_[F32TO16/F16TO32] name on gen8+

Technically those hw operations are only available on gen7, as gen8+
support the conversion on the MOV. But, when using the builder to
implement nir operations (example: nir_op_fquantize2f16), it is not
needed to do the gen check. This check is done later, on the final
emission at brw_F32TO16 (brw_eu_emit), choosing between the MOV or the
specific operation accordingly.

So in the middle, during optimization phases those hw operations can
be around for gen8+ too.

Without this patch, several (at least 95) vulkan-cts quantize tests
crashes when using INTEL_DEBUG=optimizer. For example:
dEQP-VK.spirv_assembly.instruction.graphics.opquantize.too_small_vert

v2: simplify the code using GEN_GE (Ilia Mirkin)
v3: tweak brw_instruction_name instead of changing opcode_descs
    table, that is used for validation (Matt Turner)

Reviewed-by: Matt Turner <mattst88@gmail.com>
src/intel/compiler/brw_shader.cpp