SKIP: FAILED

<dawn>/test/tint/diagnostic_filtering/loop_attribute.wgsl:5:9 warning: 'dpdx' must only be called from uniform control flow
    _ = dpdx(1.0);
        ^^^^^^^^^

<dawn>/test/tint/diagnostic_filtering/loop_attribute.wgsl:7:7 note: control flow depends on possibly non-uniform value
      break if x > 0.0;
      ^^^^^

<dawn>/test/tint/diagnostic_filtering/loop_attribute.wgsl:7:16 note: user-defined input 'x' of 'main' may be non-uniform
      break if x > 0.0;
               ^

#include <metal_stdlib>
using namespace metal;

fragment void tint_symbol(float x) {
  {
    while(true) {
      dfdx(1.0f);
      if (x > 0.0f) { break; }
      continue;
    }
  }
}
program_source:4:27: error: invalid type 'float' for input declaration in a fragment function
fragment void tint_symbol(float x) {
                          ^~~~~~~

