nir/spirv: Use imov where we might have 8 bit types
authorRob Clark <robdclark@gmail.com>
Sat, 3 Mar 2018 20:31:13 +0000 (15:31 -0500)
committerKarol Herbst <kherbst@redhat.com>
Thu, 12 Jul 2018 11:09:00 +0000 (13:09 +0200)
Otherwise nir_validate may complain about 8 bit floats, which do not exist.

Reviewed-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Signed-off-by: Karol Herbst <kherbst@redhat.com>
src/compiler/spirv/spirv_to_nir.c

index 80a35b1b7505d86426df9f3aaa7120c193a244a0..aad4c713f9e7f04a496e588184aadcd991e29163 100644 (file)
@@ -2798,7 +2798,7 @@ create_vec(struct vtn_builder *b, unsigned num_components, unsigned bit_size)
 {
    nir_op op;
    switch (num_components) {
-   case 1: op = nir_op_fmov; break;
+   case 1: op = nir_op_imov; break;
    case 2: op = nir_op_vec2; break;
    case 3: op = nir_op_vec3; break;
    case 4: op = nir_op_vec4; break;
@@ -2847,7 +2847,7 @@ nir_ssa_def *
 vtn_vector_extract(struct vtn_builder *b, nir_ssa_def *src, unsigned index)
 {
    unsigned swiz[4] = { index };
-   return nir_swizzle(&b->nb, src, swiz, 1, true);
+   return nir_swizzle(&b->nb, src, swiz, 1, false);
 }
 
 nir_ssa_def *