nir: Vectorize intrinsics
authorJason Ekstrand <jason.ekstrand@intel.com>
Thu, 4 Dec 2014 01:03:19 +0000 (17:03 -0800)
committerJason Ekstrand <jason.ekstrand@intel.com>
Thu, 15 Jan 2015 15:19:03 +0000 (07:19 -0800)
commit27663dbe8edfb7583d9d8fc3704a04a5c837fe05
tree86a274c5438b6d78c3454919fa56c754cd6617ae
parentd1d12efb36074abd34d6d6d3aa4db9190f6c0de3
nir: Vectorize intrinsics

We used to have the number of components built into the intrinsic.  This
meant that all of our load/store intrinsics had vec1, vec2, vec3, and vec4
variants.  This lead to piles of switch statements to generate the correct
intrinsic names, and introspection to figure out the number of components.
We can make things much nicer by allowing "vectorized" intrinsics.

Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
src/glsl/nir/glsl_to_nir.cpp
src/glsl/nir/nir.h
src/glsl/nir/nir_intrinsics.h
src/glsl/nir/nir_lower_io.c
src/glsl/nir/nir_lower_locals_to_regs.c
src/glsl/nir/nir_lower_system_values.c
src/glsl/nir/nir_lower_variables.c
src/glsl/nir/nir_validate.c
src/mesa/drivers/dri/i965/brw_fs_nir.cpp