spirv: Trivially handle new 1.4 loop controls
authorCaio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Thu, 4 Apr 2019 20:42:26 +0000 (13:42 -0700)
committerCaio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Tue, 21 May 2019 18:52:12 +0000 (11:52 -0700)
Reviewed-by: Karol Herbst <kherbst@redhat.com>
src/compiler/spirv/vtn_cfg.c

index 323e3da52c48b15fa954bdf3ac1a7cda6615010e..87c3fde3f31d783a2ff30be98c9713843e55466c 100644 (file)
@@ -889,7 +889,12 @@ vtn_loop_control(struct vtn_builder *b, struct vtn_loop *vtn_loop)
    else if (vtn_loop->control & SpvLoopControlUnrollMask)
       return nir_loop_control_unroll;
    else if (vtn_loop->control & SpvLoopControlDependencyInfiniteMask ||
-            vtn_loop->control & SpvLoopControlDependencyLengthMask) {
+            vtn_loop->control & SpvLoopControlDependencyLengthMask ||
+            vtn_loop->control & SpvLoopControlMinIterationsMask ||
+            vtn_loop->control & SpvLoopControlMaxIterationsMask ||
+            vtn_loop->control & SpvLoopControlIterationMultipleMask ||
+            vtn_loop->control & SpvLoopControlPeelCountMask ||
+            vtn_loop->control & SpvLoopControlPartialCountMask) {
       /* We do not do anything special with these yet. */
       return nir_loop_control_none;
    } else {