[cts.https.html?q=webgpu:shader,execution,expression,call,builtin,subgroupShuffle:compute,all_active:*]
  [:wgSize=[1,1,16\];op="subgroupShuffle"]

  [:wgSize=[1,1,16\];op="subgroupShuffleDown"]

  [:wgSize=[1,1,16\];op="subgroupShuffleUp"]

  [:wgSize=[1,1,16\];op="subgroupShuffleXor"]

  [:wgSize=[1,1,32\];op="subgroupShuffle"]

  [:wgSize=[1,1,32\];op="subgroupShuffleDown"]

  [:wgSize=[1,1,32\];op="subgroupShuffleUp"]

  [:wgSize=[1,1,32\];op="subgroupShuffleXor"]

  [:wgSize=[1,1,4\];op="subgroupShuffle"]

  [:wgSize=[1,1,4\];op="subgroupShuffleDown"]

  [:wgSize=[1,1,4\];op="subgroupShuffleUp"]

  [:wgSize=[1,1,4\];op="subgroupShuffleXor"]

  [:wgSize=[1,1,64\];op="subgroupShuffle"]

  [:wgSize=[1,1,64\];op="subgroupShuffleDown"]

  [:wgSize=[1,1,64\];op="subgroupShuffleUp"]

  [:wgSize=[1,1,64\];op="subgroupShuffleXor"]

  [:wgSize=[1,1,8\];op="subgroupShuffle"]

  [:wgSize=[1,1,8\];op="subgroupShuffleDown"]

  [:wgSize=[1,1,8\];op="subgroupShuffleUp"]

  [:wgSize=[1,1,8\];op="subgroupShuffleXor"]

  [:wgSize=[1,128,1\];op="subgroupShuffle"]

  [:wgSize=[1,128,1\];op="subgroupShuffleDown"]

  [:wgSize=[1,128,1\];op="subgroupShuffleUp"]

  [:wgSize=[1,128,1\];op="subgroupShuffleXor"]

  [:wgSize=[1,16,16\];op="subgroupShuffle"]

  [:wgSize=[1,16,16\];op="subgroupShuffleDown"]

  [:wgSize=[1,16,16\];op="subgroupShuffleUp"]

  [:wgSize=[1,16,16\];op="subgroupShuffleXor"]

  [:wgSize=[1,16,1\];op="subgroupShuffle"]

  [:wgSize=[1,16,1\];op="subgroupShuffleDown"]

  [:wgSize=[1,16,1\];op="subgroupShuffleUp"]

  [:wgSize=[1,16,1\];op="subgroupShuffleXor"]

  [:wgSize=[1,256,1\];op="subgroupShuffle"]

  [:wgSize=[1,256,1\];op="subgroupShuffleDown"]

  [:wgSize=[1,256,1\];op="subgroupShuffleUp"]

  [:wgSize=[1,256,1\];op="subgroupShuffleXor"]

  [:wgSize=[1,32,1\];op="subgroupShuffle"]

  [:wgSize=[1,32,1\];op="subgroupShuffleDown"]

  [:wgSize=[1,32,1\];op="subgroupShuffleUp"]

  [:wgSize=[1,32,1\];op="subgroupShuffleXor"]

  [:wgSize=[1,4,1\];op="subgroupShuffle"]

  [:wgSize=[1,4,1\];op="subgroupShuffleDown"]

  [:wgSize=[1,4,1\];op="subgroupShuffleUp"]

  [:wgSize=[1,4,1\];op="subgroupShuffleXor"]

  [:wgSize=[1,64,1\];op="subgroupShuffle"]

  [:wgSize=[1,64,1\];op="subgroupShuffleDown"]

  [:wgSize=[1,64,1\];op="subgroupShuffleUp"]

  [:wgSize=[1,64,1\];op="subgroupShuffleXor"]

  [:wgSize=[1,8,1\];op="subgroupShuffle"]

  [:wgSize=[1,8,1\];op="subgroupShuffleDown"]

  [:wgSize=[1,8,1\];op="subgroupShuffleUp"]

  [:wgSize=[1,8,1\];op="subgroupShuffleXor"]

  [:wgSize=[128,1,1\];op="subgroupShuffle"]

  [:wgSize=[128,1,1\];op="subgroupShuffleDown"]

  [:wgSize=[128,1,1\];op="subgroupShuffleUp"]

  [:wgSize=[128,1,1\];op="subgroupShuffleXor"]

  [:wgSize=[15,3,3\];op="subgroupShuffle"]

  [:wgSize=[15,3,3\];op="subgroupShuffleDown"]

  [:wgSize=[15,3,3\];op="subgroupShuffleUp"]

  [:wgSize=[15,3,3\];op="subgroupShuffleXor"]

  [:wgSize=[16,1,16\];op="subgroupShuffle"]

  [:wgSize=[16,1,16\];op="subgroupShuffleDown"]

  [:wgSize=[16,1,16\];op="subgroupShuffleUp"]

  [:wgSize=[16,1,16\];op="subgroupShuffleXor"]

  [:wgSize=[16,1,1\];op="subgroupShuffle"]

  [:wgSize=[16,1,1\];op="subgroupShuffleDown"]

  [:wgSize=[16,1,1\];op="subgroupShuffleUp"]

  [:wgSize=[16,1,1\];op="subgroupShuffleXor"]

  [:wgSize=[16,16,1\];op="subgroupShuffle"]

  [:wgSize=[16,16,1\];op="subgroupShuffleDown"]

  [:wgSize=[16,16,1\];op="subgroupShuffleUp"]

  [:wgSize=[16,16,1\];op="subgroupShuffleXor"]

  [:wgSize=[256,1,1\];op="subgroupShuffle"]

  [:wgSize=[256,1,1\];op="subgroupShuffleDown"]

  [:wgSize=[256,1,1\];op="subgroupShuffleUp"]

  [:wgSize=[256,1,1\];op="subgroupShuffleXor"]

  [:wgSize=[3,15,3\];op="subgroupShuffle"]

  [:wgSize=[3,15,3\];op="subgroupShuffleDown"]

  [:wgSize=[3,15,3\];op="subgroupShuffleUp"]

  [:wgSize=[3,15,3\];op="subgroupShuffleXor"]

  [:wgSize=[3,3,15\];op="subgroupShuffle"]

  [:wgSize=[3,3,15\];op="subgroupShuffleDown"]

  [:wgSize=[3,3,15\];op="subgroupShuffleUp"]

  [:wgSize=[3,3,15\];op="subgroupShuffleXor"]

  [:wgSize=[3,3,3\];op="subgroupShuffle"]

  [:wgSize=[3,3,3\];op="subgroupShuffleDown"]

  [:wgSize=[3,3,3\];op="subgroupShuffleUp"]

  [:wgSize=[3,3,3\];op="subgroupShuffleXor"]

  [:wgSize=[32,1,1\];op="subgroupShuffle"]

  [:wgSize=[32,1,1\];op="subgroupShuffleDown"]

  [:wgSize=[32,1,1\];op="subgroupShuffleUp"]

  [:wgSize=[32,1,1\];op="subgroupShuffleXor"]

  [:wgSize=[4,1,1\];op="subgroupShuffle"]

  [:wgSize=[4,1,1\];op="subgroupShuffleDown"]

  [:wgSize=[4,1,1\];op="subgroupShuffleUp"]

  [:wgSize=[4,1,1\];op="subgroupShuffleXor"]

  [:wgSize=[4,4,4\];op="subgroupShuffle"]

  [:wgSize=[4,4,4\];op="subgroupShuffleDown"]

  [:wgSize=[4,4,4\];op="subgroupShuffleUp"]

  [:wgSize=[4,4,4\];op="subgroupShuffleXor"]

  [:wgSize=[64,1,1\];op="subgroupShuffle"]

  [:wgSize=[64,1,1\];op="subgroupShuffleDown"]

  [:wgSize=[64,1,1\];op="subgroupShuffleUp"]

  [:wgSize=[64,1,1\];op="subgroupShuffleXor"]

  [:wgSize=[8,1,1\];op="subgroupShuffle"]

  [:wgSize=[8,1,1\];op="subgroupShuffleDown"]

  [:wgSize=[8,1,1\];op="subgroupShuffleUp"]

  [:wgSize=[8,1,1\];op="subgroupShuffleXor"]


[cts.https.html?q=webgpu:shader,execution,expression,call,builtin,subgroupShuffle:compute,split:*]
  [:predicate="every_even";op="subgroupShuffle"]

  [:predicate="every_even";op="subgroupShuffleDown"]

  [:predicate="every_even";op="subgroupShuffleUp"]

  [:predicate="every_even";op="subgroupShuffleXor"]

  [:predicate="every_odd";op="subgroupShuffle"]

  [:predicate="every_odd";op="subgroupShuffleDown"]

  [:predicate="every_odd";op="subgroupShuffleUp"]

  [:predicate="every_odd";op="subgroupShuffleXor"]

  [:predicate="first_two";op="subgroupShuffle"]

  [:predicate="first_two";op="subgroupShuffleDown"]

  [:predicate="first_two";op="subgroupShuffleUp"]

  [:predicate="first_two";op="subgroupShuffleXor"]

  [:predicate="lower_half";op="subgroupShuffle"]

  [:predicate="lower_half";op="subgroupShuffleDown"]

  [:predicate="lower_half";op="subgroupShuffleUp"]

  [:predicate="lower_half";op="subgroupShuffleXor"]

  [:predicate="upper_half";op="subgroupShuffle"]

  [:predicate="upper_half";op="subgroupShuffleDown"]

  [:predicate="upper_half";op="subgroupShuffleUp"]

  [:predicate="upper_half";op="subgroupShuffleXor"]


[cts.https.html?q=webgpu:shader,execution,expression,call,builtin,subgroupShuffle:data_types:*]
  [:op="subgroupShuffle";type="f16"]

  [:op="subgroupShuffle";type="f32"]

  [:op="subgroupShuffle";type="i32"]

  [:op="subgroupShuffle";type="u32"]

  [:op="subgroupShuffle";type="vec2%3Cf16%3E"]

  [:op="subgroupShuffle";type="vec2%3Cf32%3E"]

  [:op="subgroupShuffle";type="vec2%3Ci32%3E"]

  [:op="subgroupShuffle";type="vec2%3Cu32%3E"]

  [:op="subgroupShuffle";type="vec3%3Cf16%3E"]

  [:op="subgroupShuffle";type="vec3%3Cf32%3E"]

  [:op="subgroupShuffle";type="vec3%3Ci32%3E"]

  [:op="subgroupShuffle";type="vec3%3Cu32%3E"]

  [:op="subgroupShuffle";type="vec4%3Cf16%3E"]

  [:op="subgroupShuffle";type="vec4%3Cf32%3E"]

  [:op="subgroupShuffle";type="vec4%3Ci32%3E"]

  [:op="subgroupShuffle";type="vec4%3Cu32%3E"]

  [:op="subgroupShuffleDown";type="f16"]

  [:op="subgroupShuffleDown";type="f32"]

  [:op="subgroupShuffleDown";type="i32"]

  [:op="subgroupShuffleDown";type="u32"]

  [:op="subgroupShuffleDown";type="vec2%3Cf16%3E"]

  [:op="subgroupShuffleDown";type="vec2%3Cf32%3E"]

  [:op="subgroupShuffleDown";type="vec2%3Ci32%3E"]

  [:op="subgroupShuffleDown";type="vec2%3Cu32%3E"]

  [:op="subgroupShuffleDown";type="vec3%3Cf16%3E"]

  [:op="subgroupShuffleDown";type="vec3%3Cf32%3E"]

  [:op="subgroupShuffleDown";type="vec3%3Ci32%3E"]

  [:op="subgroupShuffleDown";type="vec3%3Cu32%3E"]

  [:op="subgroupShuffleDown";type="vec4%3Cf16%3E"]

  [:op="subgroupShuffleDown";type="vec4%3Cf32%3E"]

  [:op="subgroupShuffleDown";type="vec4%3Ci32%3E"]

  [:op="subgroupShuffleDown";type="vec4%3Cu32%3E"]

  [:op="subgroupShuffleUp";type="f16"]

  [:op="subgroupShuffleUp";type="f32"]

  [:op="subgroupShuffleUp";type="i32"]

  [:op="subgroupShuffleUp";type="u32"]

  [:op="subgroupShuffleUp";type="vec2%3Cf16%3E"]

  [:op="subgroupShuffleUp";type="vec2%3Cf32%3E"]

  [:op="subgroupShuffleUp";type="vec2%3Ci32%3E"]

  [:op="subgroupShuffleUp";type="vec2%3Cu32%3E"]

  [:op="subgroupShuffleUp";type="vec3%3Cf16%3E"]

  [:op="subgroupShuffleUp";type="vec3%3Cf32%3E"]

  [:op="subgroupShuffleUp";type="vec3%3Ci32%3E"]

  [:op="subgroupShuffleUp";type="vec3%3Cu32%3E"]

  [:op="subgroupShuffleUp";type="vec4%3Cf16%3E"]

  [:op="subgroupShuffleUp";type="vec4%3Cf32%3E"]

  [:op="subgroupShuffleUp";type="vec4%3Ci32%3E"]

  [:op="subgroupShuffleUp";type="vec4%3Cu32%3E"]

  [:op="subgroupShuffleXor";type="f16"]

  [:op="subgroupShuffleXor";type="f32"]

  [:op="subgroupShuffleXor";type="i32"]

  [:op="subgroupShuffleXor";type="u32"]

  [:op="subgroupShuffleXor";type="vec2%3Cf16%3E"]

  [:op="subgroupShuffleXor";type="vec2%3Cf32%3E"]

  [:op="subgroupShuffleXor";type="vec2%3Ci32%3E"]

  [:op="subgroupShuffleXor";type="vec2%3Cu32%3E"]

  [:op="subgroupShuffleXor";type="vec3%3Cf16%3E"]

  [:op="subgroupShuffleXor";type="vec3%3Cf32%3E"]

  [:op="subgroupShuffleXor";type="vec3%3Ci32%3E"]

  [:op="subgroupShuffleXor";type="vec3%3Cu32%3E"]

  [:op="subgroupShuffleXor";type="vec4%3Cf16%3E"]

  [:op="subgroupShuffleXor";type="vec4%3Cf32%3E"]

  [:op="subgroupShuffleXor";type="vec4%3Ci32%3E"]

  [:op="subgroupShuffleXor";type="vec4%3Cu32%3E"]


[cts.https.html?q=webgpu:shader,execution,expression,call,builtin,subgroupShuffle:fragment:*]
  [:size=[111,3\]]

  [:size=[13,10\]]

  [:size=[13,53\]]

  [:size=[15,15\]]

  [:size=[16,16\]]

  [:size=[17,17\]]

  [:size=[19,13\]]

  [:size=[3,111\]]

  [:size=[3,35\]]

  [:size=[3,3\]]

  [:size=[35,3\]]

  [:size=[53,13\]]


[cts.https.html?q=webgpu:shader,execution,expression,call,builtin,subgroupShuffle:shuffle,id:*]
  [:case="broadcast"]

  [:case="clamped"]

  [:case="no_shuffle"]

  [:case="reversed"]

  [:case="rotate_1_up"]

  [:case="rotate_2_down"]


[cts.https.html?q=webgpu:shader,execution,expression,call,builtin,subgroupShuffle:shuffleUpDown,delta:*]
  [:op="subgroupShuffleDown";case="dynamic_1"]

  [:op="subgroupShuffleDown";case="no_shuffle"]

  [:op="subgroupShuffleDown";case="override_2"]

  [:op="subgroupShuffleUp";case="dynamic_1"]

  [:op="subgroupShuffleUp";case="no_shuffle"]

  [:op="subgroupShuffleUp";case="override_2"]


[cts.https.html?q=webgpu:shader,execution,expression,call,builtin,subgroupShuffle:shuffleXor,mask:*]
  [:case="dynamic_1"]

  [:case="expr_3"]

  [:case="no_shuffle"]

  [:case="override_2"]
