<dawn>/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl:8:9 warning: 'textureSample' must only be called from uniform control flow
    _ = textureSample(t, s, vec2(0, 0));
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

<dawn>/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl:6:3 note: control flow depends on possibly non-uniform value
  if (x > 0) {
  ^^

<dawn>/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl:6:7 note: user-defined input 'x' of 'main' may be non-uniform
  if (x > 0) {
      ^

; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 37
; Schema: 0
               OpCapability Shader
               OpMemoryModel Logical GLSL450
               OpEntryPoint Fragment %main "main" %x_1
               OpExecutionMode %main OriginUpperLeft
               OpName %x_1 "x_1"
               OpName %t "t"
               OpName %s "s"
               OpName %main_inner "main_inner"
               OpName %x "x"
               OpName %main "main"
               OpDecorate %x_1 Location 0
               OpDecorate %t DescriptorSet 0
               OpDecorate %t Binding 1
               OpDecorate %s DescriptorSet 0
               OpDecorate %s Binding 2
      %float = OpTypeFloat 32
%_ptr_Input_float = OpTypePointer Input %float
        %x_1 = OpVariable %_ptr_Input_float Input
          %6 = OpTypeImage %float 2D 0 0 0 1 Unknown
%_ptr_UniformConstant_6 = OpTypePointer UniformConstant %6
          %t = OpVariable %_ptr_UniformConstant_6 UniformConstant
          %9 = OpTypeSampler
%_ptr_UniformConstant_9 = OpTypePointer UniformConstant %9
          %s = OpVariable %_ptr_UniformConstant_9 UniformConstant
       %void = OpTypeVoid
         %10 = OpTypeFunction %void %float
         %15 = OpConstantNull %float
       %bool = OpTypeBool
    %v4float = OpTypeVector %float 4
         %28 = OpTypeSampledImage %6
    %v2float = OpTypeVector %float 2
         %31 = OpConstantNull %v2float
         %32 = OpTypeFunction %void
 %main_inner = OpFunction %void None %10
          %x = OpFunctionParameter %float
         %14 = OpLabel
         %16 = OpFOrdGreaterThan %bool %x %15
               OpSelectionMerge %18 None
               OpBranchConditional %16 %19 %20
         %19 = OpLabel
               OpBranch %18
         %20 = OpLabel
         %21 = OpFOrdLessThan %bool %x %15
               OpSelectionMerge %22 None
               OpBranchConditional %21 %23 %22
         %23 = OpLabel
         %26 = OpLoad %9 %s
         %27 = OpLoad %6 %t
         %29 = OpSampledImage %28 %27 %26
         %24 = OpImageSampleImplicitLod %v4float %29 %31
               OpBranch %22
         %22 = OpLabel
               OpBranch %18
         %18 = OpLabel
               OpReturn
               OpFunctionEnd
       %main = OpFunction %void None %32
         %34 = OpLabel
         %36 = OpLoad %float %x_1
         %35 = OpFunctionCall %void %main_inner %36
               OpReturn
               OpFunctionEnd
