COMPMID-1451: Fix the shape of scratch_buffer in case of CIFG

In case of CIFG optimisation scratch buffer should have a size of
[batch_size, num_units * 3] else [batch_size, num_units * 4].

Change-Id: I43e46f7b52e791472f1196f36e9142240ba76c5c
diff --git a/src/runtime/CL/functions/CLLSTMLayer.cpp b/src/runtime/CL/functions/CLLSTMLayer.cpp
index 245016e..a89c4e3 100644
--- a/src/runtime/CL/functions/CLLSTMLayer.cpp
+++ b/src/runtime/CL/functions/CLLSTMLayer.cpp
@@ -282,7 +282,7 @@
 
     // Vector for holding the tensors to store in scratch buffer
     std::vector<ICLTensor *> scratch_inputs;
-    if(lstm_params.has_cifg_opt())
+    if(!lstm_params.has_cifg_opt())
     {
         scratch_inputs.emplace_back(&_input_gate_out1);
     }
@@ -444,7 +444,7 @@
 
     // Validate scratch concatenation
     std::vector<ITensorInfo *> inputs_vector_info_raw;
-    if(lstm_params.has_cifg_opt())
+    if(!lstm_params.has_cifg_opt())
     {
         inputs_vector_info_raw.push_back(&input_gate);
     }
diff --git a/src/runtime/NEON/functions/NELSTMLayer.cpp b/src/runtime/NEON/functions/NELSTMLayer.cpp
index 934761a..7c7580a 100644
--- a/src/runtime/NEON/functions/NELSTMLayer.cpp
+++ b/src/runtime/NEON/functions/NELSTMLayer.cpp
@@ -286,7 +286,7 @@
 
     // Vector for holding the tensors to store in scratch buffer
     std::vector<ITensor *> scratch_inputs;
-    if(lstm_params.has_cifg_opt())
+    if(!lstm_params.has_cifg_opt())
     {
         scratch_inputs.emplace_back(&_input_gate_out1);
     }
@@ -444,7 +444,7 @@
 
     // Validate scratch concatenation
     std::vector<ITensorInfo *> inputs_vector_info_raw;
-    if(lstm_params.has_cifg_opt())
+    if(!lstm_params.has_cifg_opt())
     {
         inputs_vector_info_raw.push_back(&input_gate);
     }
diff --git a/tests/validation/fixtures/LSTMLayerFixture.h b/tests/validation/fixtures/LSTMLayerFixture.h
index bc892bf..7f11265 100644
--- a/tests/validation/fixtures/LSTMLayerFixture.h
+++ b/tests/validation/fixtures/LSTMLayerFixture.h
@@ -100,7 +100,7 @@
         TensorType projection_w;
         TensorType projection_bias;
 
-        bool cifg_opt = scratch_shape.x() == cell_bias_shape.x() * 4 ? true : false;
+        bool cifg_opt = scratch_shape.x() == cell_bias_shape.x() * 4 ? false : true;
 
         FunctionParams lstm_params;