spirv-reader: fix mapping of OpLogicalOr, OpLogicalAnd

These work on scalar and vector of bool, and map to ast::BinaryOp::kOr
and kAnd.

Bug: tint:1043
Change-Id: I009edf8e43c21cb75ccfdcde1106ec177d2fe50e
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/59561
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: James Price <jrprice@google.com>
Auto-Submit: David Neto <dneto@google.com>
diff --git a/src/reader/spirv/function.cc b/src/reader/spirv/function.cc
index fcf87f5..aaa6a13 100644
--- a/src/reader/spirv/function.cc
+++ b/src/reader/spirv/function.cc
@@ -230,9 +230,9 @@
     case SpvOpBitwiseXor:
       return ast::BinaryOp::kXor;
     case SpvOpLogicalAnd:
-      return ast::BinaryOp::kLogicalAnd;
+      return ast::BinaryOp::kAnd;
     case SpvOpLogicalOr:
-      return ast::BinaryOp::kLogicalOr;
+      return ast::BinaryOp::kOr;
     case SpvOpUGreaterThan:
     case SpvOpSGreaterThan:
     case SpvOpFOrdGreaterThan:
diff --git a/src/reader/spirv/function_logical_test.cc b/src/reader/spirv/function_logical_test.cc
index 173a17e..bb0005b 100644
--- a/src/reader/spirv/function_logical_test.cc
+++ b/src/reader/spirv/function_logical_test.cc
@@ -440,11 +440,10 @@
     SpvBinaryLogicalTest,
     ::testing::Values(BinaryData{"bool", "true", "OpLogicalAnd", "false",
                                  "__bool", "ScalarConstructor[not set]{true}",
-                                 "logical_and",
-                                 "ScalarConstructor[not set]{false}"},
+                                 "and", "ScalarConstructor[not set]{false}"},
                       BinaryData{"v2bool", "v2bool_t_f", "OpLogicalAnd",
                                  "v2bool_f_t", "__vec_2__bool",
-                                 AstFor("v2bool_t_f"), "logical_and",
+                                 AstFor("v2bool_t_f"), "and",
                                  AstFor("v2bool_f_t")}));
 
 INSTANTIATE_TEST_SUITE_P(
@@ -452,11 +451,10 @@
     SpvBinaryLogicalTest,
     ::testing::Values(BinaryData{"bool", "true", "OpLogicalOr", "false",
                                  "__bool", "ScalarConstructor[not set]{true}",
-                                 "logical_or",
-                                 "ScalarConstructor[not set]{false}"},
+                                 "or", "ScalarConstructor[not set]{false}"},
                       BinaryData{"v2bool", "v2bool_t_f", "OpLogicalOr",
                                  "v2bool_f_t", "__vec_2__bool",
-                                 AstFor("v2bool_t_f"), "logical_or",
+                                 AstFor("v2bool_t_f"), "or",
                                  AstFor("v2bool_f_t")}));
 
 INSTANTIATE_TEST_SUITE_P(
diff --git a/src/reader/spirv/function_var_test.cc b/src/reader/spirv/function_var_test.cc
index 0030a82..d78d1ca 100644
--- a/src/reader/spirv/function_var_test.cc
+++ b/src/reader/spirv/function_var_test.cc
@@ -2399,7 +2399,7 @@
     {
       Binary[not set]{
         ScalarConstructor[not set]{true}
-        logical_and
+        and
         ScalarConstructor[not set]{true}
       }
     }
diff --git a/test/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.spvasm.expected.hlsl
index 1907070..0ab6d5a 100644
--- a/test/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.spvasm.expected.hlsl
@@ -102,27 +102,11 @@
                         break;
                       }
                       GLF_live7_looplimiter0 = (GLF_live7_looplimiter0 + 1);
-                      bool tint_tmp = (GLF_live7c >= 0);
-                      if (tint_tmp) {
-                        tint_tmp = (GLF_live7c < 3);
-                      }
-                      bool tint_tmp_1 = (GLF_live7r >= 0);
-                      if (tint_tmp_1) {
-                        tint_tmp_1 = (GLF_live7r < 3);
-                      }
-                      set_float3(GLF_live7m33[((tint_tmp) ? GLF_live7c : 0)], ((tint_tmp_1) ? GLF_live7r : 0), 1.0f);
+                      set_float3(GLF_live7m33[(((GLF_live7c >= 0) & (GLF_live7c < 3)) ? GLF_live7c : 0)], (((GLF_live7r >= 0) & (GLF_live7r < 3)) ? GLF_live7r : 0), 1.0f);
                       const float x_267 = asfloat(x_25[0].y);
                       if ((0.0f > x_267)) {
                       } else {
-                        bool tint_tmp_2 = (GLF_live7c >= 0);
-                        if (tint_tmp_2) {
-                          tint_tmp_2 = (GLF_live7c < 4);
-                        }
-                        bool tint_tmp_3 = (GLF_live7r >= 0);
-                        if (tint_tmp_3) {
-                          tint_tmp_3 = (GLF_live7r < 2);
-                        }
-                        set_float2(GLF_live7m42[((tint_tmp_2) ? GLF_live7c : 0)], ((tint_tmp_3) ? GLF_live7r : 0), 1.0f);
+                        set_float2(GLF_live7m42[(((GLF_live7c >= 0) & (GLF_live7c < 4)) ? GLF_live7c : 0)], (((GLF_live7r >= 0) & (GLF_live7r < 2)) ? GLF_live7r : 0), 1.0f);
                       }
                     }
                   }
@@ -142,22 +126,14 @@
           }
           GLF_live7_looplimiter7 = (GLF_live7_looplimiter7 + 1);
           GLF_live7rows_1 = 2;
-          bool tint_tmp_4 = (GLF_live7sum_index >= 0);
-          if (tint_tmp_4) {
-            tint_tmp_4 = (GLF_live7sum_index < 9);
-          }
-          GLF_live7sums[((tint_tmp_4) ? GLF_live7sum_index : 0)] = 0.0f;
+          GLF_live7sums[(((GLF_live7sum_index >= 0) & (GLF_live7sum_index < 9)) ? GLF_live7sum_index : 0)] = 0.0f;
           GLF_live7c_1 = 0;
           {
             for(; (GLF_live7c_1 < 1); GLF_live7c_1 = (GLF_live7c_1 + 1)) {
               GLF_live7r_1 = 0;
               {
                 for(; (GLF_live7r_1 < GLF_live7rows_1); GLF_live7r_1 = (GLF_live7r_1 + 1)) {
-                  bool tint_tmp_5 = (GLF_live7sum_index >= 0);
-                  if (tint_tmp_5) {
-                    tint_tmp_5 = (GLF_live7sum_index < 9);
-                  }
-                  const int x_310 = ((tint_tmp_5) ? GLF_live7sum_index : 0);
+                  const int x_310 = (((GLF_live7sum_index >= 0) & (GLF_live7sum_index < 9)) ? GLF_live7sum_index : 0);
                   const float3x3 x_312 = transpose(GLF_live7m33);
                   if ((GLF_live7c_1 < 3)) {
                     x_180 = 1;
@@ -171,11 +147,7 @@
                   const float x_324 = indexable[x_320][((x_93 < 3) ? 1 : 0)];
                   const float x_326 = GLF_live7sums[x_310];
                   GLF_live7sums[x_310] = (x_326 + x_324);
-                  bool tint_tmp_6 = (GLF_live7sum_index >= 0);
-                  if (tint_tmp_6) {
-                    tint_tmp_6 = (GLF_live7sum_index < 9);
-                  }
-                  const int x_332 = ((tint_tmp_6) ? GLF_live7sum_index : 0);
+                  const int x_332 = (((GLF_live7sum_index >= 0) & (GLF_live7sum_index < 9)) ? GLF_live7sum_index : 0);
                   const float x_334 = GLF_live7m42[1][GLF_live7r_1];
                   const float x_336 = GLF_live7sums[x_332];
                   GLF_live7sums[x_332] = (x_336 + x_334);
diff --git a/test/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.spvasm.expected.msl
index 9f3a7ed..cb848ea 100644
--- a/test/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.spvasm.expected.msl
@@ -145,7 +145,7 @@
             int const x_62 = GLF_live7r;
             int const x_63 = GLF_live7r;
             int const x_64 = GLF_live7r;
-            GLF_live7m33[select(0, x_61, ((x_59 >= 0) && (x_60 < 3)))][select(0, x_64, ((x_62 >= 0) && (x_63 < 3)))] = 1.0f;
+            GLF_live7m33[select(0, x_61, ((x_59 >= 0) & (x_60 < 3)))][select(0, x_64, ((x_62 >= 0) & (x_63 < 3)))] = 1.0f;
             float const x_267 = x_25.injectionSwitch.y;
             if ((0.0f > x_267)) {
             } else {
@@ -155,7 +155,7 @@
               int const x_68 = GLF_live7r;
               int const x_69 = GLF_live7r;
               int const x_70 = GLF_live7r;
-              GLF_live7m42[select(0, x_67, ((x_65 >= 0) && (x_66 < 4)))][select(0, x_70, ((x_68 >= 0) && (x_69 < 2)))] = 1.0f;
+              GLF_live7m42[select(0, x_67, ((x_65 >= 0) & (x_66 < 4)))][select(0, x_70, ((x_68 >= 0) & (x_69 < 2)))] = 1.0f;
             }
             {
               int const x_71 = GLF_live7r;
@@ -196,7 +196,7 @@
       int const x_83 = GLF_live7sum_index;
       int const x_84 = GLF_live7sum_index;
       int const x_85 = GLF_live7sum_index;
-      GLF_live7sums.arr[select(0, x_85, ((x_83 >= 0) && (x_84 < 9)))] = 0.0f;
+      GLF_live7sums.arr[select(0, x_85, ((x_83 >= 0) & (x_84 < 9)))] = 0.0f;
       GLF_live7c_1 = 0;
       while (true) {
         int const x_86 = GLF_live7c_1;
@@ -215,7 +215,7 @@
           int const x_89 = GLF_live7sum_index;
           int const x_90 = GLF_live7sum_index;
           int const x_91 = GLF_live7sum_index;
-          int const x_310 = select(0, x_91, ((x_89 >= 0) && (x_90 < 9)));
+          int const x_310 = select(0, x_91, ((x_89 >= 0) & (x_90 < 9)));
           float3x3 const x_311 = GLF_live7m33;
           float3x3 const x_312 = transpose(x_311);
           int const x_92 = GLF_live7c_1;
@@ -234,7 +234,7 @@
           int const x_94 = GLF_live7sum_index;
           int const x_95 = GLF_live7sum_index;
           int const x_96 = GLF_live7sum_index;
-          int const x_332 = select(0, x_96, ((x_94 >= 0) && (x_95 < 9)));
+          int const x_332 = select(0, x_96, ((x_94 >= 0) & (x_95 < 9)));
           int const x_97 = GLF_live7r_1;
           float const x_334 = GLF_live7m42[1][x_97];
           float const x_336 = GLF_live7sums.arr[x_332];
diff --git a/test/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.spvasm.expected.spvasm
index 694e352..ba3b2d9 100644
--- a/test/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.spvasm.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 403
+; Bound: 389
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -119,13 +119,13 @@
 %_ptr_Uniform_float = OpTypePointer Uniform %float
       %int_9 = OpConstant %int 9
        %void = OpTypeVoid
-        %348 = OpTypeFunction %void
-        %353 = OpConstantNull %v2float
+        %334 = OpTypeFunction %void
+        %339 = OpConstantNull %v2float
     %float_2 = OpConstant %float 2
      %int_25 = OpConstant %int 25
-        %389 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
+        %375 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %390 = OpTypeFunction %void %main_out
+        %376 = OpTypeFunction %void %main_out
 %drawShape_vf2_ = OpFunction %v3float None %15
         %pos = OpFunctionParameter %_ptr_Function_v2float
          %20 = OpLabel
@@ -341,323 +341,288 @@
         %199 = OpLoad %int %GLF_live7r
         %200 = OpLoad %int %GLF_live7r
         %202 = OpSGreaterThanEqual %bool %195 %int_0
-               OpSelectionMerge %203 None
-               OpBranchConditional %202 %204 %203
-        %204 = OpLabel
-        %205 = OpSLessThan %bool %196 %int_3
-               OpBranch %203
-        %203 = OpLabel
-        %206 = OpPhi %bool %202 %191 %205 %204
-        %201 = OpSelect %int %206 %197 %int_0
-        %208 = OpSGreaterThanEqual %bool %198 %int_0
-               OpSelectionMerge %209 None
-               OpBranchConditional %208 %210 %209
-        %210 = OpLabel
-        %211 = OpSLessThan %bool %199 %int_3
-               OpBranch %209
-        %209 = OpLabel
-        %212 = OpPhi %bool %208 %203 %211 %210
-        %207 = OpSelect %int %212 %200 %int_0
-        %213 = OpAccessChain %_ptr_Function_float %GLF_live7m33 %201 %207
-               OpStore %213 %float_1
-        %215 = OpAccessChain %_ptr_Uniform_float %x_25 %uint_0 %uint_1
-        %216 = OpLoad %float %215
-        %217 = OpFOrdGreaterThan %bool %float_0 %216
-               OpSelectionMerge %218 None
-               OpBranchConditional %217 %219 %220
-        %219 = OpLabel
-               OpBranch %218
-        %220 = OpLabel
-        %221 = OpLoad %int %GLF_live7c
-        %222 = OpLoad %int %GLF_live7c
-        %223 = OpLoad %int %GLF_live7c
-        %224 = OpLoad %int %GLF_live7r
-        %225 = OpLoad %int %GLF_live7r
-        %226 = OpLoad %int %GLF_live7r
-        %228 = OpSGreaterThanEqual %bool %221 %int_0
-               OpSelectionMerge %229 None
-               OpBranchConditional %228 %230 %229
-        %230 = OpLabel
-        %231 = OpSLessThan %bool %222 %int_4
-               OpBranch %229
-        %229 = OpLabel
-        %232 = OpPhi %bool %228 %220 %231 %230
-        %227 = OpSelect %int %232 %223 %int_0
-        %234 = OpSGreaterThanEqual %bool %224 %int_0
-               OpSelectionMerge %235 None
-               OpBranchConditional %234 %236 %235
-        %236 = OpLabel
-        %237 = OpSLessThan %bool %225 %int_2
-               OpBranch %235
-        %235 = OpLabel
-        %238 = OpPhi %bool %234 %229 %237 %236
-        %233 = OpSelect %int %238 %226 %int_0
-        %239 = OpAccessChain %_ptr_Function_float %GLF_live7m42 %227 %233
-               OpStore %239 %float_1
-               OpBranch %218
-        %218 = OpLabel
+        %203 = OpSLessThan %bool %196 %int_3
+        %204 = OpLogicalAnd %bool %202 %203
+        %201 = OpSelect %int %204 %197 %int_0
+        %206 = OpSGreaterThanEqual %bool %198 %int_0
+        %207 = OpSLessThan %bool %199 %int_3
+        %208 = OpLogicalAnd %bool %206 %207
+        %205 = OpSelect %int %208 %200 %int_0
+        %209 = OpAccessChain %_ptr_Function_float %GLF_live7m33 %201 %205
+               OpStore %209 %float_1
+        %211 = OpAccessChain %_ptr_Uniform_float %x_25 %uint_0 %uint_1
+        %212 = OpLoad %float %211
+        %213 = OpFOrdGreaterThan %bool %float_0 %212
+               OpSelectionMerge %214 None
+               OpBranchConditional %213 %215 %216
+        %215 = OpLabel
+               OpBranch %214
+        %216 = OpLabel
+        %217 = OpLoad %int %GLF_live7c
+        %218 = OpLoad %int %GLF_live7c
+        %219 = OpLoad %int %GLF_live7c
+        %220 = OpLoad %int %GLF_live7r
+        %221 = OpLoad %int %GLF_live7r
+        %222 = OpLoad %int %GLF_live7r
+        %224 = OpSGreaterThanEqual %bool %217 %int_0
+        %225 = OpSLessThan %bool %218 %int_4
+        %226 = OpLogicalAnd %bool %224 %225
+        %223 = OpSelect %int %226 %219 %int_0
+        %228 = OpSGreaterThanEqual %bool %220 %int_0
+        %229 = OpSLessThan %bool %221 %int_2
+        %230 = OpLogicalAnd %bool %228 %229
+        %227 = OpSelect %int %230 %222 %int_0
+        %231 = OpAccessChain %_ptr_Function_float %GLF_live7m42 %223 %227
+               OpStore %231 %float_1
+               OpBranch %214
+        %214 = OpLabel
                OpBranch %182
         %182 = OpLabel
-        %240 = OpLoad %int %GLF_live7r
-        %241 = OpIAdd %int %240 %int_1
-               OpStore %GLF_live7r %241
+        %232 = OpLoad %int %GLF_live7r
+        %233 = OpIAdd %int %232 %int_1
+               OpStore %GLF_live7r %233
                OpBranch %180
         %181 = OpLabel
                OpBranch %166
         %166 = OpLabel
-        %242 = OpLoad %int %GLF_live7c
-        %243 = OpIAdd %int %242 %int_1
-               OpStore %GLF_live7c %243
+        %234 = OpLoad %int %GLF_live7c
+        %235 = OpIAdd %int %234 %int_1
+               OpStore %GLF_live7c %235
                OpBranch %164
         %165 = OpLabel
                OpBranch %151
         %151 = OpLabel
-        %244 = OpLoad %int %GLF_live7rows
-        %245 = OpIAdd %int %244 %int_1
-               OpStore %GLF_live7rows %245
+        %236 = OpLoad %int %GLF_live7rows
+        %237 = OpIAdd %int %236 %int_1
+               OpStore %GLF_live7rows %237
                OpBranch %149
         %150 = OpLabel
                OpBranch %136
         %136 = OpLabel
-        %246 = OpLoad %int %GLF_live7cols
-        %247 = OpIAdd %int %246 %int_1
-               OpStore %GLF_live7cols %247
+        %238 = OpLoad %int %GLF_live7cols
+        %239 = OpIAdd %int %238 %int_1
+               OpStore %GLF_live7cols %239
                OpBranch %134
         %135 = OpLabel
                OpStore %GLF_live7sum_index %int_0
                OpStore %GLF_live7_looplimiter7 %int_0
                OpStore %GLF_live7cols_1 %int_2
-               OpBranch %248
+               OpBranch %240
+        %240 = OpLabel
+               OpLoopMerge %241 %242 None
+               OpBranch %243
+        %243 = OpLabel
+        %244 = OpLoad %int %GLF_live7cols_1
+        %245 = OpSLessThan %bool %244 %int_4
+               OpSelectionMerge %246 None
+               OpBranchConditional %245 %247 %248
+        %247 = OpLabel
+               OpBranch %246
         %248 = OpLabel
-               OpLoopMerge %249 %250 None
-               OpBranch %251
+               OpBranch %241
+        %246 = OpLabel
+        %249 = OpLoad %int %GLF_live7_looplimiter7
+        %250 = OpSGreaterThanEqual %bool %249 %int_7
+               OpSelectionMerge %251 None
+               OpBranchConditional %250 %252 %251
+        %252 = OpLabel
+               OpBranch %241
         %251 = OpLabel
-        %252 = OpLoad %int %GLF_live7cols_1
-        %253 = OpSLessThan %bool %252 %int_4
-               OpSelectionMerge %254 None
-               OpBranchConditional %253 %255 %256
-        %255 = OpLabel
-               OpBranch %254
-        %256 = OpLabel
-               OpBranch %249
-        %254 = OpLabel
-        %257 = OpLoad %int %GLF_live7_looplimiter7
-        %258 = OpSGreaterThanEqual %bool %257 %int_7
-               OpSelectionMerge %259 None
-               OpBranchConditional %258 %260 %259
-        %260 = OpLabel
-               OpBranch %249
-        %259 = OpLabel
-        %261 = OpLoad %int %GLF_live7_looplimiter7
-        %262 = OpIAdd %int %261 %int_1
-               OpStore %GLF_live7_looplimiter7 %262
+        %253 = OpLoad %int %GLF_live7_looplimiter7
+        %254 = OpIAdd %int %253 %int_1
+               OpStore %GLF_live7_looplimiter7 %254
                OpStore %GLF_live7rows_1 %int_2
-        %263 = OpLoad %int %GLF_live7sum_index
-        %264 = OpLoad %int %GLF_live7sum_index
-        %265 = OpLoad %int %GLF_live7sum_index
-        %267 = OpSGreaterThanEqual %bool %263 %int_0
-               OpSelectionMerge %268 None
-               OpBranchConditional %267 %269 %268
-        %269 = OpLabel
-        %271 = OpSLessThan %bool %264 %int_9
-               OpBranch %268
-        %268 = OpLabel
-        %272 = OpPhi %bool %267 %259 %271 %269
-        %266 = OpSelect %int %272 %265 %int_0
-        %273 = OpAccessChain %_ptr_Function_float %GLF_live7sums %266
-               OpStore %273 %float_0
+        %255 = OpLoad %int %GLF_live7sum_index
+        %256 = OpLoad %int %GLF_live7sum_index
+        %257 = OpLoad %int %GLF_live7sum_index
+        %259 = OpSGreaterThanEqual %bool %255 %int_0
+        %261 = OpSLessThan %bool %256 %int_9
+        %262 = OpLogicalAnd %bool %259 %261
+        %258 = OpSelect %int %262 %257 %int_0
+        %263 = OpAccessChain %_ptr_Function_float %GLF_live7sums %258
+               OpStore %263 %float_0
                OpStore %GLF_live7c_1 %int_0
-               OpBranch %274
-        %274 = OpLabel
-               OpLoopMerge %275 %276 None
-               OpBranch %277
-        %277 = OpLabel
-        %278 = OpLoad %int %GLF_live7c_1
-        %279 = OpSLessThan %bool %278 %int_1
+               OpBranch %264
+        %264 = OpLabel
+               OpLoopMerge %265 %266 None
+               OpBranch %267
+        %267 = OpLabel
+        %268 = OpLoad %int %GLF_live7c_1
+        %269 = OpSLessThan %bool %268 %int_1
+               OpSelectionMerge %270 None
+               OpBranchConditional %269 %271 %272
+        %271 = OpLabel
+               OpBranch %270
+        %272 = OpLabel
+               OpBranch %265
+        %270 = OpLabel
+               OpStore %GLF_live7r_1 %int_0
+               OpBranch %273
+        %273 = OpLabel
+               OpLoopMerge %274 %275 None
+               OpBranch %276
+        %276 = OpLabel
+        %277 = OpLoad %int %GLF_live7r_1
+        %278 = OpLoad %int %GLF_live7rows_1
+        %279 = OpSLessThan %bool %277 %278
                OpSelectionMerge %280 None
                OpBranchConditional %279 %281 %282
         %281 = OpLabel
                OpBranch %280
         %282 = OpLabel
-               OpBranch %275
-        %280 = OpLabel
-               OpStore %GLF_live7r_1 %int_0
-               OpBranch %283
-        %283 = OpLabel
-               OpLoopMerge %284 %285 None
-               OpBranch %286
-        %286 = OpLabel
-        %287 = OpLoad %int %GLF_live7r_1
-        %288 = OpLoad %int %GLF_live7rows_1
-        %289 = OpSLessThan %bool %287 %288
-               OpSelectionMerge %290 None
-               OpBranchConditional %289 %291 %292
-        %291 = OpLabel
-               OpBranch %290
-        %292 = OpLabel
-               OpBranch %284
-        %290 = OpLabel
-        %293 = OpLoad %int %GLF_live7sum_index
-        %294 = OpLoad %int %GLF_live7sum_index
-        %295 = OpLoad %int %GLF_live7sum_index
-        %297 = OpSGreaterThanEqual %bool %293 %int_0
-               OpSelectionMerge %298 None
-               OpBranchConditional %297 %299 %298
-        %299 = OpLabel
-        %300 = OpSLessThan %bool %294 %int_9
-               OpBranch %298
-        %298 = OpLabel
-        %301 = OpPhi %bool %297 %290 %300 %299
-        %296 = OpSelect %int %301 %295 %int_0
-        %302 = OpLoad %mat3v3float %GLF_live7m33
-        %303 = OpTranspose %mat3v3float %302
-        %304 = OpLoad %int %GLF_live7c_1
-        %305 = OpSLessThan %bool %304 %int_3
-               OpSelectionMerge %306 None
-               OpBranchConditional %305 %307 %308
-        %307 = OpLabel
-               OpStore %x_180 %int_1
-               OpBranch %306
-        %308 = OpLabel
-        %309 = OpAccessChain %_ptr_Uniform_float %x_25 %uint_0 %uint_0
-        %310 = OpLoad %float %309
-        %311 = OpConvertFToS %int %310
-               OpStore %x_180 %311
-               OpBranch %306
-        %306 = OpLabel
-        %312 = OpLoad %int %x_180
-        %313 = OpLoad %int %GLF_live7r_1
-               OpStore %indexable %303
-        %315 = OpSLessThan %bool %313 %int_3
-        %314 = OpSelect %int %315 %int_1 %int_0
-        %316 = OpAccessChain %_ptr_Function_float %indexable %312 %314
-        %317 = OpLoad %float %316
-        %318 = OpAccessChain %_ptr_Function_float %GLF_live7sums %296
-        %319 = OpLoad %float %318
-        %320 = OpAccessChain %_ptr_Function_float %GLF_live7sums %296
-        %321 = OpFAdd %float %319 %317
-               OpStore %320 %321
-        %322 = OpLoad %int %GLF_live7sum_index
-        %323 = OpLoad %int %GLF_live7sum_index
-        %324 = OpLoad %int %GLF_live7sum_index
-        %326 = OpSGreaterThanEqual %bool %322 %int_0
-               OpSelectionMerge %327 None
-               OpBranchConditional %326 %328 %327
-        %328 = OpLabel
-        %329 = OpSLessThan %bool %323 %int_9
-               OpBranch %327
-        %327 = OpLabel
-        %330 = OpPhi %bool %326 %306 %329 %328
-        %325 = OpSelect %int %330 %324 %int_0
-        %331 = OpLoad %int %GLF_live7r_1
-        %332 = OpAccessChain %_ptr_Function_float %GLF_live7m42 %int_1 %331
-        %333 = OpLoad %float %332
-        %334 = OpAccessChain %_ptr_Function_float %GLF_live7sums %325
-        %335 = OpLoad %float %334
-        %336 = OpAccessChain %_ptr_Function_float %GLF_live7sums %325
-        %337 = OpFAdd %float %335 %333
-               OpStore %336 %337
-               OpBranch %285
-        %285 = OpLabel
-        %338 = OpLoad %int %GLF_live7r_1
-        %339 = OpIAdd %int %338 %int_1
-               OpStore %GLF_live7r_1 %339
-               OpBranch %283
-        %284 = OpLabel
-               OpBranch %276
-        %276 = OpLabel
-        %340 = OpLoad %int %GLF_live7c_1
-        %341 = OpIAdd %int %340 %int_1
-               OpStore %GLF_live7c_1 %341
                OpBranch %274
+        %280 = OpLabel
+        %283 = OpLoad %int %GLF_live7sum_index
+        %284 = OpLoad %int %GLF_live7sum_index
+        %285 = OpLoad %int %GLF_live7sum_index
+        %287 = OpSGreaterThanEqual %bool %283 %int_0
+        %288 = OpSLessThan %bool %284 %int_9
+        %289 = OpLogicalAnd %bool %287 %288
+        %286 = OpSelect %int %289 %285 %int_0
+        %290 = OpLoad %mat3v3float %GLF_live7m33
+        %291 = OpTranspose %mat3v3float %290
+        %292 = OpLoad %int %GLF_live7c_1
+        %293 = OpSLessThan %bool %292 %int_3
+               OpSelectionMerge %294 None
+               OpBranchConditional %293 %295 %296
+        %295 = OpLabel
+               OpStore %x_180 %int_1
+               OpBranch %294
+        %296 = OpLabel
+        %297 = OpAccessChain %_ptr_Uniform_float %x_25 %uint_0 %uint_0
+        %298 = OpLoad %float %297
+        %299 = OpConvertFToS %int %298
+               OpStore %x_180 %299
+               OpBranch %294
+        %294 = OpLabel
+        %300 = OpLoad %int %x_180
+        %301 = OpLoad %int %GLF_live7r_1
+               OpStore %indexable %291
+        %303 = OpSLessThan %bool %301 %int_3
+        %302 = OpSelect %int %303 %int_1 %int_0
+        %304 = OpAccessChain %_ptr_Function_float %indexable %300 %302
+        %305 = OpLoad %float %304
+        %306 = OpAccessChain %_ptr_Function_float %GLF_live7sums %286
+        %307 = OpLoad %float %306
+        %308 = OpAccessChain %_ptr_Function_float %GLF_live7sums %286
+        %309 = OpFAdd %float %307 %305
+               OpStore %308 %309
+        %310 = OpLoad %int %GLF_live7sum_index
+        %311 = OpLoad %int %GLF_live7sum_index
+        %312 = OpLoad %int %GLF_live7sum_index
+        %314 = OpSGreaterThanEqual %bool %310 %int_0
+        %315 = OpSLessThan %bool %311 %int_9
+        %316 = OpLogicalAnd %bool %314 %315
+        %313 = OpSelect %int %316 %312 %int_0
+        %317 = OpLoad %int %GLF_live7r_1
+        %318 = OpAccessChain %_ptr_Function_float %GLF_live7m42 %int_1 %317
+        %319 = OpLoad %float %318
+        %320 = OpAccessChain %_ptr_Function_float %GLF_live7sums %313
+        %321 = OpLoad %float %320
+        %322 = OpAccessChain %_ptr_Function_float %GLF_live7sums %313
+        %323 = OpFAdd %float %321 %319
+               OpStore %322 %323
+               OpBranch %275
         %275 = OpLabel
-        %342 = OpLoad %int %GLF_live7sum_index
-        %343 = OpIAdd %int %342 %int_1
-               OpStore %GLF_live7sum_index %343
-               OpBranch %250
-        %250 = OpLabel
-        %344 = OpLoad %int %GLF_live7cols_1
-        %345 = OpIAdd %int %344 %int_1
-               OpStore %GLF_live7cols_1 %345
-               OpBranch %248
-        %249 = OpLabel
+        %324 = OpLoad %int %GLF_live7r_1
+        %325 = OpIAdd %int %324 %int_1
+               OpStore %GLF_live7r_1 %325
+               OpBranch %273
+        %274 = OpLabel
+               OpBranch %266
+        %266 = OpLabel
+        %326 = OpLoad %int %GLF_live7c_1
+        %327 = OpIAdd %int %326 %int_1
+               OpStore %GLF_live7c_1 %327
+               OpBranch %264
+        %265 = OpLabel
+        %328 = OpLoad %int %GLF_live7sum_index
+        %329 = OpIAdd %int %328 %int_1
+               OpStore %GLF_live7sum_index %329
+               OpBranch %242
+        %242 = OpLabel
+        %330 = OpLoad %int %GLF_live7cols_1
+        %331 = OpIAdd %int %330 %int_1
+               OpStore %GLF_live7cols_1 %331
+               OpBranch %240
+        %241 = OpLabel
                OpBranch %108
         %108 = OpLabel
-        %346 = OpLoad %int %GLF_live4i
-        %347 = OpIAdd %int %346 %int_1
-               OpStore %GLF_live4i %347
+        %332 = OpLoad %int %GLF_live4i
+        %333 = OpIAdd %int %332 %int_1
+               OpStore %GLF_live4i %333
                OpBranch %106
         %107 = OpLabel
                OpReturnValue %74
                OpFunctionEnd
-     %main_1 = OpFunction %void None %348
-        %351 = OpLabel
-   %position = OpVariable %_ptr_Function_v2float Function %353
-      %param = OpVariable %_ptr_Function_v2float Function %353
-    %param_1 = OpVariable %_ptr_Function_v2float Function %353
+     %main_1 = OpFunction %void None %334
+        %337 = OpLabel
+   %position = OpVariable %_ptr_Function_v2float Function %339
+      %param = OpVariable %_ptr_Function_v2float Function %339
+    %param_1 = OpVariable %_ptr_Function_v2float Function %339
           %i = OpVariable %_ptr_Function_int Function %32
-    %param_2 = OpVariable %_ptr_Function_v2float Function %353
-        %358 = OpAccessChain %_ptr_Uniform_float %x_25 %uint_0 %uint_0
-        %359 = OpLoad %float %358
-        %361 = OpFOrdGreaterThanEqual %bool %359 %float_2
-               OpSelectionMerge %362 None
-               OpBranchConditional %361 %363 %362
-        %363 = OpLabel
-        %364 = OpLoad %v4float %gl_FragCoord
-        %365 = OpCompositeExtract %float %364 0
-        %366 = OpCompositeExtract %float %364 1
-        %367 = OpCompositeConstruct %v2float %365 %366
-               OpStore %position %367
-        %368 = OpLoad %v2float %position
-               OpStore %param %368
-        %369 = OpFunctionCall %v3float %drawShape_vf2_ %param
-        %371 = OpLoad %v2float %position
-               OpStore %param_1 %371
-        %372 = OpFunctionCall %v3float %drawShape_vf2_ %param_1
+    %param_2 = OpVariable %_ptr_Function_v2float Function %339
+        %344 = OpAccessChain %_ptr_Uniform_float %x_25 %uint_0 %uint_0
+        %345 = OpLoad %float %344
+        %347 = OpFOrdGreaterThanEqual %bool %345 %float_2
+               OpSelectionMerge %348 None
+               OpBranchConditional %347 %349 %348
+        %349 = OpLabel
+        %350 = OpLoad %v4float %gl_FragCoord
+        %351 = OpCompositeExtract %float %350 0
+        %352 = OpCompositeExtract %float %350 1
+        %353 = OpCompositeConstruct %v2float %351 %352
+               OpStore %position %353
+        %354 = OpLoad %v2float %position
+               OpStore %param %354
+        %355 = OpFunctionCall %v3float %drawShape_vf2_ %param
+        %357 = OpLoad %v2float %position
+               OpStore %param_1 %357
+        %358 = OpFunctionCall %v3float %drawShape_vf2_ %param_1
                OpStore %i %int_25
-               OpBranch %375
-        %375 = OpLabel
-               OpLoopMerge %376 %377 None
-               OpBranch %378
-        %378 = OpLabel
-        %379 = OpLoad %int %i
-        %380 = OpSGreaterThan %bool %379 %int_0
-               OpSelectionMerge %381 None
-               OpBranchConditional %380 %382 %383
-        %382 = OpLabel
-               OpBranch %381
-        %383 = OpLabel
-               OpBranch %376
-        %381 = OpLabel
-        %384 = OpLoad %v2float %position
-               OpStore %param_2 %384
-        %385 = OpFunctionCall %v3float %drawShape_vf2_ %param_2
-               OpBranch %377
-        %377 = OpLabel
-        %387 = OpLoad %int %i
-        %388 = OpISub %int %387 %int_1
-               OpStore %i %388
-               OpBranch %375
-        %376 = OpLabel
+               OpBranch %361
+        %361 = OpLabel
+               OpLoopMerge %362 %363 None
+               OpBranch %364
+        %364 = OpLabel
+        %365 = OpLoad %int %i
+        %366 = OpSGreaterThan %bool %365 %int_0
+               OpSelectionMerge %367 None
+               OpBranchConditional %366 %368 %369
+        %368 = OpLabel
+               OpBranch %367
+        %369 = OpLabel
                OpBranch %362
+        %367 = OpLabel
+        %370 = OpLoad %v2float %position
+               OpStore %param_2 %370
+        %371 = OpFunctionCall %v3float %drawShape_vf2_ %param_2
+               OpBranch %363
+        %363 = OpLabel
+        %373 = OpLoad %int %i
+        %374 = OpISub %int %373 %int_1
+               OpStore %i %374
+               OpBranch %361
         %362 = OpLabel
-               OpStore %x_GLF_color %389
+               OpBranch %348
+        %348 = OpLabel
+               OpStore %x_GLF_color %375
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %390
+%tint_symbol_3 = OpFunction %void None %376
 %tint_symbol_1 = OpFunctionParameter %main_out
-        %394 = OpLabel
-        %395 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %395
+        %380 = OpLabel
+        %381 = OpCompositeExtract %v4float %tint_symbol_1 0
+               OpStore %tint_symbol_2 %381
                OpReturn
                OpFunctionEnd
-       %main = OpFunction %void None %348
-        %397 = OpLabel
-        %398 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %398
-        %399 = OpFunctionCall %void %main_1
-        %401 = OpLoad %v4float %x_GLF_color
-        %402 = OpCompositeConstruct %main_out %401
-        %400 = OpFunctionCall %void %tint_symbol_3 %402
+       %main = OpFunction %void None %334
+        %383 = OpLabel
+        %384 = OpLoad %v4float %tint_symbol
+               OpStore %gl_FragCoord %384
+        %385 = OpFunctionCall %void %main_1
+        %387 = OpLoad %v4float %x_GLF_color
+        %388 = OpCompositeConstruct %main_out %387
+        %386 = OpFunctionCall %void %tint_symbol_3 %388
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.spvasm.expected.wgsl
index 9ca6d37..0730594 100644
--- a/test/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.spvasm.expected.wgsl
@@ -140,7 +140,7 @@
             let x_62 : i32 = GLF_live7r;
             let x_63 : i32 = GLF_live7r;
             let x_64 : i32 = GLF_live7r;
-            GLF_live7m33[select(0, x_61, ((x_59 >= 0) && (x_60 < 3)))][select(0, x_64, ((x_62 >= 0) && (x_63 < 3)))] = 1.0;
+            GLF_live7m33[select(0, x_61, ((x_59 >= 0) & (x_60 < 3)))][select(0, x_64, ((x_62 >= 0) & (x_63 < 3)))] = 1.0;
             let x_267 : f32 = x_25.injectionSwitch.y;
             if ((0.0 > x_267)) {
             } else {
@@ -150,7 +150,7 @@
               let x_68 : i32 = GLF_live7r;
               let x_69 : i32 = GLF_live7r;
               let x_70 : i32 = GLF_live7r;
-              GLF_live7m42[select(0, x_67, ((x_65 >= 0) && (x_66 < 4)))][select(0, x_70, ((x_68 >= 0) && (x_69 < 2)))] = 1.0;
+              GLF_live7m42[select(0, x_67, ((x_65 >= 0) & (x_66 < 4)))][select(0, x_70, ((x_68 >= 0) & (x_69 < 2)))] = 1.0;
             }
 
             continuing {
@@ -195,7 +195,7 @@
       let x_83 : i32 = GLF_live7sum_index;
       let x_84 : i32 = GLF_live7sum_index;
       let x_85 : i32 = GLF_live7sum_index;
-      GLF_live7sums[select(0, x_85, ((x_83 >= 0) && (x_84 < 9)))] = 0.0;
+      GLF_live7sums[select(0, x_85, ((x_83 >= 0) & (x_84 < 9)))] = 0.0;
       GLF_live7c_1 = 0;
       loop {
         let x_86 : i32 = GLF_live7c_1;
@@ -214,7 +214,7 @@
           let x_89 : i32 = GLF_live7sum_index;
           let x_90 : i32 = GLF_live7sum_index;
           let x_91 : i32 = GLF_live7sum_index;
-          let x_310 : i32 = select(0, x_91, ((x_89 >= 0) && (x_90 < 9)));
+          let x_310 : i32 = select(0, x_91, ((x_89 >= 0) & (x_90 < 9)));
           let x_311 : mat3x3<f32> = GLF_live7m33;
           let x_312 : mat3x3<f32> = transpose(x_311);
           let x_92 : i32 = GLF_live7c_1;
@@ -233,7 +233,7 @@
           let x_94 : i32 = GLF_live7sum_index;
           let x_95 : i32 = GLF_live7sum_index;
           let x_96 : i32 = GLF_live7sum_index;
-          let x_332 : i32 = select(0, x_96, ((x_94 >= 0) && (x_95 < 9)));
+          let x_332 : i32 = select(0, x_96, ((x_94 >= 0) & (x_95 < 9)));
           let x_97 : i32 = GLF_live7r_1;
           let x_334 : f32 = GLF_live7m42[1][x_97];
           let x_336 : f32 = GLF_live7sums[x_332];
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.spvasm.expected.hlsl
index a13eb73..0886ad0 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.spvasm.expected.hlsl
@@ -23,41 +23,25 @@
   bool x_72_phi = false;
   const float x_42 = s1;
   f1 = (10.0f - (x_42 * floor((10.0f / x_42))));
-  bool tint_tmp = isinf(f1);
-  if (!tint_tmp) {
-    tint_tmp = (s1 == 1.0f);
-  }
-  const bool x_48 = (tint_tmp);
+  const bool x_48 = (isinf(f1) | (s1 == 1.0f));
   x_73_phi = x_48;
   if (!(x_48)) {
     const bool x_54 = (f0 == f1);
     x_63_phi = x_54;
     if (!(x_54)) {
-      bool tint_tmp_1 = (f0 > 0.99000001f);
-      if (tint_tmp_1) {
-        tint_tmp_1 = (f0 < 0.01f);
-      }
-      x_62 = (tint_tmp_1);
+      x_62 = ((f0 > 0.99000001f) & (f0 < 0.01f));
       x_63_phi = x_62;
     }
     const bool x_63 = x_63_phi;
     x_72_phi = x_63;
     if (!(x_63)) {
-      bool tint_tmp_2 = (f1 > 0.99000001f);
-      if (tint_tmp_2) {
-        tint_tmp_2 = (f1 < 0.01f);
-      }
-      x_71 = (tint_tmp_2);
+      x_71 = ((f1 > 0.99000001f) & (f1 < 0.01f));
       x_72_phi = x_71;
     }
     x_72 = x_72_phi;
     x_73_phi = x_72;
   }
-  bool tint_tmp_3 = x_73_phi;
-  if (!tint_tmp_3) {
-    tint_tmp_3 = (f1 == 10.0f);
-  }
-  if ((tint_tmp_3)) {
+  if ((x_73_phi | (f1 == 10.0f))) {
     const int x_81 = asint(x_8[1].x);
     const uint scalar_offset = ((16u * uint(0))) / 4;
     const int x_84 = asint(x_8[scalar_offset / 4][scalar_offset % 4]);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.spvasm.expected.msl
index eed1df1..d72281e 100755
--- a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.spvasm.expected.msl
@@ -48,7 +48,7 @@
   f1 = (10.0f - (x_42 * floor((10.0f / x_42))));
   float const x_44 = f1;
   float const x_46 = s1;
-  bool const x_48 = (isinf(x_44) || (x_46 == 1.0f));
+  bool const x_48 = (isinf(x_44) | (x_46 == 1.0f));
   x_73_phi = x_48;
   if (!(x_48)) {
     float const x_52 = f0;
@@ -58,7 +58,7 @@
     if (!(x_54)) {
       float const x_58 = f0;
       float const x_60 = f0;
-      x_62 = ((x_58 > 0.99000001f) && (x_60 < 0.01f));
+      x_62 = ((x_58 > 0.99000001f) & (x_60 < 0.01f));
       x_63_phi = x_62;
     }
     bool const x_63 = x_63_phi;
@@ -66,7 +66,7 @@
     if (!(x_63)) {
       float const x_67 = f1;
       float const x_69 = f1;
-      x_71 = ((x_67 > 0.99000001f) && (x_69 < 0.01f));
+      x_71 = ((x_67 > 0.99000001f) & (x_69 < 0.01f));
       x_72_phi = x_71;
     }
     x_72 = x_72_phi;
@@ -74,7 +74,7 @@
   }
   bool const x_73 = x_73_phi;
   float const x_74 = f1;
-  if ((x_73 || (x_74 == 10.0f))) {
+  if ((x_73 | (x_74 == 10.0f))) {
     int const x_81 = x_8.x_GLF_uniform_int_values.arr[1].el;
     int const x_84 = x_8.x_GLF_uniform_int_values.arr[0].el;
     int const x_87 = x_8.x_GLF_uniform_int_values.arr[0].el;
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.spvasm.expected.spvasm
index d7b1097..a8b7c7b 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.spvasm.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 139
+; Bound: 131
 ; Schema: 0
                OpCapability Shader
          %37 = OpExtInstImport "GLSL.std.450"
@@ -83,7 +83,7 @@
 %_ptr_Uniform_int = OpTypePointer Uniform %int
       %int_0 = OpConstant %int 0
    %main_out = OpTypeStruct %v4float
-        %127 = OpTypeFunction %void %main_out
+        %119 = OpTypeFunction %void %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
          %f0 = OpVariable %_ptr_Function_float Function %26
@@ -118,117 +118,97 @@
          %57 = OpLoad %float %f1
          %58 = OpLoad %float %s1
          %59 = OpIsInf %bool %57
-               OpSelectionMerge %60 None
-               OpBranchConditional %59 %60 %61
-         %61 = OpLabel
-         %62 = OpFOrdEqual %bool %58 %float_1
-               OpBranch %60
-         %60 = OpLabel
-         %63 = OpPhi %bool %59 %45 %62 %61
-               OpStore %x_73_phi %63
-         %64 = OpLogicalNot %bool %63
-               OpSelectionMerge %65 None
-               OpBranchConditional %64 %66 %65
-         %66 = OpLabel
-         %67 = OpLoad %float %f0
-         %68 = OpLoad %float %f1
-         %69 = OpFOrdEqual %bool %67 %68
-               OpStore %x_63_phi %69
-         %70 = OpLogicalNot %bool %69
-               OpSelectionMerge %71 None
-               OpBranchConditional %70 %72 %71
-         %72 = OpLabel
-         %73 = OpLoad %float %f0
-         %74 = OpLoad %float %f0
-         %76 = OpFOrdGreaterThan %bool %73 %float_0_99000001
-               OpSelectionMerge %77 None
-               OpBranchConditional %76 %78 %77
-         %78 = OpLabel
-         %80 = OpFOrdLessThan %bool %74 %float_0_00999999978
-               OpBranch %77
-         %77 = OpLabel
-         %81 = OpPhi %bool %76 %72 %80 %78
-               OpStore %x_62 %81
-         %82 = OpLoad %bool %x_62
-               OpStore %x_63_phi %82
-               OpBranch %71
-         %71 = OpLabel
-         %83 = OpLoad %bool %x_63_phi
-               OpStore %x_72_phi %83
-         %84 = OpLogicalNot %bool %83
-               OpSelectionMerge %85 None
-               OpBranchConditional %84 %86 %85
-         %86 = OpLabel
-         %87 = OpLoad %float %f1
-         %88 = OpLoad %float %f1
-         %89 = OpFOrdGreaterThan %bool %87 %float_0_99000001
-               OpSelectionMerge %90 None
-               OpBranchConditional %89 %91 %90
-         %91 = OpLabel
-         %92 = OpFOrdLessThan %bool %88 %float_0_00999999978
-               OpBranch %90
-         %90 = OpLabel
-         %93 = OpPhi %bool %89 %86 %92 %91
-               OpStore %x_71 %93
-         %94 = OpLoad %bool %x_71
-               OpStore %x_72_phi %94
-               OpBranch %85
-         %85 = OpLabel
-         %95 = OpLoad %bool %x_72_phi
-               OpStore %x_72 %95
-         %96 = OpLoad %bool %x_72
-               OpStore %x_73_phi %96
-               OpBranch %65
-         %65 = OpLabel
-         %97 = OpLoad %bool %x_73_phi
-         %98 = OpLoad %float %f1
-               OpSelectionMerge %99 None
-               OpBranchConditional %97 %99 %100
-        %100 = OpLabel
-        %101 = OpFOrdEqual %bool %98 %float_10
-               OpBranch %99
-         %99 = OpLabel
-        %102 = OpPhi %bool %97 %65 %101 %100
-               OpSelectionMerge %103 None
-               OpBranchConditional %102 %104 %105
-        %104 = OpLabel
-        %109 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_1
-        %110 = OpLoad %int %109
-        %112 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_0
-        %113 = OpLoad %int %112
-        %114 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_0
-        %115 = OpLoad %int %114
-        %116 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_1
-        %117 = OpLoad %int %116
-        %118 = OpConvertSToF %float %110
-        %119 = OpConvertSToF %float %113
-        %120 = OpConvertSToF %float %115
-        %121 = OpConvertSToF %float %117
-        %122 = OpCompositeConstruct %v4float %118 %119 %120 %121
-               OpStore %x_GLF_color %122
-               OpBranch %103
-        %105 = OpLabel
-        %123 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_0
-        %124 = OpLoad %int %123
-        %125 = OpConvertSToF %float %124
-        %126 = OpCompositeConstruct %v4float %125 %125 %125 %125
-               OpStore %x_GLF_color %126
-               OpBranch %103
-        %103 = OpLabel
+         %60 = OpFOrdEqual %bool %58 %float_1
+         %61 = OpLogicalOr %bool %59 %60
+               OpStore %x_73_phi %61
+         %62 = OpLogicalNot %bool %61
+               OpSelectionMerge %63 None
+               OpBranchConditional %62 %64 %63
+         %64 = OpLabel
+         %65 = OpLoad %float %f0
+         %66 = OpLoad %float %f1
+         %67 = OpFOrdEqual %bool %65 %66
+               OpStore %x_63_phi %67
+         %68 = OpLogicalNot %bool %67
+               OpSelectionMerge %69 None
+               OpBranchConditional %68 %70 %69
+         %70 = OpLabel
+         %71 = OpLoad %float %f0
+         %72 = OpLoad %float %f0
+         %74 = OpFOrdGreaterThan %bool %71 %float_0_99000001
+         %76 = OpFOrdLessThan %bool %72 %float_0_00999999978
+         %77 = OpLogicalAnd %bool %74 %76
+               OpStore %x_62 %77
+         %78 = OpLoad %bool %x_62
+               OpStore %x_63_phi %78
+               OpBranch %69
+         %69 = OpLabel
+         %79 = OpLoad %bool %x_63_phi
+               OpStore %x_72_phi %79
+         %80 = OpLogicalNot %bool %79
+               OpSelectionMerge %81 None
+               OpBranchConditional %80 %82 %81
+         %82 = OpLabel
+         %83 = OpLoad %float %f1
+         %84 = OpLoad %float %f1
+         %85 = OpFOrdGreaterThan %bool %83 %float_0_99000001
+         %86 = OpFOrdLessThan %bool %84 %float_0_00999999978
+         %87 = OpLogicalAnd %bool %85 %86
+               OpStore %x_71 %87
+         %88 = OpLoad %bool %x_71
+               OpStore %x_72_phi %88
+               OpBranch %81
+         %81 = OpLabel
+         %89 = OpLoad %bool %x_72_phi
+               OpStore %x_72 %89
+         %90 = OpLoad %bool %x_72
+               OpStore %x_73_phi %90
+               OpBranch %63
+         %63 = OpLabel
+         %91 = OpLoad %bool %x_73_phi
+         %92 = OpLoad %float %f1
+         %93 = OpFOrdEqual %bool %92 %float_10
+         %94 = OpLogicalOr %bool %91 %93
+               OpSelectionMerge %95 None
+               OpBranchConditional %94 %96 %97
+         %96 = OpLabel
+        %101 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_1
+        %102 = OpLoad %int %101
+        %104 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_0
+        %105 = OpLoad %int %104
+        %106 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_0
+        %107 = OpLoad %int %106
+        %108 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_1
+        %109 = OpLoad %int %108
+        %110 = OpConvertSToF %float %102
+        %111 = OpConvertSToF %float %105
+        %112 = OpConvertSToF %float %107
+        %113 = OpConvertSToF %float %109
+        %114 = OpCompositeConstruct %v4float %110 %111 %112 %113
+               OpStore %x_GLF_color %114
+               OpBranch %95
+         %97 = OpLabel
+        %115 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0 %int_0
+        %116 = OpLoad %int %115
+        %117 = OpConvertSToF %float %116
+        %118 = OpCompositeConstruct %v4float %117 %117 %117 %117
+               OpStore %x_GLF_color %118
+               OpBranch %95
+         %95 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %127
+%tint_symbol_2 = OpFunction %void None %119
 %tint_symbol = OpFunctionParameter %main_out
-        %131 = OpLabel
-        %132 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %132
+        %123 = OpLabel
+        %124 = OpCompositeExtract %v4float %tint_symbol 0
+               OpStore %tint_symbol_1 %124
                OpReturn
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %134 = OpLabel
-        %135 = OpFunctionCall %void %main_1
-        %137 = OpLoad %v4float %x_GLF_color
-        %138 = OpCompositeConstruct %main_out %137
-        %136 = OpFunctionCall %void %tint_symbol_2 %138
+        %126 = OpLabel
+        %127 = OpFunctionCall %void %main_1
+        %129 = OpLoad %v4float %x_GLF_color
+        %130 = OpCompositeConstruct %main_out %129
+        %128 = OpFunctionCall %void %tint_symbol_2 %130
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.spvasm.expected.wgsl
index 69a4451..6c98a92 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.spvasm.expected.wgsl
@@ -38,7 +38,7 @@
   f1 = (10.0 - (x_42 * floor((10.0 / x_42))));
   let x_44 : f32 = f1;
   let x_46 : f32 = s1;
-  let x_48 : bool = (isInf(x_44) || (x_46 == 1.0));
+  let x_48 : bool = (isInf(x_44) | (x_46 == 1.0));
   x_73_phi = x_48;
   if (!(x_48)) {
     let x_52 : f32 = f0;
@@ -48,7 +48,7 @@
     if (!(x_54)) {
       let x_58 : f32 = f0;
       let x_60 : f32 = f0;
-      x_62 = ((x_58 > 0.99000001) && (x_60 < 0.01));
+      x_62 = ((x_58 > 0.99000001) & (x_60 < 0.01));
       x_63_phi = x_62;
     }
     let x_63 : bool = x_63_phi;
@@ -56,7 +56,7 @@
     if (!(x_63)) {
       let x_67 : f32 = f1;
       let x_69 : f32 = f1;
-      x_71 = ((x_67 > 0.99000001) && (x_69 < 0.01));
+      x_71 = ((x_67 > 0.99000001) & (x_69 < 0.01));
       x_72_phi = x_71;
     }
     x_72 = x_72_phi;
@@ -64,7 +64,7 @@
   }
   let x_73 : bool = x_73_phi;
   let x_74 : f32 = f1;
-  if ((x_73 || (x_74 == 10.0))) {
+  if ((x_73 | (x_74 == 10.0))) {
     let x_81 : i32 = x_8.x_GLF_uniform_int_values[1];
     let x_84 : i32 = x_8.x_GLF_uniform_int_values[0];
     let x_87 : i32 = x_8.x_GLF_uniform_int_values[0];
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.spvasm.expected.hlsl
index 5cb60bd..f7fa990 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.spvasm.expected.hlsl
@@ -7,11 +7,7 @@
   v = float4(1.0f, 2.0f, 3.0f, 4.0f);
   dist1 = distance(tanh(v), (sinh(v) / cosh(v)));
   dist2 = distance(tanh(v), float4(0.761590004f, 0.964030027f, 0.995050013f, 0.999329984f));
-  bool tint_tmp = (dist1 < 0.100000001f);
-  if (tint_tmp) {
-    tint_tmp = (dist2 < 0.100000001f);
-  }
-  if ((tint_tmp)) {
+  if (((dist1 < 0.100000001f) & (dist2 < 0.100000001f))) {
     x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
   } else {
     x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.spvasm.expected.msl
index 3b940f3..1659188 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.spvasm.expected.msl
@@ -21,7 +21,7 @@
   dist2 = distance(tanh(x_38), float4(0.761590004f, 0.964030027f, 0.995050013f, 0.999329984f));
   float const x_41 = dist1;
   float const x_43 = dist2;
-  if (((x_41 < 0.100000001f) && (x_43 < 0.100000001f))) {
+  if (((x_41 < 0.100000001f) & (x_43 < 0.100000001f))) {
     *(tint_symbol_4) = float4(1.0f, 0.0f, 0.0f, 1.0f);
   } else {
     *(tint_symbol_4) = float4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.spvasm.expected.spvasm
index 1f2f4f7..ad52ff1 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.spvasm.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 67
+; Bound: 65
 ; Schema: 0
                OpCapability Shader
          %27 = OpExtInstImport "GLSL.std.450"
@@ -46,10 +46,10 @@
 %float_0_100000001 = OpConstant %float 0.100000001
        %bool = OpTypeBool
     %float_0 = OpConstant %float 0
-         %53 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
-         %54 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
+         %51 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
+         %52 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %55 = OpTypeFunction %void %main_out
+         %53 = OpTypeFunction %void %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %v = OpVariable %_ptr_Function_v4float Function %5
@@ -72,36 +72,31 @@
          %40 = OpLoad %float %dist1
          %41 = OpLoad %float %dist2
          %43 = OpFOrdLessThan %bool %40 %float_0_100000001
-               OpSelectionMerge %45 None
-               OpBranchConditional %43 %46 %45
-         %46 = OpLabel
-         %47 = OpFOrdLessThan %bool %41 %float_0_100000001
-               OpBranch %45
-         %45 = OpLabel
-         %48 = OpPhi %bool %43 %11 %47 %46
-               OpSelectionMerge %49 None
-               OpBranchConditional %48 %50 %51
-         %50 = OpLabel
-               OpStore %x_GLF_color %53
-               OpBranch %49
-         %51 = OpLabel
-               OpStore %x_GLF_color %54
-               OpBranch %49
+         %45 = OpFOrdLessThan %bool %41 %float_0_100000001
+         %46 = OpLogicalAnd %bool %43 %45
+               OpSelectionMerge %47 None
+               OpBranchConditional %46 %48 %49
+         %48 = OpLabel
+               OpStore %x_GLF_color %51
+               OpBranch %47
          %49 = OpLabel
+               OpStore %x_GLF_color %52
+               OpBranch %47
+         %47 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %55
+%tint_symbol_2 = OpFunction %void None %53
 %tint_symbol = OpFunctionParameter %main_out
-         %59 = OpLabel
-         %60 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %60
+         %57 = OpLabel
+         %58 = OpCompositeExtract %v4float %tint_symbol 0
+               OpStore %tint_symbol_1 %58
                OpReturn
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %62 = OpLabel
-         %63 = OpFunctionCall %void %main_1
-         %65 = OpLoad %v4float %x_GLF_color
-         %66 = OpCompositeConstruct %main_out %65
-         %64 = OpFunctionCall %void %tint_symbol_2 %66
+         %60 = OpLabel
+         %61 = OpFunctionCall %void %main_1
+         %63 = OpLoad %v4float %x_GLF_color
+         %64 = OpCompositeConstruct %main_out %63
+         %62 = OpFunctionCall %void %tint_symbol_2 %64
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.spvasm.expected.wgsl
index 8bcb3a5..64816ce 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.spvasm.expected.wgsl
@@ -13,7 +13,7 @@
   dist2 = distance(tanh(x_38), vec4<f32>(0.761590004, 0.964030027, 0.995050013, 0.999329984));
   let x_41 : f32 = dist1;
   let x_43 : f32 = dist2;
-  if (((x_41 < 0.100000001) && (x_43 < 0.100000001))) {
+  if (((x_41 < 0.100000001) & (x_43 < 0.100000001))) {
     x_GLF_color = vec4<f32>(1.0, 0.0, 0.0, 1.0);
   } else {
     x_GLF_color = vec4<f32>(0.0, 0.0, 0.0, 0.0);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.spvasm.expected.hlsl
index cef004d..e12b4af 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.spvasm.expected.hlsl
@@ -13,11 +13,7 @@
     i = (i + 1);
     j = (j + 1);
   }
-  bool tint_tmp = (i == 9);
-  if (tint_tmp) {
-    tint_tmp = (j == 10);
-  }
-  if ((tint_tmp)) {
+  if (((i == 9) & (j == 10))) {
     x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
   } else {
     x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.spvasm.expected.msl
index 35f0b9c..6c19a66 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.spvasm.expected.msl
@@ -27,7 +27,7 @@
   }
   int const x_37 = i;
   int const x_39 = j;
-  if (((x_37 == 9) && (x_39 == 10))) {
+  if (((x_37 == 9) & (x_39 == 10))) {
     *(tint_symbol_4) = float4(1.0f, 0.0f, 0.0f, 1.0f);
   } else {
     *(tint_symbol_4) = float4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.spvasm.expected.spvasm
index 99a8be5..e3f49f8 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.spvasm.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 65
+; Bound: 63
 ; Schema: 0
                OpCapability Shader
          %26 = OpExtInstImport "GLSL.std.450"
@@ -40,10 +40,10 @@
      %int_10 = OpConstant %int 10
     %float_1 = OpConstant %float 1
     %float_0 = OpConstant %float 0
-         %51 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
-         %52 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
+         %49 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
+         %50 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %53 = OpTypeFunction %void %main_out
+         %51 = OpTypeFunction %void %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %15
@@ -79,36 +79,31 @@
          %38 = OpLoad %int %i
          %39 = OpLoad %int %j
          %40 = OpIEqual %bool %38 %int_9
-               OpSelectionMerge %41 None
-               OpBranchConditional %40 %42 %41
-         %42 = OpLabel
-         %44 = OpIEqual %bool %39 %int_10
-               OpBranch %41
-         %41 = OpLabel
-         %45 = OpPhi %bool %40 %20 %44 %42
-               OpSelectionMerge %46 None
-               OpBranchConditional %45 %47 %48
-         %47 = OpLabel
-               OpStore %x_GLF_color %51
-               OpBranch %46
-         %48 = OpLabel
-               OpStore %x_GLF_color %52
-               OpBranch %46
+         %42 = OpIEqual %bool %39 %int_10
+         %43 = OpLogicalAnd %bool %40 %42
+               OpSelectionMerge %44 None
+               OpBranchConditional %43 %45 %46
+         %45 = OpLabel
+               OpStore %x_GLF_color %49
+               OpBranch %44
          %46 = OpLabel
+               OpStore %x_GLF_color %50
+               OpBranch %44
+         %44 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %53
+%tint_symbol_2 = OpFunction %void None %51
 %tint_symbol = OpFunctionParameter %main_out
-         %57 = OpLabel
-         %58 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %58
+         %55 = OpLabel
+         %56 = OpCompositeExtract %v4float %tint_symbol 0
+               OpStore %tint_symbol_1 %56
                OpReturn
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %60 = OpLabel
-         %61 = OpFunctionCall %void %main_1
-         %63 = OpLoad %v4float %x_GLF_color
-         %64 = OpCompositeConstruct %main_out %63
-         %62 = OpFunctionCall %void %tint_symbol_2 %64
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %main_1
+         %61 = OpLoad %v4float %x_GLF_color
+         %62 = OpCompositeConstruct %main_out %61
+         %60 = OpFunctionCall %void %tint_symbol_2 %62
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.spvasm.expected.wgsl
index 367bf40..25c0dac 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.spvasm.expected.wgsl
@@ -19,7 +19,7 @@
   }
   let x_37 : i32 = i;
   let x_39 : i32 = j;
-  if (((x_37 == 9) && (x_39 == 10))) {
+  if (((x_37 == 9) & (x_39 == 10))) {
     x_GLF_color = vec4<f32>(1.0, 0.0, 0.0, 1.0);
   } else {
     x_GLF_color = vec4<f32>(0.0, 0.0, 0.0, 0.0);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.spvasm.expected.hlsl
index c627f2d..3067c8a 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.spvasm.expected.hlsl
@@ -3,11 +3,7 @@
 void main_1() {
   float f = 0.0f;
   f = atan2(1.0f, tanh(1.0f));
-  bool tint_tmp = (f > 0.910000026f);
-  if (tint_tmp) {
-    tint_tmp = (f < 0.930000007f);
-  }
-  if ((tint_tmp)) {
+  if (((f > 0.910000026f) & (f < 0.930000007f))) {
     x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
   } else {
     x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.spvasm.expected.msl
index 2bef818..b162726 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.spvasm.expected.msl
@@ -13,7 +13,7 @@
   f = atan2(1.0f, tanh(1.0f));
   float const x_21 = f;
   float const x_23 = f;
-  if (((x_21 > 0.910000026f) && (x_23 < 0.930000007f))) {
+  if (((x_21 > 0.910000026f) & (x_23 < 0.930000007f))) {
     *(tint_symbol_4) = float4(1.0f, 0.0f, 0.0f, 1.0f);
   } else {
     *(tint_symbol_4) = float4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.spvasm.expected.spvasm
index b1523b5..ad265d4 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.spvasm.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
          %16 = OpExtInstImport "GLSL.std.450"
@@ -35,10 +35,10 @@
        %bool = OpTypeBool
 %float_0_930000007 = OpConstant %float 0.930000007
     %float_0 = OpConstant %float 0
-         %33 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
-         %34 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
+         %31 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
+         %32 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %35 = OpTypeFunction %void %main_out
+         %33 = OpTypeFunction %void %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %14
@@ -48,36 +48,31 @@
          %19 = OpLoad %float %f
          %20 = OpLoad %float %f
          %22 = OpFOrdGreaterThan %bool %19 %float_0_910000026
-               OpSelectionMerge %24 None
-               OpBranchConditional %22 %25 %24
-         %25 = OpLabel
-         %27 = OpFOrdLessThan %bool %20 %float_0_930000007
-               OpBranch %24
-         %24 = OpLabel
-         %28 = OpPhi %bool %22 %11 %27 %25
-               OpSelectionMerge %29 None
-               OpBranchConditional %28 %30 %31
-         %30 = OpLabel
-               OpStore %x_GLF_color %33
-               OpBranch %29
-         %31 = OpLabel
-               OpStore %x_GLF_color %34
-               OpBranch %29
+         %25 = OpFOrdLessThan %bool %20 %float_0_930000007
+         %26 = OpLogicalAnd %bool %22 %25
+               OpSelectionMerge %27 None
+               OpBranchConditional %26 %28 %29
+         %28 = OpLabel
+               OpStore %x_GLF_color %31
+               OpBranch %27
          %29 = OpLabel
+               OpStore %x_GLF_color %32
+               OpBranch %27
+         %27 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %35
+%tint_symbol_2 = OpFunction %void None %33
 %tint_symbol = OpFunctionParameter %main_out
-         %39 = OpLabel
-         %40 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %40
+         %37 = OpLabel
+         %38 = OpCompositeExtract %v4float %tint_symbol 0
+               OpStore %tint_symbol_1 %38
                OpReturn
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %main_1
-         %45 = OpLoad %v4float %x_GLF_color
-         %46 = OpCompositeConstruct %main_out %45
-         %44 = OpFunctionCall %void %tint_symbol_2 %46
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %main_1
+         %43 = OpLoad %v4float %x_GLF_color
+         %44 = OpCompositeConstruct %main_out %43
+         %42 = OpFunctionCall %void %tint_symbol_2 %44
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.spvasm.expected.wgsl
index aa69903..12ed859 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.spvasm.expected.wgsl
@@ -5,7 +5,7 @@
   f = atan2(1.0, tanh(1.0));
   let x_21 : f32 = f;
   let x_23 : f32 = f;
-  if (((x_21 > 0.910000026) && (x_23 < 0.930000007))) {
+  if (((x_21 > 0.910000026) & (x_23 < 0.930000007))) {
     x_GLF_color = vec4<f32>(1.0, 0.0, 0.0, 1.0);
   } else {
     x_GLF_color = vec4<f32>(0.0, 0.0, 0.0, 0.0);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.spvasm.expected.hlsl
index c9c5e08..14fc706 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.spvasm.expected.hlsl
@@ -4,11 +4,7 @@
   float2x2 m = float2x2(0.0f, 0.0f, 0.0f, 0.0f);
   m = (transpose(float2x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f))) * (1.0f / 2.0f));
   const float2x2 x_33 = m;
-  bool tint_tmp = all((x_33[0u] == float2x2(float2(0.5f, 1.5f), float2(1.0f, 2.0f))[0u]));
-  if (tint_tmp) {
-    tint_tmp = all((x_33[1u] == float2x2(float2(0.5f, 1.5f), float2(1.0f, 2.0f))[1u]));
-  }
-  if ((tint_tmp)) {
+  if ((all((x_33[0u] == float2x2(float2(0.5f, 1.5f), float2(1.0f, 2.0f))[0u])) & all((x_33[1u] == float2x2(float2(0.5f, 1.5f), float2(1.0f, 2.0f))[1u])))) {
     x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
   } else {
     x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.spvasm.expected.msl
index 6ff0e42..abb0900 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.spvasm.expected.msl
@@ -12,7 +12,7 @@
   float2x2 m = float2x2(0.0f);
   m = (transpose(float2x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f))) * (1.0f / 2.0f));
   float2x2 const x_33 = m;
-  if ((all((x_33[0u] == float2x2(float2(0.5f, 1.5f), float2(1.0f, 2.0f))[0u])) && all((x_33[1u] == float2x2(float2(0.5f, 1.5f), float2(1.0f, 2.0f))[1u])))) {
+  if ((all((x_33[0u] == float2x2(float2(0.5f, 1.5f), float2(1.0f, 2.0f))[0u])) & all((x_33[1u] == float2x2(float2(0.5f, 1.5f), float2(1.0f, 2.0f))[1u])))) {
     *(tint_symbol_4) = float4(1.0f, 0.0f, 0.0f, 1.0f);
   } else {
     *(tint_symbol_4) = float4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.spvasm.expected.spvasm
index e11c805..50d4c1b 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.spvasm.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 66
+; Bound: 64
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -48,10 +48,10 @@
      %v2bool = OpTypeVector %bool 2
      %uint_1 = OpConstant %uint 1
     %float_0 = OpConstant %float 0
-         %52 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
-         %53 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
+         %50 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
+         %51 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %54 = OpTypeFunction %void %main_out
+         %52 = OpTypeFunction %void %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %m = OpVariable %_ptr_Function_mat2v2float Function %16
@@ -64,39 +64,34 @@
          %37 = OpCompositeExtract %v2float %36 0
          %38 = OpFOrdEqual %v2bool %32 %37
          %28 = OpAll %bool %38
-               OpSelectionMerge %40 None
-               OpBranchConditional %28 %41 %40
-         %41 = OpLabel
-         %44 = OpCompositeExtract %v2float %27 1
-         %45 = OpCompositeExtract %v2float %36 1
-         %46 = OpFOrdEqual %v2bool %44 %45
-         %42 = OpAll %bool %46
-               OpBranch %40
-         %40 = OpLabel
-         %47 = OpPhi %bool %28 %11 %42 %41
-               OpSelectionMerge %48 None
-               OpBranchConditional %47 %49 %50
-         %49 = OpLabel
-               OpStore %x_GLF_color %52
-               OpBranch %48
-         %50 = OpLabel
-               OpStore %x_GLF_color %53
-               OpBranch %48
+         %42 = OpCompositeExtract %v2float %27 1
+         %43 = OpCompositeExtract %v2float %36 1
+         %44 = OpFOrdEqual %v2bool %42 %43
+         %40 = OpAll %bool %44
+         %45 = OpLogicalAnd %bool %28 %40
+               OpSelectionMerge %46 None
+               OpBranchConditional %45 %47 %48
+         %47 = OpLabel
+               OpStore %x_GLF_color %50
+               OpBranch %46
          %48 = OpLabel
+               OpStore %x_GLF_color %51
+               OpBranch %46
+         %46 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %54
+%tint_symbol_2 = OpFunction %void None %52
 %tint_symbol = OpFunctionParameter %main_out
-         %58 = OpLabel
-         %59 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %59
+         %56 = OpLabel
+         %57 = OpCompositeExtract %v4float %tint_symbol 0
+               OpStore %tint_symbol_1 %57
                OpReturn
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %61 = OpLabel
-         %62 = OpFunctionCall %void %main_1
-         %64 = OpLoad %v4float %x_GLF_color
-         %65 = OpCompositeConstruct %main_out %64
-         %63 = OpFunctionCall %void %tint_symbol_2 %65
+         %59 = OpLabel
+         %60 = OpFunctionCall %void %main_1
+         %62 = OpLoad %v4float %x_GLF_color
+         %63 = OpCompositeConstruct %main_out %62
+         %61 = OpFunctionCall %void %tint_symbol_2 %63
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.spvasm.expected.wgsl
index af5a1c1..1b73939 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.spvasm.expected.wgsl
@@ -4,7 +4,7 @@
   var m : mat2x2<f32>;
   m = (transpose(mat2x2<f32>(vec2<f32>(1.0, 2.0), vec2<f32>(3.0, 4.0))) * (1.0 / 2.0));
   let x_33 : mat2x2<f32> = m;
-  if ((all((x_33[0u] == mat2x2<f32>(vec2<f32>(0.5, 1.5), vec2<f32>(1.0, 2.0))[0u])) && all((x_33[1u] == mat2x2<f32>(vec2<f32>(0.5, 1.5), vec2<f32>(1.0, 2.0))[1u])))) {
+  if ((all((x_33[0u] == mat2x2<f32>(vec2<f32>(0.5, 1.5), vec2<f32>(1.0, 2.0))[0u])) & all((x_33[1u] == mat2x2<f32>(vec2<f32>(0.5, 1.5), vec2<f32>(1.0, 2.0))[1u])))) {
     x_GLF_color = vec4<f32>(1.0, 0.0, 0.0, 1.0);
   } else {
     x_GLF_color = vec4<f32>(0.0, 0.0, 0.0, 0.0);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.spvasm.expected.hlsl
index 205d238..63f7da2 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.spvasm.expected.hlsl
@@ -3,11 +3,7 @@
 void main_1() {
   bool a = false;
   a = false;
-  bool tint_tmp = true;
-  if (tint_tmp) {
-    tint_tmp = a;
-  }
-  if ((tint_tmp)) {
+  if ((true & a)) {
     x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
   } else {
     x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.spvasm.expected.msl
index c5fe7c9..dd7b01c 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.spvasm.expected.msl
@@ -12,7 +12,7 @@
   bool a = false;
   a = false;
   bool const x_19 = a;
-  if ((true && x_19)) {
+  if ((true & x_19)) {
     *(tint_symbol_4) = float4(0.0f, 0.0f, 0.0f, 0.0f);
   } else {
     *(tint_symbol_4) = float4(1.0f, 0.0f, 0.0f, 1.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.spvasm.expected.spvasm
index ae7b276..772fda6 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.spvasm.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -33,45 +33,40 @@
       %false = OpConstantFalse %bool
        %true = OpConstantTrue %bool
     %float_0 = OpConstant %float 0
-         %26 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
+         %24 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
     %float_1 = OpConstant %float 1
-         %28 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
+         %26 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %29 = OpTypeFunction %void %main_out
+         %27 = OpTypeFunction %void %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %a = OpVariable %_ptr_Function_bool Function %15
                OpStore %a %false
          %17 = OpLoad %bool %a
-               OpSelectionMerge %19 None
-               OpBranchConditional %true %20 %19
-         %20 = OpLabel
-               OpBranch %19
-         %19 = OpLabel
-         %21 = OpPhi %bool %true %11 %17 %20
-               OpSelectionMerge %22 None
-               OpBranchConditional %21 %23 %24
-         %23 = OpLabel
-               OpStore %x_GLF_color %26
-               OpBranch %22
-         %24 = OpLabel
-               OpStore %x_GLF_color %28
-               OpBranch %22
+         %19 = OpLogicalAnd %bool %true %17
+               OpSelectionMerge %20 None
+               OpBranchConditional %19 %21 %22
+         %21 = OpLabel
+               OpStore %x_GLF_color %24
+               OpBranch %20
          %22 = OpLabel
+               OpStore %x_GLF_color %26
+               OpBranch %20
+         %20 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %29
+%tint_symbol_2 = OpFunction %void None %27
 %tint_symbol = OpFunctionParameter %main_out
-         %33 = OpLabel
-         %34 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %34
+         %31 = OpLabel
+         %32 = OpCompositeExtract %v4float %tint_symbol 0
+               OpStore %tint_symbol_1 %32
                OpReturn
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %main_1
-         %39 = OpLoad %v4float %x_GLF_color
-         %40 = OpCompositeConstruct %main_out %39
-         %38 = OpFunctionCall %void %tint_symbol_2 %40
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %main_1
+         %37 = OpLoad %v4float %x_GLF_color
+         %38 = OpCompositeConstruct %main_out %37
+         %36 = OpFunctionCall %void %tint_symbol_2 %38
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.spvasm.expected.wgsl
index 3d02048..bcb055a 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.spvasm.expected.wgsl
@@ -4,7 +4,7 @@
   var a : bool;
   a = false;
   let x_19 : bool = a;
-  if ((true && x_19)) {
+  if ((true & x_19)) {
     x_GLF_color = vec4<f32>(0.0, 0.0, 0.0, 0.0);
   } else {
     x_GLF_color = vec4<f32>(1.0, 0.0, 0.0, 1.0);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.spvasm.expected.hlsl
index 52e6a55..64d9a98 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.spvasm.expected.hlsl
@@ -8,11 +8,7 @@
     i = (i + 1);
     {
       const float x_35 = gl_FragCoord.x;
-      bool tint_tmp = (x_35 >= 0.0f);
-      if (tint_tmp) {
-        tint_tmp = false;
-      }
-      if ((tint_tmp)) {
+      if (((x_35 >= 0.0f) & false)) {
       } else {
         break;
       }
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.spvasm.expected.msl
index a3fb456..fdfaeeb 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.spvasm.expected.msl
@@ -16,7 +16,7 @@
     i = (x_6 + 1);
     {
       float const x_35 = (*(tint_symbol_5)).x;
-      if (((x_35 >= 0.0f) && false)) {
+      if (((x_35 >= 0.0f) & false)) {
       } else {
         break;
       }
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.spvasm.expected.wgsl
index 4fa9901..de1d092 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.spvasm.expected.wgsl
@@ -11,7 +11,7 @@
 
     continuing {
       let x_35 : f32 = gl_FragCoord.x;
-      if (((x_35 >= 0.0) && false)) {
+      if (((x_35 >= 0.0) & false)) {
       } else {
         break;
       }
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.spvasm.expected.hlsl
index e1f6bdd..62ce799 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.spvasm.expected.hlsl
@@ -3,11 +3,7 @@
 
 void main_1() {
   const float x_22 = gl_FragCoord.x;
-  bool tint_tmp = (x_22 < 0.0f);
-  if (!tint_tmp) {
-    tint_tmp = true;
-  }
-  if ((tint_tmp)) {
+  if (((x_22 < 0.0f) | true)) {
     x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
   } else {
     x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.spvasm.expected.msl
index c32c624..6262310 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.spvasm.expected.msl
@@ -10,7 +10,7 @@
 
 void main_1(thread float4* const tint_symbol_5, thread float4* const tint_symbol_6) {
   float const x_22 = (*(tint_symbol_5)).x;
-  if (((x_22 < 0.0f) || true)) {
+  if (((x_22 < 0.0f) | true)) {
     *(tint_symbol_6) = float4(1.0f, 0.0f, 0.0f, 1.0f);
   } else {
     *(tint_symbol_6) = float4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.spvasm.expected.spvasm
index 53bc076..9bea875 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.spvasm.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -39,46 +39,41 @@
        %bool = OpTypeBool
        %true = OpConstantTrue %bool
     %float_1 = OpConstant %float 1
-         %31 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
-         %32 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
+         %29 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
+         %30 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %33 = OpTypeFunction %void %main_out
+         %31 = OpTypeFunction %void %main_out
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
          %18 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0
          %19 = OpLoad %float %18
          %21 = OpFOrdLessThan %bool %19 %float_0
-               OpSelectionMerge %23 None
-               OpBranchConditional %21 %23 %24
-         %24 = OpLabel
-               OpBranch %23
-         %23 = OpLabel
-         %26 = OpPhi %bool %21 %14 %true %24
-               OpSelectionMerge %27 None
-               OpBranchConditional %26 %28 %29
-         %28 = OpLabel
-               OpStore %x_GLF_color %31
-               OpBranch %27
-         %29 = OpLabel
-               OpStore %x_GLF_color %32
-               OpBranch %27
+         %24 = OpLogicalOr %bool %21 %true
+               OpSelectionMerge %25 None
+               OpBranchConditional %24 %26 %27
+         %26 = OpLabel
+               OpStore %x_GLF_color %29
+               OpBranch %25
          %27 = OpLabel
+               OpStore %x_GLF_color %30
+               OpBranch %25
+         %25 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %33
+%tint_symbol_3 = OpFunction %void None %31
 %tint_symbol_1 = OpFunctionParameter %main_out
-         %37 = OpLabel
-         %38 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %38
+         %35 = OpLabel
+         %36 = OpCompositeExtract %v4float %tint_symbol_1 0
+               OpStore %tint_symbol_2 %36
                OpReturn
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %40 = OpLabel
-         %41 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %41
-         %42 = OpFunctionCall %void %main_1
-         %44 = OpLoad %v4float %x_GLF_color
-         %45 = OpCompositeConstruct %main_out %44
-         %43 = OpFunctionCall %void %tint_symbol_3 %45
+         %38 = OpLabel
+         %39 = OpLoad %v4float %tint_symbol
+               OpStore %gl_FragCoord %39
+         %40 = OpFunctionCall %void %main_1
+         %42 = OpLoad %v4float %x_GLF_color
+         %43 = OpCompositeConstruct %main_out %42
+         %41 = OpFunctionCall %void %tint_symbol_3 %43
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.spvasm.expected.wgsl
index 56678ab..c44609f 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.spvasm.expected.wgsl
@@ -4,7 +4,7 @@
 
 fn main_1() {
   let x_22 : f32 = gl_FragCoord.x;
-  if (((x_22 < 0.0) || true)) {
+  if (((x_22 < 0.0) | true)) {
     x_GLF_color = vec4<f32>(1.0, 0.0, 0.0, 1.0);
   } else {
     x_GLF_color = vec4<f32>(0.0, 0.0, 0.0, 0.0);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-shift-gte32/0.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/cov-fold-shift-gte32/0.spvasm.expected.hlsl
index 44f7ed6..4db9a87 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-shift-gte32/0.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-shift-gte32/0.spvasm.expected.hlsl
@@ -40,27 +40,7 @@
   if ((f != 0u)) {
     f = 0u;
   }
-  bool tint_tmp_4 = (a == 1u);
-  if (tint_tmp_4) {
-    tint_tmp_4 = (b == 0u);
-  }
-  bool tint_tmp_3 = (tint_tmp_4);
-  if (tint_tmp_3) {
-    tint_tmp_3 = (c == 1u);
-  }
-  bool tint_tmp_2 = (tint_tmp_3);
-  if (tint_tmp_2) {
-    tint_tmp_2 = (d == 0u);
-  }
-  bool tint_tmp_1 = (tint_tmp_2);
-  if (tint_tmp_1) {
-    tint_tmp_1 = (e == 1u);
-  }
-  bool tint_tmp = (tint_tmp_1);
-  if (tint_tmp) {
-    tint_tmp = (f == 0u);
-  }
-  if ((tint_tmp)) {
+  if (((((((a == 1u) & (b == 0u)) & (c == 1u)) & (d == 0u)) & (e == 1u)) & (f == 0u))) {
     x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
   } else {
     x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-shift-gte32/0.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/cov-fold-shift-gte32/0.spvasm.expected.msl
index 5d8fa54..c8f07e8 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-shift-gte32/0.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-shift-gte32/0.spvasm.expected.msl
@@ -60,7 +60,7 @@
   uint const x_96 = d;
   uint const x_99 = e;
   uint const x_102 = f;
-  if (((((((x_88 == 1u) && (x_90 == 0u)) && (x_93 == 1u)) && (x_96 == 0u)) && (x_99 == 1u)) && (x_102 == 0u))) {
+  if (((((((x_88 == 1u) & (x_90 == 0u)) & (x_93 == 1u)) & (x_96 == 0u)) & (x_99 == 1u)) & (x_102 == 0u))) {
     *(tint_symbol_4) = float4(1.0f, 0.0f, 0.0f, 1.0f);
   } else {
     *(tint_symbol_4) = float4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-shift-gte32/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-fold-shift-gte32/0.spvasm.expected.spvasm
index 8468b80..b31bcda 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-shift-gte32/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-shift-gte32/0.spvasm.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 131
+; Bound: 121
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -61,10 +61,10 @@
        %bool = OpTypeBool
     %float_1 = OpConstant %float 1
     %float_0 = OpConstant %float 0
-        %117 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
-        %118 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
+        %107 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
+        %108 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-        %119 = OpTypeFunction %void %main_out
+        %109 = OpTypeFunction %void %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %a = OpVariable %_ptr_Function_uint Function %18
@@ -158,64 +158,39 @@
          %89 = OpLoad %uint %e
          %90 = OpLoad %uint %f
          %91 = OpIEqual %bool %85 %uint_1
-               OpSelectionMerge %92 None
-               OpBranchConditional %91 %93 %92
-         %93 = OpLabel
-         %94 = OpIEqual %bool %86 %uint_0
-               OpBranch %92
-         %92 = OpLabel
-         %95 = OpPhi %bool %91 %83 %94 %93
-               OpSelectionMerge %96 None
-               OpBranchConditional %95 %97 %96
-         %97 = OpLabel
-         %98 = OpIEqual %bool %87 %uint_1
-               OpBranch %96
-         %96 = OpLabel
-         %99 = OpPhi %bool %95 %92 %98 %97
-               OpSelectionMerge %100 None
-               OpBranchConditional %99 %101 %100
-        %101 = OpLabel
-        %102 = OpIEqual %bool %88 %uint_0
-               OpBranch %100
-        %100 = OpLabel
-        %103 = OpPhi %bool %99 %96 %102 %101
-               OpSelectionMerge %104 None
-               OpBranchConditional %103 %105 %104
-        %105 = OpLabel
-        %106 = OpIEqual %bool %89 %uint_1
-               OpBranch %104
+         %92 = OpIEqual %bool %86 %uint_0
+         %93 = OpLogicalAnd %bool %91 %92
+         %94 = OpIEqual %bool %87 %uint_1
+         %95 = OpLogicalAnd %bool %93 %94
+         %96 = OpIEqual %bool %88 %uint_0
+         %97 = OpLogicalAnd %bool %95 %96
+         %98 = OpIEqual %bool %89 %uint_1
+         %99 = OpLogicalAnd %bool %97 %98
+        %100 = OpIEqual %bool %90 %uint_0
+        %101 = OpLogicalAnd %bool %99 %100
+               OpSelectionMerge %102 None
+               OpBranchConditional %101 %103 %104
+        %103 = OpLabel
+               OpStore %x_GLF_color %107
+               OpBranch %102
         %104 = OpLabel
-        %107 = OpPhi %bool %103 %100 %106 %105
-               OpSelectionMerge %108 None
-               OpBranchConditional %107 %109 %108
-        %109 = OpLabel
-        %110 = OpIEqual %bool %90 %uint_0
-               OpBranch %108
-        %108 = OpLabel
-        %111 = OpPhi %bool %107 %104 %110 %109
-               OpSelectionMerge %112 None
-               OpBranchConditional %111 %113 %114
-        %113 = OpLabel
-               OpStore %x_GLF_color %117
-               OpBranch %112
-        %114 = OpLabel
-               OpStore %x_GLF_color %118
-               OpBranch %112
-        %112 = OpLabel
+               OpStore %x_GLF_color %108
+               OpBranch %102
+        %102 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %119
+%tint_symbol_2 = OpFunction %void None %109
 %tint_symbol = OpFunctionParameter %main_out
-        %123 = OpLabel
-        %124 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %124
+        %113 = OpLabel
+        %114 = OpCompositeExtract %v4float %tint_symbol 0
+               OpStore %tint_symbol_1 %114
                OpReturn
                OpFunctionEnd
        %main = OpFunction %void None %12
-        %126 = OpLabel
-        %127 = OpFunctionCall %void %main_1
-        %129 = OpLoad %v4float %x_GLF_color
-        %130 = OpCompositeConstruct %main_out %129
-        %128 = OpFunctionCall %void %tint_symbol_2 %130
+        %116 = OpLabel
+        %117 = OpFunctionCall %void %main_1
+        %119 = OpLoad %v4float %x_GLF_color
+        %120 = OpCompositeConstruct %main_out %119
+        %118 = OpFunctionCall %void %tint_symbol_2 %120
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-shift-gte32/0.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/cov-fold-shift-gte32/0.spvasm.expected.wgsl
index ec6d634..02b3570 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-shift-gte32/0.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-shift-gte32/0.spvasm.expected.wgsl
@@ -56,7 +56,7 @@
   let x_96 : u32 = d;
   let x_99 : u32 = e;
   let x_102 : u32 = f;
-  if (((((((x_88 == 1u) && (x_90 == 0u)) && (x_93 == 1u)) && (x_96 == 0u)) && (x_99 == 1u)) && (x_102 == 0u))) {
+  if (((((((x_88 == 1u) & (x_90 == 0u)) & (x_93 == 1u)) & (x_96 == 0u)) & (x_99 == 1u)) & (x_102 == 0u))) {
     x_GLF_color = vec4<f32>(1.0, 0.0, 0.0, 1.0);
   } else {
     x_GLF_color = vec4<f32>(0.0, 0.0, 0.0, 0.0);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.spvasm.expected.hlsl
index d20ee0a..f5e4574 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.spvasm.expected.hlsl
@@ -7,11 +7,7 @@
   float f = 0.0f;
   const float x_28 = asfloat(x_6[0].x);
   f = (4.0f / (2.0f * x_28));
-  bool tint_tmp = (f > 1.899999976f);
-  if (tint_tmp) {
-    tint_tmp = (f < 2.099999905f);
-  }
-  if ((tint_tmp)) {
+  if (((f > 1.899999976f) & (f < 2.099999905f))) {
     x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
   } else {
     x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.spvasm.expected.msl
index b807292..9823f42 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.spvasm.expected.msl
@@ -17,7 +17,7 @@
   f = (4.0f / (2.0f * x_28));
   float const x_31 = f;
   float const x_33 = f;
-  if (((x_31 > 1.899999976f) && (x_33 < 2.099999905f))) {
+  if (((x_31 > 1.899999976f) & (x_33 < 2.099999905f))) {
     *(tint_symbol_4) = float4(1.0f, 0.0f, 0.0f, 1.0f);
   } else {
     *(tint_symbol_4) = float4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.spvasm.expected.spvasm
index 056fe41..ea91153 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.spvasm.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 54
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -50,10 +50,10 @@
 %float_2_0999999 = OpConstant %float 2.0999999
     %float_1 = OpConstant %float 1
     %float_0 = OpConstant %float 0
-         %42 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
-         %43 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
+         %40 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
+         %41 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %44 = OpTypeFunction %void %main_out
+         %42 = OpTypeFunction %void %main_out
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %17
@@ -65,36 +65,31 @@
          %27 = OpLoad %float %f
          %28 = OpLoad %float %f
          %30 = OpFOrdGreaterThan %bool %27 %float_1_89999998
-               OpSelectionMerge %32 None
-               OpBranchConditional %30 %33 %32
-         %33 = OpLabel
-         %35 = OpFOrdLessThan %bool %28 %float_2_0999999
-               OpBranch %32
-         %32 = OpLabel
-         %36 = OpPhi %bool %30 %14 %35 %33
-               OpSelectionMerge %37 None
-               OpBranchConditional %36 %38 %39
-         %38 = OpLabel
-               OpStore %x_GLF_color %42
-               OpBranch %37
-         %39 = OpLabel
-               OpStore %x_GLF_color %43
-               OpBranch %37
+         %33 = OpFOrdLessThan %bool %28 %float_2_0999999
+         %34 = OpLogicalAnd %bool %30 %33
+               OpSelectionMerge %35 None
+               OpBranchConditional %34 %36 %37
+         %36 = OpLabel
+               OpStore %x_GLF_color %40
+               OpBranch %35
          %37 = OpLabel
+               OpStore %x_GLF_color %41
+               OpBranch %35
+         %35 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %44
+%tint_symbol_2 = OpFunction %void None %42
 %tint_symbol = OpFunctionParameter %main_out
-         %48 = OpLabel
-         %49 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %49
+         %46 = OpLabel
+         %47 = OpCompositeExtract %v4float %tint_symbol 0
+               OpStore %tint_symbol_1 %47
                OpReturn
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %main_1
-         %54 = OpLoad %v4float %x_GLF_color
-         %55 = OpCompositeConstruct %main_out %54
-         %53 = OpFunctionCall %void %tint_symbol_2 %55
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %main_1
+         %52 = OpLoad %v4float %x_GLF_color
+         %53 = OpCompositeConstruct %main_out %52
+         %51 = OpFunctionCall %void %tint_symbol_2 %53
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.spvasm.expected.wgsl
index 5b77b48..59a8d67 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.spvasm.expected.wgsl
@@ -13,7 +13,7 @@
   f = (4.0 / (2.0 * x_28));
   let x_31 : f32 = f;
   let x_33 : f32 = f;
-  if (((x_31 > 1.899999976) && (x_33 < 2.099999905))) {
+  if (((x_31 > 1.899999976) & (x_33 < 2.099999905))) {
     x_GLF_color = vec4<f32>(1.0, 0.0, 0.0, 1.0);
   } else {
     x_GLF_color = vec4<f32>(0.0, 0.0, 0.0, 0.0);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.spvasm.expected.hlsl
index 1b0d83d..02ede34 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.spvasm.expected.hlsl
@@ -7,11 +7,7 @@
   float a = 0.0f;
   const float x_27 = asfloat(x_6[0].x);
   a = (2.0f / (1.0f / x_27));
-  bool tint_tmp = (a > 7.900000095f);
-  if (tint_tmp) {
-    tint_tmp = (a < 8.100000381f);
-  }
-  if ((tint_tmp)) {
+  if (((a > 7.900000095f) & (a < 8.100000381f))) {
     x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
   } else {
     x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.spvasm.expected.msl
index 21d1062..2a1c1bb 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.spvasm.expected.msl
@@ -17,7 +17,7 @@
   a = (2.0f / (1.0f / x_27));
   float const x_30 = a;
   float const x_32 = a;
-  if (((x_30 > 7.900000095f) && (x_32 < 8.100000381f))) {
+  if (((x_30 > 7.900000095f) & (x_32 < 8.100000381f))) {
     *(tint_symbol_4) = float4(1.0f, 0.0f, 0.0f, 1.0f);
   } else {
     *(tint_symbol_4) = float4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.spvasm.expected.spvasm
index 595ed70..83d0a8f 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.spvasm.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 53
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -49,10 +49,10 @@
        %bool = OpTypeBool
 %float_8_10000038 = OpConstant %float 8.10000038
     %float_0 = OpConstant %float 0
-         %41 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
-         %42 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
+         %39 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
+         %40 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %43 = OpTypeFunction %void %main_out
+         %41 = OpTypeFunction %void %main_out
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
           %a = OpVariable %_ptr_Function_float Function %17
@@ -64,36 +64,31 @@
          %27 = OpLoad %float %a
          %28 = OpLoad %float %a
          %30 = OpFOrdGreaterThan %bool %27 %float_7_9000001
-               OpSelectionMerge %32 None
-               OpBranchConditional %30 %33 %32
-         %33 = OpLabel
-         %35 = OpFOrdLessThan %bool %28 %float_8_10000038
-               OpBranch %32
-         %32 = OpLabel
-         %36 = OpPhi %bool %30 %14 %35 %33
-               OpSelectionMerge %37 None
-               OpBranchConditional %36 %38 %39
-         %38 = OpLabel
-               OpStore %x_GLF_color %41
-               OpBranch %37
-         %39 = OpLabel
-               OpStore %x_GLF_color %42
-               OpBranch %37
+         %33 = OpFOrdLessThan %bool %28 %float_8_10000038
+         %34 = OpLogicalAnd %bool %30 %33
+               OpSelectionMerge %35 None
+               OpBranchConditional %34 %36 %37
+         %36 = OpLabel
+               OpStore %x_GLF_color %39
+               OpBranch %35
          %37 = OpLabel
+               OpStore %x_GLF_color %40
+               OpBranch %35
+         %35 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %43
+%tint_symbol_2 = OpFunction %void None %41
 %tint_symbol = OpFunctionParameter %main_out
-         %47 = OpLabel
-         %48 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %48
+         %45 = OpLabel
+         %46 = OpCompositeExtract %v4float %tint_symbol 0
+               OpStore %tint_symbol_1 %46
                OpReturn
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %main_1
-         %53 = OpLoad %v4float %x_GLF_color
-         %54 = OpCompositeConstruct %main_out %53
-         %52 = OpFunctionCall %void %tint_symbol_2 %54
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %main_1
+         %51 = OpLoad %v4float %x_GLF_color
+         %52 = OpCompositeConstruct %main_out %51
+         %50 = OpFunctionCall %void %tint_symbol_2 %52
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.spvasm.expected.wgsl
index 8900821..4d638ec 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.spvasm.expected.wgsl
@@ -13,7 +13,7 @@
   a = (2.0 / (1.0 / x_27));
   let x_30 : f32 = a;
   let x_32 : f32 = a;
-  if (((x_30 > 7.900000095) && (x_32 < 8.100000381))) {
+  if (((x_30 > 7.900000095) & (x_32 < 8.100000381))) {
     x_GLF_color = vec4<f32>(1.0, 0.0, 0.0, 1.0);
   } else {
     x_GLF_color = vec4<f32>(0.0, 0.0, 0.0, 0.0);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.spvasm.expected.hlsl
index 33b44f0..1020e3b 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.spvasm.expected.hlsl
@@ -7,11 +7,7 @@
   float f = 0.0f;
   const float x_28 = asfloat(x_6[0].x);
   f = (4.0f * (2.0f / x_28));
-  bool tint_tmp = (f > 7.900000095f);
-  if (tint_tmp) {
-    tint_tmp = (f < 8.100000381f);
-  }
-  if ((tint_tmp)) {
+  if (((f > 7.900000095f) & (f < 8.100000381f))) {
     x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
   } else {
     x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.spvasm.expected.msl
index 8ca949d..c7f8ae3 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.spvasm.expected.msl
@@ -17,7 +17,7 @@
   f = (4.0f * (2.0f / x_28));
   float const x_31 = f;
   float const x_33 = f;
-  if (((x_31 > 7.900000095f) && (x_33 < 8.100000381f))) {
+  if (((x_31 > 7.900000095f) & (x_33 < 8.100000381f))) {
     *(tint_symbol_4) = float4(1.0f, 0.0f, 0.0f, 1.0f);
   } else {
     *(tint_symbol_4) = float4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.spvasm.expected.spvasm
index a3e6ce2..3380bc1 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.spvasm.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 54
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -50,10 +50,10 @@
 %float_8_10000038 = OpConstant %float 8.10000038
     %float_1 = OpConstant %float 1
     %float_0 = OpConstant %float 0
-         %42 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
-         %43 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
+         %40 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
+         %41 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %44 = OpTypeFunction %void %main_out
+         %42 = OpTypeFunction %void %main_out
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %17
@@ -65,36 +65,31 @@
          %27 = OpLoad %float %f
          %28 = OpLoad %float %f
          %30 = OpFOrdGreaterThan %bool %27 %float_7_9000001
-               OpSelectionMerge %32 None
-               OpBranchConditional %30 %33 %32
-         %33 = OpLabel
-         %35 = OpFOrdLessThan %bool %28 %float_8_10000038
-               OpBranch %32
-         %32 = OpLabel
-         %36 = OpPhi %bool %30 %14 %35 %33
-               OpSelectionMerge %37 None
-               OpBranchConditional %36 %38 %39
-         %38 = OpLabel
-               OpStore %x_GLF_color %42
-               OpBranch %37
-         %39 = OpLabel
-               OpStore %x_GLF_color %43
-               OpBranch %37
+         %33 = OpFOrdLessThan %bool %28 %float_8_10000038
+         %34 = OpLogicalAnd %bool %30 %33
+               OpSelectionMerge %35 None
+               OpBranchConditional %34 %36 %37
+         %36 = OpLabel
+               OpStore %x_GLF_color %40
+               OpBranch %35
          %37 = OpLabel
+               OpStore %x_GLF_color %41
+               OpBranch %35
+         %35 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %44
+%tint_symbol_2 = OpFunction %void None %42
 %tint_symbol = OpFunctionParameter %main_out
-         %48 = OpLabel
-         %49 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %49
+         %46 = OpLabel
+         %47 = OpCompositeExtract %v4float %tint_symbol 0
+               OpStore %tint_symbol_1 %47
                OpReturn
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %main_1
-         %54 = OpLoad %v4float %x_GLF_color
-         %55 = OpCompositeConstruct %main_out %54
-         %53 = OpFunctionCall %void %tint_symbol_2 %55
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %main_1
+         %52 = OpLoad %v4float %x_GLF_color
+         %53 = OpCompositeConstruct %main_out %52
+         %51 = OpFunctionCall %void %tint_symbol_2 %53
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.spvasm.expected.wgsl
index fd79096..4fce1b0 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.spvasm.expected.wgsl
@@ -13,7 +13,7 @@
   f = (4.0 * (2.0 / x_28));
   let x_31 : f32 = f;
   let x_33 : f32 = f;
-  if (((x_31 > 7.900000095) && (x_33 < 8.100000381))) {
+  if (((x_31 > 7.900000095) & (x_33 < 8.100000381))) {
     x_GLF_color = vec4<f32>(1.0, 0.0, 0.0, 1.0);
   } else {
     x_GLF_color = vec4<f32>(0.0, 0.0, 0.0, 0.0);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.spvasm.expected.hlsl
index d19bc36..3187dfa 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.spvasm.expected.hlsl
@@ -28,11 +28,7 @@
       return;
     }
     {
-      bool tint_tmp = true;
-      if (tint_tmp) {
-        tint_tmp = (x_GLF_global_loop_count < 100);
-      }
-      if ((tint_tmp)) {
+      if ((true & (x_GLF_global_loop_count < 100))) {
       } else {
         break;
       }
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.spvasm.expected.msl
index e3bf7ba..6527266 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.spvasm.expected.msl
@@ -45,7 +45,7 @@
     }
     {
       int const x_39 = *(tint_symbol_5);
-      if ((true && (x_39 < 100))) {
+      if ((true & (x_39 < 100))) {
       } else {
         break;
       }
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.spvasm.expected.wgsl
index 96fb7f7..15ffb7c 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.spvasm.expected.wgsl
@@ -39,7 +39,7 @@
 
     continuing {
       let x_39 : i32 = x_GLF_global_loop_count;
-      if ((true && (x_39 < 100))) {
+      if ((true & (x_39 < 100))) {
       } else {
         break;
       }
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.spvasm.expected.hlsl
index 1693e5c..525515f 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.spvasm.expected.hlsl
@@ -20,11 +20,7 @@
   while (true) {
     const int x_38 = b;
     const int x_40 = asint(x_6[4].x);
-    bool tint_tmp = (x_38 < x_40);
-    if (tint_tmp) {
-      tint_tmp = (a < 10);
-    }
-    if ((tint_tmp)) {
+    if (((x_38 < x_40) & (a < 10))) {
     } else {
       break;
     }
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.spvasm.expected.msl
index 2c946fe..45a90bc 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.spvasm.expected.msl
@@ -35,7 +35,7 @@
     int const x_38 = b;
     int const x_40 = x_6.x_GLF_uniform_int_values.arr[4].el;
     int const x_42 = a;
-    if (((x_38 < x_40) && (x_42 < 10))) {
+    if (((x_38 < x_40) & (x_42 < 10))) {
     } else {
       break;
     }
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.spvasm.expected.spvasm
index 94f92e8..0a7063b 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.spvasm.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 135
+; Bound: 133
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -64,7 +64,7 @@
       %int_5 = OpConstant %int 5
       %int_3 = OpConstant %int 3
    %main_out = OpTypeStruct %v4float
-        %123 = OpTypeFunction %void %main_out
+        %121 = OpTypeFunction %void %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %21
@@ -91,135 +91,130 @@
          %47 = OpLoad %int %46
          %48 = OpLoad %int %a
          %49 = OpSLessThan %bool %44 %47
-               OpSelectionMerge %50 None
-               OpBranchConditional %49 %51 %50
-         %51 = OpLabel
-         %53 = OpSLessThan %bool %48 %int_10
-               OpBranch %50
-         %50 = OpLabel
-         %54 = OpPhi %bool %49 %43 %53 %51
-               OpSelectionMerge %55 None
-               OpBranchConditional %54 %56 %57
-         %56 = OpLabel
-               OpBranch %55
-         %57 = OpLabel
-               OpBranch %41
+         %51 = OpSLessThan %bool %48 %int_10
+         %52 = OpLogicalAnd %bool %49 %51
+               OpSelectionMerge %53 None
+               OpBranchConditional %52 %54 %55
+         %54 = OpLabel
+               OpBranch %53
          %55 = OpLabel
-         %58 = OpLoad %int %c
-         %60 = OpSGreaterThan %bool %58 %int_5
-               OpSelectionMerge %61 None
-               OpBranchConditional %60 %62 %61
-         %62 = OpLabel
                OpBranch %41
-         %61 = OpLabel
-         %63 = OpLoad %int %a
+         %53 = OpLabel
+         %56 = OpLoad %int %c
+         %58 = OpSGreaterThan %bool %56 %int_5
+               OpSelectionMerge %59 None
+               OpBranchConditional %58 %60 %59
+         %60 = OpLabel
+               OpBranch %41
+         %59 = OpLabel
+         %61 = OpLoad %int %a
+         %62 = OpIAdd %int %61 %int_1
+               OpStore %a %62
+         %63 = OpLoad %int %c
          %64 = OpIAdd %int %63 %int_1
-               OpStore %a %64
-         %65 = OpLoad %int %c
+               OpStore %c %64
+         %65 = OpLoad %int %b
          %66 = OpIAdd %int %65 %int_1
-               OpStore %c %66
-         %67 = OpLoad %int %b
-         %68 = OpIAdd %int %67 %int_1
-               OpStore %b %68
+               OpStore %b %66
                OpBranch %42
          %42 = OpLabel
                OpBranch %40
          %41 = OpLabel
+               OpBranch %67
+         %67 = OpLabel
+               OpLoopMerge %68 %69 None
+               OpBranch %70
+         %70 = OpLabel
+         %71 = OpLoad %int %a
+         %72 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1
+         %73 = OpLoad %int %72
+         %74 = OpSLessThan %bool %71 %73
+               OpSelectionMerge %75 None
+               OpBranchConditional %74 %76 %77
+         %76 = OpLabel
+               OpBranch %75
+         %77 = OpLabel
+               OpBranch %68
+         %75 = OpLabel
                OpBranch %69
          %69 = OpLabel
-               OpLoopMerge %70 %71 None
-               OpBranch %72
-         %72 = OpLabel
-         %73 = OpLoad %int %a
-         %74 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1
-         %75 = OpLoad %int %74
-         %76 = OpSLessThan %bool %73 %75
-               OpSelectionMerge %77 None
-               OpBranchConditional %76 %78 %79
-         %78 = OpLabel
-               OpBranch %77
-         %79 = OpLabel
-               OpBranch %70
-         %77 = OpLabel
-               OpBranch %71
-         %71 = OpLabel
+         %78 = OpLoad %int %a
+         %79 = OpIAdd %int %78 %int_1
+               OpStore %a %79
+               OpBranch %67
+         %68 = OpLabel
          %80 = OpLoad %int %a
-         %81 = OpIAdd %int %80 %int_1
-               OpStore %a %81
-               OpBranch %69
-         %70 = OpLabel
-         %82 = OpLoad %int %a
-         %83 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1
-         %84 = OpLoad %int %83
-         %85 = OpIEqual %bool %82 %84
-               OpStore %x_77_phi %85
-               OpSelectionMerge %86 None
-               OpBranchConditional %85 %87 %86
-         %87 = OpLabel
-         %88 = OpLoad %int %b
-         %90 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_3
-         %91 = OpLoad %int %90
-         %92 = OpIEqual %bool %88 %91
-               OpStore %x_76 %92
-         %93 = OpLoad %bool %x_76
-               OpStore %x_77_phi %93
-               OpBranch %86
-         %86 = OpLabel
-         %94 = OpLoad %bool %x_77_phi
-               OpStore %x_84_phi %94
-               OpSelectionMerge %95 None
-               OpBranchConditional %94 %96 %95
-         %96 = OpLabel
-         %97 = OpLoad %int %c
-         %98 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_3
-         %99 = OpLoad %int %98
-        %100 = OpIEqual %bool %97 %99
-               OpStore %x_83 %100
-        %101 = OpLoad %bool %x_83
-               OpStore %x_84_phi %101
-               OpBranch %95
-         %95 = OpLabel
-        %102 = OpLoad %bool %x_84_phi
-               OpSelectionMerge %103 None
-               OpBranchConditional %102 %104 %105
-        %104 = OpLabel
-        %106 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_2
+         %81 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1
+         %82 = OpLoad %int %81
+         %83 = OpIEqual %bool %80 %82
+               OpStore %x_77_phi %83
+               OpSelectionMerge %84 None
+               OpBranchConditional %83 %85 %84
+         %85 = OpLabel
+         %86 = OpLoad %int %b
+         %88 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_3
+         %89 = OpLoad %int %88
+         %90 = OpIEqual %bool %86 %89
+               OpStore %x_76 %90
+         %91 = OpLoad %bool %x_76
+               OpStore %x_77_phi %91
+               OpBranch %84
+         %84 = OpLabel
+         %92 = OpLoad %bool %x_77_phi
+               OpStore %x_84_phi %92
+               OpSelectionMerge %93 None
+               OpBranchConditional %92 %94 %93
+         %94 = OpLabel
+         %95 = OpLoad %int %c
+         %96 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_3
+         %97 = OpLoad %int %96
+         %98 = OpIEqual %bool %95 %97
+               OpStore %x_83 %98
+         %99 = OpLoad %bool %x_83
+               OpStore %x_84_phi %99
+               OpBranch %93
+         %93 = OpLabel
+        %100 = OpLoad %bool %x_84_phi
+               OpSelectionMerge %101 None
+               OpBranchConditional %100 %102 %103
+        %102 = OpLabel
+        %104 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_2
+        %105 = OpLoad %int %104
+        %106 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0
         %107 = OpLoad %int %106
         %108 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0
         %109 = OpLoad %int %108
-        %110 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0
+        %110 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_2
         %111 = OpLoad %int %110
-        %112 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_2
-        %113 = OpLoad %int %112
-        %114 = OpConvertSToF %float %107
-        %115 = OpConvertSToF %float %109
-        %116 = OpConvertSToF %float %111
-        %117 = OpConvertSToF %float %113
-        %118 = OpCompositeConstruct %v4float %114 %115 %116 %117
-               OpStore %x_GLF_color %118
-               OpBranch %103
-        %105 = OpLabel
-        %119 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0
-        %120 = OpLoad %int %119
-        %121 = OpConvertSToF %float %120
-        %122 = OpCompositeConstruct %v4float %121 %121 %121 %121
-               OpStore %x_GLF_color %122
-               OpBranch %103
+        %112 = OpConvertSToF %float %105
+        %113 = OpConvertSToF %float %107
+        %114 = OpConvertSToF %float %109
+        %115 = OpConvertSToF %float %111
+        %116 = OpCompositeConstruct %v4float %112 %113 %114 %115
+               OpStore %x_GLF_color %116
+               OpBranch %101
         %103 = OpLabel
+        %117 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0
+        %118 = OpLoad %int %117
+        %119 = OpConvertSToF %float %118
+        %120 = OpCompositeConstruct %v4float %119 %119 %119 %119
+               OpStore %x_GLF_color %120
+               OpBranch %101
+        %101 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %123
+%tint_symbol_2 = OpFunction %void None %121
 %tint_symbol = OpFunctionParameter %main_out
-        %127 = OpLabel
-        %128 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %128
+        %125 = OpLabel
+        %126 = OpCompositeExtract %v4float %tint_symbol 0
+               OpStore %tint_symbol_1 %126
                OpReturn
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %130 = OpLabel
-        %131 = OpFunctionCall %void %main_1
-        %133 = OpLoad %v4float %x_GLF_color
-        %134 = OpCompositeConstruct %main_out %133
-        %132 = OpFunctionCall %void %tint_symbol_2 %134
+        %128 = OpLabel
+        %129 = OpFunctionCall %void %main_1
+        %131 = OpLoad %v4float %x_GLF_color
+        %132 = OpCompositeConstruct %main_out %131
+        %130 = OpFunctionCall %void %tint_symbol_2 %132
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.spvasm.expected.wgsl
index 5a769f4..5501dd7 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.spvasm.expected.wgsl
@@ -26,7 +26,7 @@
     let x_38 : i32 = b;
     let x_40 : i32 = x_6.x_GLF_uniform_int_values[4];
     let x_42 : i32 = a;
-    if (((x_38 < x_40) && (x_42 < 10))) {
+    if (((x_38 < x_40) & (x_42 < 10))) {
     } else {
       break;
     }
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.spvasm.expected.hlsl
index b3077db..32a0a50 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.spvasm.expected.hlsl
@@ -23,11 +23,7 @@
     if (true) {
       const uint scalar_offset = ((16u * uint(0))) / 4;
       const int x_46 = asint(x_6[scalar_offset / 4][scalar_offset % 4]);
-      bool tint_tmp = (x_46 == 1);
-      if (tint_tmp) {
-        tint_tmp = (index <= 1);
-      }
-      x_51 = !((tint_tmp));
+      x_51 = !(((x_46 == 1) & (index <= 1)));
       x_52_phi = x_51;
     }
     if (!(x_52_phi)) {
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.spvasm.expected.msl
index 028ec7e..49fff4f 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.spvasm.expected.msl
@@ -41,7 +41,7 @@
     if (true) {
       int const x_46 = x_6.x_GLF_uniform_int_values.arr[0].el;
       int const x_48 = index;
-      x_51 = !(((x_46 == 1) && (x_48 <= 1)));
+      x_51 = !(((x_46 == 1) & (x_48 <= 1)));
       x_52_phi = x_51;
     }
     bool const x_52 = x_52_phi;
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.spvasm.expected.spvasm
index 35f7480..8425cb2 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.spvasm.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 141
+; Bound: 139
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -70,7 +70,7 @@
       %int_0 = OpConstant %int 0
       %int_4 = OpConstant %int 4
    %main_out = OpTypeStruct %v4float
-        %129 = OpTypeFunction %void %main_out
+        %127 = OpTypeFunction %void %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
         %arr = OpVariable %_ptr_Function__arr_int_uint_3 Function %23
@@ -103,122 +103,117 @@
          %58 = OpLoad %int %57
          %59 = OpLoad %int %index
          %61 = OpIEqual %bool %58 %int_1
-               OpSelectionMerge %62 None
-               OpBranchConditional %61 %63 %62
-         %63 = OpLabel
-         %64 = OpSLessThanEqual %bool %59 %int_1
-               OpBranch %62
-         %62 = OpLabel
-         %65 = OpPhi %bool %61 %55 %64 %63
-         %60 = OpLogicalNot %bool %65
+         %62 = OpSLessThanEqual %bool %59 %int_1
+         %63 = OpLogicalAnd %bool %61 %62
+         %60 = OpLogicalNot %bool %63
                OpStore %x_51 %60
-         %66 = OpLoad %bool %x_51
-               OpStore %x_52_phi %66
+         %64 = OpLoad %bool %x_51
+               OpStore %x_52_phi %64
                OpBranch %54
          %54 = OpLabel
-         %67 = OpLoad %bool %x_52_phi
-         %68 = OpLogicalNot %bool %67
-               OpSelectionMerge %69 None
-               OpBranchConditional %68 %70 %71
-         %70 = OpLabel
-               OpBranch %69
-         %71 = OpLabel
-               OpBranch %48
+         %65 = OpLoad %bool %x_52_phi
+         %66 = OpLogicalNot %bool %65
+               OpSelectionMerge %67 None
+               OpBranchConditional %66 %68 %69
+         %68 = OpLabel
+               OpBranch %67
          %69 = OpLabel
-         %72 = OpLoad %int %index
-         %73 = OpAccessChain %_ptr_Function_int %arr %72
-         %74 = OpLoad %int %73
-         %75 = OpAccessChain %_ptr_Function_int %arr %72
-         %76 = OpIAdd %int %74 %int_1
-               OpStore %75 %76
-         %77 = OpLoad %int %index
-         %78 = OpIAdd %int %77 %int_1
-               OpStore %index %78
+               OpBranch %48
+         %67 = OpLabel
+         %70 = OpLoad %int %index
+         %71 = OpAccessChain %_ptr_Function_int %arr %70
+         %72 = OpLoad %int %71
+         %73 = OpAccessChain %_ptr_Function_int %arr %70
+         %74 = OpIAdd %int %72 %int_1
+               OpStore %73 %74
+         %75 = OpLoad %int %index
+         %76 = OpIAdd %int %75 %int_1
+               OpStore %index %76
                OpBranch %49
          %49 = OpLabel
                OpBranch %47
          %48 = OpLabel
-         %79 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1
+         %77 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1
+         %78 = OpLoad %int %77
+         %79 = OpAccessChain %_ptr_Function_int %arr %78
          %80 = OpLoad %int %79
-         %81 = OpAccessChain %_ptr_Function_int %arr %80
+         %81 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_3
          %82 = OpLoad %int %81
-         %83 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_3
-         %84 = OpLoad %int %83
-         %85 = OpIEqual %bool %82 %84
-               OpStore %x_77_phi %85
-               OpSelectionMerge %86 None
-               OpBranchConditional %85 %87 %86
-         %87 = OpLabel
-         %88 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0
+         %83 = OpIEqual %bool %80 %82
+               OpStore %x_77_phi %83
+               OpSelectionMerge %84 None
+               OpBranchConditional %83 %85 %84
+         %85 = OpLabel
+         %86 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0
+         %87 = OpLoad %int %86
+         %88 = OpAccessChain %_ptr_Function_int %arr %87
          %89 = OpLoad %int %88
-         %90 = OpAccessChain %_ptr_Function_int %arr %89
-         %91 = OpLoad %int %90
-         %93 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_4
-         %94 = OpLoad %int %93
-         %95 = OpIEqual %bool %91 %94
-               OpStore %x_76 %95
-         %96 = OpLoad %bool %x_76
-               OpStore %x_77_phi %96
-               OpBranch %86
-         %86 = OpLabel
-         %97 = OpLoad %bool %x_77_phi
-               OpStore %x_87_phi %97
-               OpSelectionMerge %98 None
-               OpBranchConditional %97 %99 %98
-         %99 = OpLabel
-        %100 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_3
+         %91 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_4
+         %92 = OpLoad %int %91
+         %93 = OpIEqual %bool %89 %92
+               OpStore %x_76 %93
+         %94 = OpLoad %bool %x_76
+               OpStore %x_77_phi %94
+               OpBranch %84
+         %84 = OpLabel
+         %95 = OpLoad %bool %x_77_phi
+               OpStore %x_87_phi %95
+               OpSelectionMerge %96 None
+               OpBranchConditional %95 %97 %96
+         %97 = OpLabel
+         %98 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_3
+         %99 = OpLoad %int %98
+        %100 = OpAccessChain %_ptr_Function_int %arr %99
         %101 = OpLoad %int %100
-        %102 = OpAccessChain %_ptr_Function_int %arr %101
+        %102 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_2
         %103 = OpLoad %int %102
-        %104 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_2
-        %105 = OpLoad %int %104
-        %106 = OpIEqual %bool %103 %105
-               OpStore %x_86 %106
-        %107 = OpLoad %bool %x_86
-               OpStore %x_87_phi %107
-               OpBranch %98
-         %98 = OpLabel
-        %108 = OpLoad %bool %x_87_phi
-               OpSelectionMerge %109 None
-               OpBranchConditional %108 %110 %111
-        %110 = OpLabel
-        %112 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0
+        %104 = OpIEqual %bool %101 %103
+               OpStore %x_86 %104
+        %105 = OpLoad %bool %x_86
+               OpStore %x_87_phi %105
+               OpBranch %96
+         %96 = OpLabel
+        %106 = OpLoad %bool %x_87_phi
+               OpSelectionMerge %107 None
+               OpBranchConditional %106 %108 %109
+        %108 = OpLabel
+        %110 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0
+        %111 = OpLoad %int %110
+        %112 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1
         %113 = OpLoad %int %112
         %114 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1
         %115 = OpLoad %int %114
-        %116 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1
+        %116 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0
         %117 = OpLoad %int %116
-        %118 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0
-        %119 = OpLoad %int %118
-        %120 = OpConvertSToF %float %113
-        %121 = OpConvertSToF %float %115
-        %122 = OpConvertSToF %float %117
-        %123 = OpConvertSToF %float %119
-        %124 = OpCompositeConstruct %v4float %120 %121 %122 %123
-               OpStore %x_GLF_color %124
-               OpBranch %109
-        %111 = OpLabel
-        %125 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1
-        %126 = OpLoad %int %125
-        %127 = OpConvertSToF %float %126
-        %128 = OpCompositeConstruct %v4float %127 %127 %127 %127
-               OpStore %x_GLF_color %128
-               OpBranch %109
+        %118 = OpConvertSToF %float %111
+        %119 = OpConvertSToF %float %113
+        %120 = OpConvertSToF %float %115
+        %121 = OpConvertSToF %float %117
+        %122 = OpCompositeConstruct %v4float %118 %119 %120 %121
+               OpStore %x_GLF_color %122
+               OpBranch %107
         %109 = OpLabel
+        %123 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1
+        %124 = OpLoad %int %123
+        %125 = OpConvertSToF %float %124
+        %126 = OpCompositeConstruct %v4float %125 %125 %125 %125
+               OpStore %x_GLF_color %126
+               OpBranch %107
+        %107 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %129
+%tint_symbol_2 = OpFunction %void None %127
 %tint_symbol = OpFunctionParameter %main_out
-        %133 = OpLabel
-        %134 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %134
+        %131 = OpLabel
+        %132 = OpCompositeExtract %v4float %tint_symbol 0
+               OpStore %tint_symbol_1 %132
                OpReturn
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %136 = OpLabel
-        %137 = OpFunctionCall %void %main_1
-        %139 = OpLoad %v4float %x_GLF_color
-        %140 = OpCompositeConstruct %main_out %139
-        %138 = OpFunctionCall %void %tint_symbol_2 %140
+        %134 = OpLabel
+        %135 = OpFunctionCall %void %main_1
+        %137 = OpLoad %v4float %x_GLF_color
+        %138 = OpCompositeConstruct %main_out %137
+        %136 = OpFunctionCall %void %tint_symbol_2 %138
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.spvasm.expected.wgsl
index 3e3cb21..68b192c 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.spvasm.expected.wgsl
@@ -28,7 +28,7 @@
     if (true) {
       let x_46 : i32 = x_6.x_GLF_uniform_int_values[0];
       let x_48 : i32 = index;
-      x_51 = !(((x_46 == 1) && (x_48 <= 1)));
+      x_51 = !(((x_46 == 1) & (x_48 <= 1)));
       x_52_phi = x_51;
     }
     let x_52 : bool = x_52_phi;
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.spvasm.expected.hlsl
index a507a03..98be400 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.spvasm.expected.hlsl
@@ -60,11 +60,7 @@
   const uint scalar_offset_3 = ((16u * uint(0))) / 4;
   const int x_104 = asint(x_10[scalar_offset_3 / 4][scalar_offset_3 % 4]);
   const float2x3 x_108 = float2x3(float3(float(x_89), float(x_92), float(x_95)), float3(float(x_98), float(x_101), float(x_104)));
-  bool tint_tmp = all((x_87[0u] == x_108[0u]));
-  if (tint_tmp) {
-    tint_tmp = all((x_87[1u] == x_108[1u]));
-  }
-  if ((tint_tmp)) {
+  if ((all((x_87[0u] == x_108[0u])) & all((x_87[1u] == x_108[1u])))) {
     const uint scalar_offset_4 = ((16u * uint(0))) / 4;
     const int x_122 = asint(x_10[scalar_offset_4 / 4][scalar_offset_4 % 4]);
     const int x_125 = asint(x_10[1].x);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.spvasm.expected.msl
index 6b34014..5bef25a 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.spvasm.expected.msl
@@ -75,7 +75,7 @@
   int const x_101 = x_10.x_GLF_uniform_int_values.arr[1].el;
   int const x_104 = x_10.x_GLF_uniform_int_values.arr[0].el;
   float2x3 const x_108 = float2x3(float3(float(x_89), float(x_92), float(x_95)), float3(float(x_98), float(x_101), float(x_104)));
-  if ((all((x_87[0u] == x_108[0u])) && all((x_87[1u] == x_108[1u])))) {
+  if ((all((x_87[0u] == x_108[0u])) & all((x_87[1u] == x_108[1u])))) {
     int const x_122 = x_10.x_GLF_uniform_int_values.arr[0].el;
     int const x_125 = x_10.x_GLF_uniform_int_values.arr[1].el;
     int const x_128 = x_10.x_GLF_uniform_int_values.arr[1].el;
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.spvasm.expected.spvasm
index c421db8..06a7de4 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.spvasm.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 164
+; Bound: 162
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -89,7 +89,7 @@
        %true = OpConstantTrue %bool
      %v3bool = OpTypeVector %bool 3
    %main_out = OpTypeStruct %v4float
-        %151 = OpTypeFunction %void %main_out
+        %149 = OpTypeFunction %void %main_out
      %main_1 = OpFunction %void None %23
          %26 = OpLabel
         %m23 = OpVariable %_ptr_Function_mat2v3float Function %31
@@ -192,58 +192,53 @@
         %121 = OpCompositeExtract %v3float %118 0
         %122 = OpFOrdEqual %v3bool %120 %121
         %119 = OpAll %bool %122
-               OpSelectionMerge %124 None
-               OpBranchConditional %119 %125 %124
-        %125 = OpLabel
-        %127 = OpCompositeExtract %v3float %97 1
-        %128 = OpCompositeExtract %v3float %118 1
-        %129 = OpFOrdEqual %v3bool %127 %128
-        %126 = OpAll %bool %129
-               OpBranch %124
-        %124 = OpLabel
-        %130 = OpPhi %bool %119 %45 %126 %125
-               OpSelectionMerge %131 None
-               OpBranchConditional %130 %132 %133
-        %132 = OpLabel
-        %134 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0 %int_0
+        %125 = OpCompositeExtract %v3float %97 1
+        %126 = OpCompositeExtract %v3float %118 1
+        %127 = OpFOrdEqual %v3bool %125 %126
+        %124 = OpAll %bool %127
+        %128 = OpLogicalAnd %bool %119 %124
+               OpSelectionMerge %129 None
+               OpBranchConditional %128 %130 %131
+        %130 = OpLabel
+        %132 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0 %int_0
+        %133 = OpLoad %int %132
+        %134 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0 %int_1
         %135 = OpLoad %int %134
         %136 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0 %int_1
         %137 = OpLoad %int %136
-        %138 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0 %int_1
+        %138 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0 %int_0
         %139 = OpLoad %int %138
-        %140 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0 %int_0
-        %141 = OpLoad %int %140
-        %142 = OpConvertSToF %float %135
-        %143 = OpConvertSToF %float %137
-        %144 = OpConvertSToF %float %139
-        %145 = OpConvertSToF %float %141
-        %146 = OpCompositeConstruct %v4float %142 %143 %144 %145
-               OpStore %x_GLF_color %146
-               OpBranch %131
-        %133 = OpLabel
-        %147 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0 %int_1
-        %148 = OpLoad %int %147
-        %149 = OpConvertSToF %float %148
-        %150 = OpCompositeConstruct %v4float %149 %149 %149 %149
-               OpStore %x_GLF_color %150
-               OpBranch %131
+        %140 = OpConvertSToF %float %133
+        %141 = OpConvertSToF %float %135
+        %142 = OpConvertSToF %float %137
+        %143 = OpConvertSToF %float %139
+        %144 = OpCompositeConstruct %v4float %140 %141 %142 %143
+               OpStore %x_GLF_color %144
+               OpBranch %129
         %131 = OpLabel
+        %145 = OpAccessChain %_ptr_Uniform_int %x_10 %uint_0 %int_1
+        %146 = OpLoad %int %145
+        %147 = OpConvertSToF %float %146
+        %148 = OpCompositeConstruct %v4float %147 %147 %147 %147
+               OpStore %x_GLF_color %148
+               OpBranch %129
+        %129 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %151
+%tint_symbol_3 = OpFunction %void None %149
 %tint_symbol_1 = OpFunctionParameter %main_out
-        %155 = OpLabel
-        %156 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %156
+        %153 = OpLabel
+        %154 = OpCompositeExtract %v4float %tint_symbol_1 0
+               OpStore %tint_symbol_2 %154
                OpReturn
                OpFunctionEnd
        %main = OpFunction %void None %23
-        %158 = OpLabel
-        %159 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %159
-        %160 = OpFunctionCall %void %main_1
-        %162 = OpLoad %v4float %x_GLF_color
-        %163 = OpCompositeConstruct %main_out %162
-        %161 = OpFunctionCall %void %tint_symbol_3 %163
+        %156 = OpLabel
+        %157 = OpLoad %v4float %tint_symbol
+               OpStore %gl_FragCoord %157
+        %158 = OpFunctionCall %void %main_1
+        %160 = OpLoad %v4float %x_GLF_color
+        %161 = OpCompositeConstruct %main_out %160
+        %159 = OpFunctionCall %void %tint_symbol_3 %161
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.spvasm.expected.wgsl
index b9b8a36..73908f5 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.spvasm.expected.wgsl
@@ -68,7 +68,7 @@
   let x_101 : i32 = x_10.x_GLF_uniform_int_values[1];
   let x_104 : i32 = x_10.x_GLF_uniform_int_values[0];
   let x_108 : mat2x3<f32> = mat2x3<f32>(vec3<f32>(f32(x_89), f32(x_92), f32(x_95)), vec3<f32>(f32(x_98), f32(x_101), f32(x_104)));
-  if ((all((x_87[0u] == x_108[0u])) && all((x_87[1u] == x_108[1u])))) {
+  if ((all((x_87[0u] == x_108[0u])) & all((x_87[1u] == x_108[1u])))) {
     let x_122 : i32 = x_10.x_GLF_uniform_int_values[0];
     let x_125 : i32 = x_10.x_GLF_uniform_int_values[1];
     let x_128 : i32 = x_10.x_GLF_uniform_int_values[1];
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.spvasm.expected.hlsl
index 7362602..9d26f7b 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.spvasm.expected.hlsl
@@ -14,11 +14,7 @@
   const int x_38 = asint(x_6[scalar_offset_1 / 4][scalar_offset_1 % 4]);
   const float x_39 = float(x_38);
   const float2x2 x_42 = float2x2(float2(x_39, 0.0f), float2(0.0f, x_39));
-  bool tint_tmp = all((x_36[0u] == x_42[0u]));
-  if (tint_tmp) {
-    tint_tmp = all((x_36[1u] == x_42[1u]));
-  }
-  if ((tint_tmp)) {
+  if ((all((x_36[0u] == x_42[0u])) & all((x_36[1u] == x_42[1u])))) {
     const uint scalar_offset_2 = ((16u * uint(0))) / 4;
     const int x_56 = asint(x_6[scalar_offset_2 / 4][scalar_offset_2 % 4]);
     const int x_59 = asint(x_6[1].x);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.spvasm.expected.msl
index 4cfd1b7..295a024 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.spvasm.expected.msl
@@ -27,7 +27,7 @@
   int const x_38 = x_6.x_GLF_uniform_int_values.arr[0].el;
   float const x_39 = float(x_38);
   float2x2 const x_42 = float2x2(float2(x_39, 0.0f), float2(0.0f, x_39));
-  if ((all((x_36[0u] == x_42[0u])) && all((x_36[1u] == x_42[1u])))) {
+  if ((all((x_36[0u] == x_42[0u])) & all((x_36[1u] == x_42[1u])))) {
     int const x_56 = x_6.x_GLF_uniform_int_values.arr[0].el;
     int const x_59 = x_6.x_GLF_uniform_int_values.arr[1].el;
     int const x_62 = x_6.x_GLF_uniform_int_values.arr[1].el;
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.spvasm.expected.spvasm
index b279bcf..ee3c7b8 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.spvasm.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 90
+; Bound: 88
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -56,7 +56,7 @@
      %uint_1 = OpConstant %uint 1
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %78 = OpTypeFunction %void %main_out
+         %76 = OpTypeFunction %void %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %m = OpVariable %_ptr_Function_mat2v2float Function %23
@@ -80,56 +80,51 @@
          %46 = OpCompositeExtract %v2float %42 0
          %47 = OpFOrdEqual %v2bool %45 %46
          %43 = OpAll %bool %47
-               OpSelectionMerge %49 None
-               OpBranchConditional %43 %50 %49
-         %50 = OpLabel
-         %53 = OpCompositeExtract %v2float %36 1
-         %54 = OpCompositeExtract %v2float %42 1
-         %55 = OpFOrdEqual %v2bool %53 %54
-         %51 = OpAll %bool %55
-               OpBranch %49
-         %49 = OpLabel
-         %56 = OpPhi %bool %43 %18 %51 %50
-               OpSelectionMerge %57 None
-               OpBranchConditional %56 %58 %59
-         %58 = OpLabel
-         %60 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0
-         %61 = OpLoad %int %60
+         %51 = OpCompositeExtract %v2float %36 1
+         %52 = OpCompositeExtract %v2float %42 1
+         %53 = OpFOrdEqual %v2bool %51 %52
+         %49 = OpAll %bool %53
+         %54 = OpLogicalAnd %bool %43 %49
+               OpSelectionMerge %55 None
+               OpBranchConditional %54 %56 %57
+         %56 = OpLabel
+         %58 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0
+         %59 = OpLoad %int %58
+         %61 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1
+         %62 = OpLoad %int %61
          %63 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1
          %64 = OpLoad %int %63
-         %65 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1
+         %65 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0
          %66 = OpLoad %int %65
-         %67 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0
-         %68 = OpLoad %int %67
-         %69 = OpConvertSToF %float %61
-         %70 = OpConvertSToF %float %64
-         %71 = OpConvertSToF %float %66
-         %72 = OpConvertSToF %float %68
-         %73 = OpCompositeConstruct %v4float %69 %70 %71 %72
-               OpStore %x_GLF_color %73
-               OpBranch %57
-         %59 = OpLabel
-         %74 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1
-         %75 = OpLoad %int %74
-         %76 = OpConvertSToF %float %75
-         %77 = OpCompositeConstruct %v4float %76 %76 %76 %76
-               OpStore %x_GLF_color %77
-               OpBranch %57
+         %67 = OpConvertSToF %float %59
+         %68 = OpConvertSToF %float %62
+         %69 = OpConvertSToF %float %64
+         %70 = OpConvertSToF %float %66
+         %71 = OpCompositeConstruct %v4float %67 %68 %69 %70
+               OpStore %x_GLF_color %71
+               OpBranch %55
          %57 = OpLabel
+         %72 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1
+         %73 = OpLoad %int %72
+         %74 = OpConvertSToF %float %73
+         %75 = OpCompositeConstruct %v4float %74 %74 %74 %74
+               OpStore %x_GLF_color %75
+               OpBranch %55
+         %55 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %78
+%tint_symbol_2 = OpFunction %void None %76
 %tint_symbol = OpFunctionParameter %main_out
-         %82 = OpLabel
-         %83 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %83
+         %80 = OpLabel
+         %81 = OpCompositeExtract %v4float %tint_symbol 0
+               OpStore %tint_symbol_1 %81
                OpReturn
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %85 = OpLabel
-         %86 = OpFunctionCall %void %main_1
-         %88 = OpLoad %v4float %x_GLF_color
-         %89 = OpCompositeConstruct %main_out %88
-         %87 = OpFunctionCall %void %tint_symbol_2 %89
+         %83 = OpLabel
+         %84 = OpFunctionCall %void %main_1
+         %86 = OpLoad %v4float %x_GLF_color
+         %87 = OpCompositeConstruct %main_out %86
+         %85 = OpFunctionCall %void %tint_symbol_2 %87
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.spvasm.expected.wgsl
index 510e118..0eeddbc 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.spvasm.expected.wgsl
@@ -18,7 +18,7 @@
   let x_38 : i32 = x_6.x_GLF_uniform_int_values[0];
   let x_39 : f32 = f32(x_38);
   let x_42 : mat2x2<f32> = mat2x2<f32>(vec2<f32>(x_39, 0.0), vec2<f32>(0.0, x_39));
-  if ((all((x_36[0u] == x_42[0u])) && all((x_36[1u] == x_42[1u])))) {
+  if ((all((x_36[0u] == x_42[0u])) & all((x_36[1u] == x_42[1u])))) {
     let x_56 : i32 = x_6.x_GLF_uniform_int_values[0];
     let x_59 : i32 = x_6.x_GLF_uniform_int_values[1];
     let x_62 : i32 = x_6.x_GLF_uniform_int_values[1];
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.spvasm.expected.hlsl
index 2327dda..39c1dc1 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.spvasm.expected.hlsl
@@ -97,19 +97,7 @@
   const uint scalar_offset_8 = ((16u * uint(0))) / 4;
   const int x_77 = asint(x_16[scalar_offset_8 / 4][scalar_offset_8 % 4]);
   const float4x2 x_83 = float4x2(float2(float(x_56), float(x_59)), float2(float(x_62), float(x_65)), float2(float(x_68), float(x_71)), float2(float(x_74), float(x_77)));
-  bool tint_tmp_2 = all((x_54[0u] == x_83[0u]));
-  if (tint_tmp_2) {
-    tint_tmp_2 = all((x_54[1u] == x_83[1u]));
-  }
-  bool tint_tmp_1 = (tint_tmp_2);
-  if (tint_tmp_1) {
-    tint_tmp_1 = all((x_54[2u] == x_83[2u]));
-  }
-  bool tint_tmp = (tint_tmp_1);
-  if (tint_tmp) {
-    tint_tmp = all((x_54[3u] == x_83[3u]));
-  }
-  if ((tint_tmp)) {
+  if ((((all((x_54[0u] == x_83[0u])) & all((x_54[1u] == x_83[1u]))) & all((x_54[2u] == x_83[2u]))) & all((x_54[3u] == x_83[3u])))) {
     const int x_107 = asint(x_16[3].x);
     const uint scalar_offset_9 = ((16u * uint(0))) / 4;
     const int x_110 = asint(x_16[scalar_offset_9 / 4][scalar_offset_9 % 4]);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.spvasm.expected.msl
index 5cd7a35..1a1463b 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.spvasm.expected.msl
@@ -107,7 +107,7 @@
   int const x_74 = x_16.x_GLF_uniform_int_values.arr[0].el;
   int const x_77 = x_16.x_GLF_uniform_int_values.arr[0].el;
   float4x2 const x_83 = float4x2(float2(float(x_56), float(x_59)), float2(float(x_62), float(x_65)), float2(float(x_68), float(x_71)), float2(float(x_74), float(x_77)));
-  if ((((all((x_54[0u] == x_83[0u])) && all((x_54[1u] == x_83[1u]))) && all((x_54[2u] == x_83[2u]))) && all((x_54[3u] == x_83[3u])))) {
+  if ((((all((x_54[0u] == x_83[0u])) & all((x_54[1u] == x_83[1u]))) & all((x_54[2u] == x_83[2u]))) & all((x_54[3u] == x_83[3u])))) {
     int const x_107 = x_16.x_GLF_uniform_int_values.arr[3].el;
     int const x_110 = x_16.x_GLF_uniform_int_values.arr[0].el;
     int const x_113 = x_16.x_GLF_uniform_int_values.arr[0].el;
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.spvasm.expected.spvasm
index b4e8fcf..c0ceb3e 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.spvasm.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 214
+; Bound: 208
 ; Schema: 0
                OpCapability Shader
          %92 = OpExtInstImport "GLSL.std.450"
@@ -110,7 +110,7 @@
      %uint_2 = OpConstant %uint 2
      %uint_3 = OpConstant %uint 3
    %main_out = OpTypeStruct %v4float
-        %201 = OpTypeFunction %void %main_out
+        %195 = OpTypeFunction %void %main_out
   %func0_i1_ = OpFunction %void None %31
           %x = OpFunctionParameter %_ptr_Function_int
          %36 = OpLabel
@@ -252,78 +252,63 @@
         %155 = OpCompositeExtract %v2float %152 0
         %156 = OpFOrdEqual %v2bool %154 %155
         %153 = OpAll %bool %156
-               OpSelectionMerge %158 None
-               OpBranchConditional %153 %159 %158
-        %159 = OpLabel
-        %161 = OpCompositeExtract %v2float %122 1
-        %162 = OpCompositeExtract %v2float %152 1
-        %163 = OpFOrdEqual %v2bool %161 %162
-        %160 = OpAll %bool %163
-               OpBranch %158
-        %158 = OpLabel
-        %164 = OpPhi %bool %153 %117 %160 %159
-               OpSelectionMerge %165 None
-               OpBranchConditional %164 %166 %165
-        %166 = OpLabel
-        %169 = OpCompositeExtract %v2float %122 2
-        %170 = OpCompositeExtract %v2float %152 2
-        %171 = OpFOrdEqual %v2bool %169 %170
-        %167 = OpAll %bool %171
-               OpBranch %165
-        %165 = OpLabel
-        %172 = OpPhi %bool %164 %158 %167 %166
-               OpSelectionMerge %173 None
-               OpBranchConditional %172 %174 %173
-        %174 = OpLabel
-        %177 = OpCompositeExtract %v2float %122 3
-        %178 = OpCompositeExtract %v2float %152 3
-        %179 = OpFOrdEqual %v2bool %177 %178
-        %175 = OpAll %bool %179
-               OpBranch %173
-        %173 = OpLabel
-        %180 = OpPhi %bool %172 %165 %175 %174
-               OpSelectionMerge %181 None
-               OpBranchConditional %180 %182 %183
-        %182 = OpLabel
+        %159 = OpCompositeExtract %v2float %122 1
+        %160 = OpCompositeExtract %v2float %152 1
+        %161 = OpFOrdEqual %v2bool %159 %160
+        %158 = OpAll %bool %161
+        %162 = OpLogicalAnd %bool %153 %158
+        %165 = OpCompositeExtract %v2float %122 2
+        %166 = OpCompositeExtract %v2float %152 2
+        %167 = OpFOrdEqual %v2bool %165 %166
+        %163 = OpAll %bool %167
+        %168 = OpLogicalAnd %bool %162 %163
+        %171 = OpCompositeExtract %v2float %122 3
+        %172 = OpCompositeExtract %v2float %152 3
+        %173 = OpFOrdEqual %v2bool %171 %172
+        %169 = OpAll %bool %173
+        %174 = OpLogicalAnd %bool %168 %169
+               OpSelectionMerge %175 None
+               OpBranchConditional %174 %176 %177
+        %176 = OpLabel
+        %178 = OpAccessChain %_ptr_Uniform_int %x_16 %uint_0 %int_3
+        %179 = OpLoad %int %178
+        %180 = OpAccessChain %_ptr_Uniform_int %x_16 %uint_0 %int_0
+        %181 = OpLoad %int %180
+        %182 = OpAccessChain %_ptr_Uniform_int %x_16 %uint_0 %int_0
+        %183 = OpLoad %int %182
         %184 = OpAccessChain %_ptr_Uniform_int %x_16 %uint_0 %int_3
         %185 = OpLoad %int %184
-        %186 = OpAccessChain %_ptr_Uniform_int %x_16 %uint_0 %int_0
-        %187 = OpLoad %int %186
-        %188 = OpAccessChain %_ptr_Uniform_int %x_16 %uint_0 %int_0
-        %189 = OpLoad %int %188
-        %190 = OpAccessChain %_ptr_Uniform_int %x_16 %uint_0 %int_3
-        %191 = OpLoad %int %190
-        %192 = OpConvertSToF %float %185
-        %193 = OpConvertSToF %float %187
-        %194 = OpConvertSToF %float %189
-        %195 = OpConvertSToF %float %191
-        %196 = OpCompositeConstruct %v4float %192 %193 %194 %195
-               OpStore %x_GLF_color %196
-               OpBranch %181
-        %183 = OpLabel
-        %197 = OpAccessChain %_ptr_Uniform_int %x_16 %uint_0 %int_0
-        %198 = OpLoad %int %197
-        %199 = OpConvertSToF %float %198
-        %200 = OpCompositeConstruct %v4float %199 %199 %199 %199
-               OpStore %x_GLF_color %200
-               OpBranch %181
-        %181 = OpLabel
+        %186 = OpConvertSToF %float %179
+        %187 = OpConvertSToF %float %181
+        %188 = OpConvertSToF %float %183
+        %189 = OpConvertSToF %float %185
+        %190 = OpCompositeConstruct %v4float %186 %187 %188 %189
+               OpStore %x_GLF_color %190
+               OpBranch %175
+        %177 = OpLabel
+        %191 = OpAccessChain %_ptr_Uniform_int %x_16 %uint_0 %int_0
+        %192 = OpLoad %int %191
+        %193 = OpConvertSToF %float %192
+        %194 = OpCompositeConstruct %v4float %193 %193 %193 %193
+               OpStore %x_GLF_color %194
+               OpBranch %175
+        %175 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %201
+%tint_symbol_3 = OpFunction %void None %195
 %tint_symbol_1 = OpFunctionParameter %main_out
-        %205 = OpLabel
-        %206 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %206
+        %199 = OpLabel
+        %200 = OpCompositeExtract %v4float %tint_symbol_1 0
+               OpStore %tint_symbol_2 %200
                OpReturn
                OpFunctionEnd
        %main = OpFunction %void None %104
-        %208 = OpLabel
-        %209 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %209
-        %210 = OpFunctionCall %void %main_1
-        %212 = OpLoad %v4float %x_GLF_color
-        %213 = OpCompositeConstruct %main_out %212
-        %211 = OpFunctionCall %void %tint_symbol_3 %213
+        %202 = OpLabel
+        %203 = OpLoad %v4float %tint_symbol
+               OpStore %gl_FragCoord %203
+        %204 = OpFunctionCall %void %main_1
+        %206 = OpLoad %v4float %x_GLF_color
+        %207 = OpCompositeConstruct %main_out %206
+        %205 = OpFunctionCall %void %tint_symbol_3 %207
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.spvasm.expected.wgsl
index 7e9de86..a847c9a 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.spvasm.expected.wgsl
@@ -106,7 +106,7 @@
   let x_74 : i32 = x_16.x_GLF_uniform_int_values[0];
   let x_77 : i32 = x_16.x_GLF_uniform_int_values[0];
   let x_83 : mat4x2<f32> = mat4x2<f32>(vec2<f32>(f32(x_56), f32(x_59)), vec2<f32>(f32(x_62), f32(x_65)), vec2<f32>(f32(x_68), f32(x_71)), vec2<f32>(f32(x_74), f32(x_77)));
-  if ((((all((x_54[0u] == x_83[0u])) && all((x_54[1u] == x_83[1u]))) && all((x_54[2u] == x_83[2u]))) && all((x_54[3u] == x_83[3u])))) {
+  if ((((all((x_54[0u] == x_83[0u])) & all((x_54[1u] == x_83[1u]))) & all((x_54[2u] == x_83[2u]))) & all((x_54[3u] == x_83[3u])))) {
     let x_107 : i32 = x_16.x_GLF_uniform_int_values[3];
     let x_110 : i32 = x_16.x_GLF_uniform_int_values[0];
     let x_113 : i32 = x_16.x_GLF_uniform_int_values[0];
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.spvasm.expected.hlsl
index 132221e..223f8fa 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.spvasm.expected.hlsl
@@ -12,11 +12,7 @@
   c = pow(a, b);
   const float x_30 = c;
   x_GLF_color = float4(x_30, x_30, x_30, x_30);
-  bool tint_tmp = (a == -1.0f);
-  if (tint_tmp) {
-    tint_tmp = (b == 1.700000048f);
-  }
-  if ((tint_tmp)) {
+  if (((a == -1.0f) & (b == 1.700000048f))) {
     const uint scalar_offset = ((16u * uint(0))) / 4;
     const float x_41 = asfloat(x_8[scalar_offset / 4][scalar_offset % 4]);
     const float x_43 = asfloat(x_8[1].x);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.spvasm.expected.msl
index 8000e84..d5cbb31 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.spvasm.expected.msl
@@ -31,7 +31,7 @@
   *(tint_symbol_4) = float4(x_30, x_30, x_30, x_30);
   float const x_32 = a;
   float const x_34 = b;
-  if (((x_32 == -1.0f) && (x_34 == 1.700000048f))) {
+  if (((x_32 == -1.0f) & (x_34 == 1.700000048f))) {
     float const x_41 = x_8.x_GLF_uniform_float_values.arr[0].el;
     float const x_43 = x_8.x_GLF_uniform_float_values.arr[1].el;
     float const x_45 = x_8.x_GLF_uniform_float_values.arr[1].el;
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.spvasm.expected.spvasm
index 60826bb..35787a8 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.spvasm.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 71
+; Bound: 69
 ; Schema: 0
                OpCapability Shader
          %28 = OpExtInstImport "GLSL.std.450"
@@ -56,7 +56,7 @@
 %_ptr_Uniform_float = OpTypePointer Uniform %float
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %59 = OpTypeFunction %void %main_out
+         %57 = OpTypeFunction %void %main_out
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
           %a = OpVariable %_ptr_Function_float Function %20
@@ -74,48 +74,43 @@
          %31 = OpLoad %float %a
          %32 = OpLoad %float %b
          %33 = OpFOrdEqual %bool %31 %float_n1
-               OpSelectionMerge %35 None
-               OpBranchConditional %33 %36 %35
-         %36 = OpLabel
-         %37 = OpFOrdEqual %bool %32 %float_1_70000005
-               OpBranch %35
-         %35 = OpLabel
-         %38 = OpPhi %bool %33 %17 %37 %36
-               OpSelectionMerge %39 None
-               OpBranchConditional %38 %40 %41
-         %40 = OpLabel
-         %46 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_0
-         %47 = OpLoad %float %46
+         %35 = OpFOrdEqual %bool %32 %float_1_70000005
+         %36 = OpLogicalAnd %bool %33 %35
+               OpSelectionMerge %37 None
+               OpBranchConditional %36 %38 %39
+         %38 = OpLabel
+         %44 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_0
+         %45 = OpLoad %float %44
+         %47 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_1
+         %48 = OpLoad %float %47
          %49 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_1
          %50 = OpLoad %float %49
-         %51 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_1
+         %51 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_0
          %52 = OpLoad %float %51
-         %53 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_0
-         %54 = OpLoad %float %53
-         %55 = OpCompositeConstruct %v4float %47 %50 %52 %54
-               OpStore %x_GLF_color %55
-               OpBranch %39
-         %41 = OpLabel
-         %56 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_0
-         %57 = OpLoad %float %56
-         %58 = OpCompositeConstruct %v4float %57 %57 %57 %57
-               OpStore %x_GLF_color %58
-               OpBranch %39
+         %53 = OpCompositeConstruct %v4float %45 %48 %50 %52
+               OpStore %x_GLF_color %53
+               OpBranch %37
          %39 = OpLabel
+         %54 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_0
+         %55 = OpLoad %float %54
+         %56 = OpCompositeConstruct %v4float %55 %55 %55 %55
+               OpStore %x_GLF_color %56
+               OpBranch %37
+         %37 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %59
+%tint_symbol_2 = OpFunction %void None %57
 %tint_symbol = OpFunctionParameter %main_out
-         %63 = OpLabel
-         %64 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %64
+         %61 = OpLabel
+         %62 = OpCompositeExtract %v4float %tint_symbol 0
+               OpStore %tint_symbol_1 %62
                OpReturn
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %66 = OpLabel
-         %67 = OpFunctionCall %void %main_1
-         %69 = OpLoad %v4float %x_GLF_color
-         %70 = OpCompositeConstruct %main_out %69
-         %68 = OpFunctionCall %void %tint_symbol_2 %70
+         %64 = OpLabel
+         %65 = OpFunctionCall %void %main_1
+         %67 = OpLoad %v4float %x_GLF_color
+         %68 = OpCompositeConstruct %main_out %67
+         %66 = OpFunctionCall %void %tint_symbol_2 %68
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.spvasm.expected.wgsl
index 4be05e5..b62bb38 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.spvasm.expected.wgsl
@@ -22,7 +22,7 @@
   x_GLF_color = vec4<f32>(x_30, x_30, x_30, x_30);
   let x_32 : f32 = a;
   let x_34 : f32 = b;
-  if (((x_32 == -1.0) && (x_34 == 1.700000048))) {
+  if (((x_32 == -1.0) & (x_34 == 1.700000048))) {
     let x_41 : f32 = x_8.x_GLF_uniform_float_values[0];
     let x_43 : f32 = x_8.x_GLF_uniform_float_values[1];
     let x_45 : f32 = x_8.x_GLF_uniform_float_values[1];
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.spvasm.expected.hlsl
index 2c7bb9e..883cfd2 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.spvasm.expected.hlsl
@@ -19,11 +19,7 @@
     break;
   }
   const int x_10 = x_10_phi;
-  bool tint_tmp = (x_10 == 1);
-  if (!tint_tmp) {
-    tint_tmp = (x_10 == 2);
-  }
-  if ((tint_tmp)) {
+  if (((x_10 == 1) | (x_10 == 2))) {
     x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
   } else {
     x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.spvasm.expected.msl
index fc24e78..3c3c805 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.spvasm.expected.msl
@@ -31,7 +31,7 @@
     break;
   }
   int const x_10 = x_10_phi;
-  if (((x_10 == 1) || (x_10 == 2))) {
+  if (((x_10 == 1) | (x_10 == 2))) {
     *(tint_symbol_4) = float4(1.0f, 0.0f, 0.0f, 1.0f);
   } else {
     *(tint_symbol_4) = float4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.spvasm.expected.spvasm
index e24ad6d..7a86628 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.spvasm.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 68
+; Bound: 66
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -56,9 +56,9 @@
       %int_1 = OpConstant %int 1
       %int_2 = OpConstant %int 2
     %float_1 = OpConstant %float 1
-         %55 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
+         %53 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %56 = OpTypeFunction %void %main_out
+         %54 = OpTypeFunction %void %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
         %x_9 = OpVariable %_ptr_Function__arr_int_uint_1 Function %21
@@ -89,36 +89,31 @@
          %29 = OpLabel
          %45 = OpLoad %int %x_10_phi
          %46 = OpIEqual %bool %45 %int_1
-               OpSelectionMerge %47 None
-               OpBranchConditional %46 %47 %48
-         %48 = OpLabel
-         %49 = OpIEqual %bool %45 %int_2
-               OpBranch %47
-         %47 = OpLabel
-         %50 = OpPhi %bool %46 %29 %49 %48
-               OpSelectionMerge %51 None
-               OpBranchConditional %50 %52 %53
-         %52 = OpLabel
-               OpStore %x_GLF_color %55
-               OpBranch %51
-         %53 = OpLabel
-               OpStore %x_GLF_color %33
-               OpBranch %51
+         %47 = OpIEqual %bool %45 %int_2
+         %48 = OpLogicalOr %bool %46 %47
+               OpSelectionMerge %49 None
+               OpBranchConditional %48 %50 %51
+         %50 = OpLabel
+               OpStore %x_GLF_color %53
+               OpBranch %49
          %51 = OpLabel
+               OpStore %x_GLF_color %33
+               OpBranch %49
+         %49 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %56
+%tint_symbol_2 = OpFunction %void None %54
 %tint_symbol = OpFunctionParameter %main_out
-         %60 = OpLabel
-         %61 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %61
+         %58 = OpLabel
+         %59 = OpCompositeExtract %v4float %tint_symbol 0
+               OpStore %tint_symbol_1 %59
                OpReturn
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %63 = OpLabel
-         %64 = OpFunctionCall %void %main_1
-         %66 = OpLoad %v4float %x_GLF_color
-         %67 = OpCompositeConstruct %main_out %66
-         %65 = OpFunctionCall %void %tint_symbol_2 %67
+         %61 = OpLabel
+         %62 = OpFunctionCall %void %main_1
+         %64 = OpLoad %v4float %x_GLF_color
+         %65 = OpCompositeConstruct %main_out %64
+         %63 = OpFunctionCall %void %tint_symbol_2 %65
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.spvasm.expected.wgsl
index d5ebd09..d8229f2 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.spvasm.expected.wgsl
@@ -24,7 +24,7 @@
     break;
   }
   let x_10 : i32 = x_10_phi;
-  if (((x_10 == 1) || (x_10 == 2))) {
+  if (((x_10 == 1) | (x_10 == 2))) {
     x_GLF_color = vec4<f32>(1.0, 0.0, 0.0, 1.0);
   } else {
     x_GLF_color = vec4<f32>(0.0, 0.0, 0.0, 0.0);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.spvasm.expected.hlsl
index 34889ee..1a025de 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.spvasm.expected.hlsl
@@ -58,11 +58,7 @@
   const int x_88 = asint(x_5[scalar_offset_3 / 4][scalar_offset_3 % 4]);
   const int x_91 = asint(x_5[3].x);
   const float2x2 x_95 = float2x2(float2(float(x_82), float(x_85)), float2(float(x_88), float(x_91)));
-  bool tint_tmp = all((x_80[0u] == x_95[0u]));
-  if (tint_tmp) {
-    tint_tmp = all((x_80[1u] == x_95[1u]));
-  }
-  if ((tint_tmp)) {
+  if ((all((x_80[0u] == x_95[0u])) & all((x_80[1u] == x_95[1u])))) {
     const int x_109 = asint(x_5[2].x);
     const int x_112 = asint(x_5[1].x);
     const int x_115 = asint(x_5[1].x);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.spvasm.expected.msl
index d6a3fcf..d580cda 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.spvasm.expected.msl
@@ -68,7 +68,7 @@
   int const x_88 = x_5.x_GLF_uniform_int_values.arr[0].el;
   int const x_91 = x_5.x_GLF_uniform_int_values.arr[3].el;
   float2x2 const x_95 = float2x2(float2(float(x_82), float(x_85)), float2(float(x_88), float(x_91)));
-  if ((all((x_80[0u] == x_95[0u])) && all((x_80[1u] == x_95[1u])))) {
+  if ((all((x_80[0u] == x_95[0u])) & all((x_80[1u] == x_95[1u])))) {
     int const x_109 = x_5.x_GLF_uniform_int_values.arr[2].el;
     int const x_112 = x_5.x_GLF_uniform_int_values.arr[1].el;
     int const x_115 = x_5.x_GLF_uniform_int_values.arr[1].el;
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.spvasm.expected.spvasm
index 2f12b21..23d5183 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.spvasm.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 149
+; Bound: 147
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -65,7 +65,7 @@
      %v2bool = OpTypeVector %bool 2
      %uint_1 = OpConstant %uint 1
    %main_out = OpTypeStruct %v4float
-        %137 = OpTypeFunction %void %main_out
+        %135 = OpTypeFunction %void %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %m = OpVariable %_ptr_Function_mat2v2float Function %23
@@ -168,56 +168,51 @@
         %106 = OpCompositeExtract %v2float %103 0
         %107 = OpFOrdEqual %v2bool %105 %106
         %104 = OpAll %bool %107
-               OpSelectionMerge %109 None
-               OpBranchConditional %104 %110 %109
-        %110 = OpLabel
-        %113 = OpCompositeExtract %v2float %86 1
-        %114 = OpCompositeExtract %v2float %103 1
-        %115 = OpFOrdEqual %v2bool %113 %114
-        %111 = OpAll %bool %115
-               OpBranch %109
-        %109 = OpLabel
-        %116 = OpPhi %bool %104 %48 %111 %110
-               OpSelectionMerge %117 None
-               OpBranchConditional %116 %118 %119
-        %118 = OpLabel
-        %120 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_2
+        %111 = OpCompositeExtract %v2float %86 1
+        %112 = OpCompositeExtract %v2float %103 1
+        %113 = OpFOrdEqual %v2bool %111 %112
+        %109 = OpAll %bool %113
+        %114 = OpLogicalAnd %bool %104 %109
+               OpSelectionMerge %115 None
+               OpBranchConditional %114 %116 %117
+        %116 = OpLabel
+        %118 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_2
+        %119 = OpLoad %int %118
+        %120 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_1
         %121 = OpLoad %int %120
         %122 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_1
         %123 = OpLoad %int %122
-        %124 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_1
+        %124 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_2
         %125 = OpLoad %int %124
-        %126 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_2
-        %127 = OpLoad %int %126
-        %128 = OpConvertSToF %float %121
-        %129 = OpConvertSToF %float %123
-        %130 = OpConvertSToF %float %125
-        %131 = OpConvertSToF %float %127
-        %132 = OpCompositeConstruct %v4float %128 %129 %130 %131
-               OpStore %x_GLF_color %132
-               OpBranch %117
-        %119 = OpLabel
-        %133 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_1
-        %134 = OpLoad %int %133
-        %135 = OpConvertSToF %float %134
-        %136 = OpCompositeConstruct %v4float %135 %135 %135 %135
-               OpStore %x_GLF_color %136
-               OpBranch %117
+        %126 = OpConvertSToF %float %119
+        %127 = OpConvertSToF %float %121
+        %128 = OpConvertSToF %float %123
+        %129 = OpConvertSToF %float %125
+        %130 = OpCompositeConstruct %v4float %126 %127 %128 %129
+               OpStore %x_GLF_color %130
+               OpBranch %115
         %117 = OpLabel
+        %131 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_1
+        %132 = OpLoad %int %131
+        %133 = OpConvertSToF %float %132
+        %134 = OpCompositeConstruct %v4float %133 %133 %133 %133
+               OpStore %x_GLF_color %134
+               OpBranch %115
+        %115 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %137
+%tint_symbol_2 = OpFunction %void None %135
 %tint_symbol = OpFunctionParameter %main_out
-        %141 = OpLabel
-        %142 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %142
+        %139 = OpLabel
+        %140 = OpCompositeExtract %v4float %tint_symbol 0
+               OpStore %tint_symbol_1 %140
                OpReturn
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %144 = OpLabel
-        %145 = OpFunctionCall %void %main_1
-        %147 = OpLoad %v4float %x_GLF_color
-        %148 = OpCompositeConstruct %main_out %147
-        %146 = OpFunctionCall %void %tint_symbol_2 %148
+        %142 = OpLabel
+        %143 = OpFunctionCall %void %main_1
+        %145 = OpLoad %v4float %x_GLF_color
+        %146 = OpCompositeConstruct %main_out %145
+        %144 = OpFunctionCall %void %tint_symbol_2 %146
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.spvasm.expected.wgsl
index 3ad4f9b..90bc862 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.spvasm.expected.wgsl
@@ -61,7 +61,7 @@
   let x_88 : i32 = x_5.x_GLF_uniform_int_values[0];
   let x_91 : i32 = x_5.x_GLF_uniform_int_values[3];
   let x_95 : mat2x2<f32> = mat2x2<f32>(vec2<f32>(f32(x_82), f32(x_85)), vec2<f32>(f32(x_88), f32(x_91)));
-  if ((all((x_80[0u] == x_95[0u])) && all((x_80[1u] == x_95[1u])))) {
+  if ((all((x_80[0u] == x_95[0u])) & all((x_80[1u] == x_95[1u])))) {
     let x_109 : i32 = x_5.x_GLF_uniform_int_values[2];
     let x_112 : i32 = x_5.x_GLF_uniform_int_values[1];
     let x_115 : i32 = x_5.x_GLF_uniform_int_values[1];
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.spvasm.expected.hlsl
index f5d4020..d7bfdcc 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.spvasm.expected.hlsl
@@ -11,11 +11,7 @@
   a = ddx(cos(x_33));
   const float x_37 = asfloat(x_8[0].x);
   b = lerp(2.0f, x_37, a);
-  bool tint_tmp = (b >= 1.899999976f);
-  if (tint_tmp) {
-    tint_tmp = (b <= 2.099999905f);
-  }
-  if ((tint_tmp)) {
+  if (((b >= 1.899999976f) & (b <= 2.099999905f))) {
     x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
   } else {
     x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.spvasm.expected.msl
index 31f4571..d8ea250 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.spvasm.expected.msl
@@ -21,7 +21,7 @@
   b = mix(2.0f, x_37, x_38);
   float const x_40 = b;
   float const x_42 = b;
-  if (((x_40 >= 1.899999976f) && (x_42 <= 2.099999905f))) {
+  if (((x_40 >= 1.899999976f) & (x_42 <= 2.099999905f))) {
     *(tint_symbol_6) = float4(1.0f, 0.0f, 0.0f, 1.0f);
   } else {
     *(tint_symbol_6) = float4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.spvasm.expected.spvasm
index 7858785..3b09286 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.spvasm.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 66
+; Bound: 64
 ; Schema: 0
                OpCapability Shader
          %29 = OpExtInstImport "GLSL.std.450"
@@ -58,10 +58,10 @@
 %float_2_0999999 = OpConstant %float 2.0999999
     %float_1 = OpConstant %float 1
     %float_0 = OpConstant %float 0
-         %51 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
-         %52 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
+         %49 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
+         %50 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %53 = OpTypeFunction %void %main_out
+         %51 = OpTypeFunction %void %main_out
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
           %a = OpVariable %_ptr_Function_float Function %20
@@ -79,38 +79,33 @@
          %36 = OpLoad %float %b
          %37 = OpLoad %float %b
          %39 = OpFOrdGreaterThanEqual %bool %36 %float_1_89999998
-               OpSelectionMerge %41 None
-               OpBranchConditional %39 %42 %41
-         %42 = OpLabel
-         %44 = OpFOrdLessThanEqual %bool %37 %float_2_0999999
-               OpBranch %41
-         %41 = OpLabel
-         %45 = OpPhi %bool %39 %17 %44 %42
-               OpSelectionMerge %46 None
-               OpBranchConditional %45 %47 %48
-         %47 = OpLabel
-               OpStore %x_GLF_color %51
-               OpBranch %46
-         %48 = OpLabel
-               OpStore %x_GLF_color %52
-               OpBranch %46
+         %42 = OpFOrdLessThanEqual %bool %37 %float_2_0999999
+         %43 = OpLogicalAnd %bool %39 %42
+               OpSelectionMerge %44 None
+               OpBranchConditional %43 %45 %46
+         %45 = OpLabel
+               OpStore %x_GLF_color %49
+               OpBranch %44
          %46 = OpLabel
+               OpStore %x_GLF_color %50
+               OpBranch %44
+         %44 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %53
+%tint_symbol_3 = OpFunction %void None %51
 %tint_symbol_1 = OpFunctionParameter %main_out
-         %57 = OpLabel
-         %58 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %58
+         %55 = OpLabel
+         %56 = OpCompositeExtract %v4float %tint_symbol_1 0
+               OpStore %tint_symbol_2 %56
                OpReturn
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %60 = OpLabel
-         %61 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %61
-         %62 = OpFunctionCall %void %main_1
-         %64 = OpLoad %v4float %x_GLF_color
-         %65 = OpCompositeConstruct %main_out %64
-         %63 = OpFunctionCall %void %tint_symbol_3 %65
+         %58 = OpLabel
+         %59 = OpLoad %v4float %tint_symbol
+               OpStore %gl_FragCoord %59
+         %60 = OpFunctionCall %void %main_1
+         %62 = OpLoad %v4float %x_GLF_color
+         %63 = OpCompositeConstruct %main_out %62
+         %61 = OpFunctionCall %void %tint_symbol_3 %63
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.spvasm.expected.wgsl
index 7165a35..2973115 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.spvasm.expected.wgsl
@@ -19,7 +19,7 @@
   b = mix(2.0, x_37, x_38);
   let x_40 : f32 = b;
   let x_42 : f32 = b;
-  if (((x_40 >= 1.899999976) && (x_42 <= 2.099999905))) {
+  if (((x_40 >= 1.899999976) & (x_42 <= 2.099999905))) {
     x_GLF_color = vec4<f32>(1.0, 0.0, 0.0, 1.0);
   } else {
     x_GLF_color = vec4<f32>(0.0, 0.0, 0.0, 0.0);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.spvasm.expected.hlsl
index 256b8ea..1012c9a 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.spvasm.expected.hlsl
@@ -5,11 +5,7 @@
   m = float2x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f));
   const float2x2 x_30 = mul(transpose(m), transpose(m));
   const float2x2 x_34 = transpose(mul(m, m));
-  bool tint_tmp = all((x_30[0u] == x_34[0u]));
-  if (tint_tmp) {
-    tint_tmp = all((x_30[1u] == x_34[1u]));
-  }
-  if ((tint_tmp)) {
+  if ((all((x_30[0u] == x_34[0u])) & all((x_30[1u] == x_34[1u])))) {
     x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
   } else {
     x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.spvasm.expected.msl
index 452c4cf..f8856db 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.spvasm.expected.msl
@@ -17,7 +17,7 @@
   float2x2 const x_31 = m;
   float2x2 const x_32 = m;
   float2x2 const x_34 = transpose((x_31 * x_32));
-  if ((all((x_30[0u] == x_34[0u])) && all((x_30[1u] == x_34[1u])))) {
+  if ((all((x_30[0u] == x_34[0u])) & all((x_30[1u] == x_34[1u])))) {
     *(tint_symbol_4) = float4(1.0f, 0.0f, 0.0f, 1.0f);
   } else {
     *(tint_symbol_4) = float4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.spvasm.expected.spvasm
index b135837..69eb7bd 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.spvasm.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 67
+; Bound: 65
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -44,10 +44,10 @@
      %v2bool = OpTypeVector %bool 2
      %uint_1 = OpConstant %uint 1
     %float_0 = OpConstant %float 0
-         %53 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
-         %54 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
+         %51 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
+         %52 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %55 = OpTypeFunction %void %main_out
+         %53 = OpTypeFunction %void %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %m = OpVariable %_ptr_Function_mat2v2float Function %16
@@ -65,39 +65,34 @@
          %38 = OpCompositeExtract %v2float %31 0
          %39 = OpFOrdEqual %v2bool %37 %38
          %33 = OpAll %bool %39
-               OpSelectionMerge %41 None
-               OpBranchConditional %33 %42 %41
-         %42 = OpLabel
-         %45 = OpCompositeExtract %v2float %28 1
-         %46 = OpCompositeExtract %v2float %31 1
-         %47 = OpFOrdEqual %v2bool %45 %46
-         %43 = OpAll %bool %47
-               OpBranch %41
-         %41 = OpLabel
-         %48 = OpPhi %bool %33 %11 %43 %42
-               OpSelectionMerge %49 None
-               OpBranchConditional %48 %50 %51
-         %50 = OpLabel
-               OpStore %x_GLF_color %53
-               OpBranch %49
-         %51 = OpLabel
-               OpStore %x_GLF_color %54
-               OpBranch %49
+         %43 = OpCompositeExtract %v2float %28 1
+         %44 = OpCompositeExtract %v2float %31 1
+         %45 = OpFOrdEqual %v2bool %43 %44
+         %41 = OpAll %bool %45
+         %46 = OpLogicalAnd %bool %33 %41
+               OpSelectionMerge %47 None
+               OpBranchConditional %46 %48 %49
+         %48 = OpLabel
+               OpStore %x_GLF_color %51
+               OpBranch %47
          %49 = OpLabel
+               OpStore %x_GLF_color %52
+               OpBranch %47
+         %47 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %55
+%tint_symbol_2 = OpFunction %void None %53
 %tint_symbol = OpFunctionParameter %main_out
-         %59 = OpLabel
-         %60 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %60
+         %57 = OpLabel
+         %58 = OpCompositeExtract %v4float %tint_symbol 0
+               OpStore %tint_symbol_1 %58
                OpReturn
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %62 = OpLabel
-         %63 = OpFunctionCall %void %main_1
-         %65 = OpLoad %v4float %x_GLF_color
-         %66 = OpCompositeConstruct %main_out %65
-         %64 = OpFunctionCall %void %tint_symbol_2 %66
+         %60 = OpLabel
+         %61 = OpFunctionCall %void %main_1
+         %63 = OpLoad %v4float %x_GLF_color
+         %64 = OpCompositeConstruct %main_out %63
+         %62 = OpFunctionCall %void %tint_symbol_2 %64
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.spvasm.expected.wgsl
index 891a913..c9e11f5 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.spvasm.expected.wgsl
@@ -9,7 +9,7 @@
   let x_31 : mat2x2<f32> = m;
   let x_32 : mat2x2<f32> = m;
   let x_34 : mat2x2<f32> = transpose((x_31 * x_32));
-  if ((all((x_30[0u] == x_34[0u])) && all((x_30[1u] == x_34[1u])))) {
+  if ((all((x_30[0u] == x_34[0u])) & all((x_30[1u] == x_34[1u])))) {
     x_GLF_color = vec4<f32>(1.0, 0.0, 0.0, 1.0);
   } else {
     x_GLF_color = vec4<f32>(0.0, 0.0, 0.0, 0.0);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.spvasm.expected.hlsl
index 258443f..9409852 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.spvasm.expected.hlsl
@@ -62,19 +62,7 @@
   const int x_123 = asint(x_6[1].x);
   const int x_126 = asint(x_6[1].x);
   const float4x4 x_132 = float4x4(float4(float(x_81), float(x_84), float(x_87), float(x_90)), float4(float(x_93), float(x_96), float(x_99), float(x_102)), float4(float(x_105), float(x_108), float(x_111), float(x_114)), float4(float(x_117), float(x_120), float(x_123), float(x_126)));
-  bool tint_tmp_2 = all((x_79[0u] == x_132[0u]));
-  if (tint_tmp_2) {
-    tint_tmp_2 = all((x_79[1u] == x_132[1u]));
-  }
-  bool tint_tmp_1 = (tint_tmp_2);
-  if (tint_tmp_1) {
-    tint_tmp_1 = all((x_79[2u] == x_132[2u]));
-  }
-  bool tint_tmp = (tint_tmp_1);
-  if (tint_tmp) {
-    tint_tmp = all((x_79[3u] == x_132[3u]));
-  }
-  if ((tint_tmp)) {
+  if ((((all((x_79[0u] == x_132[0u])) & all((x_79[1u] == x_132[1u]))) & all((x_79[2u] == x_132[2u]))) & all((x_79[3u] == x_132[3u])))) {
     const int x_156 = asint(x_6[2].x);
     const int x_159 = asint(x_6[1].x);
     const int x_162 = asint(x_6[1].x);
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.spvasm.expected.msl
index 2e9eaea..5b0e89e 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.spvasm.expected.msl
@@ -79,7 +79,7 @@
   int const x_123 = x_6.x_GLF_uniform_int_values.arr[1].el;
   int const x_126 = x_6.x_GLF_uniform_int_values.arr[1].el;
   float4x4 const x_132 = float4x4(float4(float(x_81), float(x_84), float(x_87), float(x_90)), float4(float(x_93), float(x_96), float(x_99), float(x_102)), float4(float(x_105), float(x_108), float(x_111), float(x_114)), float4(float(x_117), float(x_120), float(x_123), float(x_126)));
-  if ((((all((x_79[0u] == x_132[0u])) && all((x_79[1u] == x_132[1u]))) && all((x_79[2u] == x_132[2u]))) && all((x_79[3u] == x_132[3u])))) {
+  if ((((all((x_79[0u] == x_132[0u])) & all((x_79[1u] == x_132[1u]))) & all((x_79[2u] == x_132[2u]))) & all((x_79[3u] == x_132[3u])))) {
     int const x_156 = x_6.x_GLF_uniform_int_values.arr[2].el;
     int const x_159 = x_6.x_GLF_uniform_int_values.arr[1].el;
     int const x_162 = x_6.x_GLF_uniform_int_values.arr[1].el;
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.spvasm.expected.spvasm
index 1bf7a3d..61df56b 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.spvasm.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 198
+; Bound: 192
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -78,7 +78,7 @@
      %uint_2 = OpConstant %uint 2
      %uint_3 = OpConstant %uint 3
    %main_out = OpTypeStruct %v4float
-        %186 = OpTypeFunction %void %main_out
+        %180 = OpTypeFunction %void %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
          %m0 = OpVariable %_ptr_Function_mat4v4float Function %27
@@ -199,76 +199,61 @@
         %140 = OpCompositeExtract %v4float %137 0
         %141 = OpFOrdEqual %v4bool %139 %140
         %138 = OpAll %bool %141
-               OpSelectionMerge %143 None
-               OpBranchConditional %138 %144 %143
-        %144 = OpLabel
-        %146 = OpCompositeExtract %v4float %84 1
-        %147 = OpCompositeExtract %v4float %137 1
-        %148 = OpFOrdEqual %v4bool %146 %147
-        %145 = OpAll %bool %148
-               OpBranch %143
-        %143 = OpLabel
-        %149 = OpPhi %bool %138 %48 %145 %144
-               OpSelectionMerge %150 None
-               OpBranchConditional %149 %151 %150
-        %151 = OpLabel
-        %154 = OpCompositeExtract %v4float %84 2
-        %155 = OpCompositeExtract %v4float %137 2
-        %156 = OpFOrdEqual %v4bool %154 %155
-        %152 = OpAll %bool %156
-               OpBranch %150
-        %150 = OpLabel
-        %157 = OpPhi %bool %149 %143 %152 %151
-               OpSelectionMerge %158 None
-               OpBranchConditional %157 %159 %158
-        %159 = OpLabel
-        %162 = OpCompositeExtract %v4float %84 3
-        %163 = OpCompositeExtract %v4float %137 3
-        %164 = OpFOrdEqual %v4bool %162 %163
-        %160 = OpAll %bool %164
-               OpBranch %158
-        %158 = OpLabel
-        %165 = OpPhi %bool %157 %150 %160 %159
-               OpSelectionMerge %166 None
-               OpBranchConditional %165 %167 %168
-        %167 = OpLabel
+        %144 = OpCompositeExtract %v4float %84 1
+        %145 = OpCompositeExtract %v4float %137 1
+        %146 = OpFOrdEqual %v4bool %144 %145
+        %143 = OpAll %bool %146
+        %147 = OpLogicalAnd %bool %138 %143
+        %150 = OpCompositeExtract %v4float %84 2
+        %151 = OpCompositeExtract %v4float %137 2
+        %152 = OpFOrdEqual %v4bool %150 %151
+        %148 = OpAll %bool %152
+        %153 = OpLogicalAnd %bool %147 %148
+        %156 = OpCompositeExtract %v4float %84 3
+        %157 = OpCompositeExtract %v4float %137 3
+        %158 = OpFOrdEqual %v4bool %156 %157
+        %154 = OpAll %bool %158
+        %159 = OpLogicalAnd %bool %153 %154
+               OpSelectionMerge %160 None
+               OpBranchConditional %159 %161 %162
+        %161 = OpLabel
+        %163 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_2
+        %164 = OpLoad %int %163
+        %165 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1
+        %166 = OpLoad %int %165
+        %167 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1
+        %168 = OpLoad %int %167
         %169 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_2
         %170 = OpLoad %int %169
-        %171 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1
-        %172 = OpLoad %int %171
-        %173 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1
-        %174 = OpLoad %int %173
-        %175 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_2
-        %176 = OpLoad %int %175
-        %177 = OpConvertSToF %float %170
-        %178 = OpConvertSToF %float %172
-        %179 = OpConvertSToF %float %174
-        %180 = OpConvertSToF %float %176
-        %181 = OpCompositeConstruct %v4float %177 %178 %179 %180
-               OpStore %x_GLF_color %181
-               OpBranch %166
-        %168 = OpLabel
-        %182 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1
-        %183 = OpLoad %int %182
-        %184 = OpConvertSToF %float %183
-        %185 = OpCompositeConstruct %v4float %184 %184 %184 %184
-               OpStore %x_GLF_color %185
-               OpBranch %166
-        %166 = OpLabel
+        %171 = OpConvertSToF %float %164
+        %172 = OpConvertSToF %float %166
+        %173 = OpConvertSToF %float %168
+        %174 = OpConvertSToF %float %170
+        %175 = OpCompositeConstruct %v4float %171 %172 %173 %174
+               OpStore %x_GLF_color %175
+               OpBranch %160
+        %162 = OpLabel
+        %176 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1
+        %177 = OpLoad %int %176
+        %178 = OpConvertSToF %float %177
+        %179 = OpCompositeConstruct %v4float %178 %178 %178 %178
+               OpStore %x_GLF_color %179
+               OpBranch %160
+        %160 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %186
+%tint_symbol_2 = OpFunction %void None %180
 %tint_symbol = OpFunctionParameter %main_out
-        %190 = OpLabel
-        %191 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %191
+        %184 = OpLabel
+        %185 = OpCompositeExtract %v4float %tint_symbol 0
+               OpStore %tint_symbol_1 %185
                OpReturn
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %193 = OpLabel
-        %194 = OpFunctionCall %void %main_1
-        %196 = OpLoad %v4float %x_GLF_color
-        %197 = OpCompositeConstruct %main_out %196
-        %195 = OpFunctionCall %void %tint_symbol_2 %197
+        %187 = OpLabel
+        %188 = OpFunctionCall %void %main_1
+        %190 = OpLoad %v4float %x_GLF_color
+        %191 = OpCompositeConstruct %main_out %190
+        %189 = OpFunctionCall %void %tint_symbol_2 %191
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.spvasm.expected.wgsl
index cd04198..5cf3aa2 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.spvasm.expected.wgsl
@@ -70,7 +70,7 @@
   let x_123 : i32 = x_6.x_GLF_uniform_int_values[1];
   let x_126 : i32 = x_6.x_GLF_uniform_int_values[1];
   let x_132 : mat4x4<f32> = mat4x4<f32>(vec4<f32>(f32(x_81), f32(x_84), f32(x_87), f32(x_90)), vec4<f32>(f32(x_93), f32(x_96), f32(x_99), f32(x_102)), vec4<f32>(f32(x_105), f32(x_108), f32(x_111), f32(x_114)), vec4<f32>(f32(x_117), f32(x_120), f32(x_123), f32(x_126)));
-  if ((((all((x_79[0u] == x_132[0u])) && all((x_79[1u] == x_132[1u]))) && all((x_79[2u] == x_132[2u]))) && all((x_79[3u] == x_132[3u])))) {
+  if ((((all((x_79[0u] == x_132[0u])) & all((x_79[1u] == x_132[1u]))) & all((x_79[2u] == x_132[2u]))) & all((x_79[3u] == x_132[3u])))) {
     let x_156 : i32 = x_6.x_GLF_uniform_int_values[2];
     let x_159 : i32 = x_6.x_GLF_uniform_int_values[1];
     let x_162 : i32 = x_6.x_GLF_uniform_int_values[1];
diff --git a/test/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.spvasm.expected.hlsl
index f1268b0..6c3f3f4 100644
--- a/test/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.spvasm.expected.hlsl
@@ -28,11 +28,7 @@
             break;
           }
         }
-        bool tint_tmp = (donor_replacementGLF_dead0top >= 0);
-        if (tint_tmp) {
-          tint_tmp = (donor_replacementGLF_dead0top < 9);
-        }
-        if ((tint_tmp)) {
+        if (((donor_replacementGLF_dead0top >= 0) & (donor_replacementGLF_dead0top < 9))) {
           const int x_17 = (donor_replacementGLF_dead0top + 1);
           donor_replacementGLF_dead0top = x_17;
           x_54 = x_17;
diff --git a/test/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.spvasm.expected.msl
index 837b916..d05608a 100644
--- a/test/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.spvasm.expected.msl
@@ -41,7 +41,7 @@
       }
       int const x_14 = donor_replacementGLF_dead0top;
       int const x_15 = donor_replacementGLF_dead0top;
-      if (((x_14 >= 0) && (x_15 < 9))) {
+      if (((x_14 >= 0) & (x_15 < 9))) {
         int const x_16 = donor_replacementGLF_dead0top;
         int const x_17 = (x_16 + 1);
         donor_replacementGLF_dead0top = x_17;
diff --git a/test/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.spvasm.expected.spvasm
index de2d980..6bb20bf 100644
--- a/test/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.spvasm.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 115
+; Bound: 113
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -64,13 +64,13 @@
     %float_0 = OpConstant %float 0
       %int_1 = OpConstant %int 1
       %int_9 = OpConstant %int 9
-         %79 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
+         %77 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
       %int_3 = OpConstant %int 3
 %_ptr_Function_float = OpTypePointer Function %float
     %float_1 = OpConstant %float 1
-        %102 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
+        %100 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %103 = OpTypeFunction %void %main_out
+        %101 = OpTypeFunction %void %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %k = OpVariable %_ptr_Function_int Function %19
@@ -124,82 +124,77 @@
          %64 = OpLoad %int %donor_replacementGLF_dead0top
          %65 = OpLoad %int %donor_replacementGLF_dead0top
          %66 = OpSGreaterThanEqual %bool %64 %int_0
-               OpSelectionMerge %67 None
-               OpBranchConditional %66 %68 %67
-         %68 = OpLabel
-         %70 = OpSLessThan %bool %65 %int_9
-               OpBranch %67
-         %67 = OpLabel
-         %71 = OpPhi %bool %66 %55 %70 %68
-               OpSelectionMerge %72 None
-               OpBranchConditional %71 %73 %74
-         %73 = OpLabel
-         %75 = OpLoad %int %donor_replacementGLF_dead0top
-         %76 = OpIAdd %int %75 %int_1
-               OpStore %donor_replacementGLF_dead0top %76
-               OpStore %x_54 %76
-               OpBranch %72
-         %74 = OpLabel
-               OpStore %x_54 %int_0
-               OpBranch %72
+         %68 = OpSLessThan %bool %65 %int_9
+         %69 = OpLogicalAnd %bool %66 %68
+               OpSelectionMerge %70 None
+               OpBranchConditional %69 %71 %72
+         %71 = OpLabel
+         %73 = OpLoad %int %donor_replacementGLF_dead0top
+         %74 = OpIAdd %int %73 %int_1
+               OpStore %donor_replacementGLF_dead0top %74
+               OpStore %x_54 %74
+               OpBranch %70
          %72 = OpLabel
-         %77 = OpLoad %int %x_54
-         %78 = OpAccessChain %_ptr_Function_int %donor_replacementGLF_dead0stack %77
-               OpStore %78 %int_1
+               OpStore %x_54 %int_0
+               OpBranch %70
+         %70 = OpLabel
+         %75 = OpLoad %int %x_54
+         %76 = OpAccessChain %_ptr_Function_int %donor_replacementGLF_dead0stack %75
+               OpStore %76 %int_1
                OpBranch %51
          %51 = OpLabel
-               OpStore %matrix_b %79
+               OpStore %matrix_b %77
                OpStore %b %int_3
+               OpBranch %79
+         %79 = OpLabel
+               OpLoopMerge %80 %81 None
+               OpBranch %82
+         %82 = OpLabel
+         %83 = OpLoad %int %b
+         %84 = OpSGreaterThanEqual %bool %83 %int_0
+               OpSelectionMerge %85 None
+               OpBranchConditional %84 %86 %87
+         %86 = OpLabel
+               OpBranch %85
+         %87 = OpLabel
+               OpBranch %80
+         %85 = OpLabel
+         %88 = OpLoad %int %b
+         %89 = OpLoad %int %b
+         %91 = OpAccessChain %_ptr_Function_float %matrix_b %89
+         %92 = OpLoad %float %91
+         %93 = OpAccessChain %_ptr_Function_float %matrix_b %88
+         %95 = OpFSub %float %92 %float_1
+               OpStore %93 %95
                OpBranch %81
          %81 = OpLabel
-               OpLoopMerge %82 %83 None
-               OpBranch %84
-         %84 = OpLabel
-         %85 = OpLoad %int %b
-         %86 = OpSGreaterThanEqual %bool %85 %int_0
-               OpSelectionMerge %87 None
-               OpBranchConditional %86 %88 %89
-         %88 = OpLabel
-               OpBranch %87
-         %89 = OpLabel
-               OpBranch %82
-         %87 = OpLabel
-         %90 = OpLoad %int %b
-         %91 = OpLoad %int %b
-         %93 = OpAccessChain %_ptr_Function_float %matrix_b %91
-         %94 = OpLoad %float %93
-         %95 = OpAccessChain %_ptr_Function_float %matrix_b %90
-         %97 = OpFSub %float %94 %float_1
-               OpStore %95 %97
-               OpBranch %83
-         %83 = OpLabel
-         %98 = OpLoad %int %b
-         %99 = OpISub %int %98 %int_1
-               OpStore %b %99
-               OpBranch %81
-         %82 = OpLabel
+         %96 = OpLoad %int %b
+         %97 = OpISub %int %96 %int_1
+               OpStore %b %97
+               OpBranch %79
+         %80 = OpLabel
                OpBranch %35
          %35 = OpLabel
-        %100 = OpLoad %int %k
-        %101 = OpIAdd %int %100 %int_1
-               OpStore %k %101
+         %98 = OpLoad %int %k
+         %99 = OpIAdd %int %98 %int_1
+               OpStore %k %99
                OpBranch %33
          %34 = OpLabel
-               OpStore %x_GLF_color %102
+               OpStore %x_GLF_color %100
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %103
+%tint_symbol_2 = OpFunction %void None %101
 %tint_symbol = OpFunctionParameter %main_out
-        %107 = OpLabel
-        %108 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %108
+        %105 = OpLabel
+        %106 = OpCompositeExtract %v4float %tint_symbol 0
+               OpStore %tint_symbol_1 %106
                OpReturn
                OpFunctionEnd
        %main = OpFunction %void None %12
-        %110 = OpLabel
-        %111 = OpFunctionCall %void %main_1
-        %113 = OpLoad %v4float %x_GLF_color
-        %114 = OpCompositeConstruct %main_out %113
-        %112 = OpFunctionCall %void %tint_symbol_2 %114
+        %108 = OpLabel
+        %109 = OpFunctionCall %void %main_1
+        %111 = OpLoad %v4float %x_GLF_color
+        %112 = OpCompositeConstruct %main_out %111
+        %110 = OpFunctionCall %void %tint_symbol_2 %112
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.spvasm.expected.wgsl
index 26a8a10..25f8cec 100644
--- a/test/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.spvasm.expected.wgsl
@@ -34,7 +34,7 @@
       }
       let x_14 : i32 = donor_replacementGLF_dead0top;
       let x_15 : i32 = donor_replacementGLF_dead0top;
-      if (((x_14 >= 0) && (x_15 < 9))) {
+      if (((x_14 >= 0) & (x_15 < 9))) {
         let x_16 : i32 = donor_replacementGLF_dead0top;
         let x_17 : i32 = (x_16 + 1);
         donor_replacementGLF_dead0top = x_17;
diff --git a/test/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.spvasm.expected.hlsl
index 938e563..f41b00d 100644
--- a/test/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.spvasm.expected.hlsl
@@ -35,11 +35,7 @@
                       switch(msb10) {
                         case 1:
                         case 8: {
-                          bool tint_tmp = (msb10 >= 0);
-                          if (tint_tmp) {
-                            tint_tmp = (msb10 < 9);
-                          }
-                          const int x_96 = ((tint_tmp) ? msb10 : 0);
+                          const int x_96 = (((msb10 >= 0) & (msb10 < 9)) ? msb10 : 0);
                           const float x_98 = donor_replacementGLF_dead5sums[x_96];
                           donor_replacementGLF_dead5sums[x_96] = (x_98 + 1.0f);
                           break;
diff --git a/test/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.spvasm.expected.msl
index d1d24c8..5965457 100644
--- a/test/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.spvasm.expected.msl
@@ -68,7 +68,7 @@
                   int const x_90 = msb10;
                   int const x_92 = msb10;
                   int const x_95 = msb10;
-                  int const x_96 = select(0, x_95, ((x_90 >= 0) && (x_92 < 9)));
+                  int const x_96 = select(0, x_95, ((x_90 >= 0) & (x_92 < 9)));
                   float const x_98 = donor_replacementGLF_dead5sums.arr[x_96];
                   donor_replacementGLF_dead5sums.arr[x_96] = (x_98 + 1.0f);
                   break;
diff --git a/test/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.spvasm.expected.wgsl
index 31f3f0e..d1780a3 100644
--- a/test/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.spvasm.expected.wgsl
@@ -60,7 +60,7 @@
                   let x_90 : i32 = msb10;
                   let x_92 : i32 = msb10;
                   let x_95 : i32 = msb10;
-                  let x_96 : i32 = select(0, x_95, ((x_90 >= 0) && (x_92 < 9)));
+                  let x_96 : i32 = select(0, x_95, ((x_90 >= 0) & (x_92 < 9)));
                   let x_98 : f32 = donor_replacementGLF_dead5sums[x_96];
                   donor_replacementGLF_dead5sums[x_96] = (x_98 + 1.0);
                 }
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.spvasm.expected.hlsl
index be184c8..9aaf73d 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.spvasm.expected.hlsl
@@ -25,11 +25,7 @@
     const int x_263 = mid;
     const int x_265 = j;
     const int x_266 = to;
-    bool tint_tmp = (x_262 <= x_263);
-    if (tint_tmp) {
-      tint_tmp = (x_265 <= x_266);
-    }
-    if ((tint_tmp)) {
+    if (((x_262 <= x_263) & (x_265 <= x_266))) {
     } else {
       break;
     }
@@ -55,11 +51,7 @@
     const int x_298 = i;
     const int x_300 = i;
     const int x_301 = mid;
-    bool tint_tmp_1 = (x_298 < 10);
-    if (tint_tmp_1) {
-      tint_tmp_1 = (x_300 <= x_301);
-    }
-    if ((tint_tmp_1)) {
+    if (((x_298 < 10) & (x_300 <= x_301))) {
     } else {
       break;
     }
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.spvasm.expected.msl
index 6e7adb4..5c560fc 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.spvasm.expected.msl
@@ -33,7 +33,7 @@
     int const x_263 = *(mid);
     int const x_265 = j;
     int const x_266 = *(to);
-    if (((x_262 <= x_263) && (x_265 <= x_266))) {
+    if (((x_262 <= x_263) & (x_265 <= x_266))) {
     } else {
       break;
     }
@@ -61,7 +61,7 @@
     int const x_298 = i;
     int const x_300 = i;
     int const x_301 = *(mid);
-    if (((x_298 < 10) && (x_300 <= x_301))) {
+    if (((x_298 < 10) & (x_300 <= x_301))) {
     } else {
       break;
     }
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.spvasm.expected.wgsl
index e61feb5..961f5bc 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.spvasm.expected.wgsl
@@ -36,7 +36,7 @@
     let x_263 : i32 = *(mid);
     let x_265 : i32 = j;
     let x_266 : i32 = *(to);
-    if (((x_262 <= x_263) && (x_265 <= x_266))) {
+    if (((x_262 <= x_263) & (x_265 <= x_266))) {
     } else {
       break;
     }
@@ -64,7 +64,7 @@
     let x_298 : i32 = i;
     let x_300 : i32 = i;
     let x_301 : i32 = *(mid);
-    if (((x_298 < 10) && (x_300 <= x_301))) {
+    if (((x_298 < 10) & (x_300 <= x_301))) {
     } else {
       break;
     }
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.spvasm.expected.hlsl
index b6f582e..e78af85 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.spvasm.expected.hlsl
@@ -25,11 +25,7 @@
     const int x_264 = mid;
     const int x_266 = j;
     const int x_267 = to;
-    bool tint_tmp = (x_263 <= x_264);
-    if (tint_tmp) {
-      tint_tmp = (x_266 <= x_267);
-    }
-    if ((tint_tmp)) {
+    if (((x_263 <= x_264) & (x_266 <= x_267))) {
     } else {
       break;
     }
@@ -55,11 +51,7 @@
     const int x_299 = i;
     const int x_301 = i;
     const int x_302 = mid;
-    bool tint_tmp_1 = (x_299 < 10);
-    if (tint_tmp_1) {
-      tint_tmp_1 = (x_301 <= x_302);
-    }
-    if ((tint_tmp_1)) {
+    if (((x_299 < 10) & (x_301 <= x_302))) {
     } else {
       break;
     }
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.spvasm.expected.msl
index 983295b..5676576 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.spvasm.expected.msl
@@ -33,7 +33,7 @@
     int const x_264 = *(mid);
     int const x_266 = j;
     int const x_267 = *(to);
-    if (((x_263 <= x_264) && (x_266 <= x_267))) {
+    if (((x_263 <= x_264) & (x_266 <= x_267))) {
     } else {
       break;
     }
@@ -61,7 +61,7 @@
     int const x_299 = i;
     int const x_301 = i;
     int const x_302 = *(mid);
-    if (((x_299 < 10) && (x_301 <= x_302))) {
+    if (((x_299 < 10) & (x_301 <= x_302))) {
     } else {
       break;
     }
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.spvasm.expected.wgsl
index b969e06..e37d777 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.spvasm.expected.wgsl
@@ -36,7 +36,7 @@
     let x_264 : i32 = *(mid);
     let x_266 : i32 = j;
     let x_267 : i32 = *(to);
-    if (((x_263 <= x_264) && (x_266 <= x_267))) {
+    if (((x_263 <= x_264) & (x_266 <= x_267))) {
     } else {
       break;
     }
@@ -64,7 +64,7 @@
     let x_299 : i32 = i;
     let x_301 : i32 = i;
     let x_302 : i32 = *(mid);
-    if (((x_299 < 10) && (x_301 <= x_302))) {
+    if (((x_299 < 10) & (x_301 <= x_302))) {
     } else {
       break;
     }
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.spvasm.expected.hlsl
index 61539cb..cebe086 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.spvasm.expected.hlsl
@@ -25,11 +25,7 @@
     const int x_265 = mid;
     const int x_267 = j;
     const int x_268 = to;
-    bool tint_tmp = (x_264 <= x_265);
-    if (tint_tmp) {
-      tint_tmp = (x_267 <= x_268);
-    }
-    if ((tint_tmp)) {
+    if (((x_264 <= x_265) & (x_267 <= x_268))) {
     } else {
       break;
     }
@@ -59,11 +55,7 @@
     const int x_301 = i;
     const int x_303 = i;
     const int x_304 = mid;
-    bool tint_tmp_1 = (x_301 < 10);
-    if (tint_tmp_1) {
-      tint_tmp_1 = (x_303 <= x_304);
-    }
-    if ((tint_tmp_1)) {
+    if (((x_301 < 10) & (x_303 <= x_304))) {
     } else {
       break;
     }
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.spvasm.expected.msl
index e2f2448..4bc9816 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.spvasm.expected.msl
@@ -33,7 +33,7 @@
     int const x_265 = *(mid);
     int const x_267 = j;
     int const x_268 = *(to);
-    if (((x_264 <= x_265) && (x_267 <= x_268))) {
+    if (((x_264 <= x_265) & (x_267 <= x_268))) {
     } else {
       break;
     }
@@ -65,7 +65,7 @@
     int const x_301 = i;
     int const x_303 = i;
     int const x_304 = *(mid);
-    if (((x_301 < 10) && (x_303 <= x_304))) {
+    if (((x_301 < 10) & (x_303 <= x_304))) {
     } else {
       break;
     }
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.spvasm.expected.wgsl
index b26ac12..a1f8110 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.spvasm.expected.wgsl
@@ -36,7 +36,7 @@
     let x_265 : i32 = *(mid);
     let x_267 : i32 = j;
     let x_268 : i32 = *(to);
-    if (((x_264 <= x_265) && (x_267 <= x_268))) {
+    if (((x_264 <= x_265) & (x_267 <= x_268))) {
     } else {
       break;
     }
@@ -68,7 +68,7 @@
     let x_301 : i32 = i;
     let x_303 : i32 = i;
     let x_304 : i32 = *(mid);
-    if (((x_301 < 10) && (x_303 <= x_304))) {
+    if (((x_301 < 10) & (x_303 <= x_304))) {
     } else {
       break;
     }
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.spvasm.expected.hlsl
index 975a0e5..6c28e9e 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.spvasm.expected.hlsl
@@ -163,11 +163,7 @@
         x_131 = x_131_phi;
         const int x_134 = x_134_phi;
         x_136 = x_136_phi;
-        bool tint_tmp = (x_136 <= x_126);
-        if (tint_tmp) {
-          tint_tmp = (x_134 <= x_129);
-        }
-        if ((tint_tmp)) {
+        if (((x_136 <= x_126) & (x_134 <= x_129))) {
         } else {
           break;
         }
@@ -204,11 +200,7 @@
         int x_162 = 0;
         const int x_158 = x_158_phi;
         const int x_161 = x_161_phi;
-        bool tint_tmp_1 = (x_161 < 10);
-        if (tint_tmp_1) {
-          tint_tmp_1 = (x_161 <= x_126);
-        }
-        if ((tint_tmp_1)) {
+        if (((x_161 < 10) & (x_161 <= x_126))) {
         } else {
           break;
         }
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.spvasm.expected.msl
index e8a7ca8..27feeef 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.spvasm.expected.msl
@@ -173,7 +173,7 @@
         x_131 = x_131_phi;
         int const x_134 = x_134_phi;
         x_136 = x_136_phi;
-        if (((x_136 <= x_126) && (x_134 <= x_129))) {
+        if (((x_136 <= x_126) & (x_134 <= x_129))) {
         } else {
           break;
         }
@@ -210,7 +210,7 @@
         int x_162 = 0;
         int const x_158 = x_158_phi;
         int const x_161 = x_161_phi;
-        if (((x_161 < 10) && (x_161 <= x_126))) {
+        if (((x_161 < 10) & (x_161 <= x_126))) {
         } else {
           break;
         }
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.spvasm.expected.wgsl
index fc4bfa1..705774f 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.spvasm.expected.wgsl
@@ -158,7 +158,7 @@
         x_131 = x_131_phi;
         let x_134 : i32 = x_134_phi;
         x_136 = x_136_phi;
-        if (((x_136 <= x_126) && (x_134 <= x_129))) {
+        if (((x_136 <= x_126) & (x_134 <= x_129))) {
         } else {
           break;
         }
@@ -196,7 +196,7 @@
         var x_162 : i32;
         let x_158 : i32 = x_158_phi;
         let x_161 : i32 = x_161_phi;
-        if (((x_161 < 10) && (x_161 <= x_126))) {
+        if (((x_161 < 10) & (x_161 <= x_126))) {
         } else {
           break;
         }
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.spvasm.expected.hlsl
index 3b86173..40b050e 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.spvasm.expected.hlsl
@@ -159,11 +159,7 @@
         x_130 = x_130_phi;
         const int x_133 = x_133_phi;
         x_135 = x_135_phi;
-        bool tint_tmp = (x_135 <= x_125);
-        if (tint_tmp) {
-          tint_tmp = (x_133 <= x_128);
-        }
-        if ((tint_tmp)) {
+        if (((x_135 <= x_125) & (x_133 <= x_128))) {
         } else {
           break;
         }
@@ -200,11 +196,7 @@
         int x_161 = 0;
         const int x_157 = x_157_phi;
         const int x_160 = x_160_phi;
-        bool tint_tmp_1 = (x_160 < 10);
-        if (tint_tmp_1) {
-          tint_tmp_1 = (x_160 <= x_125);
-        }
-        if ((tint_tmp_1)) {
+        if (((x_160 < 10) & (x_160 <= x_125))) {
         } else {
           break;
         }
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.spvasm.expected.msl
index 64e598b..14e0ab3 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.spvasm.expected.msl
@@ -169,7 +169,7 @@
         x_130 = x_130_phi;
         int const x_133 = x_133_phi;
         x_135 = x_135_phi;
-        if (((x_135 <= x_125) && (x_133 <= x_128))) {
+        if (((x_135 <= x_125) & (x_133 <= x_128))) {
         } else {
           break;
         }
@@ -206,7 +206,7 @@
         int x_161 = 0;
         int const x_157 = x_157_phi;
         int const x_160 = x_160_phi;
-        if (((x_160 < 10) && (x_160 <= x_125))) {
+        if (((x_160 < 10) & (x_160 <= x_125))) {
         } else {
           break;
         }
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.spvasm.expected.wgsl
index 0d0b64b..235e196 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.spvasm.expected.wgsl
@@ -155,7 +155,7 @@
         x_130 = x_130_phi;
         let x_133 : i32 = x_133_phi;
         x_135 = x_135_phi;
-        if (((x_135 <= x_125) && (x_133 <= x_128))) {
+        if (((x_135 <= x_125) & (x_133 <= x_128))) {
         } else {
           break;
         }
@@ -193,7 +193,7 @@
         var x_161 : i32;
         let x_157 : i32 = x_157_phi;
         let x_160 : i32 = x_160_phi;
-        if (((x_160 < 10) && (x_160 <= x_125))) {
+        if (((x_160 < 10) & (x_160 <= x_125))) {
         } else {
           break;
         }
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.spvasm.expected.hlsl
index 6a30ba4..d473288 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.spvasm.expected.hlsl
@@ -22,11 +22,7 @@
     const int x_260 = mid;
     const int x_262 = j;
     const int x_263 = to;
-    bool tint_tmp = (x_259 <= x_260);
-    if (tint_tmp) {
-      tint_tmp = (x_262 <= x_263);
-    }
-    if ((tint_tmp)) {
+    if (((x_259 <= x_260) & (x_262 <= x_263))) {
     } else {
       break;
     }
@@ -52,11 +48,7 @@
     const int x_295 = i;
     const int x_297 = i;
     const int x_298 = mid;
-    bool tint_tmp_1 = (x_295 < 10);
-    if (tint_tmp_1) {
-      tint_tmp_1 = (x_297 <= x_298);
-    }
-    if ((tint_tmp_1)) {
+    if (((x_295 < 10) & (x_297 <= x_298))) {
     } else {
       break;
     }
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.spvasm.expected.msl
index 6340b47..fd9f3b9 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.spvasm.expected.msl
@@ -30,7 +30,7 @@
     int const x_260 = *(mid);
     int const x_262 = j;
     int const x_263 = *(to);
-    if (((x_259 <= x_260) && (x_262 <= x_263))) {
+    if (((x_259 <= x_260) & (x_262 <= x_263))) {
     } else {
       break;
     }
@@ -58,7 +58,7 @@
     int const x_295 = i;
     int const x_297 = i;
     int const x_298 = *(mid);
-    if (((x_295 < 10) && (x_297 <= x_298))) {
+    if (((x_295 < 10) & (x_297 <= x_298))) {
     } else {
       break;
     }
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.spvasm.expected.wgsl
index c8f464e..9c02946 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.spvasm.expected.wgsl
@@ -29,7 +29,7 @@
     let x_260 : i32 = *(mid);
     let x_262 : i32 = j;
     let x_263 : i32 = *(to);
-    if (((x_259 <= x_260) && (x_262 <= x_263))) {
+    if (((x_259 <= x_260) & (x_262 <= x_263))) {
     } else {
       break;
     }
@@ -57,7 +57,7 @@
     let x_295 : i32 = i;
     let x_297 : i32 = i;
     let x_298 : i32 = *(mid);
-    if (((x_295 < 10) && (x_297 <= x_298))) {
+    if (((x_295 < 10) & (x_297 <= x_298))) {
     } else {
       break;
     }
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.spvasm.expected.hlsl
index b21b248..500e49e 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.spvasm.expected.hlsl
@@ -22,11 +22,7 @@
     const int x_271 = mid;
     const int x_273 = j;
     const int x_274 = to;
-    bool tint_tmp = (x_270 <= x_271);
-    if (tint_tmp) {
-      tint_tmp = (x_273 <= x_274);
-    }
-    if ((tint_tmp)) {
+    if (((x_270 <= x_271) & (x_273 <= x_274))) {
     } else {
       break;
     }
@@ -52,11 +48,7 @@
     const int x_306 = i;
     const int x_308 = i;
     const int x_309 = mid;
-    bool tint_tmp_1 = (x_306 < 10);
-    if (tint_tmp_1) {
-      tint_tmp_1 = (x_308 <= x_309);
-    }
-    if ((tint_tmp_1)) {
+    if (((x_306 < 10) & (x_308 <= x_309))) {
     } else {
       break;
     }
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.spvasm.expected.msl
index 941121e..83c2354 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.spvasm.expected.msl
@@ -30,7 +30,7 @@
     int const x_271 = *(mid);
     int const x_273 = j;
     int const x_274 = *(to);
-    if (((x_270 <= x_271) && (x_273 <= x_274))) {
+    if (((x_270 <= x_271) & (x_273 <= x_274))) {
     } else {
       break;
     }
@@ -58,7 +58,7 @@
     int const x_306 = i;
     int const x_308 = i;
     int const x_309 = *(mid);
-    if (((x_306 < 10) && (x_308 <= x_309))) {
+    if (((x_306 < 10) & (x_308 <= x_309))) {
     } else {
       break;
     }
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.spvasm.expected.wgsl
index 4e442a3..ce49bac 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.spvasm.expected.wgsl
@@ -29,7 +29,7 @@
     let x_271 : i32 = *(mid);
     let x_273 : i32 = j;
     let x_274 : i32 = *(to);
-    if (((x_270 <= x_271) && (x_273 <= x_274))) {
+    if (((x_270 <= x_271) & (x_273 <= x_274))) {
     } else {
       break;
     }
@@ -57,7 +57,7 @@
     let x_306 : i32 = i;
     let x_308 : i32 = i;
     let x_309 : i32 = *(mid);
-    if (((x_306 < 10) && (x_308 <= x_309))) {
+    if (((x_306 < 10) & (x_308 <= x_309))) {
     } else {
       break;
     }
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.spvasm.expected.hlsl
index 5cccfe9..53b5eb3 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.spvasm.expected.hlsl
@@ -45,11 +45,7 @@
     const int x_267 = mid;
     const int x_269 = j;
     const int x_270 = to;
-    bool tint_tmp = (x_266 <= x_267);
-    if (tint_tmp) {
-      tint_tmp = (x_269 <= x_270);
-    }
-    if ((tint_tmp)) {
+    if (((x_266 <= x_267) & (x_269 <= x_270))) {
     } else {
       break;
     }
@@ -157,11 +153,7 @@
     const int x_376 = i;
     const int x_378 = i;
     const int x_379 = mid;
-    bool tint_tmp_1 = (x_376 < 10);
-    if (tint_tmp_1) {
-      tint_tmp_1 = (x_378 <= x_379);
-    }
-    if ((tint_tmp_1)) {
+    if (((x_376 < 10) & (x_378 <= x_379))) {
     } else {
       break;
     }
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.spvasm.expected.msl
index a023050..d184fe6 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.spvasm.expected.msl
@@ -53,7 +53,7 @@
     int const x_267 = *(mid);
     int const x_269 = j;
     int const x_270 = *(to);
-    if (((x_266 <= x_267) && (x_269 <= x_270))) {
+    if (((x_266 <= x_267) & (x_269 <= x_270))) {
     } else {
       break;
     }
@@ -166,7 +166,7 @@
     int const x_376 = i;
     int const x_378 = i;
     int const x_379 = *(mid);
-    if (((x_376 < 10) && (x_378 <= x_379))) {
+    if (((x_376 < 10) & (x_378 <= x_379))) {
     } else {
       break;
     }
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.spvasm.expected.wgsl
index 5fac853..395b996 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.spvasm.expected.wgsl
@@ -52,7 +52,7 @@
     let x_267 : i32 = *(mid);
     let x_269 : i32 = j;
     let x_270 : i32 = *(to);
-    if (((x_266 <= x_267) && (x_269 <= x_270))) {
+    if (((x_266 <= x_267) & (x_269 <= x_270))) {
     } else {
       break;
     }
@@ -165,7 +165,7 @@
     let x_376 : i32 = i;
     let x_378 : i32 = i;
     let x_379 : i32 = *(mid);
-    if (((x_376 < 10) && (x_378 <= x_379))) {
+    if (((x_376 < 10) & (x_378 <= x_379))) {
     } else {
       break;
     }
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.spvasm.expected.hlsl
index 9cf6e4b..316ccb0 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.spvasm.expected.hlsl
@@ -44,11 +44,7 @@
     const int x_265 = mid;
     const int x_267 = j;
     const int x_268 = to;
-    bool tint_tmp = (x_264 <= x_265);
-    if (tint_tmp) {
-      tint_tmp = (x_267 <= x_268);
-    }
-    if ((tint_tmp)) {
+    if (((x_264 <= x_265) & (x_267 <= x_268))) {
     } else {
       break;
     }
@@ -156,11 +152,7 @@
     const int x_374 = i;
     const int x_376 = i;
     const int x_377 = mid;
-    bool tint_tmp_1 = (x_374 < 10);
-    if (tint_tmp_1) {
-      tint_tmp_1 = (x_376 <= x_377);
-    }
-    if ((tint_tmp_1)) {
+    if (((x_374 < 10) & (x_376 <= x_377))) {
     } else {
       break;
     }
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.spvasm.expected.msl
index c3a165b..3c42a41 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.spvasm.expected.msl
@@ -52,7 +52,7 @@
     int const x_265 = *(mid);
     int const x_267 = j;
     int const x_268 = *(to);
-    if (((x_264 <= x_265) && (x_267 <= x_268))) {
+    if (((x_264 <= x_265) & (x_267 <= x_268))) {
     } else {
       break;
     }
@@ -165,7 +165,7 @@
     int const x_374 = i;
     int const x_376 = i;
     int const x_377 = *(mid);
-    if (((x_374 < 10) && (x_376 <= x_377))) {
+    if (((x_374 < 10) & (x_376 <= x_377))) {
     } else {
       break;
     }
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.spvasm.expected.wgsl
index e349c0c..b3b7461 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.spvasm.expected.wgsl
@@ -51,7 +51,7 @@
     let x_265 : i32 = *(mid);
     let x_267 : i32 = j;
     let x_268 : i32 = *(to);
-    if (((x_264 <= x_265) && (x_267 <= x_268))) {
+    if (((x_264 <= x_265) & (x_267 <= x_268))) {
     } else {
       break;
     }
@@ -164,7 +164,7 @@
     let x_374 : i32 = i;
     let x_376 : i32 = i;
     let x_377 : i32 = *(mid);
-    if (((x_374 < 10) && (x_376 <= x_377))) {
+    if (((x_374 < 10) & (x_376 <= x_377))) {
     } else {
       break;
     }
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.spvasm.expected.hlsl
index 03b86e8..11f7dec 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.spvasm.expected.hlsl
@@ -22,11 +22,7 @@
     const int x_312 = mid;
     const int x_314 = j;
     const int x_315 = to;
-    bool tint_tmp = (x_311 <= x_312);
-    if (tint_tmp) {
-      tint_tmp = (x_314 <= x_315);
-    }
-    if ((tint_tmp)) {
+    if (((x_311 <= x_312) & (x_314 <= x_315))) {
     } else {
       break;
     }
@@ -52,11 +48,7 @@
     const int x_347 = i;
     const int x_349 = i;
     const int x_350 = mid;
-    bool tint_tmp_1 = (x_347 < 10);
-    if (tint_tmp_1) {
-      tint_tmp_1 = (x_349 <= x_350);
-    }
-    if ((tint_tmp_1)) {
+    if (((x_347 < 10) & (x_349 <= x_350))) {
     } else {
       break;
     }
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.spvasm.expected.msl
index 6506890..e99a3a3 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.spvasm.expected.msl
@@ -30,7 +30,7 @@
     int const x_312 = *(mid);
     int const x_314 = j;
     int const x_315 = *(to);
-    if (((x_311 <= x_312) && (x_314 <= x_315))) {
+    if (((x_311 <= x_312) & (x_314 <= x_315))) {
     } else {
       break;
     }
@@ -58,7 +58,7 @@
     int const x_347 = i;
     int const x_349 = i;
     int const x_350 = *(mid);
-    if (((x_347 < 10) && (x_349 <= x_350))) {
+    if (((x_347 < 10) & (x_349 <= x_350))) {
     } else {
       break;
     }
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.spvasm.expected.wgsl
index bf16229..4f2a421 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.spvasm.expected.wgsl
@@ -29,7 +29,7 @@
     let x_312 : i32 = *(mid);
     let x_314 : i32 = j;
     let x_315 : i32 = *(to);
-    if (((x_311 <= x_312) && (x_314 <= x_315))) {
+    if (((x_311 <= x_312) & (x_314 <= x_315))) {
     } else {
       break;
     }
@@ -57,7 +57,7 @@
     let x_347 : i32 = i;
     let x_349 : i32 = i;
     let x_350 : i32 = *(mid);
-    if (((x_347 < 10) && (x_349 <= x_350))) {
+    if (((x_347 < 10) & (x_349 <= x_350))) {
     } else {
       break;
     }
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.spvasm.expected.hlsl
index 30e945e..4e85af2 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.spvasm.expected.hlsl
@@ -22,11 +22,7 @@
     const int x_311 = mid;
     const int x_313 = j;
     const int x_314 = to;
-    bool tint_tmp = (x_310 <= x_311);
-    if (tint_tmp) {
-      tint_tmp = (x_313 <= x_314);
-    }
-    if ((tint_tmp)) {
+    if (((x_310 <= x_311) & (x_313 <= x_314))) {
     } else {
       break;
     }
@@ -52,11 +48,7 @@
     const int x_346 = i;
     const int x_348 = i;
     const int x_349 = mid;
-    bool tint_tmp_1 = (x_346 < 10);
-    if (tint_tmp_1) {
-      tint_tmp_1 = (x_348 <= x_349);
-    }
-    if ((tint_tmp_1)) {
+    if (((x_346 < 10) & (x_348 <= x_349))) {
     } else {
       break;
     }
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.spvasm.expected.msl
index a550d0f..12cf733 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.spvasm.expected.msl
@@ -30,7 +30,7 @@
     int const x_311 = *(mid);
     int const x_313 = j;
     int const x_314 = *(to);
-    if (((x_310 <= x_311) && (x_313 <= x_314))) {
+    if (((x_310 <= x_311) & (x_313 <= x_314))) {
     } else {
       break;
     }
@@ -58,7 +58,7 @@
     int const x_346 = i;
     int const x_348 = i;
     int const x_349 = *(mid);
-    if (((x_346 < 10) && (x_348 <= x_349))) {
+    if (((x_346 < 10) & (x_348 <= x_349))) {
     } else {
       break;
     }
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.spvasm.expected.wgsl
index 57c9c29..f9f5006 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.spvasm.expected.wgsl
@@ -29,7 +29,7 @@
     let x_311 : i32 = *(mid);
     let x_313 : i32 = j;
     let x_314 : i32 = *(to);
-    if (((x_310 <= x_311) && (x_313 <= x_314))) {
+    if (((x_310 <= x_311) & (x_313 <= x_314))) {
     } else {
       break;
     }
@@ -57,7 +57,7 @@
     let x_346 : i32 = i;
     let x_348 : i32 = i;
     let x_349 : i32 = *(mid);
-    if (((x_346 < 10) && (x_348 <= x_349))) {
+    if (((x_346 < 10) & (x_348 <= x_349))) {
     } else {
       break;
     }
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.spvasm.expected.hlsl
index edd60f7..8f288a0 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.spvasm.expected.hlsl
@@ -22,11 +22,7 @@
     const int x_269 = mid;
     const int x_271 = j;
     const int x_272 = to;
-    bool tint_tmp = (x_268 <= x_269);
-    if (tint_tmp) {
-      tint_tmp = (x_271 <= x_272);
-    }
-    if ((tint_tmp)) {
+    if (((x_268 <= x_269) & (x_271 <= x_272))) {
     } else {
       break;
     }
@@ -52,11 +48,7 @@
     const int x_304 = i;
     const int x_306 = i;
     const int x_307 = mid;
-    bool tint_tmp_1 = (x_304 < 10);
-    if (tint_tmp_1) {
-      tint_tmp_1 = (x_306 <= x_307);
-    }
-    if ((tint_tmp_1)) {
+    if (((x_304 < 10) & (x_306 <= x_307))) {
     } else {
       break;
     }
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.spvasm.expected.msl
index eb075ff..f5841d1 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.spvasm.expected.msl
@@ -30,7 +30,7 @@
     int const x_269 = *(mid);
     int const x_271 = j;
     int const x_272 = *(to);
-    if (((x_268 <= x_269) && (x_271 <= x_272))) {
+    if (((x_268 <= x_269) & (x_271 <= x_272))) {
     } else {
       break;
     }
@@ -58,7 +58,7 @@
     int const x_304 = i;
     int const x_306 = i;
     int const x_307 = *(mid);
-    if (((x_304 < 10) && (x_306 <= x_307))) {
+    if (((x_304 < 10) & (x_306 <= x_307))) {
     } else {
       break;
     }
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.spvasm.expected.wgsl
index 460ad4b..da0de00 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.spvasm.expected.wgsl
@@ -29,7 +29,7 @@
     let x_269 : i32 = *(mid);
     let x_271 : i32 = j;
     let x_272 : i32 = *(to);
-    if (((x_268 <= x_269) && (x_271 <= x_272))) {
+    if (((x_268 <= x_269) & (x_271 <= x_272))) {
     } else {
       break;
     }
@@ -57,7 +57,7 @@
     let x_304 : i32 = i;
     let x_306 : i32 = i;
     let x_307 : i32 = *(mid);
-    if (((x_304 < 10) && (x_306 <= x_307))) {
+    if (((x_304 < 10) & (x_306 <= x_307))) {
     } else {
       break;
     }
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.spvasm.expected.hlsl
index d8b974e..0f638e2 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.spvasm.expected.hlsl
@@ -126,11 +126,7 @@
         x_121 = x_121_phi;
         const int x_124 = x_124_phi;
         x_126 = x_126_phi;
-        bool tint_tmp = (x_126 <= x_116);
-        if (tint_tmp) {
-          tint_tmp = (x_124 <= x_119);
-        }
-        if ((tint_tmp)) {
+        if (((x_126 <= x_116) & (x_124 <= x_119))) {
         } else {
           break;
         }
@@ -167,11 +163,7 @@
         int x_152 = 0;
         const int x_148 = x_148_phi;
         const int x_151 = x_151_phi;
-        bool tint_tmp_1 = (x_151 < 10);
-        if (tint_tmp_1) {
-          tint_tmp_1 = (x_151 <= x_116);
-        }
-        if ((tint_tmp_1)) {
+        if (((x_151 < 10) & (x_151 <= x_116))) {
         } else {
           break;
         }
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.spvasm.expected.msl
index ae3ef06..80b6ad8 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.spvasm.expected.msl
@@ -136,7 +136,7 @@
         x_121 = x_121_phi;
         int const x_124 = x_124_phi;
         x_126 = x_126_phi;
-        if (((x_126 <= x_116) && (x_124 <= x_119))) {
+        if (((x_126 <= x_116) & (x_124 <= x_119))) {
         } else {
           break;
         }
@@ -173,7 +173,7 @@
         int x_152 = 0;
         int const x_148 = x_148_phi;
         int const x_151 = x_151_phi;
-        if (((x_151 < 10) && (x_151 <= x_116))) {
+        if (((x_151 < 10) & (x_151 <= x_116))) {
         } else {
           break;
         }
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.spvasm.expected.wgsl
index eb23a41..81c3d6c 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.spvasm.expected.wgsl
@@ -122,7 +122,7 @@
         x_121 = x_121_phi;
         let x_124 : i32 = x_124_phi;
         x_126 = x_126_phi;
-        if (((x_126 <= x_116) && (x_124 <= x_119))) {
+        if (((x_126 <= x_116) & (x_124 <= x_119))) {
         } else {
           break;
         }
@@ -160,7 +160,7 @@
         var x_152 : i32;
         let x_148 : i32 = x_148_phi;
         let x_151 : i32 = x_151_phi;
-        if (((x_151 < 10) && (x_151 <= x_116))) {
+        if (((x_151 < 10) & (x_151 <= x_116))) {
         } else {
           break;
         }
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.spvasm.expected.hlsl
index 347df10..a730b99 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.spvasm.expected.hlsl
@@ -22,11 +22,7 @@
     const int x_271 = mid;
     const int x_273 = j;
     const int x_274 = to;
-    bool tint_tmp = (x_270 <= x_271);
-    if (tint_tmp) {
-      tint_tmp = (x_273 <= x_274);
-    }
-    if ((tint_tmp)) {
+    if (((x_270 <= x_271) & (x_273 <= x_274))) {
     } else {
       break;
     }
@@ -52,11 +48,7 @@
     const int x_306 = i;
     const int x_308 = i;
     const int x_309 = mid;
-    bool tint_tmp_1 = (x_306 < 10);
-    if (tint_tmp_1) {
-      tint_tmp_1 = (x_308 <= x_309);
-    }
-    if ((tint_tmp_1)) {
+    if (((x_306 < 10) & (x_308 <= x_309))) {
     } else {
       break;
     }
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.spvasm.expected.msl
index 23be1b2..0e73bb3 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.spvasm.expected.msl
@@ -30,7 +30,7 @@
     int const x_271 = *(mid);
     int const x_273 = j;
     int const x_274 = *(to);
-    if (((x_270 <= x_271) && (x_273 <= x_274))) {
+    if (((x_270 <= x_271) & (x_273 <= x_274))) {
     } else {
       break;
     }
@@ -58,7 +58,7 @@
     int const x_306 = i;
     int const x_308 = i;
     int const x_309 = *(mid);
-    if (((x_306 < 10) && (x_308 <= x_309))) {
+    if (((x_306 < 10) & (x_308 <= x_309))) {
     } else {
       break;
     }
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.spvasm.expected.wgsl
index c64c646..1649944 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.spvasm.expected.wgsl
@@ -29,7 +29,7 @@
     let x_271 : i32 = *(mid);
     let x_273 : i32 = j;
     let x_274 : i32 = *(to);
-    if (((x_270 <= x_271) && (x_273 <= x_274))) {
+    if (((x_270 <= x_271) & (x_273 <= x_274))) {
     } else {
       break;
     }
@@ -57,7 +57,7 @@
     let x_306 : i32 = i;
     let x_308 : i32 = i;
     let x_309 : i32 = *(mid);
-    if (((x_306 < 10) && (x_308 <= x_309))) {
+    if (((x_306 < 10) & (x_308 <= x_309))) {
     } else {
       break;
     }
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.spvasm.expected.hlsl
index fd9d668..4b03ca9 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.spvasm.expected.hlsl
@@ -55,18 +55,10 @@
       param_3 = float2((x_123 - x_124), (x_127 - x_128));
       const float x_131 = cross2d_vf2_vf2_(param_2, param_3);
       pbc = x_131;
-      bool tint_tmp = (x_114 < 0.0f);
-      if (tint_tmp) {
-        tint_tmp = (x_131 < 0.0f);
-      }
-      const bool x_134 = (tint_tmp);
+      const bool x_134 = ((x_114 < 0.0f) & (x_131 < 0.0f));
       x_141_phi = x_134;
       if (!(x_134)) {
-        bool tint_tmp_1 = (x_114 >= 0.0f);
-        if (tint_tmp_1) {
-          tint_tmp_1 = (x_131 >= 0.0f);
-        }
-        x_140 = (tint_tmp_1);
+        x_140 = ((x_114 >= 0.0f) & (x_131 >= 0.0f));
         x_141_phi = x_140;
       }
       if (!(x_141_phi)) {
@@ -87,18 +79,10 @@
       param_5 = float2((x_152 - x_153), (x_155 - x_156));
       const float x_159 = cross2d_vf2_vf2_(param_4, param_5);
       pca = x_159;
-      bool tint_tmp_2 = (x_114 < 0.0f);
-      if (tint_tmp_2) {
-        tint_tmp_2 = (x_159 < 0.0f);
-      }
-      const bool x_162 = (tint_tmp_2);
+      const bool x_162 = ((x_114 < 0.0f) & (x_159 < 0.0f));
       x_169_phi = x_162;
       if (!(x_162)) {
-        bool tint_tmp_3 = (x_114 >= 0.0f);
-        if (tint_tmp_3) {
-          tint_tmp_3 = (x_159 >= 0.0f);
-        }
-        x_168 = (tint_tmp_3);
+        x_168 = ((x_114 >= 0.0f) & (x_159 >= 0.0f));
         x_169_phi = x_168;
       }
       if (!(x_169_phi)) {
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.spvasm.expected.msl
index c8cbf19..43a265b 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.spvasm.expected.msl
@@ -62,10 +62,10 @@
       param_3 = float2((x_123 - x_124), (x_127 - x_128));
       float const x_131 = cross2d_vf2_vf2_(&(param_2), &(param_3));
       pbc = x_131;
-      bool const x_134 = ((x_114 < 0.0f) && (x_131 < 0.0f));
+      bool const x_134 = ((x_114 < 0.0f) & (x_131 < 0.0f));
       x_141_phi = x_134;
       if (!(x_134)) {
-        x_140 = ((x_114 >= 0.0f) && (x_131 >= 0.0f));
+        x_140 = ((x_114 >= 0.0f) & (x_131 >= 0.0f));
         x_141_phi = x_140;
       }
       bool const x_141 = x_141_phi;
@@ -87,10 +87,10 @@
       param_5 = float2((x_152 - x_153), (x_155 - x_156));
       float const x_159 = cross2d_vf2_vf2_(&(param_4), &(param_5));
       pca = x_159;
-      bool const x_162 = ((x_114 < 0.0f) && (x_159 < 0.0f));
+      bool const x_162 = ((x_114 < 0.0f) & (x_159 < 0.0f));
       x_169_phi = x_162;
       if (!(x_162)) {
-        x_168 = ((x_114 >= 0.0f) && (x_159 >= 0.0f));
+        x_168 = ((x_114 >= 0.0f) & (x_159 >= 0.0f));
         x_169_phi = x_168;
       }
       bool const x_169 = x_169_phi;
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.spvasm.expected.spvasm
index 59e04f8..97a8140 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.spvasm.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 265
+; Bound: 257
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -92,22 +92,22 @@
       %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
        %void = OpTypeVoid
-        %214 = OpTypeFunction %void
+        %206 = OpTypeFunction %void
 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
 %float_0_699999988 = OpConstant %float 0.699999988
 %float_0_300000012 = OpConstant %float 0.300000012
-        %233 = OpConstantComposite %v2float %float_0_699999988 %float_0_300000012
+        %225 = OpConstantComposite %v2float %float_0_699999988 %float_0_300000012
   %float_0_5 = OpConstant %float 0.5
 %float_0_899999976 = OpConstant %float 0.899999976
-        %236 = OpConstantComposite %v2float %float_0_5 %float_0_899999976
+        %228 = OpConstantComposite %v2float %float_0_5 %float_0_899999976
 %float_0_100000001 = OpConstant %float 0.100000001
 %float_0_400000006 = OpConstant %float 0.400000006
-        %239 = OpConstantComposite %v2float %float_0_100000001 %float_0_400000006
+        %231 = OpConstantComposite %v2float %float_0_100000001 %float_0_400000006
     %float_1 = OpConstant %float 1
-        %250 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
-        %251 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
+        %242 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
+        %243 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %252 = OpTypeFunction %void %main_out
+        %244 = OpTypeFunction %void %main_out
 %cross2d_vf2_vf2_ = OpFunction %float None %15
           %a = OpFunctionParameter %_ptr_Function_v2float
           %b = OpFunctionParameter %_ptr_Function_v2float
@@ -204,157 +204,137 @@
         %137 = OpFunctionCall %float %cross2d_vf2_vf2_ %param_2 %param_3
                OpStore %pbc %137
         %141 = OpFOrdLessThan %bool %104 %float_0
-               OpSelectionMerge %142 None
-               OpBranchConditional %141 %143 %142
-        %143 = OpLabel
-        %144 = OpFOrdLessThan %bool %137 %float_0
-               OpBranch %142
-        %142 = OpLabel
-        %145 = OpPhi %bool %141 %73 %144 %143
-               OpStore %x_141_phi %145
-        %146 = OpLogicalNot %bool %145
-               OpSelectionMerge %147 None
-               OpBranchConditional %146 %148 %147
-        %148 = OpLabel
-        %149 = OpFOrdGreaterThanEqual %bool %104 %float_0
-               OpSelectionMerge %150 None
-               OpBranchConditional %149 %151 %150
-        %151 = OpLabel
-        %152 = OpFOrdGreaterThanEqual %bool %137 %float_0
-               OpBranch %150
-        %150 = OpLabel
-        %153 = OpPhi %bool %149 %148 %152 %151
-               OpStore %x_140 %153
-        %154 = OpLoad %bool %x_140
-               OpStore %x_141_phi %154
-               OpBranch %147
-        %147 = OpLabel
-        %155 = OpLoad %bool %x_141_phi
-        %156 = OpLogicalNot %bool %155
-               OpSelectionMerge %157 None
-               OpBranchConditional %156 %158 %157
-        %158 = OpLabel
+        %142 = OpFOrdLessThan %bool %137 %float_0
+        %143 = OpLogicalAnd %bool %141 %142
+               OpStore %x_141_phi %143
+        %144 = OpLogicalNot %bool %143
+               OpSelectionMerge %145 None
+               OpBranchConditional %144 %146 %145
+        %146 = OpLabel
+        %147 = OpFOrdGreaterThanEqual %bool %104 %float_0
+        %148 = OpFOrdGreaterThanEqual %bool %137 %float_0
+        %149 = OpLogicalAnd %bool %147 %148
+               OpStore %x_140 %149
+        %150 = OpLoad %bool %x_140
+               OpStore %x_141_phi %150
+               OpBranch %145
+        %145 = OpLabel
+        %151 = OpLoad %bool %x_141_phi
+        %152 = OpLogicalNot %bool %151
+               OpSelectionMerge %153 None
+               OpBranchConditional %152 %154 %153
+        %154 = OpLabel
                OpStore %x_90 %true
                OpStore %x_91 %int_0
                OpStore %x_173_phi %int_0
                OpBranch %72
-        %157 = OpLabel
-        %162 = OpAccessChain %_ptr_Function_float %p %uint_0
-        %163 = OpLoad %float %162
-        %165 = OpAccessChain %_ptr_Function_float %c %uint_0
-        %166 = OpLoad %float %165
-        %168 = OpAccessChain %_ptr_Function_float %p %uint_1
-        %169 = OpLoad %float %168
-        %171 = OpAccessChain %_ptr_Function_float %c %uint_1
-        %172 = OpLoad %float %171
-        %174 = OpAccessChain %_ptr_Function_float %a_1 %uint_0
-        %175 = OpLoad %float %174
-        %177 = OpAccessChain %_ptr_Function_float %c %uint_0
-        %178 = OpLoad %float %177
-        %180 = OpAccessChain %_ptr_Function_float %a_1 %uint_1
-        %181 = OpLoad %float %180
-        %183 = OpAccessChain %_ptr_Function_float %c %uint_1
-        %184 = OpLoad %float %183
-        %185 = OpFSub %float %163 %166
-        %186 = OpFSub %float %169 %172
-        %187 = OpCompositeConstruct %v2float %185 %186
-               OpStore %param_4 %187
-        %188 = OpFSub %float %175 %178
-        %189 = OpFSub %float %181 %184
-        %190 = OpCompositeConstruct %v2float %188 %189
-               OpStore %param_5 %190
-        %191 = OpFunctionCall %float %cross2d_vf2_vf2_ %param_4 %param_5
-               OpStore %pca %191
-        %194 = OpFOrdLessThan %bool %104 %float_0
-               OpSelectionMerge %195 None
-               OpBranchConditional %194 %196 %195
-        %196 = OpLabel
-        %197 = OpFOrdLessThan %bool %191 %float_0
-               OpBranch %195
+        %153 = OpLabel
+        %158 = OpAccessChain %_ptr_Function_float %p %uint_0
+        %159 = OpLoad %float %158
+        %161 = OpAccessChain %_ptr_Function_float %c %uint_0
+        %162 = OpLoad %float %161
+        %164 = OpAccessChain %_ptr_Function_float %p %uint_1
+        %165 = OpLoad %float %164
+        %167 = OpAccessChain %_ptr_Function_float %c %uint_1
+        %168 = OpLoad %float %167
+        %170 = OpAccessChain %_ptr_Function_float %a_1 %uint_0
+        %171 = OpLoad %float %170
+        %173 = OpAccessChain %_ptr_Function_float %c %uint_0
+        %174 = OpLoad %float %173
+        %176 = OpAccessChain %_ptr_Function_float %a_1 %uint_1
+        %177 = OpLoad %float %176
+        %179 = OpAccessChain %_ptr_Function_float %c %uint_1
+        %180 = OpLoad %float %179
+        %181 = OpFSub %float %159 %162
+        %182 = OpFSub %float %165 %168
+        %183 = OpCompositeConstruct %v2float %181 %182
+               OpStore %param_4 %183
+        %184 = OpFSub %float %171 %174
+        %185 = OpFSub %float %177 %180
+        %186 = OpCompositeConstruct %v2float %184 %185
+               OpStore %param_5 %186
+        %187 = OpFunctionCall %float %cross2d_vf2_vf2_ %param_4 %param_5
+               OpStore %pca %187
+        %190 = OpFOrdLessThan %bool %104 %float_0
+        %191 = OpFOrdLessThan %bool %187 %float_0
+        %192 = OpLogicalAnd %bool %190 %191
+               OpStore %x_169_phi %192
+        %193 = OpLogicalNot %bool %192
+               OpSelectionMerge %194 None
+               OpBranchConditional %193 %195 %194
         %195 = OpLabel
-        %198 = OpPhi %bool %194 %157 %197 %196
-               OpStore %x_169_phi %198
-        %199 = OpLogicalNot %bool %198
-               OpSelectionMerge %200 None
-               OpBranchConditional %199 %201 %200
-        %201 = OpLabel
-        %202 = OpFOrdGreaterThanEqual %bool %104 %float_0
-               OpSelectionMerge %203 None
-               OpBranchConditional %202 %204 %203
-        %204 = OpLabel
-        %205 = OpFOrdGreaterThanEqual %bool %191 %float_0
-               OpBranch %203
+        %196 = OpFOrdGreaterThanEqual %bool %104 %float_0
+        %197 = OpFOrdGreaterThanEqual %bool %187 %float_0
+        %198 = OpLogicalAnd %bool %196 %197
+               OpStore %x_168 %198
+        %199 = OpLoad %bool %x_168
+               OpStore %x_169_phi %199
+               OpBranch %194
+        %194 = OpLabel
+        %200 = OpLoad %bool %x_169_phi
+        %201 = OpLogicalNot %bool %200
+               OpSelectionMerge %202 None
+               OpBranchConditional %201 %203 %202
         %203 = OpLabel
-        %206 = OpPhi %bool %202 %201 %205 %204
-               OpStore %x_168 %206
-        %207 = OpLoad %bool %x_168
-               OpStore %x_169_phi %207
-               OpBranch %200
-        %200 = OpLabel
-        %208 = OpLoad %bool %x_169_phi
-        %209 = OpLogicalNot %bool %208
-               OpSelectionMerge %210 None
-               OpBranchConditional %209 %211 %210
-        %211 = OpLabel
                OpStore %x_90 %true
                OpStore %x_91 %int_0
                OpStore %x_173_phi %int_0
                OpBranch %72
-        %210 = OpLabel
+        %202 = OpLabel
                OpStore %x_90 %true
                OpStore %x_91 %int_1
                OpStore %x_173_phi %int_1
                OpBranch %72
          %72 = OpLabel
-        %213 = OpLoad %int %x_173_phi
-               OpReturnValue %213
+        %205 = OpLoad %int %x_173_phi
+               OpReturnValue %205
                OpFunctionEnd
-     %main_1 = OpFunction %void None %214
-        %217 = OpLabel
+     %main_1 = OpFunction %void None %206
+        %209 = OpLabel
         %pos = OpVariable %_ptr_Function_v2float Function %59
     %param_6 = OpVariable %_ptr_Function_v2float Function %59
     %param_7 = OpVariable %_ptr_Function_v2float Function %59
     %param_8 = OpVariable %_ptr_Function_v2float Function %59
     %param_9 = OpVariable %_ptr_Function_v2float Function %59
-        %223 = OpLoad %v4float %gl_FragCoord
-        %225 = OpAccessChain %_ptr_Uniform_v2float %x_24 %uint_0
-        %226 = OpLoad %v2float %225
-        %227 = OpCompositeExtract %float %223 0
-        %228 = OpCompositeExtract %float %223 1
-        %229 = OpCompositeConstruct %v2float %227 %228
-        %230 = OpFDiv %v2float %229 %226
-               OpStore %pos %230
-               OpStore %param_6 %230
-               OpStore %param_7 %233
-               OpStore %param_8 %236
-               OpStore %param_9 %239
-        %240 = OpFunctionCall %int %pointInTriangle_vf2_vf2_vf2_vf2_ %param_6 %param_7 %param_8 %param_9
-        %245 = OpIEqual %bool %240 %int_1
-               OpSelectionMerge %246 None
-               OpBranchConditional %245 %247 %248
-        %247 = OpLabel
-               OpStore %x_GLF_color %250
-               OpBranch %246
-        %248 = OpLabel
-               OpStore %x_GLF_color %251
-               OpBranch %246
-        %246 = OpLabel
+        %215 = OpLoad %v4float %gl_FragCoord
+        %217 = OpAccessChain %_ptr_Uniform_v2float %x_24 %uint_0
+        %218 = OpLoad %v2float %217
+        %219 = OpCompositeExtract %float %215 0
+        %220 = OpCompositeExtract %float %215 1
+        %221 = OpCompositeConstruct %v2float %219 %220
+        %222 = OpFDiv %v2float %221 %218
+               OpStore %pos %222
+               OpStore %param_6 %222
+               OpStore %param_7 %225
+               OpStore %param_8 %228
+               OpStore %param_9 %231
+        %232 = OpFunctionCall %int %pointInTriangle_vf2_vf2_vf2_vf2_ %param_6 %param_7 %param_8 %param_9
+        %237 = OpIEqual %bool %232 %int_1
+               OpSelectionMerge %238 None
+               OpBranchConditional %237 %239 %240
+        %239 = OpLabel
+               OpStore %x_GLF_color %242
+               OpBranch %238
+        %240 = OpLabel
+               OpStore %x_GLF_color %243
+               OpBranch %238
+        %238 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %252
+%tint_symbol_3 = OpFunction %void None %244
 %tint_symbol_1 = OpFunctionParameter %main_out
-        %256 = OpLabel
-        %257 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %257
+        %248 = OpLabel
+        %249 = OpCompositeExtract %v4float %tint_symbol_1 0
+               OpStore %tint_symbol_2 %249
                OpReturn
                OpFunctionEnd
-       %main = OpFunction %void None %214
-        %259 = OpLabel
-        %260 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %260
-        %261 = OpFunctionCall %void %main_1
-        %263 = OpLoad %v4float %x_GLF_color
-        %264 = OpCompositeConstruct %main_out %263
-        %262 = OpFunctionCall %void %tint_symbol_3 %264
+       %main = OpFunction %void None %206
+        %251 = OpLabel
+        %252 = OpLoad %v4float %tint_symbol
+               OpStore %gl_FragCoord %252
+        %253 = OpFunctionCall %void %main_1
+        %255 = OpLoad %v4float %x_GLF_color
+        %256 = OpCompositeConstruct %main_out %255
+        %254 = OpFunctionCall %void %tint_symbol_3 %256
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.spvasm.expected.wgsl
index d2eec41..bf20547 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.spvasm.expected.wgsl
@@ -68,10 +68,10 @@
       param_3 = vec2<f32>((x_123 - x_124), (x_127 - x_128));
       let x_131 : f32 = cross2d_vf2_vf2_(&(param_2), &(param_3));
       pbc = x_131;
-      let x_134 : bool = ((x_114 < 0.0) && (x_131 < 0.0));
+      let x_134 : bool = ((x_114 < 0.0) & (x_131 < 0.0));
       x_141_phi = x_134;
       if (!(x_134)) {
-        x_140 = ((x_114 >= 0.0) && (x_131 >= 0.0));
+        x_140 = ((x_114 >= 0.0) & (x_131 >= 0.0));
         x_141_phi = x_140;
       }
       let x_141 : bool = x_141_phi;
@@ -93,10 +93,10 @@
       param_5 = vec2<f32>((x_152 - x_153), (x_155 - x_156));
       let x_159 : f32 = cross2d_vf2_vf2_(&(param_4), &(param_5));
       pca = x_159;
-      let x_162 : bool = ((x_114 < 0.0) && (x_159 < 0.0));
+      let x_162 : bool = ((x_114 < 0.0) & (x_159 < 0.0));
       x_169_phi = x_162;
       if (!(x_162)) {
-        x_168 = ((x_114 >= 0.0) && (x_159 >= 0.0));
+        x_168 = ((x_114 >= 0.0) & (x_159 >= 0.0));
         x_169_phi = x_168;
       }
       let x_169 : bool = x_169_phi;
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.spvasm.expected.hlsl
index 421b7ed..6a87269 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.spvasm.expected.hlsl
@@ -50,18 +50,10 @@
   param_3 = float2((x_116 - x_117), (x_120 - x_121));
   const float x_124 = cross2d_vf2_vf2_(param_2, param_3);
   pbc = x_124;
-  bool tint_tmp = (pab < 0.0f);
-  if (tint_tmp) {
-    tint_tmp = (pbc < 0.0f);
-  }
-  const bool x_129 = (tint_tmp);
+  const bool x_129 = ((pab < 0.0f) & (pbc < 0.0f));
   x_138_phi = x_129;
   if (!(x_129)) {
-    bool tint_tmp_1 = (pab >= 0.0f);
-    if (tint_tmp_1) {
-      tint_tmp_1 = (pbc >= 0.0f);
-    }
-    x_137 = (tint_tmp_1);
+    x_137 = ((pab >= 0.0f) & (pbc >= 0.0f));
     x_138_phi = x_137;
   }
   if (!(x_138_phi)) {
@@ -79,18 +71,10 @@
   param_5 = float2((x_149 - x_150), (x_152 - x_153));
   const float x_156 = cross2d_vf2_vf2_(param_4, param_5);
   pca = x_156;
-  bool tint_tmp_2 = (pab < 0.0f);
-  if (tint_tmp_2) {
-    tint_tmp_2 = (pca < 0.0f);
-  }
-  const bool x_161 = (tint_tmp_2);
+  const bool x_161 = ((pab < 0.0f) & (pca < 0.0f));
   x_170_phi = x_161;
   if (!(x_161)) {
-    bool tint_tmp_3 = (pab >= 0.0f);
-    if (tint_tmp_3) {
-      tint_tmp_3 = (pca >= 0.0f);
-    }
-    x_169 = (tint_tmp_3);
+    x_169 = ((pab >= 0.0f) & (pca >= 0.0f));
     x_170_phi = x_169;
   }
   if (!(x_170_phi)) {
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.spvasm.expected.msl
index ed7f078..2285b7e 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.spvasm.expected.msl
@@ -59,12 +59,12 @@
   pbc = x_124;
   float const x_125 = pab;
   float const x_127 = pbc;
-  bool const x_129 = ((x_125 < 0.0f) && (x_127 < 0.0f));
+  bool const x_129 = ((x_125 < 0.0f) & (x_127 < 0.0f));
   x_138_phi = x_129;
   if (!(x_129)) {
     float const x_133 = pab;
     float const x_135 = pbc;
-    x_137 = ((x_133 >= 0.0f) && (x_135 >= 0.0f));
+    x_137 = ((x_133 >= 0.0f) & (x_135 >= 0.0f));
     x_138_phi = x_137;
   }
   bool const x_138 = x_138_phi;
@@ -85,12 +85,12 @@
   pca = x_156;
   float const x_157 = pab;
   float const x_159 = pca;
-  bool const x_161 = ((x_157 < 0.0f) && (x_159 < 0.0f));
+  bool const x_161 = ((x_157 < 0.0f) & (x_159 < 0.0f));
   x_170_phi = x_161;
   if (!(x_161)) {
     float const x_165 = pab;
     float const x_167 = pca;
-    x_169 = ((x_165 >= 0.0f) && (x_167 >= 0.0f));
+    x_169 = ((x_165 >= 0.0f) & (x_167 >= 0.0f));
     x_170_phi = x_169;
   }
   bool const x_170 = x_170_phi;
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.spvasm.expected.spvasm
index dadcc8e..cbaf950 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.spvasm.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 264
+; Bound: 256
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -85,22 +85,22 @@
       %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
        %void = OpTypeVoid
-        %212 = OpTypeFunction %void
+        %204 = OpTypeFunction %void
 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
 %float_0_699999988 = OpConstant %float 0.699999988
 %float_0_300000012 = OpConstant %float 0.300000012
-        %232 = OpConstantComposite %v2float %float_0_699999988 %float_0_300000012
+        %224 = OpConstantComposite %v2float %float_0_699999988 %float_0_300000012
   %float_0_5 = OpConstant %float 0.5
 %float_0_899999976 = OpConstant %float 0.899999976
-        %235 = OpConstantComposite %v2float %float_0_5 %float_0_899999976
+        %227 = OpConstantComposite %v2float %float_0_5 %float_0_899999976
 %float_0_100000001 = OpConstant %float 0.100000001
 %float_0_400000006 = OpConstant %float 0.400000006
-        %238 = OpConstantComposite %v2float %float_0_100000001 %float_0_400000006
+        %230 = OpConstantComposite %v2float %float_0_100000001 %float_0_400000006
     %float_1 = OpConstant %float 1
-        %249 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
-        %250 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
+        %241 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
+        %242 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %251 = OpTypeFunction %void %main_out
+        %243 = OpTypeFunction %void %main_out
 %cross2d_vf2_vf2_ = OpFunction %float None %15
           %a = OpFunctionParameter %_ptr_Function_v2float
           %b = OpFunctionParameter %_ptr_Function_v2float
@@ -192,152 +192,132 @@
         %132 = OpLoad %float %pab
         %133 = OpLoad %float %pbc
         %135 = OpFOrdLessThan %bool %132 %float_0
-               OpSelectionMerge %136 None
-               OpBranchConditional %135 %137 %136
-        %137 = OpLabel
-        %138 = OpFOrdLessThan %bool %133 %float_0
-               OpBranch %136
-        %136 = OpLabel
-        %139 = OpPhi %bool %135 %47 %138 %137
-               OpStore %x_138_phi %139
-        %140 = OpLogicalNot %bool %139
-               OpSelectionMerge %141 None
-               OpBranchConditional %140 %142 %141
-        %142 = OpLabel
-        %143 = OpLoad %float %pab
-        %144 = OpLoad %float %pbc
-        %145 = OpFOrdGreaterThanEqual %bool %143 %float_0
-               OpSelectionMerge %146 None
-               OpBranchConditional %145 %147 %146
-        %147 = OpLabel
-        %148 = OpFOrdGreaterThanEqual %bool %144 %float_0
-               OpBranch %146
-        %146 = OpLabel
-        %149 = OpPhi %bool %145 %142 %148 %147
-               OpStore %x_137 %149
-        %150 = OpLoad %bool %x_137
-               OpStore %x_138_phi %150
-               OpBranch %141
-        %141 = OpLabel
-        %151 = OpLoad %bool %x_138_phi
-        %152 = OpLogicalNot %bool %151
-               OpSelectionMerge %153 None
-               OpBranchConditional %152 %154 %153
-        %154 = OpLabel
+        %136 = OpFOrdLessThan %bool %133 %float_0
+        %137 = OpLogicalAnd %bool %135 %136
+               OpStore %x_138_phi %137
+        %138 = OpLogicalNot %bool %137
+               OpSelectionMerge %139 None
+               OpBranchConditional %138 %140 %139
+        %140 = OpLabel
+        %141 = OpLoad %float %pab
+        %142 = OpLoad %float %pbc
+        %143 = OpFOrdGreaterThanEqual %bool %141 %float_0
+        %144 = OpFOrdGreaterThanEqual %bool %142 %float_0
+        %145 = OpLogicalAnd %bool %143 %144
+               OpStore %x_137 %145
+        %146 = OpLoad %bool %x_137
+               OpStore %x_138_phi %146
+               OpBranch %139
+        %139 = OpLabel
+        %147 = OpLoad %bool %x_138_phi
+        %148 = OpLogicalNot %bool %147
+               OpSelectionMerge %149 None
+               OpBranchConditional %148 %150 %149
+        %150 = OpLabel
                OpReturnValue %int_0
-        %153 = OpLabel
-        %157 = OpAccessChain %_ptr_Function_float %p %uint_0
-        %158 = OpLoad %float %157
-        %160 = OpAccessChain %_ptr_Function_float %c %uint_0
-        %161 = OpLoad %float %160
-        %163 = OpAccessChain %_ptr_Function_float %p %uint_1
-        %164 = OpLoad %float %163
-        %166 = OpAccessChain %_ptr_Function_float %c %uint_1
-        %167 = OpLoad %float %166
-        %169 = OpAccessChain %_ptr_Function_float %a_1 %uint_0
-        %170 = OpLoad %float %169
-        %172 = OpAccessChain %_ptr_Function_float %c %uint_0
-        %173 = OpLoad %float %172
-        %175 = OpAccessChain %_ptr_Function_float %a_1 %uint_1
-        %176 = OpLoad %float %175
-        %178 = OpAccessChain %_ptr_Function_float %c %uint_1
-        %179 = OpLoad %float %178
-        %180 = OpFSub %float %158 %161
-        %181 = OpFSub %float %164 %167
-        %182 = OpCompositeConstruct %v2float %180 %181
-               OpStore %param_4 %182
-        %183 = OpFSub %float %170 %173
-        %184 = OpFSub %float %176 %179
-        %185 = OpCompositeConstruct %v2float %183 %184
-               OpStore %param_5 %185
-        %186 = OpFunctionCall %float %cross2d_vf2_vf2_ %param_4 %param_5
-               OpStore %pca %186
-        %189 = OpLoad %float %pab
-        %190 = OpLoad %float %pca
-        %191 = OpFOrdLessThan %bool %189 %float_0
-               OpSelectionMerge %192 None
-               OpBranchConditional %191 %193 %192
-        %193 = OpLabel
-        %194 = OpFOrdLessThan %bool %190 %float_0
-               OpBranch %192
+        %149 = OpLabel
+        %153 = OpAccessChain %_ptr_Function_float %p %uint_0
+        %154 = OpLoad %float %153
+        %156 = OpAccessChain %_ptr_Function_float %c %uint_0
+        %157 = OpLoad %float %156
+        %159 = OpAccessChain %_ptr_Function_float %p %uint_1
+        %160 = OpLoad %float %159
+        %162 = OpAccessChain %_ptr_Function_float %c %uint_1
+        %163 = OpLoad %float %162
+        %165 = OpAccessChain %_ptr_Function_float %a_1 %uint_0
+        %166 = OpLoad %float %165
+        %168 = OpAccessChain %_ptr_Function_float %c %uint_0
+        %169 = OpLoad %float %168
+        %171 = OpAccessChain %_ptr_Function_float %a_1 %uint_1
+        %172 = OpLoad %float %171
+        %174 = OpAccessChain %_ptr_Function_float %c %uint_1
+        %175 = OpLoad %float %174
+        %176 = OpFSub %float %154 %157
+        %177 = OpFSub %float %160 %163
+        %178 = OpCompositeConstruct %v2float %176 %177
+               OpStore %param_4 %178
+        %179 = OpFSub %float %166 %169
+        %180 = OpFSub %float %172 %175
+        %181 = OpCompositeConstruct %v2float %179 %180
+               OpStore %param_5 %181
+        %182 = OpFunctionCall %float %cross2d_vf2_vf2_ %param_4 %param_5
+               OpStore %pca %182
+        %185 = OpLoad %float %pab
+        %186 = OpLoad %float %pca
+        %187 = OpFOrdLessThan %bool %185 %float_0
+        %188 = OpFOrdLessThan %bool %186 %float_0
+        %189 = OpLogicalAnd %bool %187 %188
+               OpStore %x_170_phi %189
+        %190 = OpLogicalNot %bool %189
+               OpSelectionMerge %191 None
+               OpBranchConditional %190 %192 %191
         %192 = OpLabel
-        %195 = OpPhi %bool %191 %153 %194 %193
-               OpStore %x_170_phi %195
-        %196 = OpLogicalNot %bool %195
-               OpSelectionMerge %197 None
-               OpBranchConditional %196 %198 %197
-        %198 = OpLabel
-        %199 = OpLoad %float %pab
-        %200 = OpLoad %float %pca
-        %201 = OpFOrdGreaterThanEqual %bool %199 %float_0
-               OpSelectionMerge %202 None
-               OpBranchConditional %201 %203 %202
-        %203 = OpLabel
-        %204 = OpFOrdGreaterThanEqual %bool %200 %float_0
-               OpBranch %202
+        %193 = OpLoad %float %pab
+        %194 = OpLoad %float %pca
+        %195 = OpFOrdGreaterThanEqual %bool %193 %float_0
+        %196 = OpFOrdGreaterThanEqual %bool %194 %float_0
+        %197 = OpLogicalAnd %bool %195 %196
+               OpStore %x_169 %197
+        %198 = OpLoad %bool %x_169
+               OpStore %x_170_phi %198
+               OpBranch %191
+        %191 = OpLabel
+        %199 = OpLoad %bool %x_170_phi
+        %200 = OpLogicalNot %bool %199
+               OpSelectionMerge %201 None
+               OpBranchConditional %200 %202 %201
         %202 = OpLabel
-        %205 = OpPhi %bool %201 %198 %204 %203
-               OpStore %x_169 %205
-        %206 = OpLoad %bool %x_169
-               OpStore %x_170_phi %206
-               OpBranch %197
-        %197 = OpLabel
-        %207 = OpLoad %bool %x_170_phi
-        %208 = OpLogicalNot %bool %207
-               OpSelectionMerge %209 None
-               OpBranchConditional %208 %210 %209
-        %210 = OpLabel
                OpReturnValue %int_0
-        %209 = OpLabel
+        %201 = OpLabel
                OpReturnValue %int_1
                OpFunctionEnd
-     %main_1 = OpFunction %void None %212
-        %215 = OpLabel
+     %main_1 = OpFunction %void None %204
+        %207 = OpLabel
         %pos = OpVariable %_ptr_Function_v2float Function %51
     %param_6 = OpVariable %_ptr_Function_v2float Function %51
     %param_7 = OpVariable %_ptr_Function_v2float Function %51
     %param_8 = OpVariable %_ptr_Function_v2float Function %51
     %param_9 = OpVariable %_ptr_Function_v2float Function %51
-        %221 = OpLoad %v4float %gl_FragCoord
-        %223 = OpAccessChain %_ptr_Uniform_v2float %x_24 %uint_0
-        %224 = OpLoad %v2float %223
-        %225 = OpCompositeExtract %float %221 0
-        %226 = OpCompositeExtract %float %221 1
-        %227 = OpCompositeConstruct %v2float %225 %226
-        %228 = OpFDiv %v2float %227 %224
-               OpStore %pos %228
-        %229 = OpLoad %v2float %pos
-               OpStore %param_6 %229
-               OpStore %param_7 %232
-               OpStore %param_8 %235
-               OpStore %param_9 %238
-        %239 = OpFunctionCall %int %pointInTriangle_vf2_vf2_vf2_vf2_ %param_6 %param_7 %param_8 %param_9
-        %244 = OpIEqual %bool %239 %int_1
-               OpSelectionMerge %245 None
-               OpBranchConditional %244 %246 %247
-        %246 = OpLabel
-               OpStore %x_GLF_color %249
-               OpBranch %245
-        %247 = OpLabel
-               OpStore %x_GLF_color %250
-               OpBranch %245
-        %245 = OpLabel
+        %213 = OpLoad %v4float %gl_FragCoord
+        %215 = OpAccessChain %_ptr_Uniform_v2float %x_24 %uint_0
+        %216 = OpLoad %v2float %215
+        %217 = OpCompositeExtract %float %213 0
+        %218 = OpCompositeExtract %float %213 1
+        %219 = OpCompositeConstruct %v2float %217 %218
+        %220 = OpFDiv %v2float %219 %216
+               OpStore %pos %220
+        %221 = OpLoad %v2float %pos
+               OpStore %param_6 %221
+               OpStore %param_7 %224
+               OpStore %param_8 %227
+               OpStore %param_9 %230
+        %231 = OpFunctionCall %int %pointInTriangle_vf2_vf2_vf2_vf2_ %param_6 %param_7 %param_8 %param_9
+        %236 = OpIEqual %bool %231 %int_1
+               OpSelectionMerge %237 None
+               OpBranchConditional %236 %238 %239
+        %238 = OpLabel
+               OpStore %x_GLF_color %241
+               OpBranch %237
+        %239 = OpLabel
+               OpStore %x_GLF_color %242
+               OpBranch %237
+        %237 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %251
+%tint_symbol_3 = OpFunction %void None %243
 %tint_symbol_1 = OpFunctionParameter %main_out
-        %255 = OpLabel
-        %256 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %256
+        %247 = OpLabel
+        %248 = OpCompositeExtract %v4float %tint_symbol_1 0
+               OpStore %tint_symbol_2 %248
                OpReturn
                OpFunctionEnd
-       %main = OpFunction %void None %212
-        %258 = OpLabel
-        %259 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %259
-        %260 = OpFunctionCall %void %main_1
-        %262 = OpLoad %v4float %x_GLF_color
-        %263 = OpCompositeConstruct %main_out %262
-        %261 = OpFunctionCall %void %tint_symbol_3 %263
+       %main = OpFunction %void None %204
+        %250 = OpLabel
+        %251 = OpLoad %v4float %tint_symbol
+               OpStore %gl_FragCoord %251
+        %252 = OpFunctionCall %void %main_1
+        %254 = OpLoad %v4float %x_GLF_color
+        %255 = OpCompositeConstruct %main_out %254
+        %253 = OpFunctionCall %void %tint_symbol_3 %255
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.spvasm.expected.wgsl
index 11cfd54..f5247c3 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.spvasm.expected.wgsl
@@ -65,12 +65,12 @@
   pbc = x_124;
   let x_125 : f32 = pab;
   let x_127 : f32 = pbc;
-  let x_129 : bool = ((x_125 < 0.0) && (x_127 < 0.0));
+  let x_129 : bool = ((x_125 < 0.0) & (x_127 < 0.0));
   x_138_phi = x_129;
   if (!(x_129)) {
     let x_133 : f32 = pab;
     let x_135 : f32 = pbc;
-    x_137 = ((x_133 >= 0.0) && (x_135 >= 0.0));
+    x_137 = ((x_133 >= 0.0) & (x_135 >= 0.0));
     x_138_phi = x_137;
   }
   let x_138 : bool = x_138_phi;
@@ -91,12 +91,12 @@
   pca = x_156;
   let x_157 : f32 = pab;
   let x_159 : f32 = pca;
-  let x_161 : bool = ((x_157 < 0.0) && (x_159 < 0.0));
+  let x_161 : bool = ((x_157 < 0.0) & (x_159 < 0.0));
   x_170_phi = x_161;
   if (!(x_161)) {
     let x_165 : f32 = pab;
     let x_167 : f32 = pca;
-    x_169 = ((x_165 >= 0.0) && (x_167 >= 0.0));
+    x_169 = ((x_165 >= 0.0) & (x_167 >= 0.0));
     x_170_phi = x_169;
   }
   let x_170 : bool = x_170_phi;
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.spvasm.expected.hlsl
index 75aaaf6..2c4cd16 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.spvasm.expected.hlsl
@@ -77,18 +77,10 @@
   param_3 = float2((x_153 - x_154), (x_156 - x_157));
   const float x_160 = cross2d_vf2_vf2_(param_2, param_3);
   pbc = x_160;
-  bool tint_tmp = (pab < 0.0f);
-  if (tint_tmp) {
-    tint_tmp = (pbc < 0.0f);
-  }
-  const bool x_165 = (tint_tmp);
+  const bool x_165 = ((pab < 0.0f) & (pbc < 0.0f));
   x_174_phi = x_165;
   if (!(x_165)) {
-    bool tint_tmp_1 = (pab >= 0.0f);
-    if (tint_tmp_1) {
-      tint_tmp_1 = (pbc >= 0.0f);
-    }
-    x_173 = (tint_tmp_1);
+    x_173 = ((pab >= 0.0f) & (pbc >= 0.0f));
     x_174_phi = x_173;
   }
   if (!(x_174_phi)) {
@@ -106,18 +98,10 @@
   param_5 = float2((x_185 - x_186), (x_188 - x_189));
   const float x_192 = cross2d_vf2_vf2_(param_4, param_5);
   pca = x_192;
-  bool tint_tmp_2 = (pab < 0.0f);
-  if (tint_tmp_2) {
-    tint_tmp_2 = (pca < 0.0f);
-  }
-  const bool x_197 = (tint_tmp_2);
+  const bool x_197 = ((pab < 0.0f) & (pca < 0.0f));
   x_206_phi = x_197;
   if (!(x_197)) {
-    bool tint_tmp_3 = (pab >= 0.0f);
-    if (tint_tmp_3) {
-      tint_tmp_3 = (pca >= 0.0f);
-    }
-    x_205 = (tint_tmp_3);
+    x_205 = ((pab >= 0.0f) & (pca >= 0.0f));
     x_206_phi = x_205;
   }
   if (!(x_206_phi)) {
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.spvasm.expected.msl
index d0400d8..75d95c2 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.spvasm.expected.msl
@@ -88,12 +88,12 @@
   pbc = x_160;
   float const x_161 = pab;
   float const x_163 = pbc;
-  bool const x_165 = ((x_161 < 0.0f) && (x_163 < 0.0f));
+  bool const x_165 = ((x_161 < 0.0f) & (x_163 < 0.0f));
   x_174_phi = x_165;
   if (!(x_165)) {
     float const x_169 = pab;
     float const x_171 = pbc;
-    x_173 = ((x_169 >= 0.0f) && (x_171 >= 0.0f));
+    x_173 = ((x_169 >= 0.0f) & (x_171 >= 0.0f));
     x_174_phi = x_173;
   }
   bool const x_174 = x_174_phi;
@@ -114,12 +114,12 @@
   pca = x_192;
   float const x_193 = pab;
   float const x_195 = pca;
-  bool const x_197 = ((x_193 < 0.0f) && (x_195 < 0.0f));
+  bool const x_197 = ((x_193 < 0.0f) & (x_195 < 0.0f));
   x_206_phi = x_197;
   if (!(x_197)) {
     float const x_201 = pab;
     float const x_203 = pca;
-    x_205 = ((x_201 >= 0.0f) && (x_203 >= 0.0f));
+    x_205 = ((x_201 >= 0.0f) & (x_203 >= 0.0f));
     x_206_phi = x_205;
   }
   bool const x_206 = x_206_phi;
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.spvasm.expected.spvasm
index 98ab5e5..fd2f1dc 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.spvasm.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 306
+; Bound: 298
 ; Schema: 0
                OpCapability Shader
          %97 = OpExtInstImport "GLSL.std.450"
@@ -94,21 +94,21 @@
       %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
        %void = OpTypeVoid
-        %255 = OpTypeFunction %void
+        %247 = OpTypeFunction %void
 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
 %float_0_699999988 = OpConstant %float 0.699999988
 %float_0_300000012 = OpConstant %float 0.300000012
-        %275 = OpConstantComposite %v2float %float_0_699999988 %float_0_300000012
+        %267 = OpConstantComposite %v2float %float_0_699999988 %float_0_300000012
   %float_0_5 = OpConstant %float 0.5
 %float_0_899999976 = OpConstant %float 0.899999976
-        %278 = OpConstantComposite %v2float %float_0_5 %float_0_899999976
+        %270 = OpConstantComposite %v2float %float_0_5 %float_0_899999976
 %float_0_100000001 = OpConstant %float 0.100000001
 %float_0_400000006 = OpConstant %float 0.400000006
-        %281 = OpConstantComposite %v2float %float_0_100000001 %float_0_400000006
-        %291 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
-        %292 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
+        %273 = OpConstantComposite %v2float %float_0_100000001 %float_0_400000006
+        %283 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
+        %284 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %293 = OpTypeFunction %void %main_out
+        %285 = OpTypeFunction %void %main_out
 %cross2d_vf2_vf2_ = OpFunction %float None %15
           %a = OpFunctionParameter %_ptr_Function_v2float
           %b = OpFunctionParameter %_ptr_Function_v2float
@@ -248,152 +248,132 @@
         %176 = OpLoad %float %pab
         %177 = OpLoad %float %pbc
         %178 = OpFOrdLessThan %bool %176 %float_0
-               OpSelectionMerge %179 None
-               OpBranchConditional %178 %180 %179
-        %180 = OpLabel
-        %181 = OpFOrdLessThan %bool %177 %float_0
-               OpBranch %179
-        %179 = OpLabel
-        %182 = OpPhi %bool %178 %76 %181 %180
-               OpStore %x_174_phi %182
-        %183 = OpLogicalNot %bool %182
-               OpSelectionMerge %184 None
-               OpBranchConditional %183 %185 %184
-        %185 = OpLabel
-        %186 = OpLoad %float %pab
-        %187 = OpLoad %float %pbc
-        %188 = OpFOrdGreaterThanEqual %bool %186 %float_0
-               OpSelectionMerge %189 None
-               OpBranchConditional %188 %190 %189
-        %190 = OpLabel
-        %191 = OpFOrdGreaterThanEqual %bool %187 %float_0
-               OpBranch %189
-        %189 = OpLabel
-        %192 = OpPhi %bool %188 %185 %191 %190
-               OpStore %x_173 %192
-        %193 = OpLoad %bool %x_173
-               OpStore %x_174_phi %193
-               OpBranch %184
-        %184 = OpLabel
-        %194 = OpLoad %bool %x_174_phi
-        %195 = OpLogicalNot %bool %194
-               OpSelectionMerge %196 None
-               OpBranchConditional %195 %197 %196
-        %197 = OpLabel
+        %179 = OpFOrdLessThan %bool %177 %float_0
+        %180 = OpLogicalAnd %bool %178 %179
+               OpStore %x_174_phi %180
+        %181 = OpLogicalNot %bool %180
+               OpSelectionMerge %182 None
+               OpBranchConditional %181 %183 %182
+        %183 = OpLabel
+        %184 = OpLoad %float %pab
+        %185 = OpLoad %float %pbc
+        %186 = OpFOrdGreaterThanEqual %bool %184 %float_0
+        %187 = OpFOrdGreaterThanEqual %bool %185 %float_0
+        %188 = OpLogicalAnd %bool %186 %187
+               OpStore %x_173 %188
+        %189 = OpLoad %bool %x_173
+               OpStore %x_174_phi %189
+               OpBranch %182
+        %182 = OpLabel
+        %190 = OpLoad %bool %x_174_phi
+        %191 = OpLogicalNot %bool %190
+               OpSelectionMerge %192 None
+               OpBranchConditional %191 %193 %192
+        %193 = OpLabel
                OpReturnValue %int_0
-        %196 = OpLabel
-        %200 = OpAccessChain %_ptr_Function_float %p %uint_0
-        %201 = OpLoad %float %200
-        %203 = OpAccessChain %_ptr_Function_float %c %uint_0
-        %204 = OpLoad %float %203
-        %206 = OpAccessChain %_ptr_Function_float %p %uint_1
-        %207 = OpLoad %float %206
-        %209 = OpAccessChain %_ptr_Function_float %c %uint_1
-        %210 = OpLoad %float %209
-        %212 = OpAccessChain %_ptr_Function_float %a_1 %uint_0
-        %213 = OpLoad %float %212
-        %215 = OpAccessChain %_ptr_Function_float %c %uint_0
-        %216 = OpLoad %float %215
-        %218 = OpAccessChain %_ptr_Function_float %a_1 %uint_1
-        %219 = OpLoad %float %218
-        %221 = OpAccessChain %_ptr_Function_float %c %uint_1
-        %222 = OpLoad %float %221
-        %223 = OpFSub %float %201 %204
-        %224 = OpFSub %float %207 %210
-        %225 = OpCompositeConstruct %v2float %223 %224
-               OpStore %param_4 %225
-        %226 = OpFSub %float %213 %216
-        %227 = OpFSub %float %219 %222
-        %228 = OpCompositeConstruct %v2float %226 %227
-               OpStore %param_5 %228
-        %229 = OpFunctionCall %float %cross2d_vf2_vf2_ %param_4 %param_5
-               OpStore %pca %229
-        %232 = OpLoad %float %pab
-        %233 = OpLoad %float %pca
-        %234 = OpFOrdLessThan %bool %232 %float_0
-               OpSelectionMerge %235 None
-               OpBranchConditional %234 %236 %235
-        %236 = OpLabel
-        %237 = OpFOrdLessThan %bool %233 %float_0
-               OpBranch %235
+        %192 = OpLabel
+        %196 = OpAccessChain %_ptr_Function_float %p %uint_0
+        %197 = OpLoad %float %196
+        %199 = OpAccessChain %_ptr_Function_float %c %uint_0
+        %200 = OpLoad %float %199
+        %202 = OpAccessChain %_ptr_Function_float %p %uint_1
+        %203 = OpLoad %float %202
+        %205 = OpAccessChain %_ptr_Function_float %c %uint_1
+        %206 = OpLoad %float %205
+        %208 = OpAccessChain %_ptr_Function_float %a_1 %uint_0
+        %209 = OpLoad %float %208
+        %211 = OpAccessChain %_ptr_Function_float %c %uint_0
+        %212 = OpLoad %float %211
+        %214 = OpAccessChain %_ptr_Function_float %a_1 %uint_1
+        %215 = OpLoad %float %214
+        %217 = OpAccessChain %_ptr_Function_float %c %uint_1
+        %218 = OpLoad %float %217
+        %219 = OpFSub %float %197 %200
+        %220 = OpFSub %float %203 %206
+        %221 = OpCompositeConstruct %v2float %219 %220
+               OpStore %param_4 %221
+        %222 = OpFSub %float %209 %212
+        %223 = OpFSub %float %215 %218
+        %224 = OpCompositeConstruct %v2float %222 %223
+               OpStore %param_5 %224
+        %225 = OpFunctionCall %float %cross2d_vf2_vf2_ %param_4 %param_5
+               OpStore %pca %225
+        %228 = OpLoad %float %pab
+        %229 = OpLoad %float %pca
+        %230 = OpFOrdLessThan %bool %228 %float_0
+        %231 = OpFOrdLessThan %bool %229 %float_0
+        %232 = OpLogicalAnd %bool %230 %231
+               OpStore %x_206_phi %232
+        %233 = OpLogicalNot %bool %232
+               OpSelectionMerge %234 None
+               OpBranchConditional %233 %235 %234
         %235 = OpLabel
-        %238 = OpPhi %bool %234 %196 %237 %236
-               OpStore %x_206_phi %238
-        %239 = OpLogicalNot %bool %238
-               OpSelectionMerge %240 None
-               OpBranchConditional %239 %241 %240
-        %241 = OpLabel
-        %242 = OpLoad %float %pab
-        %243 = OpLoad %float %pca
-        %244 = OpFOrdGreaterThanEqual %bool %242 %float_0
-               OpSelectionMerge %245 None
-               OpBranchConditional %244 %246 %245
-        %246 = OpLabel
-        %247 = OpFOrdGreaterThanEqual %bool %243 %float_0
-               OpBranch %245
+        %236 = OpLoad %float %pab
+        %237 = OpLoad %float %pca
+        %238 = OpFOrdGreaterThanEqual %bool %236 %float_0
+        %239 = OpFOrdGreaterThanEqual %bool %237 %float_0
+        %240 = OpLogicalAnd %bool %238 %239
+               OpStore %x_205 %240
+        %241 = OpLoad %bool %x_205
+               OpStore %x_206_phi %241
+               OpBranch %234
+        %234 = OpLabel
+        %242 = OpLoad %bool %x_206_phi
+        %243 = OpLogicalNot %bool %242
+               OpSelectionMerge %244 None
+               OpBranchConditional %243 %245 %244
         %245 = OpLabel
-        %248 = OpPhi %bool %244 %241 %247 %246
-               OpStore %x_205 %248
-        %249 = OpLoad %bool %x_205
-               OpStore %x_206_phi %249
-               OpBranch %240
-        %240 = OpLabel
-        %250 = OpLoad %bool %x_206_phi
-        %251 = OpLogicalNot %bool %250
-               OpSelectionMerge %252 None
-               OpBranchConditional %251 %253 %252
-        %253 = OpLabel
                OpReturnValue %int_0
-        %252 = OpLabel
+        %244 = OpLabel
                OpReturnValue %int_1
                OpFunctionEnd
-     %main_1 = OpFunction %void None %255
-        %258 = OpLabel
+     %main_1 = OpFunction %void None %247
+        %250 = OpLabel
         %pos = OpVariable %_ptr_Function_v2float Function %55
     %param_6 = OpVariable %_ptr_Function_v2float Function %55
     %param_7 = OpVariable %_ptr_Function_v2float Function %55
     %param_8 = OpVariable %_ptr_Function_v2float Function %55
     %param_9 = OpVariable %_ptr_Function_v2float Function %55
-        %264 = OpLoad %v4float %gl_FragCoord
-        %266 = OpAccessChain %_ptr_Uniform_v2float %x_15 %uint_0
-        %267 = OpLoad %v2float %266
-        %268 = OpCompositeExtract %float %264 0
-        %269 = OpCompositeExtract %float %264 1
-        %270 = OpCompositeConstruct %v2float %268 %269
-        %271 = OpFDiv %v2float %270 %267
-               OpStore %pos %271
-        %272 = OpLoad %v2float %pos
-               OpStore %param_6 %272
-               OpStore %param_7 %275
-               OpStore %param_8 %278
-               OpStore %param_9 %281
-        %282 = OpFunctionCall %int %pointInTriangle_vf2_vf2_vf2_vf2_ %param_6 %param_7 %param_8 %param_9
-        %287 = OpIEqual %bool %282 %int_1
-               OpSelectionMerge %288 None
-               OpBranchConditional %287 %289 %290
-        %289 = OpLabel
-               OpStore %x_GLF_color %291
-               OpBranch %288
-        %290 = OpLabel
-               OpStore %x_GLF_color %292
-               OpBranch %288
-        %288 = OpLabel
+        %256 = OpLoad %v4float %gl_FragCoord
+        %258 = OpAccessChain %_ptr_Uniform_v2float %x_15 %uint_0
+        %259 = OpLoad %v2float %258
+        %260 = OpCompositeExtract %float %256 0
+        %261 = OpCompositeExtract %float %256 1
+        %262 = OpCompositeConstruct %v2float %260 %261
+        %263 = OpFDiv %v2float %262 %259
+               OpStore %pos %263
+        %264 = OpLoad %v2float %pos
+               OpStore %param_6 %264
+               OpStore %param_7 %267
+               OpStore %param_8 %270
+               OpStore %param_9 %273
+        %274 = OpFunctionCall %int %pointInTriangle_vf2_vf2_vf2_vf2_ %param_6 %param_7 %param_8 %param_9
+        %279 = OpIEqual %bool %274 %int_1
+               OpSelectionMerge %280 None
+               OpBranchConditional %279 %281 %282
+        %281 = OpLabel
+               OpStore %x_GLF_color %283
+               OpBranch %280
+        %282 = OpLabel
+               OpStore %x_GLF_color %284
+               OpBranch %280
+        %280 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %293
+%tint_symbol_3 = OpFunction %void None %285
 %tint_symbol_1 = OpFunctionParameter %main_out
-        %297 = OpLabel
-        %298 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %298
+        %289 = OpLabel
+        %290 = OpCompositeExtract %v4float %tint_symbol_1 0
+               OpStore %tint_symbol_2 %290
                OpReturn
                OpFunctionEnd
-       %main = OpFunction %void None %255
-        %300 = OpLabel
-        %301 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %301
-        %302 = OpFunctionCall %void %main_1
-        %304 = OpLoad %v4float %x_GLF_color
-        %305 = OpCompositeConstruct %main_out %304
-        %303 = OpFunctionCall %void %tint_symbol_3 %305
+       %main = OpFunction %void None %247
+        %292 = OpLabel
+        %293 = OpLoad %v4float %tint_symbol
+               OpStore %gl_FragCoord %293
+        %294 = OpFunctionCall %void %main_1
+        %296 = OpLoad %v4float %x_GLF_color
+        %297 = OpCompositeConstruct %main_out %296
+        %295 = OpFunctionCall %void %tint_symbol_3 %297
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.spvasm.expected.wgsl
index d58c35b..88c9076 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.spvasm.expected.wgsl
@@ -95,12 +95,12 @@
   pbc = x_160;
   let x_161 : f32 = pab;
   let x_163 : f32 = pbc;
-  let x_165 : bool = ((x_161 < 0.0) && (x_163 < 0.0));
+  let x_165 : bool = ((x_161 < 0.0) & (x_163 < 0.0));
   x_174_phi = x_165;
   if (!(x_165)) {
     let x_169 : f32 = pab;
     let x_171 : f32 = pbc;
-    x_173 = ((x_169 >= 0.0) && (x_171 >= 0.0));
+    x_173 = ((x_169 >= 0.0) & (x_171 >= 0.0));
     x_174_phi = x_173;
   }
   let x_174 : bool = x_174_phi;
@@ -121,12 +121,12 @@
   pca = x_192;
   let x_193 : f32 = pab;
   let x_195 : f32 = pca;
-  let x_197 : bool = ((x_193 < 0.0) && (x_195 < 0.0));
+  let x_197 : bool = ((x_193 < 0.0) & (x_195 < 0.0));
   x_206_phi = x_197;
   if (!(x_197)) {
     let x_201 : f32 = pab;
     let x_203 : f32 = pca;
-    x_205 = ((x_201 >= 0.0) && (x_203 >= 0.0));
+    x_205 = ((x_201 >= 0.0) & (x_203 >= 0.0));
     x_206_phi = x_205;
   }
   let x_206 : bool = x_206_phi;
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.spvasm.expected.hlsl
index f228156..55c6a35 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.spvasm.expected.hlsl
@@ -50,18 +50,10 @@
   param_3 = float2((x_122 - x_124), (x_127 - x_129));
   const float x_132 = cross2d_vf2_vf2_(param_2, param_3);
   pbc = x_132;
-  bool tint_tmp = (pab < 0.0f);
-  if (tint_tmp) {
-    tint_tmp = (pbc < 0.0f);
-  }
-  const bool x_137 = (tint_tmp);
+  const bool x_137 = ((pab < 0.0f) & (pbc < 0.0f));
   x_146_phi = x_137;
   if (!(x_137)) {
-    bool tint_tmp_1 = (pab >= 0.0f);
-    if (tint_tmp_1) {
-      tint_tmp_1 = (pbc >= 0.0f);
-    }
-    x_145 = (tint_tmp_1);
+    x_145 = ((pab >= 0.0f) & (pbc >= 0.0f));
     x_146_phi = x_145;
   }
   if (!(x_146_phi)) {
@@ -79,18 +71,10 @@
   param_5 = float2((x_162 - x_164), (x_167 - x_169));
   const float x_172 = cross2d_vf2_vf2_(param_4, param_5);
   pca = x_172;
-  bool tint_tmp_2 = (pab < 0.0f);
-  if (tint_tmp_2) {
-    tint_tmp_2 = (pca < 0.0f);
-  }
-  const bool x_177 = (tint_tmp_2);
+  const bool x_177 = ((pab < 0.0f) & (pca < 0.0f));
   x_186_phi = x_177;
   if (!(x_177)) {
-    bool tint_tmp_3 = (pab >= 0.0f);
-    if (tint_tmp_3) {
-      tint_tmp_3 = (pca >= 0.0f);
-    }
-    x_185 = (tint_tmp_3);
+    x_185 = ((pab >= 0.0f) & (pca >= 0.0f));
     x_186_phi = x_185;
   }
   if (!(x_186_phi)) {
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.spvasm.expected.msl
index 8d1f7be..9d7d4bb 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.spvasm.expected.msl
@@ -59,12 +59,12 @@
   pbc = x_132;
   float const x_133 = pab;
   float const x_135 = pbc;
-  bool const x_137 = ((x_133 < 0.0f) && (x_135 < 0.0f));
+  bool const x_137 = ((x_133 < 0.0f) & (x_135 < 0.0f));
   x_146_phi = x_137;
   if (!(x_137)) {
     float const x_141 = pab;
     float const x_143 = pbc;
-    x_145 = ((x_141 >= 0.0f) && (x_143 >= 0.0f));
+    x_145 = ((x_141 >= 0.0f) & (x_143 >= 0.0f));
     x_146_phi = x_145;
   }
   bool const x_146 = x_146_phi;
@@ -85,12 +85,12 @@
   pca = x_172;
   float const x_173 = pab;
   float const x_175 = pca;
-  bool const x_177 = ((x_173 < 0.0f) && (x_175 < 0.0f));
+  bool const x_177 = ((x_173 < 0.0f) & (x_175 < 0.0f));
   x_186_phi = x_177;
   if (!(x_177)) {
     float const x_181 = pab;
     float const x_183 = pca;
-    x_185 = ((x_181 >= 0.0f) && (x_183 >= 0.0f));
+    x_185 = ((x_181 >= 0.0f) & (x_183 >= 0.0f));
     x_186_phi = x_185;
   }
   bool const x_186 = x_186_phi;
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.spvasm.expected.spvasm
index 0d3239b..c9284d5 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.spvasm.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 264
+; Bound: 256
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -85,22 +85,22 @@
       %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
        %void = OpTypeVoid
-        %212 = OpTypeFunction %void
+        %204 = OpTypeFunction %void
 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
 %float_0_699999988 = OpConstant %float 0.699999988
 %float_0_300000012 = OpConstant %float 0.300000012
-        %232 = OpConstantComposite %v2float %float_0_699999988 %float_0_300000012
+        %224 = OpConstantComposite %v2float %float_0_699999988 %float_0_300000012
   %float_0_5 = OpConstant %float 0.5
 %float_0_899999976 = OpConstant %float 0.899999976
-        %235 = OpConstantComposite %v2float %float_0_5 %float_0_899999976
+        %227 = OpConstantComposite %v2float %float_0_5 %float_0_899999976
 %float_0_100000001 = OpConstant %float 0.100000001
 %float_0_400000006 = OpConstant %float 0.400000006
-        %238 = OpConstantComposite %v2float %float_0_100000001 %float_0_400000006
+        %230 = OpConstantComposite %v2float %float_0_100000001 %float_0_400000006
     %float_1 = OpConstant %float 1
-        %249 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
-        %250 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
+        %241 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
+        %242 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %251 = OpTypeFunction %void %main_out
+        %243 = OpTypeFunction %void %main_out
 %cross2d_vf2_vf2_ = OpFunction %float None %15
           %a = OpFunctionParameter %_ptr_Function_v2float
           %b = OpFunctionParameter %_ptr_Function_v2float
@@ -192,152 +192,132 @@
         %132 = OpLoad %float %pab
         %133 = OpLoad %float %pbc
         %135 = OpFOrdLessThan %bool %132 %float_0
-               OpSelectionMerge %136 None
-               OpBranchConditional %135 %137 %136
-        %137 = OpLabel
-        %138 = OpFOrdLessThan %bool %133 %float_0
-               OpBranch %136
-        %136 = OpLabel
-        %139 = OpPhi %bool %135 %47 %138 %137
-               OpStore %x_146_phi %139
-        %140 = OpLogicalNot %bool %139
-               OpSelectionMerge %141 None
-               OpBranchConditional %140 %142 %141
-        %142 = OpLabel
-        %143 = OpLoad %float %pab
-        %144 = OpLoad %float %pbc
-        %145 = OpFOrdGreaterThanEqual %bool %143 %float_0
-               OpSelectionMerge %146 None
-               OpBranchConditional %145 %147 %146
-        %147 = OpLabel
-        %148 = OpFOrdGreaterThanEqual %bool %144 %float_0
-               OpBranch %146
-        %146 = OpLabel
-        %149 = OpPhi %bool %145 %142 %148 %147
-               OpStore %x_145 %149
-        %150 = OpLoad %bool %x_145
-               OpStore %x_146_phi %150
-               OpBranch %141
-        %141 = OpLabel
-        %151 = OpLoad %bool %x_146_phi
-        %152 = OpLogicalNot %bool %151
-               OpSelectionMerge %153 None
-               OpBranchConditional %152 %154 %153
-        %154 = OpLabel
+        %136 = OpFOrdLessThan %bool %133 %float_0
+        %137 = OpLogicalAnd %bool %135 %136
+               OpStore %x_146_phi %137
+        %138 = OpLogicalNot %bool %137
+               OpSelectionMerge %139 None
+               OpBranchConditional %138 %140 %139
+        %140 = OpLabel
+        %141 = OpLoad %float %pab
+        %142 = OpLoad %float %pbc
+        %143 = OpFOrdGreaterThanEqual %bool %141 %float_0
+        %144 = OpFOrdGreaterThanEqual %bool %142 %float_0
+        %145 = OpLogicalAnd %bool %143 %144
+               OpStore %x_145 %145
+        %146 = OpLoad %bool %x_145
+               OpStore %x_146_phi %146
+               OpBranch %139
+        %139 = OpLabel
+        %147 = OpLoad %bool %x_146_phi
+        %148 = OpLogicalNot %bool %147
+               OpSelectionMerge %149 None
+               OpBranchConditional %148 %150 %149
+        %150 = OpLabel
                OpReturnValue %int_0
-        %153 = OpLabel
-        %157 = OpAccessChain %_ptr_Function_float %p %uint_0
-        %158 = OpLoad %float %157
-        %160 = OpAccessChain %_ptr_Function_float %c %uint_0
-        %161 = OpLoad %float %160
-        %163 = OpAccessChain %_ptr_Function_float %p %uint_1
-        %164 = OpLoad %float %163
-        %166 = OpAccessChain %_ptr_Function_float %c %uint_1
-        %167 = OpLoad %float %166
-        %169 = OpAccessChain %_ptr_Function_float %a_1 %uint_0
-        %170 = OpLoad %float %169
-        %172 = OpAccessChain %_ptr_Function_float %c %uint_0
-        %173 = OpLoad %float %172
-        %175 = OpAccessChain %_ptr_Function_float %a_1 %uint_1
-        %176 = OpLoad %float %175
-        %178 = OpAccessChain %_ptr_Function_float %c %uint_1
-        %179 = OpLoad %float %178
-        %180 = OpFSub %float %158 %161
-        %181 = OpFSub %float %164 %167
-        %182 = OpCompositeConstruct %v2float %180 %181
-               OpStore %param_4 %182
-        %183 = OpFSub %float %170 %173
-        %184 = OpFSub %float %176 %179
-        %185 = OpCompositeConstruct %v2float %183 %184
-               OpStore %param_5 %185
-        %186 = OpFunctionCall %float %cross2d_vf2_vf2_ %param_4 %param_5
-               OpStore %pca %186
-        %189 = OpLoad %float %pab
-        %190 = OpLoad %float %pca
-        %191 = OpFOrdLessThan %bool %189 %float_0
-               OpSelectionMerge %192 None
-               OpBranchConditional %191 %193 %192
-        %193 = OpLabel
-        %194 = OpFOrdLessThan %bool %190 %float_0
-               OpBranch %192
+        %149 = OpLabel
+        %153 = OpAccessChain %_ptr_Function_float %p %uint_0
+        %154 = OpLoad %float %153
+        %156 = OpAccessChain %_ptr_Function_float %c %uint_0
+        %157 = OpLoad %float %156
+        %159 = OpAccessChain %_ptr_Function_float %p %uint_1
+        %160 = OpLoad %float %159
+        %162 = OpAccessChain %_ptr_Function_float %c %uint_1
+        %163 = OpLoad %float %162
+        %165 = OpAccessChain %_ptr_Function_float %a_1 %uint_0
+        %166 = OpLoad %float %165
+        %168 = OpAccessChain %_ptr_Function_float %c %uint_0
+        %169 = OpLoad %float %168
+        %171 = OpAccessChain %_ptr_Function_float %a_1 %uint_1
+        %172 = OpLoad %float %171
+        %174 = OpAccessChain %_ptr_Function_float %c %uint_1
+        %175 = OpLoad %float %174
+        %176 = OpFSub %float %154 %157
+        %177 = OpFSub %float %160 %163
+        %178 = OpCompositeConstruct %v2float %176 %177
+               OpStore %param_4 %178
+        %179 = OpFSub %float %166 %169
+        %180 = OpFSub %float %172 %175
+        %181 = OpCompositeConstruct %v2float %179 %180
+               OpStore %param_5 %181
+        %182 = OpFunctionCall %float %cross2d_vf2_vf2_ %param_4 %param_5
+               OpStore %pca %182
+        %185 = OpLoad %float %pab
+        %186 = OpLoad %float %pca
+        %187 = OpFOrdLessThan %bool %185 %float_0
+        %188 = OpFOrdLessThan %bool %186 %float_0
+        %189 = OpLogicalAnd %bool %187 %188
+               OpStore %x_186_phi %189
+        %190 = OpLogicalNot %bool %189
+               OpSelectionMerge %191 None
+               OpBranchConditional %190 %192 %191
         %192 = OpLabel
-        %195 = OpPhi %bool %191 %153 %194 %193
-               OpStore %x_186_phi %195
-        %196 = OpLogicalNot %bool %195
-               OpSelectionMerge %197 None
-               OpBranchConditional %196 %198 %197
-        %198 = OpLabel
-        %199 = OpLoad %float %pab
-        %200 = OpLoad %float %pca
-        %201 = OpFOrdGreaterThanEqual %bool %199 %float_0
-               OpSelectionMerge %202 None
-               OpBranchConditional %201 %203 %202
-        %203 = OpLabel
-        %204 = OpFOrdGreaterThanEqual %bool %200 %float_0
-               OpBranch %202
+        %193 = OpLoad %float %pab
+        %194 = OpLoad %float %pca
+        %195 = OpFOrdGreaterThanEqual %bool %193 %float_0
+        %196 = OpFOrdGreaterThanEqual %bool %194 %float_0
+        %197 = OpLogicalAnd %bool %195 %196
+               OpStore %x_185 %197
+        %198 = OpLoad %bool %x_185
+               OpStore %x_186_phi %198
+               OpBranch %191
+        %191 = OpLabel
+        %199 = OpLoad %bool %x_186_phi
+        %200 = OpLogicalNot %bool %199
+               OpSelectionMerge %201 None
+               OpBranchConditional %200 %202 %201
         %202 = OpLabel
-        %205 = OpPhi %bool %201 %198 %204 %203
-               OpStore %x_185 %205
-        %206 = OpLoad %bool %x_185
-               OpStore %x_186_phi %206
-               OpBranch %197
-        %197 = OpLabel
-        %207 = OpLoad %bool %x_186_phi
-        %208 = OpLogicalNot %bool %207
-               OpSelectionMerge %209 None
-               OpBranchConditional %208 %210 %209
-        %210 = OpLabel
                OpReturnValue %int_0
-        %209 = OpLabel
+        %201 = OpLabel
                OpReturnValue %int_1
                OpFunctionEnd
-     %main_1 = OpFunction %void None %212
-        %215 = OpLabel
+     %main_1 = OpFunction %void None %204
+        %207 = OpLabel
         %pos = OpVariable %_ptr_Function_v2float Function %51
     %param_6 = OpVariable %_ptr_Function_v2float Function %51
     %param_7 = OpVariable %_ptr_Function_v2float Function %51
     %param_8 = OpVariable %_ptr_Function_v2float Function %51
     %param_9 = OpVariable %_ptr_Function_v2float Function %51
-        %221 = OpLoad %v4float %gl_FragCoord
-        %223 = OpAccessChain %_ptr_Uniform_v2float %x_24 %uint_0
-        %224 = OpLoad %v2float %223
-        %225 = OpCompositeExtract %float %221 0
-        %226 = OpCompositeExtract %float %221 1
-        %227 = OpCompositeConstruct %v2float %225 %226
-        %228 = OpFDiv %v2float %227 %224
-               OpStore %pos %228
-        %229 = OpLoad %v2float %pos
-               OpStore %param_6 %229
-               OpStore %param_7 %232
-               OpStore %param_8 %235
-               OpStore %param_9 %238
-        %239 = OpFunctionCall %int %pointInTriangle_vf2_vf2_vf2_vf2_ %param_6 %param_7 %param_8 %param_9
-        %244 = OpIEqual %bool %239 %int_1
-               OpSelectionMerge %245 None
-               OpBranchConditional %244 %246 %247
-        %246 = OpLabel
-               OpStore %x_GLF_color %249
-               OpBranch %245
-        %247 = OpLabel
-               OpStore %x_GLF_color %250
-               OpBranch %245
-        %245 = OpLabel
+        %213 = OpLoad %v4float %gl_FragCoord
+        %215 = OpAccessChain %_ptr_Uniform_v2float %x_24 %uint_0
+        %216 = OpLoad %v2float %215
+        %217 = OpCompositeExtract %float %213 0
+        %218 = OpCompositeExtract %float %213 1
+        %219 = OpCompositeConstruct %v2float %217 %218
+        %220 = OpFDiv %v2float %219 %216
+               OpStore %pos %220
+        %221 = OpLoad %v2float %pos
+               OpStore %param_6 %221
+               OpStore %param_7 %224
+               OpStore %param_8 %227
+               OpStore %param_9 %230
+        %231 = OpFunctionCall %int %pointInTriangle_vf2_vf2_vf2_vf2_ %param_6 %param_7 %param_8 %param_9
+        %236 = OpIEqual %bool %231 %int_1
+               OpSelectionMerge %237 None
+               OpBranchConditional %236 %238 %239
+        %238 = OpLabel
+               OpStore %x_GLF_color %241
+               OpBranch %237
+        %239 = OpLabel
+               OpStore %x_GLF_color %242
+               OpBranch %237
+        %237 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %251
+%tint_symbol_3 = OpFunction %void None %243
 %tint_symbol_1 = OpFunctionParameter %main_out
-        %255 = OpLabel
-        %256 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %256
+        %247 = OpLabel
+        %248 = OpCompositeExtract %v4float %tint_symbol_1 0
+               OpStore %tint_symbol_2 %248
                OpReturn
                OpFunctionEnd
-       %main = OpFunction %void None %212
-        %258 = OpLabel
-        %259 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %259
-        %260 = OpFunctionCall %void %main_1
-        %262 = OpLoad %v4float %x_GLF_color
-        %263 = OpCompositeConstruct %main_out %262
-        %261 = OpFunctionCall %void %tint_symbol_3 %263
+       %main = OpFunction %void None %204
+        %250 = OpLabel
+        %251 = OpLoad %v4float %tint_symbol
+               OpStore %gl_FragCoord %251
+        %252 = OpFunctionCall %void %main_1
+        %254 = OpLoad %v4float %x_GLF_color
+        %255 = OpCompositeConstruct %main_out %254
+        %253 = OpFunctionCall %void %tint_symbol_3 %255
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.spvasm.expected.wgsl
index 33d8a7d..535c1de 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.spvasm.expected.wgsl
@@ -57,12 +57,12 @@
   pbc = x_132;
   let x_133 : f32 = pab;
   let x_135 : f32 = pbc;
-  let x_137 : bool = ((x_133 < 0.0) && (x_135 < 0.0));
+  let x_137 : bool = ((x_133 < 0.0) & (x_135 < 0.0));
   x_146_phi = x_137;
   if (!(x_137)) {
     let x_141 : f32 = pab;
     let x_143 : f32 = pbc;
-    x_145 = ((x_141 >= 0.0) && (x_143 >= 0.0));
+    x_145 = ((x_141 >= 0.0) & (x_143 >= 0.0));
     x_146_phi = x_145;
   }
   let x_146 : bool = x_146_phi;
@@ -83,12 +83,12 @@
   pca = x_172;
   let x_173 : f32 = pab;
   let x_175 : f32 = pca;
-  let x_177 : bool = ((x_173 < 0.0) && (x_175 < 0.0));
+  let x_177 : bool = ((x_173 < 0.0) & (x_175 < 0.0));
   x_186_phi = x_177;
   if (!(x_177)) {
     let x_181 : f32 = pab;
     let x_183 : f32 = pca;
-    x_185 = ((x_181 >= 0.0) && (x_183 >= 0.0));
+    x_185 = ((x_181 >= 0.0) & (x_183 >= 0.0));
     x_186_phi = x_185;
   }
   let x_186 : bool = x_186_phi;
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.spvasm.expected.hlsl
index c32dae7..8f680e0 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.spvasm.expected.hlsl
@@ -51,18 +51,10 @@
   const float x_126 = ((x_117 * x_119) - (x_122 * x_124));
   x_67 = x_126;
   const bool x_127 = (x_99 < 0.0f);
-  bool tint_tmp = x_127;
-  if (tint_tmp) {
-    tint_tmp = (x_126 < 0.0f);
-  }
-  const bool x_129 = (tint_tmp);
+  const bool x_129 = (x_127 & (x_126 < 0.0f));
   x_136_phi = x_129;
   if (!(x_129)) {
-    bool tint_tmp_1 = (x_99 >= 0.0f);
-    if (tint_tmp_1) {
-      tint_tmp_1 = (x_126 >= 0.0f);
-    }
-    x_135 = (tint_tmp_1);
+    x_135 = ((x_99 >= 0.0f) & (x_126 >= 0.0f));
     x_136_phi = x_135;
   }
   if (!(x_136_phi)) {
@@ -84,18 +76,10 @@
   const float x_162 = param_4.y;
   const float x_164 = ((x_155 * x_157) - (x_160 * x_162));
   x_66 = x_164;
-  bool tint_tmp_2 = x_127;
-  if (tint_tmp_2) {
-    tint_tmp_2 = (x_164 < 0.0f);
-  }
-  const bool x_166 = (tint_tmp_2);
+  const bool x_166 = (x_127 & (x_164 < 0.0f));
   x_173_phi = x_166;
   if (!(x_166)) {
-    bool tint_tmp_3 = (x_99 >= 0.0f);
-    if (tint_tmp_3) {
-      tint_tmp_3 = (x_164 >= 0.0f);
-    }
-    x_172 = (tint_tmp_3);
+    x_172 = ((x_99 >= 0.0f) & (x_164 >= 0.0f));
     x_173_phi = x_172;
   }
   if (!(x_173_phi)) {
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.spvasm.expected.msl
index fc78937..5b5a4a7 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.spvasm.expected.msl
@@ -58,10 +58,10 @@
   float const x_126 = ((x_117 * x_119) - (x_122 * x_124));
   x_67 = x_126;
   bool const x_127 = (x_99 < 0.0f);
-  bool const x_129 = (x_127 && (x_126 < 0.0f));
+  bool const x_129 = (x_127 & (x_126 < 0.0f));
   x_136_phi = x_129;
   if (!(x_129)) {
-    x_135 = ((x_99 >= 0.0f) && (x_126 >= 0.0f));
+    x_135 = ((x_99 >= 0.0f) & (x_126 >= 0.0f));
     x_136_phi = x_135;
   }
   bool const x_136 = x_136_phi;
@@ -84,10 +84,10 @@
   float const x_162 = param_4.y;
   float const x_164 = ((x_155 * x_157) - (x_160 * x_162));
   x_66 = x_164;
-  bool const x_166 = (x_127 && (x_164 < 0.0f));
+  bool const x_166 = (x_127 & (x_164 < 0.0f));
   x_173_phi = x_166;
   if (!(x_166)) {
-    x_172 = ((x_99 >= 0.0f) && (x_164 >= 0.0f));
+    x_172 = ((x_99 >= 0.0f) & (x_164 >= 0.0f));
     x_173_phi = x_172;
   }
   bool const x_173 = x_173_phi;
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.spvasm.expected.spvasm
index 69ebf78..ce35196 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.spvasm.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 257
+; Bound: 249
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -80,22 +80,22 @@
       %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
        %void = OpTypeVoid
-        %207 = OpTypeFunction %void
+        %199 = OpTypeFunction %void
 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
 %float_0_699999988 = OpConstant %float 0.699999988
 %float_0_300000012 = OpConstant %float 0.300000012
-        %225 = OpConstantComposite %v2float %float_0_699999988 %float_0_300000012
+        %217 = OpConstantComposite %v2float %float_0_699999988 %float_0_300000012
   %float_0_5 = OpConstant %float 0.5
 %float_0_899999976 = OpConstant %float 0.899999976
-        %228 = OpConstantComposite %v2float %float_0_5 %float_0_899999976
+        %220 = OpConstantComposite %v2float %float_0_5 %float_0_899999976
 %float_0_100000001 = OpConstant %float 0.100000001
 %float_0_400000006 = OpConstant %float 0.400000006
-        %231 = OpConstantComposite %v2float %float_0_100000001 %float_0_400000006
+        %223 = OpConstantComposite %v2float %float_0_100000001 %float_0_400000006
     %float_1 = OpConstant %float 1
-        %242 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
-        %243 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
+        %234 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
+        %235 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %244 = OpTypeFunction %void %main_out
+        %236 = OpTypeFunction %void %main_out
 %pointInTriangle_vf2_vf2_vf2_vf2_ = OpFunction %int None %15
           %p = OpFunctionParameter %_ptr_Function_v2float
           %a = OpFunctionParameter %_ptr_Function_v2float
@@ -188,152 +188,132 @@
         %127 = OpFSub %float %125 %126
                OpStore %x_67 %127
         %129 = OpFOrdLessThan %bool %86 %float_0
-               OpSelectionMerge %130 None
-               OpBranchConditional %129 %131 %130
-        %131 = OpLabel
-        %132 = OpFOrdLessThan %bool %127 %float_0
-               OpBranch %130
-        %130 = OpLabel
-        %133 = OpPhi %bool %129 %23 %132 %131
-               OpStore %x_136_phi %133
-        %134 = OpLogicalNot %bool %133
-               OpSelectionMerge %135 None
-               OpBranchConditional %134 %136 %135
-        %136 = OpLabel
-        %137 = OpFOrdGreaterThanEqual %bool %86 %float_0
-               OpSelectionMerge %138 None
-               OpBranchConditional %137 %139 %138
-        %139 = OpLabel
-        %140 = OpFOrdGreaterThanEqual %bool %127 %float_0
-               OpBranch %138
-        %138 = OpLabel
-        %141 = OpPhi %bool %137 %136 %140 %139
-               OpStore %x_135 %141
-        %142 = OpLoad %bool %x_135
-               OpStore %x_136_phi %142
-               OpBranch %135
-        %135 = OpLabel
-        %143 = OpLoad %bool %x_136_phi
-        %144 = OpLogicalNot %bool %143
-               OpSelectionMerge %145 None
-               OpBranchConditional %144 %146 %145
-        %146 = OpLabel
+        %130 = OpFOrdLessThan %bool %127 %float_0
+        %131 = OpLogicalAnd %bool %129 %130
+               OpStore %x_136_phi %131
+        %132 = OpLogicalNot %bool %131
+               OpSelectionMerge %133 None
+               OpBranchConditional %132 %134 %133
+        %134 = OpLabel
+        %135 = OpFOrdGreaterThanEqual %bool %86 %float_0
+        %136 = OpFOrdGreaterThanEqual %bool %127 %float_0
+        %137 = OpLogicalAnd %bool %135 %136
+               OpStore %x_135 %137
+        %138 = OpLoad %bool %x_135
+               OpStore %x_136_phi %138
+               OpBranch %133
+        %133 = OpLabel
+        %139 = OpLoad %bool %x_136_phi
+        %140 = OpLogicalNot %bool %139
+               OpSelectionMerge %141 None
+               OpBranchConditional %140 %142 %141
+        %142 = OpLabel
                OpReturnValue %int_0
-        %145 = OpLabel
-        %149 = OpAccessChain %_ptr_Function_float %p %uint_0
-        %150 = OpLoad %float %149
-        %152 = OpAccessChain %_ptr_Function_float %c %uint_0
-        %153 = OpLoad %float %152
-        %155 = OpAccessChain %_ptr_Function_float %p %uint_1
-        %156 = OpLoad %float %155
-        %158 = OpAccessChain %_ptr_Function_float %c %uint_1
-        %159 = OpLoad %float %158
-        %161 = OpAccessChain %_ptr_Function_float %a %uint_0
-        %162 = OpLoad %float %161
-        %164 = OpAccessChain %_ptr_Function_float %c %uint_0
-        %165 = OpLoad %float %164
-        %167 = OpAccessChain %_ptr_Function_float %a %uint_1
-        %168 = OpLoad %float %167
-        %170 = OpAccessChain %_ptr_Function_float %c %uint_1
-        %171 = OpLoad %float %170
-        %172 = OpFSub %float %150 %153
-        %173 = OpFSub %float %156 %159
-        %174 = OpCompositeConstruct %v2float %172 %173
-               OpStore %param_4 %174
-        %175 = OpFSub %float %162 %165
-        %176 = OpFSub %float %168 %171
-        %177 = OpCompositeConstruct %v2float %175 %176
-               OpStore %param_5 %177
-        %178 = OpAccessChain %_ptr_Function_float %param_4 %uint_0
+        %141 = OpLabel
+        %145 = OpAccessChain %_ptr_Function_float %p %uint_0
+        %146 = OpLoad %float %145
+        %148 = OpAccessChain %_ptr_Function_float %c %uint_0
+        %149 = OpLoad %float %148
+        %151 = OpAccessChain %_ptr_Function_float %p %uint_1
+        %152 = OpLoad %float %151
+        %154 = OpAccessChain %_ptr_Function_float %c %uint_1
+        %155 = OpLoad %float %154
+        %157 = OpAccessChain %_ptr_Function_float %a %uint_0
+        %158 = OpLoad %float %157
+        %160 = OpAccessChain %_ptr_Function_float %c %uint_0
+        %161 = OpLoad %float %160
+        %163 = OpAccessChain %_ptr_Function_float %a %uint_1
+        %164 = OpLoad %float %163
+        %166 = OpAccessChain %_ptr_Function_float %c %uint_1
+        %167 = OpLoad %float %166
+        %168 = OpFSub %float %146 %149
+        %169 = OpFSub %float %152 %155
+        %170 = OpCompositeConstruct %v2float %168 %169
+               OpStore %param_4 %170
+        %171 = OpFSub %float %158 %161
+        %172 = OpFSub %float %164 %167
+        %173 = OpCompositeConstruct %v2float %171 %172
+               OpStore %param_5 %173
+        %174 = OpAccessChain %_ptr_Function_float %param_4 %uint_0
+        %175 = OpLoad %float %174
+        %176 = OpAccessChain %_ptr_Function_float %param_5 %uint_1
+        %177 = OpLoad %float %176
+        %178 = OpAccessChain %_ptr_Function_float %param_5 %uint_0
         %179 = OpLoad %float %178
-        %180 = OpAccessChain %_ptr_Function_float %param_5 %uint_1
+        %180 = OpAccessChain %_ptr_Function_float %param_4 %uint_1
         %181 = OpLoad %float %180
-        %182 = OpAccessChain %_ptr_Function_float %param_5 %uint_0
-        %183 = OpLoad %float %182
-        %184 = OpAccessChain %_ptr_Function_float %param_4 %uint_1
-        %185 = OpLoad %float %184
-        %186 = OpFMul %float %179 %181
-        %187 = OpFMul %float %183 %185
-        %188 = OpFSub %float %186 %187
-               OpStore %x_66 %188
-               OpSelectionMerge %189 None
-               OpBranchConditional %129 %190 %189
-        %190 = OpLabel
-        %191 = OpFOrdLessThan %bool %188 %float_0
-               OpBranch %189
+        %182 = OpFMul %float %175 %177
+        %183 = OpFMul %float %179 %181
+        %184 = OpFSub %float %182 %183
+               OpStore %x_66 %184
+        %185 = OpFOrdLessThan %bool %184 %float_0
+        %186 = OpLogicalAnd %bool %129 %185
+               OpStore %x_173_phi %186
+        %187 = OpLogicalNot %bool %186
+               OpSelectionMerge %188 None
+               OpBranchConditional %187 %189 %188
         %189 = OpLabel
-        %192 = OpPhi %bool %129 %145 %191 %190
-               OpStore %x_173_phi %192
-        %193 = OpLogicalNot %bool %192
-               OpSelectionMerge %194 None
-               OpBranchConditional %193 %195 %194
-        %195 = OpLabel
-        %196 = OpFOrdGreaterThanEqual %bool %86 %float_0
-               OpSelectionMerge %197 None
-               OpBranchConditional %196 %198 %197
-        %198 = OpLabel
-        %199 = OpFOrdGreaterThanEqual %bool %188 %float_0
-               OpBranch %197
+        %190 = OpFOrdGreaterThanEqual %bool %86 %float_0
+        %191 = OpFOrdGreaterThanEqual %bool %184 %float_0
+        %192 = OpLogicalAnd %bool %190 %191
+               OpStore %x_172 %192
+        %193 = OpLoad %bool %x_172
+               OpStore %x_173_phi %193
+               OpBranch %188
+        %188 = OpLabel
+        %194 = OpLoad %bool %x_173_phi
+        %195 = OpLogicalNot %bool %194
+               OpSelectionMerge %196 None
+               OpBranchConditional %195 %197 %196
         %197 = OpLabel
-        %200 = OpPhi %bool %196 %195 %199 %198
-               OpStore %x_172 %200
-        %201 = OpLoad %bool %x_172
-               OpStore %x_173_phi %201
-               OpBranch %194
-        %194 = OpLabel
-        %202 = OpLoad %bool %x_173_phi
-        %203 = OpLogicalNot %bool %202
-               OpSelectionMerge %204 None
-               OpBranchConditional %203 %205 %204
-        %205 = OpLabel
                OpReturnValue %int_0
-        %204 = OpLabel
+        %196 = OpLabel
                OpReturnValue %int_1
                OpFunctionEnd
-     %main_1 = OpFunction %void None %207
-        %210 = OpLabel
+     %main_1 = OpFunction %void None %199
+        %202 = OpLabel
     %param_6 = OpVariable %_ptr_Function_v2float Function %30
     %param_7 = OpVariable %_ptr_Function_v2float Function %30
     %param_8 = OpVariable %_ptr_Function_v2float Function %30
     %param_9 = OpVariable %_ptr_Function_v2float Function %30
-        %215 = OpLoad %v4float %gl_FragCoord
-        %217 = OpAccessChain %_ptr_Uniform_v2float %x_17 %uint_0
-        %218 = OpLoad %v2float %217
-        %219 = OpCompositeExtract %float %215 0
-        %220 = OpCompositeExtract %float %215 1
-        %221 = OpCompositeConstruct %v2float %219 %220
-        %222 = OpFDiv %v2float %221 %218
-               OpStore %param_6 %222
-               OpStore %param_7 %225
-               OpStore %param_8 %228
-               OpStore %param_9 %231
-        %232 = OpFunctionCall %int %pointInTriangle_vf2_vf2_vf2_vf2_ %param_6 %param_7 %param_8 %param_9
-        %237 = OpIEqual %bool %232 %int_1
-               OpSelectionMerge %238 None
-               OpBranchConditional %237 %239 %240
-        %239 = OpLabel
-               OpStore %x_GLF_color %242
-               OpBranch %238
-        %240 = OpLabel
-               OpStore %x_GLF_color %243
-               OpBranch %238
-        %238 = OpLabel
+        %207 = OpLoad %v4float %gl_FragCoord
+        %209 = OpAccessChain %_ptr_Uniform_v2float %x_17 %uint_0
+        %210 = OpLoad %v2float %209
+        %211 = OpCompositeExtract %float %207 0
+        %212 = OpCompositeExtract %float %207 1
+        %213 = OpCompositeConstruct %v2float %211 %212
+        %214 = OpFDiv %v2float %213 %210
+               OpStore %param_6 %214
+               OpStore %param_7 %217
+               OpStore %param_8 %220
+               OpStore %param_9 %223
+        %224 = OpFunctionCall %int %pointInTriangle_vf2_vf2_vf2_vf2_ %param_6 %param_7 %param_8 %param_9
+        %229 = OpIEqual %bool %224 %int_1
+               OpSelectionMerge %230 None
+               OpBranchConditional %229 %231 %232
+        %231 = OpLabel
+               OpStore %x_GLF_color %234
+               OpBranch %230
+        %232 = OpLabel
+               OpStore %x_GLF_color %235
+               OpBranch %230
+        %230 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %244
+%tint_symbol_3 = OpFunction %void None %236
 %tint_symbol_1 = OpFunctionParameter %main_out
-        %248 = OpLabel
-        %249 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %249
+        %240 = OpLabel
+        %241 = OpCompositeExtract %v4float %tint_symbol_1 0
+               OpStore %tint_symbol_2 %241
                OpReturn
                OpFunctionEnd
-       %main = OpFunction %void None %207
-        %251 = OpLabel
-        %252 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %252
-        %253 = OpFunctionCall %void %main_1
-        %255 = OpLoad %v4float %x_GLF_color
-        %256 = OpCompositeConstruct %main_out %255
-        %254 = OpFunctionCall %void %tint_symbol_3 %256
+       %main = OpFunction %void None %199
+        %243 = OpLabel
+        %244 = OpLoad %v4float %tint_symbol
+               OpStore %gl_FragCoord %244
+        %245 = OpFunctionCall %void %main_1
+        %247 = OpLoad %v4float %x_GLF_color
+        %248 = OpCompositeConstruct %main_out %247
+        %246 = OpFunctionCall %void %tint_symbol_3 %248
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.spvasm.expected.wgsl
index 414b559..f49e3e9 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.spvasm.expected.wgsl
@@ -64,10 +64,10 @@
   let x_126 : f32 = ((x_117 * x_119) - (x_122 * x_124));
   x_67 = x_126;
   let x_127 : bool = (x_99 < 0.0);
-  let x_129 : bool = (x_127 && (x_126 < 0.0));
+  let x_129 : bool = (x_127 & (x_126 < 0.0));
   x_136_phi = x_129;
   if (!(x_129)) {
-    x_135 = ((x_99 >= 0.0) && (x_126 >= 0.0));
+    x_135 = ((x_99 >= 0.0) & (x_126 >= 0.0));
     x_136_phi = x_135;
   }
   let x_136 : bool = x_136_phi;
@@ -90,10 +90,10 @@
   let x_162 : f32 = param_4.y;
   let x_164 : f32 = ((x_155 * x_157) - (x_160 * x_162));
   x_66 = x_164;
-  let x_166 : bool = (x_127 && (x_164 < 0.0));
+  let x_166 : bool = (x_127 & (x_164 < 0.0));
   x_173_phi = x_166;
   if (!(x_166)) {
-    x_172 = ((x_99 >= 0.0) && (x_164 >= 0.0));
+    x_172 = ((x_99 >= 0.0) & (x_164 >= 0.0));
     x_173_phi = x_172;
   }
   let x_173 : bool = x_173_phi;
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.spvasm.expected.hlsl
index 1e6b252..1593598 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.spvasm.expected.hlsl
@@ -54,18 +54,10 @@
   const float x_138 = ((x_129 * x_131) - (x_134 * x_136));
   x_79 = x_138;
   const bool x_139 = (x_111 < 0.0f);
-  bool tint_tmp = x_139;
-  if (tint_tmp) {
-    tint_tmp = (x_138 < 0.0f);
-  }
-  const bool x_141 = (tint_tmp);
+  const bool x_141 = (x_139 & (x_138 < 0.0f));
   x_148_phi = x_141;
   if (!(x_141)) {
-    bool tint_tmp_1 = (x_111 >= 0.0f);
-    if (tint_tmp_1) {
-      tint_tmp_1 = (x_138 >= 0.0f);
-    }
-    x_147 = (tint_tmp_1);
+    x_147 = ((x_111 >= 0.0f) & (x_138 >= 0.0f));
     x_148_phi = x_147;
   }
   int x_153_phi = 0;
@@ -119,18 +111,10 @@
   const float x_193 = param_4.y;
   const float x_195 = ((x_186 * x_188) - (x_191 * x_193));
   x_78 = x_195;
-  bool tint_tmp_2 = x_139;
-  if (tint_tmp_2) {
-    tint_tmp_2 = (x_195 < 0.0f);
-  }
-  const bool x_197 = (tint_tmp_2);
+  const bool x_197 = (x_139 & (x_195 < 0.0f));
   x_204_phi = x_197;
   if (!(x_197)) {
-    bool tint_tmp_3 = (x_111 >= 0.0f);
-    if (tint_tmp_3) {
-      tint_tmp_3 = (x_195 >= 0.0f);
-    }
-    x_203 = (tint_tmp_3);
+    x_203 = ((x_111 >= 0.0f) & (x_195 >= 0.0f));
     x_204_phi = x_203;
   }
   if (!(x_204_phi)) {
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.spvasm.expected.msl
index 6537e89..a726115 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.spvasm.expected.msl
@@ -61,10 +61,10 @@
   float const x_138 = ((x_129 * x_131) - (x_134 * x_136));
   x_79 = x_138;
   bool const x_139 = (x_111 < 0.0f);
-  bool const x_141 = (x_139 && (x_138 < 0.0f));
+  bool const x_141 = (x_139 & (x_138 < 0.0f));
   x_148_phi = x_141;
   if (!(x_141)) {
-    x_147 = ((x_111 >= 0.0f) && (x_138 >= 0.0f));
+    x_147 = ((x_111 >= 0.0f) & (x_138 >= 0.0f));
     x_148_phi = x_147;
   }
   int x_153_phi = 0;
@@ -119,10 +119,10 @@
   float const x_193 = param_4.y;
   float const x_195 = ((x_186 * x_188) - (x_191 * x_193));
   x_78 = x_195;
-  bool const x_197 = (x_139 && (x_195 < 0.0f));
+  bool const x_197 = (x_139 & (x_195 < 0.0f));
   x_204_phi = x_197;
   if (!(x_197)) {
-    x_203 = ((x_111 >= 0.0f) && (x_195 >= 0.0f));
+    x_203 = ((x_111 >= 0.0f) & (x_195 >= 0.0f));
     x_204_phi = x_203;
   }
   bool const x_204 = x_204_phi;
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.spvasm.expected.spvasm
index 8e4e6fc..a995146 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.spvasm.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 300
+; Bound: 292
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -93,28 +93,28 @@
      %uint_1 = OpConstant %uint 1
     %float_0 = OpConstant %float 0
 %_ptr_Function_int = OpTypePointer Function %int
-        %148 = OpConstantNull %int
+        %144 = OpConstantNull %int
       %int_0 = OpConstant %int 0
 %_ptr_Uniform_float = OpTypePointer Uniform %float
     %float_1 = OpConstant %float 1
-        %170 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+        %166 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
       %int_1 = OpConstant %int 1
        %void = OpTypeVoid
-        %244 = OpTypeFunction %void
+        %236 = OpTypeFunction %void
 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
 %float_0_699999988 = OpConstant %float 0.699999988
 %float_0_300000012 = OpConstant %float 0.300000012
-        %262 = OpConstantComposite %v2float %float_0_699999988 %float_0_300000012
+        %254 = OpConstantComposite %v2float %float_0_699999988 %float_0_300000012
   %float_0_5 = OpConstant %float 0.5
 %float_0_899999976 = OpConstant %float 0.899999976
-        %265 = OpConstantComposite %v2float %float_0_5 %float_0_899999976
+        %257 = OpConstantComposite %v2float %float_0_5 %float_0_899999976
 %float_0_100000001 = OpConstant %float 0.100000001
 %float_0_400000006 = OpConstant %float 0.400000006
-        %268 = OpConstantComposite %v2float %float_0_100000001 %float_0_400000006
-        %285 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
-        %286 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
+        %260 = OpConstantComposite %v2float %float_0_100000001 %float_0_400000006
+        %277 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
+        %278 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %287 = OpTypeFunction %void %main_out
+        %279 = OpTypeFunction %void %main_out
 %pointInTriangle_vf2_vf2_vf2_vf2_ = OpFunction %int None %18
           %p = OpFunctionParameter %_ptr_Function_v2float
           %a = OpFunctionParameter %_ptr_Function_v2float
@@ -134,10 +134,10 @@
       %x_203 = OpVariable %_ptr_Function_bool Function %42
   %x_148_phi = OpVariable %_ptr_Function_bool Function %42
   %x_204_phi = OpVariable %_ptr_Function_bool Function %42
-  %x_153_phi = OpVariable %_ptr_Function_int Function %148
-      %x_154 = OpVariable %_ptr_Function_int Function %148
-  %x_164_phi = OpVariable %_ptr_Function_int Function %148
-      %x_165 = OpVariable %_ptr_Function_int Function %148
+  %x_153_phi = OpVariable %_ptr_Function_int Function %144
+      %x_154 = OpVariable %_ptr_Function_int Function %144
+  %x_164_phi = OpVariable %_ptr_Function_int Function %144
+      %x_165 = OpVariable %_ptr_Function_int Function %144
          %49 = OpAccessChain %_ptr_Function_float %p %uint_0
          %50 = OpLoad %float %49
          %52 = OpAccessChain %_ptr_Function_float %a %uint_0
@@ -211,213 +211,193 @@
         %130 = OpFSub %float %128 %129
                OpStore %x_79 %130
         %132 = OpFOrdLessThan %bool %89 %float_0
-               OpSelectionMerge %133 None
-               OpBranchConditional %132 %134 %133
-        %134 = OpLabel
-        %135 = OpFOrdLessThan %bool %130 %float_0
-               OpBranch %133
-        %133 = OpLabel
-        %136 = OpPhi %bool %132 %26 %135 %134
-               OpStore %x_148_phi %136
-        %137 = OpLogicalNot %bool %136
-               OpSelectionMerge %138 None
-               OpBranchConditional %137 %139 %138
-        %139 = OpLabel
-        %140 = OpFOrdGreaterThanEqual %bool %89 %float_0
-               OpSelectionMerge %141 None
-               OpBranchConditional %140 %142 %141
-        %142 = OpLabel
-        %143 = OpFOrdGreaterThanEqual %bool %130 %float_0
-               OpBranch %141
-        %141 = OpLabel
-        %144 = OpPhi %bool %140 %139 %143 %142
-               OpStore %x_147 %144
-        %145 = OpLoad %bool %x_147
-               OpStore %x_148_phi %145
-               OpBranch %138
-        %138 = OpLabel
-        %149 = OpLoad %bool %x_148_phi
-        %150 = OpLogicalNot %bool %149
-               OpSelectionMerge %151 None
-               OpBranchConditional %150 %152 %151
-        %152 = OpLabel
+        %133 = OpFOrdLessThan %bool %130 %float_0
+        %134 = OpLogicalAnd %bool %132 %133
+               OpStore %x_148_phi %134
+        %135 = OpLogicalNot %bool %134
+               OpSelectionMerge %136 None
+               OpBranchConditional %135 %137 %136
+        %137 = OpLabel
+        %138 = OpFOrdGreaterThanEqual %bool %89 %float_0
+        %139 = OpFOrdGreaterThanEqual %bool %130 %float_0
+        %140 = OpLogicalAnd %bool %138 %139
+               OpStore %x_147 %140
+        %141 = OpLoad %bool %x_147
+               OpStore %x_148_phi %141
+               OpBranch %136
+        %136 = OpLabel
+        %145 = OpLoad %bool %x_148_phi
+        %146 = OpLogicalNot %bool %145
+               OpSelectionMerge %147 None
+               OpBranchConditional %146 %148 %147
+        %148 = OpLabel
                OpStore %x_153_phi %int_0
-               OpBranch %154
-        %154 = OpLabel
-               OpLoopMerge %155 %156 None
-               OpBranch %157
-        %157 = OpLabel
-        %160 = OpLoad %int %x_153_phi
-        %162 = OpAccessChain %_ptr_Uniform_float %x_11 %uint_0 %uint_1
-        %163 = OpLoad %float %162
-        %164 = OpConvertFToS %int %163
-        %165 = OpSLessThan %bool %160 %164
-               OpSelectionMerge %166 None
-               OpBranchConditional %165 %167 %168
-        %167 = OpLabel
-               OpBranch %166
-        %168 = OpLabel
-               OpBranch %155
-        %166 = OpLabel
-               OpStore %x_GLF_color %170
+               OpBranch %150
+        %150 = OpLabel
+               OpLoopMerge %151 %152 None
+               OpBranch %153
+        %153 = OpLabel
+        %156 = OpLoad %int %x_153_phi
+        %158 = OpAccessChain %_ptr_Uniform_float %x_11 %uint_0 %uint_1
+        %159 = OpLoad %float %158
+        %160 = OpConvertFToS %int %159
+        %161 = OpSLessThan %bool %156 %160
+               OpSelectionMerge %162 None
+               OpBranchConditional %161 %163 %164
+        %163 = OpLabel
+               OpBranch %162
+        %164 = OpLabel
+               OpBranch %151
+        %162 = OpLabel
+               OpStore %x_GLF_color %166
                OpStore %x_164_phi %int_0
-               OpBranch %171
-        %171 = OpLabel
-               OpLoopMerge %172 %173 None
+               OpBranch %167
+        %167 = OpLabel
+               OpLoopMerge %168 %169 None
+               OpBranch %170
+        %170 = OpLabel
+        %172 = OpLoad %int %x_164_phi
+        %173 = OpSLessThan %bool %172 %160
+               OpSelectionMerge %174 None
+               OpBranchConditional %173 %175 %176
+        %175 = OpLabel
                OpBranch %174
+        %176 = OpLabel
+               OpBranch %168
         %174 = OpLabel
-        %176 = OpLoad %int %x_164_phi
-        %177 = OpSLessThan %bool %176 %164
-               OpSelectionMerge %178 None
-               OpBranchConditional %177 %179 %180
-        %179 = OpLabel
-               OpBranch %178
-        %180 = OpLabel
-               OpBranch %172
-        %178 = OpLabel
-               OpStore %x_GLF_color %170
-               OpBranch %173
-        %173 = OpLabel
-        %182 = OpIAdd %int %176 %int_1
-               OpStore %x_165 %182
-        %183 = OpLoad %int %x_165
-               OpStore %x_164_phi %183
-               OpBranch %171
-        %172 = OpLabel
-               OpBranch %156
-        %156 = OpLabel
-        %184 = OpIAdd %int %160 %int_1
-               OpStore %x_154 %184
-        %185 = OpLoad %int %x_154
-               OpStore %x_153_phi %185
-               OpBranch %154
-        %155 = OpLabel
-               OpReturnValue %int_0
+               OpStore %x_GLF_color %166
+               OpBranch %169
+        %169 = OpLabel
+        %178 = OpIAdd %int %172 %int_1
+               OpStore %x_165 %178
+        %179 = OpLoad %int %x_165
+               OpStore %x_164_phi %179
+               OpBranch %167
+        %168 = OpLabel
+               OpBranch %152
+        %152 = OpLabel
+        %180 = OpIAdd %int %156 %int_1
+               OpStore %x_154 %180
+        %181 = OpLoad %int %x_154
+               OpStore %x_153_phi %181
+               OpBranch %150
         %151 = OpLabel
-        %187 = OpAccessChain %_ptr_Function_float %p %uint_0
-        %188 = OpLoad %float %187
-        %190 = OpAccessChain %_ptr_Function_float %c %uint_0
-        %191 = OpLoad %float %190
-        %193 = OpAccessChain %_ptr_Function_float %p %uint_1
-        %194 = OpLoad %float %193
-        %196 = OpAccessChain %_ptr_Function_float %c %uint_1
-        %197 = OpLoad %float %196
-        %199 = OpAccessChain %_ptr_Function_float %a %uint_0
-        %200 = OpLoad %float %199
-        %202 = OpAccessChain %_ptr_Function_float %c %uint_0
-        %203 = OpLoad %float %202
-        %205 = OpAccessChain %_ptr_Function_float %a %uint_1
-        %206 = OpLoad %float %205
-        %208 = OpAccessChain %_ptr_Function_float %c %uint_1
-        %209 = OpLoad %float %208
-        %210 = OpFSub %float %188 %191
-        %211 = OpFSub %float %194 %197
-        %212 = OpCompositeConstruct %v2float %210 %211
-               OpStore %param_4 %212
-        %213 = OpFSub %float %200 %203
-        %214 = OpFSub %float %206 %209
-        %215 = OpCompositeConstruct %v2float %213 %214
-               OpStore %param_5 %215
-        %216 = OpAccessChain %_ptr_Function_float %param_4 %uint_0
-        %217 = OpLoad %float %216
-        %218 = OpAccessChain %_ptr_Function_float %param_5 %uint_1
-        %219 = OpLoad %float %218
-        %220 = OpAccessChain %_ptr_Function_float %param_5 %uint_0
-        %221 = OpLoad %float %220
-        %222 = OpAccessChain %_ptr_Function_float %param_4 %uint_1
-        %223 = OpLoad %float %222
-        %224 = OpFMul %float %217 %219
-        %225 = OpFMul %float %221 %223
-        %226 = OpFSub %float %224 %225
-               OpStore %x_78 %226
-               OpSelectionMerge %227 None
-               OpBranchConditional %132 %228 %227
-        %228 = OpLabel
-        %229 = OpFOrdLessThan %bool %226 %float_0
-               OpBranch %227
-        %227 = OpLabel
-        %230 = OpPhi %bool %132 %151 %229 %228
-               OpStore %x_204_phi %230
-        %231 = OpLogicalNot %bool %230
-               OpSelectionMerge %232 None
-               OpBranchConditional %231 %233 %232
-        %233 = OpLabel
-        %234 = OpFOrdGreaterThanEqual %bool %89 %float_0
-               OpSelectionMerge %235 None
-               OpBranchConditional %234 %236 %235
-        %236 = OpLabel
-        %237 = OpFOrdGreaterThanEqual %bool %226 %float_0
-               OpBranch %235
-        %235 = OpLabel
-        %238 = OpPhi %bool %234 %233 %237 %236
-               OpStore %x_203 %238
-        %239 = OpLoad %bool %x_203
-               OpStore %x_204_phi %239
-               OpBranch %232
-        %232 = OpLabel
-        %240 = OpLoad %bool %x_204_phi
-        %241 = OpLogicalNot %bool %240
-               OpSelectionMerge %242 None
-               OpBranchConditional %241 %243 %242
-        %243 = OpLabel
                OpReturnValue %int_0
-        %242 = OpLabel
+        %147 = OpLabel
+        %183 = OpAccessChain %_ptr_Function_float %p %uint_0
+        %184 = OpLoad %float %183
+        %186 = OpAccessChain %_ptr_Function_float %c %uint_0
+        %187 = OpLoad %float %186
+        %189 = OpAccessChain %_ptr_Function_float %p %uint_1
+        %190 = OpLoad %float %189
+        %192 = OpAccessChain %_ptr_Function_float %c %uint_1
+        %193 = OpLoad %float %192
+        %195 = OpAccessChain %_ptr_Function_float %a %uint_0
+        %196 = OpLoad %float %195
+        %198 = OpAccessChain %_ptr_Function_float %c %uint_0
+        %199 = OpLoad %float %198
+        %201 = OpAccessChain %_ptr_Function_float %a %uint_1
+        %202 = OpLoad %float %201
+        %204 = OpAccessChain %_ptr_Function_float %c %uint_1
+        %205 = OpLoad %float %204
+        %206 = OpFSub %float %184 %187
+        %207 = OpFSub %float %190 %193
+        %208 = OpCompositeConstruct %v2float %206 %207
+               OpStore %param_4 %208
+        %209 = OpFSub %float %196 %199
+        %210 = OpFSub %float %202 %205
+        %211 = OpCompositeConstruct %v2float %209 %210
+               OpStore %param_5 %211
+        %212 = OpAccessChain %_ptr_Function_float %param_4 %uint_0
+        %213 = OpLoad %float %212
+        %214 = OpAccessChain %_ptr_Function_float %param_5 %uint_1
+        %215 = OpLoad %float %214
+        %216 = OpAccessChain %_ptr_Function_float %param_5 %uint_0
+        %217 = OpLoad %float %216
+        %218 = OpAccessChain %_ptr_Function_float %param_4 %uint_1
+        %219 = OpLoad %float %218
+        %220 = OpFMul %float %213 %215
+        %221 = OpFMul %float %217 %219
+        %222 = OpFSub %float %220 %221
+               OpStore %x_78 %222
+        %223 = OpFOrdLessThan %bool %222 %float_0
+        %224 = OpLogicalAnd %bool %132 %223
+               OpStore %x_204_phi %224
+        %225 = OpLogicalNot %bool %224
+               OpSelectionMerge %226 None
+               OpBranchConditional %225 %227 %226
+        %227 = OpLabel
+        %228 = OpFOrdGreaterThanEqual %bool %89 %float_0
+        %229 = OpFOrdGreaterThanEqual %bool %222 %float_0
+        %230 = OpLogicalAnd %bool %228 %229
+               OpStore %x_203 %230
+        %231 = OpLoad %bool %x_203
+               OpStore %x_204_phi %231
+               OpBranch %226
+        %226 = OpLabel
+        %232 = OpLoad %bool %x_204_phi
+        %233 = OpLogicalNot %bool %232
+               OpSelectionMerge %234 None
+               OpBranchConditional %233 %235 %234
+        %235 = OpLabel
+               OpReturnValue %int_0
+        %234 = OpLabel
                OpReturnValue %int_1
                OpFunctionEnd
-     %main_1 = OpFunction %void None %244
-        %247 = OpLabel
+     %main_1 = OpFunction %void None %236
+        %239 = OpLabel
     %param_6 = OpVariable %_ptr_Function_v2float Function %33
     %param_7 = OpVariable %_ptr_Function_v2float Function %33
     %param_8 = OpVariable %_ptr_Function_v2float Function %33
     %param_9 = OpVariable %_ptr_Function_v2float Function %33
-        %252 = OpLoad %v4float %gl_FragCoord
-        %254 = OpAccessChain %_ptr_Uniform_v2float %x_19 %uint_0
-        %255 = OpLoad %v2float %254
-        %256 = OpCompositeExtract %float %252 0
-        %257 = OpCompositeExtract %float %252 1
-        %258 = OpCompositeConstruct %v2float %256 %257
-        %259 = OpFDiv %v2float %258 %255
-               OpStore %param_6 %259
-               OpStore %param_7 %262
-               OpStore %param_8 %265
-               OpStore %param_9 %268
-        %269 = OpFunctionCall %int %pointInTriangle_vf2_vf2_vf2_vf2_ %param_6 %param_7 %param_8 %param_9
-        %274 = OpIEqual %bool %269 %int_1
+        %244 = OpLoad %v4float %gl_FragCoord
+        %246 = OpAccessChain %_ptr_Uniform_v2float %x_19 %uint_0
+        %247 = OpLoad %v2float %246
+        %248 = OpCompositeExtract %float %244 0
+        %249 = OpCompositeExtract %float %244 1
+        %250 = OpCompositeConstruct %v2float %248 %249
+        %251 = OpFDiv %v2float %250 %247
+               OpStore %param_6 %251
+               OpStore %param_7 %254
+               OpStore %param_8 %257
+               OpStore %param_9 %260
+        %261 = OpFunctionCall %int %pointInTriangle_vf2_vf2_vf2_vf2_ %param_6 %param_7 %param_8 %param_9
+        %266 = OpIEqual %bool %261 %int_1
+               OpSelectionMerge %267 None
+               OpBranchConditional %266 %268 %269
+        %268 = OpLabel
+        %270 = OpAccessChain %_ptr_Uniform_float %x_11 %uint_0 %uint_1
+        %271 = OpLoad %float %270
+        %272 = OpAccessChain %_ptr_Uniform_float %x_11 %uint_0 %uint_0
+        %273 = OpLoad %float %272
+        %274 = OpFOrdGreaterThanEqual %bool %271 %273
                OpSelectionMerge %275 None
-               OpBranchConditional %274 %276 %277
+               OpBranchConditional %274 %276 %275
         %276 = OpLabel
-        %278 = OpAccessChain %_ptr_Uniform_float %x_11 %uint_0 %uint_1
-        %279 = OpLoad %float %278
-        %280 = OpAccessChain %_ptr_Uniform_float %x_11 %uint_0 %uint_0
-        %281 = OpLoad %float %280
-        %282 = OpFOrdGreaterThanEqual %bool %279 %281
-               OpSelectionMerge %283 None
-               OpBranchConditional %282 %284 %283
-        %284 = OpLabel
-               OpStore %x_GLF_color %285
-               OpBranch %283
-        %283 = OpLabel
-               OpBranch %275
-        %277 = OpLabel
-               OpStore %x_GLF_color %286
+               OpStore %x_GLF_color %277
                OpBranch %275
         %275 = OpLabel
+               OpBranch %267
+        %269 = OpLabel
+               OpStore %x_GLF_color %278
+               OpBranch %267
+        %267 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %287
+%tint_symbol_3 = OpFunction %void None %279
 %tint_symbol_1 = OpFunctionParameter %main_out
-        %291 = OpLabel
-        %292 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %292
+        %283 = OpLabel
+        %284 = OpCompositeExtract %v4float %tint_symbol_1 0
+               OpStore %tint_symbol_2 %284
                OpReturn
                OpFunctionEnd
-       %main = OpFunction %void None %244
-        %294 = OpLabel
-        %295 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %295
-        %296 = OpFunctionCall %void %main_1
-        %298 = OpLoad %v4float %x_GLF_color
-        %299 = OpCompositeConstruct %main_out %298
-        %297 = OpFunctionCall %void %tint_symbol_3 %299
+       %main = OpFunction %void None %236
+        %286 = OpLabel
+        %287 = OpLoad %v4float %tint_symbol
+               OpStore %gl_FragCoord %287
+        %288 = OpFunctionCall %void %main_1
+        %290 = OpLoad %v4float %x_GLF_color
+        %291 = OpCompositeConstruct %main_out %290
+        %289 = OpFunctionCall %void %tint_symbol_3 %291
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.spvasm.expected.wgsl
index c9e248c..d62e9db 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.spvasm.expected.wgsl
@@ -71,10 +71,10 @@
   let x_138 : f32 = ((x_129 * x_131) - (x_134 * x_136));
   x_79 = x_138;
   let x_139 : bool = (x_111 < 0.0);
-  let x_141 : bool = (x_139 && (x_138 < 0.0));
+  let x_141 : bool = (x_139 & (x_138 < 0.0));
   x_148_phi = x_141;
   if (!(x_141)) {
-    x_147 = ((x_111 >= 0.0) && (x_138 >= 0.0));
+    x_147 = ((x_111 >= 0.0) & (x_138 >= 0.0));
     x_148_phi = x_147;
   }
   var x_153_phi : i32;
@@ -131,10 +131,10 @@
   let x_193 : f32 = param_4.y;
   let x_195 : f32 = ((x_186 * x_188) - (x_191 * x_193));
   x_78 = x_195;
-  let x_197 : bool = (x_139 && (x_195 < 0.0));
+  let x_197 : bool = (x_139 & (x_195 < 0.0));
   x_204_phi = x_197;
   if (!(x_197)) {
-    x_203 = ((x_111 >= 0.0) && (x_195 >= 0.0));
+    x_203 = ((x_111 >= 0.0) & (x_195 >= 0.0));
     x_204_phi = x_203;
   }
   let x_204 : bool = x_204_phi;
diff --git a/test/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.spvasm.expected.msl
index aa5c43e..0536ebc 100644
--- a/test/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.spvasm.expected.msl
@@ -74,7 +74,7 @@
         int const x_32 = d;
         int const x_33 = d;
         int const x_34 = d;
-        tempm43[select(0, x_31, ((x_29 >= 0) && (x_30 < 4)))][select(0, x_34, ((x_32 >= 0) && (x_33 < 3)))] = 1.0f;
+        tempm43[select(0, x_31, ((x_29 >= 0) & (x_30 < 4)))][select(0, x_34, ((x_32 >= 0) & (x_33 < 3)))] = 1.0f;
         {
           int const x_35 = c;
           c = (x_35 + 1);
@@ -83,7 +83,7 @@
       int const x_37 = idx;
       int const x_38 = idx;
       int const x_39 = idx;
-      int const x_117 = select(0, x_39, ((x_37 >= 0) && (x_38 < 9)));
+      int const x_117 = select(0, x_39, ((x_37 >= 0) & (x_38 < 9)));
       int const x_40 = ctr;
       float const x_119 = m43[x_40].y;
       float const x_121 = GLF_live6sums.arr[x_117];
diff --git a/test/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.spvasm.expected.spvasm
index 63de0fc..ecf8eb6 100644
--- a/test/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.spvasm.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 152
+; Bound: 146
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -82,7 +82,7 @@
       %int_9 = OpConstant %int 9
      %uint_1 = OpConstant %uint 1
    %main_out = OpTypeStruct %v4float
-        %140 = OpTypeFunction %void %main_out
+        %134 = OpTypeFunction %void %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
         %idx = OpVariable %_ptr_Function_int Function %18
@@ -176,80 +176,65 @@
          %98 = OpLoad %int %d
          %99 = OpLoad %int %d
         %101 = OpSGreaterThanEqual %bool %94 %int_0
-               OpSelectionMerge %102 None
-               OpBranchConditional %101 %103 %102
-        %103 = OpLabel
-        %105 = OpSLessThan %bool %95 %int_4
-               OpBranch %102
-        %102 = OpLabel
-        %106 = OpPhi %bool %101 %91 %105 %103
-        %100 = OpSelect %int %106 %96 %int_0
-        %108 = OpSGreaterThanEqual %bool %97 %int_0
-               OpSelectionMerge %109 None
-               OpBranchConditional %108 %110 %109
-        %110 = OpLabel
-        %112 = OpSLessThan %bool %98 %int_3
-               OpBranch %109
-        %109 = OpLabel
-        %113 = OpPhi %bool %108 %102 %112 %110
-        %107 = OpSelect %int %113 %99 %int_0
-        %115 = OpAccessChain %_ptr_Function_float %tempm43 %100 %107
-               OpStore %115 %float_1
+        %103 = OpSLessThan %bool %95 %int_4
+        %104 = OpLogicalAnd %bool %101 %103
+        %100 = OpSelect %int %104 %96 %int_0
+        %106 = OpSGreaterThanEqual %bool %97 %int_0
+        %108 = OpSLessThan %bool %98 %int_3
+        %109 = OpLogicalAnd %bool %106 %108
+        %105 = OpSelect %int %109 %99 %int_0
+        %111 = OpAccessChain %_ptr_Function_float %tempm43 %100 %105
+               OpStore %111 %float_1
                OpBranch %87
          %87 = OpLabel
-        %116 = OpLoad %int %c
-        %117 = OpIAdd %int %116 %int_1
-               OpStore %c %117
+        %112 = OpLoad %int %c
+        %113 = OpIAdd %int %112 %int_1
+               OpStore %c %113
                OpBranch %85
          %86 = OpLabel
-        %118 = OpLoad %int %idx
-        %119 = OpLoad %int %idx
-        %120 = OpLoad %int %idx
-        %122 = OpSGreaterThanEqual %bool %118 %int_0
-               OpSelectionMerge %123 None
-               OpBranchConditional %122 %124 %123
-        %124 = OpLabel
-        %126 = OpSLessThan %bool %119 %int_9
-               OpBranch %123
-        %123 = OpLabel
-        %127 = OpPhi %bool %122 %86 %126 %124
-        %121 = OpSelect %int %127 %120 %int_0
-        %128 = OpLoad %int %ctr
-        %130 = OpAccessChain %_ptr_Function_float %m43 %128 %uint_1
-        %131 = OpLoad %float %130
-        %132 = OpAccessChain %_ptr_Function_float %GLF_live6sums %121
-        %133 = OpLoad %float %132
-        %134 = OpAccessChain %_ptr_Function_float %GLF_live6sums %121
-        %135 = OpFAdd %float %133 %131
-               OpStore %134 %135
+        %114 = OpLoad %int %idx
+        %115 = OpLoad %int %idx
+        %116 = OpLoad %int %idx
+        %118 = OpSGreaterThanEqual %bool %114 %int_0
+        %120 = OpSLessThan %bool %115 %int_9
+        %121 = OpLogicalAnd %bool %118 %120
+        %117 = OpSelect %int %121 %116 %int_0
+        %122 = OpLoad %int %ctr
+        %124 = OpAccessChain %_ptr_Function_float %m43 %122 %uint_1
+        %125 = OpLoad %float %124
+        %126 = OpAccessChain %_ptr_Function_float %GLF_live6sums %117
+        %127 = OpLoad %float %126
+        %128 = OpAccessChain %_ptr_Function_float %GLF_live6sums %117
+        %129 = OpFAdd %float %127 %125
+               OpStore %128 %129
                OpBranch %69
          %69 = OpLabel
-        %136 = OpLoad %int %ctr
-        %137 = OpIAdd %int %136 %int_1
-               OpStore %ctr %137
+        %130 = OpLoad %int %ctr
+        %131 = OpIAdd %int %130 %int_1
+               OpStore %ctr %131
                OpBranch %67
          %68 = OpLabel
-        %138 = OpLoad %int %idx
-        %139 = OpIAdd %int %138 %int_1
-               OpStore %idx %139
+        %132 = OpLoad %int %idx
+        %133 = OpIAdd %int %132 %int_1
+               OpStore %idx %133
                OpBranch %50
          %50 = OpLabel
                OpBranch %48
          %49 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %140
+%tint_symbol_2 = OpFunction %void None %134
 %tint_symbol = OpFunctionParameter %main_out
-        %144 = OpLabel
-        %145 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %145
+        %138 = OpLabel
+        %139 = OpCompositeExtract %v4float %tint_symbol 0
+               OpStore %tint_symbol_1 %139
                OpReturn
                OpFunctionEnd
        %main = OpFunction %void None %12
-        %147 = OpLabel
-        %148 = OpFunctionCall %void %main_1
-        %150 = OpLoad %v4float %x_GLF_color
-        %151 = OpCompositeConstruct %main_out %150
-        %149 = OpFunctionCall %void %tint_symbol_2 %151
+        %141 = OpLabel
+        %142 = OpFunctionCall %void %main_1
+        %144 = OpLoad %v4float %x_GLF_color
+        %145 = OpCompositeConstruct %main_out %144
+        %143 = OpFunctionCall %void %tint_symbol_2 %145
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.spvasm.expected.wgsl
index 00e805e..3cc4eb9 100644
--- a/test/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.spvasm.expected.wgsl
@@ -67,7 +67,7 @@
         let x_32 : i32 = d;
         let x_33 : i32 = d;
         let x_34 : i32 = d;
-        tempm43[select(0, x_31, ((x_29 >= 0) && (x_30 < 4)))][select(0, x_34, ((x_32 >= 0) && (x_33 < 3)))] = 1.0;
+        tempm43[select(0, x_31, ((x_29 >= 0) & (x_30 < 4)))][select(0, x_34, ((x_32 >= 0) & (x_33 < 3)))] = 1.0;
 
         continuing {
           let x_35 : i32 = c;
@@ -77,7 +77,7 @@
       let x_37 : i32 = idx;
       let x_38 : i32 = idx;
       let x_39 : i32 = idx;
-      let x_117 : i32 = select(0, x_39, ((x_37 >= 0) && (x_38 < 9)));
+      let x_117 : i32 = select(0, x_39, ((x_37 >= 0) & (x_38 < 9)));
       let x_40 : i32 = ctr;
       let x_119 : f32 = m43[x_40].y;
       let x_121 : f32 = GLF_live6sums[x_117];
diff --git a/test/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.spvasm.expected.hlsl
index 4e1c940..b703400 100644
--- a/test/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.spvasm.expected.hlsl
@@ -76,11 +76,7 @@
         return;
       } else {
         GLF_live8i = 1;
-        bool tint_tmp = (GLF_live8i >= 0);
-        if (tint_tmp) {
-          tint_tmp = (GLF_live8i < 50);
-        }
-        const int x_369 = ((tint_tmp) ? GLF_live8i : 0);
+        const int x_369 = (((GLF_live8i >= 0) & (GLF_live8i < 50)) ? GLF_live8i : 0);
         const float x_371 = GLF_live8A[0];
         const float x_373 = GLF_live8A[x_369];
         GLF_live8A[x_369] = (x_373 + x_371);
@@ -270,16 +266,8 @@
       const int x_145 = GLF_live4index;
       const int x_146 = GLF_live4index;
       const float x_269 = GLF_live4obj.even_numbers[1];
-      bool tint_tmp_1 = (x_144 >= 0);
-      if (tint_tmp_1) {
-        tint_tmp_1 = (x_145 < 10);
-      }
-      GLF_live4obj.even_numbers[((tint_tmp_1) ? x_146 : 0)] = x_269;
-      bool tint_tmp_2 = (GLF_live4i >= 0);
-      if (tint_tmp_2) {
-        tint_tmp_2 = (GLF_live4i < 10);
-      }
-      GLF_live4obj.even_numbers[((tint_tmp_2) ? GLF_live4i : 0)] = 1.0f;
+      GLF_live4obj.even_numbers[(((x_144 >= 0) & (x_145 < 10)) ? x_146 : 0)] = x_269;
+      GLF_live4obj.even_numbers[(((GLF_live4i >= 0) & (GLF_live4i < 10)) ? GLF_live4i : 0)] = 1.0f;
     }
   }
   param_24 = treeIndex_1;
diff --git a/test/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.spvasm.expected.msl
index 10ddae2..ff8271a 100644
--- a/test/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.spvasm.expected.msl
@@ -99,7 +99,7 @@
         int const x_94 = GLF_live8i;
         int const x_95 = GLF_live8i;
         int const x_96 = GLF_live8i;
-        int const x_369 = select(0, x_96, ((x_94 >= 0) && (x_95 < 50)));
+        int const x_369 = select(0, x_96, ((x_94 >= 0) & (x_95 < 50)));
         float const x_371 = GLF_live8A.arr[0];
         float const x_373 = GLF_live8A.arr[x_369];
         GLF_live8A.arr[x_369] = (x_373 + x_371);
@@ -323,11 +323,11 @@
     int const x_145 = GLF_live4index;
     int const x_146 = GLF_live4index;
     float const x_269 = GLF_live4obj.even_numbers.arr[1];
-    GLF_live4obj.even_numbers.arr[select(0, x_146, ((x_144 >= 0) && (x_145 < 10)))] = x_269;
+    GLF_live4obj.even_numbers.arr[select(0, x_146, ((x_144 >= 0) & (x_145 < 10)))] = x_269;
     int const x_147 = GLF_live4i;
     int const x_148 = GLF_live4i;
     int const x_149 = GLF_live4i;
-    GLF_live4obj.even_numbers.arr[select(0, x_149, ((x_147 >= 0) && (x_148 < 10)))] = 1.0f;
+    GLF_live4obj.even_numbers.arr[select(0, x_149, ((x_147 >= 0) & (x_148 < 10)))] = 1.0f;
     {
       int const x_150 = GLF_live4i;
       GLF_live4i = (x_150 + 1);
diff --git a/test/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.spvasm.expected.wgsl
index eaa0aec..9264f8a 100644
--- a/test/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.spvasm.expected.wgsl
@@ -92,7 +92,7 @@
         let x_94 : i32 = GLF_live8i;
         let x_95 : i32 = GLF_live8i;
         let x_96 : i32 = GLF_live8i;
-        let x_369 : i32 = select(0, x_96, ((x_94 >= 0) && (x_95 < 50)));
+        let x_369 : i32 = select(0, x_96, ((x_94 >= 0) & (x_95 < 50)));
         let x_371 : f32 = GLF_live8A[0];
         let x_373 : f32 = GLF_live8A[x_369];
         GLF_live8A[x_369] = (x_373 + x_371);
@@ -318,11 +318,11 @@
     let x_145 : i32 = GLF_live4index;
     let x_146 : i32 = GLF_live4index;
     let x_269 : f32 = GLF_live4obj.even_numbers[1];
-    GLF_live4obj.even_numbers[select(0, x_146, ((x_144 >= 0) && (x_145 < 10)))] = x_269;
+    GLF_live4obj.even_numbers[select(0, x_146, ((x_144 >= 0) & (x_145 < 10)))] = x_269;
     let x_147 : i32 = GLF_live4i;
     let x_148 : i32 = GLF_live4i;
     let x_149 : i32 = GLF_live4i;
-    GLF_live4obj.even_numbers[select(0, x_149, ((x_147 >= 0) && (x_148 < 10)))] = 1.0;
+    GLF_live4obj.even_numbers[select(0, x_149, ((x_147 >= 0) & (x_148 < 10)))] = 1.0;
 
     continuing {
       let x_150 : i32 = GLF_live4i;
diff --git a/test/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.spvasm.expected.hlsl b/test/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.spvasm.expected.hlsl
index 26a0704..f40061c 100644
--- a/test/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.spvasm.expected.hlsl
@@ -44,22 +44,10 @@
         d = 0;
         {
           for(; (1 < ll4); d = (d + 1)) {
-            bool tint_tmp = (d >= 0);
-            if (tint_tmp) {
-              tint_tmp = (d < 4);
-            }
-            bool tint_tmp_1 = (r >= 0);
-            if (tint_tmp_1) {
-              tint_tmp_1 = (r < 3);
-            }
-            set_float3(tempm43[((tint_tmp) ? d : 0)], ((tint_tmp_1) ? r : 0), 1.0f);
+            set_float3(tempm43[(((d >= 0) & (d < 4)) ? d : 0)], (((r >= 0) & (r < 3)) ? r : 0), 1.0f);
           }
         }
-        bool tint_tmp_2 = (idx >= 0);
-        if (tint_tmp_2) {
-          tint_tmp_2 = (idx < 9);
-        }
-        const int x_111 = ((tint_tmp_2) ? idx : 0);
+        const int x_111 = (((idx >= 0) & (idx < 9)) ? idx : 0);
         const float x_113 = m43[c].y;
         const float x_115 = sums[x_111];
         sums[x_111] = (x_115 + x_113);
diff --git a/test/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.spvasm.expected.msl b/test/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.spvasm.expected.msl
index 2070937..534ff4c 100644
--- a/test/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.spvasm.expected.msl
+++ b/test/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.spvasm.expected.msl
@@ -70,7 +70,7 @@
         int const x_27 = r;
         int const x_28 = r;
         int const x_29 = r;
-        tempm43[select(0, x_26, ((x_24 >= 0) && (x_25 < 4)))][select(0, x_29, ((x_27 >= 0) && (x_28 < 3)))] = 1.0f;
+        tempm43[select(0, x_26, ((x_24 >= 0) & (x_25 < 4)))][select(0, x_29, ((x_27 >= 0) & (x_28 < 3)))] = 1.0f;
         {
           int const x_30 = d;
           d = (x_30 + 1);
@@ -79,7 +79,7 @@
       int const x_32 = idx;
       int const x_33 = idx;
       int const x_34 = idx;
-      int const x_111 = select(0, x_34, ((x_32 >= 0) && (x_33 < 9)));
+      int const x_111 = select(0, x_34, ((x_32 >= 0) & (x_33 < 9)));
       int const x_35 = c;
       float const x_113 = m43[x_35].y;
       float const x_115 = sums.arr[x_111];
diff --git a/test/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.spvasm.expected.spvasm
index 397a1d8..98c20bd 100644
--- a/test/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.spvasm.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 147
+; Bound: 141
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -72,7 +72,7 @@
       %int_9 = OpConstant %int 9
      %uint_1 = OpConstant %uint 1
    %main_out = OpTypeStruct %v4float
-        %135 = OpTypeFunction %void %main_out
+        %129 = OpTypeFunction %void %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
         %m43 = OpVariable %_ptr_Function_mat4v3float Function %16
@@ -165,80 +165,65 @@
          %93 = OpLoad %int %r
          %94 = OpLoad %int %r
          %96 = OpSGreaterThanEqual %bool %89 %int_0
-               OpSelectionMerge %97 None
-               OpBranchConditional %96 %98 %97
-         %98 = OpLabel
-        %100 = OpSLessThan %bool %90 %int_4
-               OpBranch %97
-         %97 = OpLabel
-        %101 = OpPhi %bool %96 %86 %100 %98
-         %95 = OpSelect %int %101 %91 %int_0
-        %103 = OpSGreaterThanEqual %bool %92 %int_0
-               OpSelectionMerge %104 None
-               OpBranchConditional %103 %105 %104
-        %105 = OpLabel
-        %107 = OpSLessThan %bool %93 %int_3
-               OpBranch %104
-        %104 = OpLabel
-        %108 = OpPhi %bool %103 %97 %107 %105
-        %102 = OpSelect %int %108 %94 %int_0
-        %110 = OpAccessChain %_ptr_Function_float %tempm43 %95 %102
-               OpStore %110 %float_1
+         %98 = OpSLessThan %bool %90 %int_4
+         %99 = OpLogicalAnd %bool %96 %98
+         %95 = OpSelect %int %99 %91 %int_0
+        %101 = OpSGreaterThanEqual %bool %92 %int_0
+        %103 = OpSLessThan %bool %93 %int_3
+        %104 = OpLogicalAnd %bool %101 %103
+        %100 = OpSelect %int %104 %94 %int_0
+        %106 = OpAccessChain %_ptr_Function_float %tempm43 %95 %100
+               OpStore %106 %float_1
                OpBranch %82
          %82 = OpLabel
-        %111 = OpLoad %int %d
-        %112 = OpIAdd %int %111 %int_1
-               OpStore %d %112
+        %107 = OpLoad %int %d
+        %108 = OpIAdd %int %107 %int_1
+               OpStore %d %108
                OpBranch %80
          %81 = OpLabel
-        %113 = OpLoad %int %idx
-        %114 = OpLoad %int %idx
-        %115 = OpLoad %int %idx
-        %117 = OpSGreaterThanEqual %bool %113 %int_0
-               OpSelectionMerge %118 None
-               OpBranchConditional %117 %119 %118
-        %119 = OpLabel
-        %121 = OpSLessThan %bool %114 %int_9
-               OpBranch %118
-        %118 = OpLabel
-        %122 = OpPhi %bool %117 %81 %121 %119
-        %116 = OpSelect %int %122 %115 %int_0
-        %123 = OpLoad %int %c
-        %125 = OpAccessChain %_ptr_Function_float %m43 %123 %uint_1
-        %126 = OpLoad %float %125
-        %127 = OpAccessChain %_ptr_Function_float %sums %116
-        %128 = OpLoad %float %127
-        %129 = OpAccessChain %_ptr_Function_float %sums %116
-        %130 = OpFAdd %float %128 %126
-               OpStore %129 %130
+        %109 = OpLoad %int %idx
+        %110 = OpLoad %int %idx
+        %111 = OpLoad %int %idx
+        %113 = OpSGreaterThanEqual %bool %109 %int_0
+        %115 = OpSLessThan %bool %110 %int_9
+        %116 = OpLogicalAnd %bool %113 %115
+        %112 = OpSelect %int %116 %111 %int_0
+        %117 = OpLoad %int %c
+        %119 = OpAccessChain %_ptr_Function_float %m43 %117 %uint_1
+        %120 = OpLoad %float %119
+        %121 = OpAccessChain %_ptr_Function_float %sums %112
+        %122 = OpLoad %float %121
+        %123 = OpAccessChain %_ptr_Function_float %sums %112
+        %124 = OpFAdd %float %122 %120
+               OpStore %123 %124
                OpBranch %66
          %66 = OpLabel
-        %131 = OpLoad %int %c
-        %132 = OpIAdd %int %131 %int_1
-               OpStore %c %132
+        %125 = OpLoad %int %c
+        %126 = OpIAdd %int %125 %int_1
+               OpStore %c %126
                OpBranch %64
          %65 = OpLabel
-        %133 = OpLoad %int %idx
-        %134 = OpIAdd %int %133 %int_1
-               OpStore %idx %134
+        %127 = OpLoad %int %idx
+        %128 = OpIAdd %int %127 %int_1
+               OpStore %idx %128
                OpBranch %47
          %47 = OpLabel
                OpBranch %45
          %46 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %135
+%tint_symbol_2 = OpFunction %void None %129
 %tint_symbol = OpFunctionParameter %main_out
-        %139 = OpLabel
-        %140 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %140
+        %133 = OpLabel
+        %134 = OpCompositeExtract %v4float %tint_symbol 0
+               OpStore %tint_symbol_1 %134
                OpReturn
                OpFunctionEnd
        %main = OpFunction %void None %8
-        %142 = OpLabel
-        %143 = OpFunctionCall %void %main_1
-        %145 = OpLoad %v4float %x_GLF_color
-        %146 = OpCompositeConstruct %main_out %145
-        %144 = OpFunctionCall %void %tint_symbol_2 %146
+        %136 = OpLabel
+        %137 = OpFunctionCall %void %main_1
+        %139 = OpLoad %v4float %x_GLF_color
+        %140 = OpCompositeConstruct %main_out %139
+        %138 = OpFunctionCall %void %tint_symbol_2 %140
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.spvasm.expected.wgsl b/test/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.spvasm.expected.wgsl
index dd18573..365856f 100644
--- a/test/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.spvasm.expected.wgsl
@@ -59,7 +59,7 @@
         let x_27 : i32 = r;
         let x_28 : i32 = r;
         let x_29 : i32 = r;
-        tempm43[select(0, x_26, ((x_24 >= 0) && (x_25 < 4)))][select(0, x_29, ((x_27 >= 0) && (x_28 < 3)))] = 1.0;
+        tempm43[select(0, x_26, ((x_24 >= 0) & (x_25 < 4)))][select(0, x_29, ((x_27 >= 0) & (x_28 < 3)))] = 1.0;
 
         continuing {
           let x_30 : i32 = d;
@@ -69,7 +69,7 @@
       let x_32 : i32 = idx;
       let x_33 : i32 = idx;
       let x_34 : i32 = idx;
-      let x_111 : i32 = select(0, x_34, ((x_32 >= 0) && (x_33 < 9)));
+      let x_111 : i32 = select(0, x_34, ((x_32 >= 0) & (x_33 < 9)));
       let x_35 : i32 = c;
       let x_113 : f32 = m43[x_35].y;
       let x_115 : f32 = sums[x_111];
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.spvasm.expected.hlsl b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.spvasm.expected.hlsl
index 1ad88d2..c94c14d 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.spvasm.expected.hlsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.spvasm.expected.hlsl
@@ -8,11 +8,7 @@
   x_is_odd = ((int(x_24) & 1) == 1);
   const float x_29 = gl_FragCoord.y;
   y_is_odd = ((int(x_29) & 1) == 1);
-  bool tint_tmp = x_is_odd;
-  if (!tint_tmp) {
-    tint_tmp = y_is_odd;
-  }
-  out_data = ((tint_tmp) ? 1 : 0);
+  out_data = ((x_is_odd | y_is_odd) ? 1 : 0);
   return;
 }
 
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.spvasm.expected.msl b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.spvasm.expected.msl
index a2b97bf..9d51ced 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.spvasm.expected.msl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.spvasm.expected.msl
@@ -17,7 +17,7 @@
   y_is_odd = ((int(x_29) & 1) == 1);
   bool const x_33 = x_is_odd;
   bool const x_34 = y_is_odd;
-  *(tint_symbol_6) = select(0, 1, (x_33 || x_34));
+  *(tint_symbol_6) = select(0, 1, (x_33 | x_34));
   return;
 }
 
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.spvasm.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.spvasm.expected.spvasm
index 3488753..f4f2052 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.spvasm.expected.spvasm
@@ -1,7 +1,7 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 58
+; Bound: 56
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -47,7 +47,7 @@
      %uint_1 = OpConstant %uint 1
       %int_0 = OpConstant %int 0
    %main_out = OpTypeStruct %int
-         %45 = OpTypeFunction %void %main_out
+         %43 = OpTypeFunction %void %main_out
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
    %x_is_odd = OpVariable %_ptr_Function_bool Function %21
@@ -66,30 +66,25 @@
                OpStore %y_is_odd %37
          %38 = OpLoad %bool %x_is_odd
          %39 = OpLoad %bool %y_is_odd
-               OpSelectionMerge %41 None
-               OpBranchConditional %38 %41 %42
-         %42 = OpLabel
-               OpBranch %41
-         %41 = OpLabel
-         %43 = OpPhi %bool %38 %17 %39 %42
-         %40 = OpSelect %int %43 %int_1 %int_0
+         %41 = OpLogicalOr %bool %38 %39
+         %40 = OpSelect %int %41 %int_1 %int_0
                OpStore %out_data %40
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %45
+%tint_symbol_3 = OpFunction %void None %43
 %tint_symbol_1 = OpFunctionParameter %main_out
-         %49 = OpLabel
-         %50 = OpCompositeExtract %int %tint_symbol_1 0
-               OpStore %tint_symbol_2 %50
+         %47 = OpLabel
+         %48 = OpCompositeExtract %int %tint_symbol_1 0
+               OpStore %tint_symbol_2 %48
                OpReturn
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %52 = OpLabel
-         %53 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %53
-         %54 = OpFunctionCall %void %main_1
-         %56 = OpLoad %int %out_data
-         %57 = OpCompositeConstruct %main_out %56
-         %55 = OpFunctionCall %void %tint_symbol_3 %57
+         %50 = OpLabel
+         %51 = OpLoad %v4float %tint_symbol
+               OpStore %gl_FragCoord %51
+         %52 = OpFunctionCall %void %main_1
+         %54 = OpLoad %int %out_data
+         %55 = OpCompositeConstruct %main_out %54
+         %53 = OpFunctionCall %void %tint_symbol_3 %55
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.spvasm.expected.wgsl b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.spvasm.expected.wgsl
index 3820a70..5610438 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.spvasm.expected.wgsl
+++ b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.spvasm.expected.wgsl
@@ -11,7 +11,7 @@
   y_is_odd = ((i32(x_29) & 1) == 1);
   let x_33 : bool = x_is_odd;
   let x_34 : bool = y_is_odd;
-  out_data = select(0, 1, (x_33 || x_34));
+  out_data = select(0, 1, (x_33 | x_34));
   return;
 }