nir: Generalize nir_intrinsic_vote_eq
authorJason Ekstrand <jason.ekstrand@intel.com>
Tue, 29 Aug 2017 00:33:33 +0000 (17:33 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Wed, 7 Mar 2018 20:13:47 +0000 (12:13 -0800)
commit44681e47955687d5590779fdc44373d3fb204fdc
tree147add39a1abf8411c643b306e510fb71f14624c
parent9812fce60b6ffbcd136b66bfb609143449ad3f7c
nir: Generalize nir_intrinsic_vote_eq

The SPIR-V extension wants us to be able to do an AllEqual on any vector
or scalar type.  This has two implications:

 1) We need to be able to handle vectors so we switch the vote_eq
    intrinsics to be vectorized intrinsics.

 2) We need to handle floats which have different behavior with respect
    to +-0, NaN, etc. than the integer variant so we need two variants.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
src/amd/common/ac_nir_to_llvm.c
src/compiler/glsl/glsl_to_nir.cpp
src/compiler/nir/nir_intrinsics.h
src/compiler/nir/nir_lower_subgroups.c
src/compiler/nir/nir_opt_intrinsics.c
src/intel/compiler/brw_fs_nir.cpp