SKIP: FAILED

#include <metal_stdlib>
using namespace metal;

threadgroup float2x2 W;
kernel void F(uint mat2x2 [[thread_index_in_threadgroup]]) {
  if ((mat2x2 == 0u)) {
    W = float2x2(float2(0.0f), float2(0.0f));
  }
  threadgroup_barrier(mem_flags::mem_threadgroup);
  W[0] = (W[0] + 0.0f);
}
program_source:4:22: error: program scope variable must reside in constant address space
threadgroup float2x2 W;
                     ^
program_source:6:15: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
  if ((mat2x2 == 0u)) {
       ~~~~~~~^~~~~
program_source:6:15: note: remove extraneous parentheses around the comparison to silence this warning
  if ((mat2x2 == 0u)) {
      ~       ^    ~
program_source:6:15: note: use '=' to turn this equality comparison into an assignment
  if ((mat2x2 == 0u)) {
              ^~
              =

