Add GL_EXT_shader_subgroup_extended_types support

This commit is contained in:
Jeff Bolz 2019-09-08 08:49:18 -05:00
parent 8b8adf79c1
commit c5b669e04c
40 changed files with 15825 additions and 1053 deletions

View File

@ -6837,8 +6837,9 @@ spv::Id TGlslangToSpvTraverser::createSubgroupOperation(glslang::TOperator op, s
default: assert(0 && "Unhandled subgroup operation!");
}
const bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64;
const bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble;
const bool isUnsigned = isTypeUnsignedInt(typeProxy);
const bool isFloat = isTypeFloat(typeProxy);
const bool isBool = typeProxy == glslang::EbtBool;
spv::Op opCode = spv::OpNop;

View File

@ -11,7 +11,7 @@ spv.specConstant.vert
Source GLSL 400
Name 4 "main"
Name 9 "arraySize"
Name 14 "foo(vf4[s2769];"
Name 14 "foo(vf4[s4393];"
Name 13 "p"
Name 17 "builtin_spec_constant("
Name 20 "color"
@ -102,10 +102,10 @@ spv.specConstant.vert
Store 20(color) 46
48: 10 Load 22(ucol)
Store 47(param) 48
49: 2 FunctionCall 14(foo(vf4[s2769];) 47(param)
49: 2 FunctionCall 14(foo(vf4[s4393];) 47(param)
Return
FunctionEnd
14(foo(vf4[s2769];): 2 Function None 12
14(foo(vf4[s4393];): 2 Function None 12
13(p): 11(ptr) FunctionParameter
15: Label
54: 24(ptr) AccessChain 53(dupUcol) 23

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,557 @@
spv.subgroupExtendedTypesArithmeticNeg.comp
ERROR: 0:26: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:27: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:28: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:29: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:31: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:32: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:33: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:34: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:36: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:37: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:38: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:39: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:41: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:42: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:43: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:44: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:46: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:47: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:48: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:49: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:51: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:52: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:53: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:54: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:56: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:57: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:58: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:59: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:61: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:62: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:63: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:64: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:66: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:67: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:68: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:69: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:71: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:72: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:73: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:74: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:76: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:77: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:78: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:79: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:81: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:82: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:83: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:84: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:86: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:87: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:88: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:89: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:91: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:92: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:93: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:94: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:96: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:97: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:98: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:99: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:101: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:102: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:103: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:104: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:106: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:107: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:108: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:109: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:111: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:112: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:113: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:114: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:116: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:117: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:118: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:119: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:121: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:122: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:123: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:124: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:126: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:127: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:128: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:129: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:131: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:132: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:133: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:134: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:136: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:137: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:138: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:139: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:141: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:142: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:143: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:144: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:146: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:147: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:148: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:149: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:151: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:152: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:153: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:154: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:156: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:157: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:158: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:159: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:161: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:162: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:163: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:164: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:166: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:167: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:168: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:169: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:171: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:172: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:173: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:174: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:176: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:177: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:178: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:179: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:181: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:182: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:183: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:184: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:186: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:187: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:188: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:189: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:191: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:192: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:193: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:194: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:196: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:197: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:198: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:199: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:201: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:202: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:203: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:204: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:206: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:207: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:208: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:209: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:211: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:212: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:213: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:214: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:216: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:217: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:218: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:219: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:221: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:222: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:223: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:224: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:226: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:227: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:228: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:229: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:231: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:232: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:233: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:234: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:236: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:237: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:238: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:239: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:241: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:242: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:243: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:244: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:246: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:247: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:248: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:249: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:251: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:252: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:253: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:254: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:256: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:257: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:258: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:259: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:261: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:262: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:263: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:264: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:266: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:267: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:268: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:269: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:271: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:272: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:273: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:274: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:276: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:277: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:278: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:279: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:281: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:282: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:283: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:284: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:286: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:287: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:288: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:289: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:291: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:292: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:293: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:294: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:296: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:297: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:298: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:299: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:301: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:302: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:303: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:304: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:306: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:307: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:308: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:309: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:311: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:312: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:313: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:314: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:316: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:317: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:318: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:319: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:321: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:322: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:323: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:324: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:326: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:327: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:328: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:329: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:331: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:332: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:333: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:334: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:336: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:337: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:338: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:339: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:341: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:342: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:343: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:344: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:346: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:347: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:348: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:349: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:351: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:352: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:353: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:354: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:356: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:357: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:358: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:359: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:361: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:362: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:363: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:364: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:366: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:367: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:368: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:369: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:371: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:372: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:373: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:374: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:376: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:377: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:378: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:379: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:381: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:382: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:383: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:384: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:386: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:387: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:388: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:389: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:391: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:392: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:393: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:394: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:396: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:397: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:398: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:399: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:401: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:402: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:403: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:404: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:406: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:407: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:408: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:409: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:411: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:412: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:413: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:414: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:416: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:417: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:418: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:419: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:421: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:422: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:423: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:424: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:426: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:427: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:428: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:429: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:431: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:432: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:433: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:434: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:436: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:437: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:438: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:439: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:441: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:442: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:443: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:444: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:446: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:447: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:448: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:449: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:451: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:452: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:453: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:454: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:456: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:457: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:458: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:459: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:461: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:462: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:463: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:464: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:466: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:467: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:468: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:469: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:471: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:472: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:473: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:474: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:476: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:477: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:478: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:479: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:481: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:482: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:483: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:484: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:486: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:487: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:488: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:489: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:491: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:492: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:493: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:494: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:496: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:497: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:498: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:499: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:501: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:502: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:503: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:504: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:506: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:507: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:508: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:509: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:511: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:512: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:513: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:514: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:516: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:517: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:518: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:519: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:521: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:522: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:523: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:524: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:526: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:527: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:528: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:529: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:531: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:532: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:533: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:534: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:536: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:537: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:538: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:539: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:541: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:542: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:543: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:544: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:546: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:547: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:548: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:549: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:551: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:552: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:553: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:554: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:556: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:557: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:558: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:559: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:561: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:562: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:563: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:564: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:566: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:567: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:568: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:569: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:571: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:572: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:573: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:574: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:576: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:577: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:578: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:579: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:581: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:582: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:583: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:584: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:586: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:587: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:588: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:589: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:591: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:592: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:593: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:594: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:596: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:597: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:598: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:599: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:601: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:602: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:603: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:604: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:606: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:607: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:608: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:609: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:611: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:612: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:613: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:614: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:616: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:617: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:618: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:619: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:621: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:622: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:623: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:624: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:626: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:627: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:628: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:629: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:631: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:632: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:633: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:634: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:636: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:637: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:638: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:639: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:641: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:642: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:643: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:644: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:646: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:647: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:648: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:649: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:651: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:652: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:653: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:654: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:656: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:657: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:658: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:659: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:661: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:662: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:663: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:664: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:666: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:667: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:668: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:669: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:671: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:672: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:673: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:674: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:676: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:677: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:678: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:679: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:681: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:682: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:683: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:684: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:686: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:687: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:688: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:689: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:691: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:692: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:693: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:694: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:696: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:697: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:698: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:699: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:701: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:702: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:703: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:704: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:706: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:707: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:708: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:709: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:711: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:712: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:713: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:714: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 552 compilation errors. No code generated.
SPIR-V is not generated for failed compile or link

View File

@ -0,0 +1,560 @@
spv.subgroupExtendedTypesBallot.comp
// Module Version 10300
// Generated by (magic number): 80007
// Id's are bound by 441
Capability Shader
Capability Float16
Capability Int64
Capability Int16
Capability Int8
Capability GroupNonUniform
Capability GroupNonUniformBallot
Capability StorageUniformBufferBlock16
Capability StorageBuffer8BitAccess
Extension "SPV_KHR_8bit_storage"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint GLCompute 4 "main" 10 12
ExecutionMode 4 LocalSize 8 1 1
Source GLSL 450
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16"
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int16"
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int64"
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int8"
SourceExtension "GL_EXT_shader_subgroup_extended_types_float16"
SourceExtension "GL_EXT_shader_subgroup_extended_types_int16"
SourceExtension "GL_EXT_shader_subgroup_extended_types_int64"
SourceExtension "GL_EXT_shader_subgroup_extended_types_int8"
SourceExtension "GL_KHR_shader_subgroup_ballot"
SourceExtension "GL_KHR_shader_subgroup_basic"
Name 4 "main"
Name 8 "invocation"
Name 10 "gl_SubgroupInvocationID"
Name 12 "gl_SubgroupSize"
Name 31 "Buffers"
MemberName 31(Buffers) 0 "i8"
MemberName 31(Buffers) 1 "u8"
MemberName 31(Buffers) 2 "i16"
MemberName 31(Buffers) 3 "u16"
MemberName 31(Buffers) 4 "i64"
MemberName 31(Buffers) 5 "u64"
MemberName 31(Buffers) 6 "f16"
Name 34 "data"
Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision
Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
Decorate 11 RelaxedPrecision
Decorate 12(gl_SubgroupSize) RelaxedPrecision
Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize
Decorate 13 RelaxedPrecision
Decorate 14 RelaxedPrecision
Decorate 16 RelaxedPrecision
MemberDecorate 31(Buffers) 0 Offset 0
MemberDecorate 31(Buffers) 1 Offset 4
MemberDecorate 31(Buffers) 2 Offset 8
MemberDecorate 31(Buffers) 3 Offset 16
MemberDecorate 31(Buffers) 4 Offset 32
MemberDecorate 31(Buffers) 5 Offset 64
MemberDecorate 31(Buffers) 6 Offset 96
Decorate 31(Buffers) Block
Decorate 34(data) DescriptorSet 0
Decorate 34(data) Binding 0
Decorate 440 BuiltIn WorkgroupSize
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
7: TypePointer Function 6(int)
9: TypePointer Input 6(int)
10(gl_SubgroupInvocationID): 9(ptr) Variable Input
12(gl_SubgroupSize): 9(ptr) Variable Input
15: 6(int) Constant 4
17: TypeInt 8 1
18: TypeVector 17(int8_t) 4
19: TypeInt 8 0
20: TypeVector 19(int8_t) 4
21: TypeInt 16 1
22: TypeVector 21(int16_t) 4
23: TypeInt 16 0
24: TypeVector 23(int16_t) 4
25: TypeInt 64 1
26: TypeVector 25(int64_t) 4
27: TypeInt 64 0
28: TypeVector 27(int64_t) 4
29: TypeFloat 16
30: TypeVector 29(float16_t) 4
31(Buffers): TypeStruct 18(i8vec4) 20(i8vec4) 22(i16vec4) 24(i16vec4) 26(i64vec4) 28(i64vec4) 30(f16vec4)
32: TypeArray 31(Buffers) 15
33: TypePointer StorageBuffer 32
34(data): 33(ptr) Variable StorageBuffer
36: TypeInt 32 1
37: 36(int) Constant 0
38: 6(int) Constant 0
39: TypePointer StorageBuffer 17(int8_t)
42: 6(int) Constant 3
46: 36(int) Constant 1
47: TypeVector 17(int8_t) 2
48: TypePointer StorageBuffer 18(i8vec4)
57: 36(int) Constant 2
58: TypeVector 17(int8_t) 3
67: 36(int) Constant 3
99: TypePointer StorageBuffer 19(int8_t)
105: TypeVector 19(int8_t) 2
106: TypePointer StorageBuffer 20(i8vec4)
115: TypeVector 19(int8_t) 3
155: TypePointer StorageBuffer 21(int16_t)
161: TypeVector 21(int16_t) 2
162: TypePointer StorageBuffer 22(i16vec4)
171: TypeVector 21(int16_t) 3
211: TypePointer StorageBuffer 23(int16_t)
217: TypeVector 23(int16_t) 2
218: TypePointer StorageBuffer 24(i16vec4)
227: TypeVector 23(int16_t) 3
267: 36(int) Constant 4
268: TypePointer StorageBuffer 25(int64_t)
274: TypeVector 25(int64_t) 2
275: TypePointer StorageBuffer 26(i64vec4)
284: TypeVector 25(int64_t) 3
324: 36(int) Constant 5
325: TypePointer StorageBuffer 27(int64_t)
331: TypeVector 27(int64_t) 2
332: TypePointer StorageBuffer 28(i64vec4)
341: TypeVector 27(int64_t) 3
381: 36(int) Constant 6
382: TypePointer StorageBuffer 29(float16_t)
388: TypeVector 29(float16_t) 2
389: TypePointer StorageBuffer 30(f16vec4)
398: TypeVector 29(float16_t) 3
437: TypeVector 6(int) 3
438: 6(int) Constant 8
439: 6(int) Constant 1
440: 437(ivec3) ConstantComposite 438 439 439
4(main): 2 Function None 3
5: Label
8(invocation): 7(ptr) Variable Function
11: 6(int) Load 10(gl_SubgroupInvocationID)
13: 6(int) Load 12(gl_SubgroupSize)
14: 6(int) IAdd 11 13
16: 6(int) UMod 14 15
Store 8(invocation) 16
35: 6(int) Load 8(invocation)
40: 39(ptr) AccessChain 34(data) 37 37 38
41: 17(int8_t) Load 40
43: 17(int8_t) GroupNonUniformBroadcast 42 41 42
44: 39(ptr) AccessChain 34(data) 35 37 38
Store 44 43
45: 6(int) Load 8(invocation)
49: 48(ptr) AccessChain 34(data) 46 37
50: 18(i8vec4) Load 49
51: 47(i8vec2) VectorShuffle 50 50 0 1
52: 47(i8vec2) GroupNonUniformBroadcast 42 51 42
53: 48(ptr) AccessChain 34(data) 45 37
54: 18(i8vec4) Load 53
55: 18(i8vec4) VectorShuffle 54 52 4 5 2 3
Store 53 55
56: 6(int) Load 8(invocation)
59: 48(ptr) AccessChain 34(data) 57 37
60: 18(i8vec4) Load 59
61: 58(i8vec3) VectorShuffle 60 60 0 1 2
62: 58(i8vec3) GroupNonUniformBroadcast 42 61 42
63: 48(ptr) AccessChain 34(data) 56 37
64: 18(i8vec4) Load 63
65: 18(i8vec4) VectorShuffle 64 62 4 5 6 3
Store 63 65
66: 6(int) Load 8(invocation)
68: 48(ptr) AccessChain 34(data) 67 37
69: 18(i8vec4) Load 68
70: 18(i8vec4) GroupNonUniformBroadcast 42 69 42
71: 48(ptr) AccessChain 34(data) 66 37
Store 71 70
72: 6(int) Load 8(invocation)
73: 39(ptr) AccessChain 34(data) 37 37 38
74: 17(int8_t) Load 73
75: 17(int8_t) GroupNonUniformBroadcastFirst 42 74
76: 39(ptr) AccessChain 34(data) 72 37 38
Store 76 75
77: 6(int) Load 8(invocation)
78: 48(ptr) AccessChain 34(data) 46 37
79: 18(i8vec4) Load 78
80: 47(i8vec2) VectorShuffle 79 79 0 1
81: 47(i8vec2) GroupNonUniformBroadcastFirst 42 80
82: 48(ptr) AccessChain 34(data) 77 37
83: 18(i8vec4) Load 82
84: 18(i8vec4) VectorShuffle 83 81 4 5 2 3
Store 82 84
85: 6(int) Load 8(invocation)
86: 48(ptr) AccessChain 34(data) 57 37
87: 18(i8vec4) Load 86
88: 58(i8vec3) VectorShuffle 87 87 0 1 2
89: 58(i8vec3) GroupNonUniformBroadcastFirst 42 88
90: 48(ptr) AccessChain 34(data) 85 37
91: 18(i8vec4) Load 90
92: 18(i8vec4) VectorShuffle 91 89 4 5 6 3
Store 90 92
93: 6(int) Load 8(invocation)
94: 48(ptr) AccessChain 34(data) 67 37
95: 18(i8vec4) Load 94
96: 18(i8vec4) GroupNonUniformBroadcastFirst 42 95
97: 48(ptr) AccessChain 34(data) 93 37
Store 97 96
98: 6(int) Load 8(invocation)
100: 99(ptr) AccessChain 34(data) 37 46 38
101: 19(int8_t) Load 100
102: 19(int8_t) GroupNonUniformBroadcast 42 101 42
103: 99(ptr) AccessChain 34(data) 98 46 38
Store 103 102
104: 6(int) Load 8(invocation)
107: 106(ptr) AccessChain 34(data) 46 46
108: 20(i8vec4) Load 107
109: 105(i8vec2) VectorShuffle 108 108 0 1
110: 105(i8vec2) GroupNonUniformBroadcast 42 109 42
111: 106(ptr) AccessChain 34(data) 104 46
112: 20(i8vec4) Load 111
113: 20(i8vec4) VectorShuffle 112 110 4 5 2 3
Store 111 113
114: 6(int) Load 8(invocation)
116: 106(ptr) AccessChain 34(data) 57 46
117: 20(i8vec4) Load 116
118: 115(i8vec3) VectorShuffle 117 117 0 1 2
119: 115(i8vec3) GroupNonUniformBroadcast 42 118 42
120: 106(ptr) AccessChain 34(data) 114 46
121: 20(i8vec4) Load 120
122: 20(i8vec4) VectorShuffle 121 119 4 5 6 3
Store 120 122
123: 6(int) Load 8(invocation)
124: 106(ptr) AccessChain 34(data) 67 46
125: 20(i8vec4) Load 124
126: 20(i8vec4) GroupNonUniformBroadcast 42 125 42
127: 106(ptr) AccessChain 34(data) 123 46
Store 127 126
128: 6(int) Load 8(invocation)
129: 99(ptr) AccessChain 34(data) 37 46 38
130: 19(int8_t) Load 129
131: 19(int8_t) GroupNonUniformBroadcastFirst 42 130
132: 99(ptr) AccessChain 34(data) 128 46 38
Store 132 131
133: 6(int) Load 8(invocation)
134: 106(ptr) AccessChain 34(data) 46 46
135: 20(i8vec4) Load 134
136: 105(i8vec2) VectorShuffle 135 135 0 1
137: 105(i8vec2) GroupNonUniformBroadcastFirst 42 136
138: 106(ptr) AccessChain 34(data) 133 46
139: 20(i8vec4) Load 138
140: 20(i8vec4) VectorShuffle 139 137 4 5 2 3
Store 138 140
141: 6(int) Load 8(invocation)
142: 106(ptr) AccessChain 34(data) 57 46
143: 20(i8vec4) Load 142
144: 115(i8vec3) VectorShuffle 143 143 0 1 2
145: 115(i8vec3) GroupNonUniformBroadcastFirst 42 144
146: 106(ptr) AccessChain 34(data) 141 46
147: 20(i8vec4) Load 146
148: 20(i8vec4) VectorShuffle 147 145 4 5 6 3
Store 146 148
149: 6(int) Load 8(invocation)
150: 106(ptr) AccessChain 34(data) 67 46
151: 20(i8vec4) Load 150
152: 20(i8vec4) GroupNonUniformBroadcastFirst 42 151
153: 106(ptr) AccessChain 34(data) 149 46
Store 153 152
154: 6(int) Load 8(invocation)
156: 155(ptr) AccessChain 34(data) 37 57 38
157: 21(int16_t) Load 156
158: 21(int16_t) GroupNonUniformBroadcast 42 157 42
159: 155(ptr) AccessChain 34(data) 154 57 38
Store 159 158
160: 6(int) Load 8(invocation)
163: 162(ptr) AccessChain 34(data) 46 57
164: 22(i16vec4) Load 163
165:161(i16vec2) VectorShuffle 164 164 0 1
166:161(i16vec2) GroupNonUniformBroadcast 42 165 42
167: 162(ptr) AccessChain 34(data) 160 57
168: 22(i16vec4) Load 167
169: 22(i16vec4) VectorShuffle 168 166 4 5 2 3
Store 167 169
170: 6(int) Load 8(invocation)
172: 162(ptr) AccessChain 34(data) 57 57
173: 22(i16vec4) Load 172
174:171(i16vec3) VectorShuffle 173 173 0 1 2
175:171(i16vec3) GroupNonUniformBroadcast 42 174 42
176: 162(ptr) AccessChain 34(data) 170 57
177: 22(i16vec4) Load 176
178: 22(i16vec4) VectorShuffle 177 175 4 5 6 3
Store 176 178
179: 6(int) Load 8(invocation)
180: 162(ptr) AccessChain 34(data) 67 57
181: 22(i16vec4) Load 180
182: 22(i16vec4) GroupNonUniformBroadcast 42 181 42
183: 162(ptr) AccessChain 34(data) 179 57
Store 183 182
184: 6(int) Load 8(invocation)
185: 155(ptr) AccessChain 34(data) 37 57 38
186: 21(int16_t) Load 185
187: 21(int16_t) GroupNonUniformBroadcastFirst 42 186
188: 155(ptr) AccessChain 34(data) 184 57 38
Store 188 187
189: 6(int) Load 8(invocation)
190: 162(ptr) AccessChain 34(data) 46 57
191: 22(i16vec4) Load 190
192:161(i16vec2) VectorShuffle 191 191 0 1
193:161(i16vec2) GroupNonUniformBroadcastFirst 42 192
194: 162(ptr) AccessChain 34(data) 189 57
195: 22(i16vec4) Load 194
196: 22(i16vec4) VectorShuffle 195 193 4 5 2 3
Store 194 196
197: 6(int) Load 8(invocation)
198: 162(ptr) AccessChain 34(data) 57 57
199: 22(i16vec4) Load 198
200:171(i16vec3) VectorShuffle 199 199 0 1 2
201:171(i16vec3) GroupNonUniformBroadcastFirst 42 200
202: 162(ptr) AccessChain 34(data) 197 57
203: 22(i16vec4) Load 202
204: 22(i16vec4) VectorShuffle 203 201 4 5 6 3
Store 202 204
205: 6(int) Load 8(invocation)
206: 162(ptr) AccessChain 34(data) 67 57
207: 22(i16vec4) Load 206
208: 22(i16vec4) GroupNonUniformBroadcastFirst 42 207
209: 162(ptr) AccessChain 34(data) 205 57
Store 209 208
210: 6(int) Load 8(invocation)
212: 211(ptr) AccessChain 34(data) 37 67 38
213: 23(int16_t) Load 212
214: 23(int16_t) GroupNonUniformBroadcast 42 213 42
215: 211(ptr) AccessChain 34(data) 210 67 38
Store 215 214
216: 6(int) Load 8(invocation)
219: 218(ptr) AccessChain 34(data) 46 67
220: 24(i16vec4) Load 219
221:217(i16vec2) VectorShuffle 220 220 0 1
222:217(i16vec2) GroupNonUniformBroadcast 42 221 42
223: 218(ptr) AccessChain 34(data) 216 67
224: 24(i16vec4) Load 223
225: 24(i16vec4) VectorShuffle 224 222 4 5 2 3
Store 223 225
226: 6(int) Load 8(invocation)
228: 218(ptr) AccessChain 34(data) 57 67
229: 24(i16vec4) Load 228
230:227(i16vec3) VectorShuffle 229 229 0 1 2
231:227(i16vec3) GroupNonUniformBroadcast 42 230 42
232: 218(ptr) AccessChain 34(data) 226 67
233: 24(i16vec4) Load 232
234: 24(i16vec4) VectorShuffle 233 231 4 5 6 3
Store 232 234
235: 6(int) Load 8(invocation)
236: 218(ptr) AccessChain 34(data) 67 67
237: 24(i16vec4) Load 236
238: 24(i16vec4) GroupNonUniformBroadcast 42 237 42
239: 218(ptr) AccessChain 34(data) 235 67
Store 239 238
240: 6(int) Load 8(invocation)
241: 211(ptr) AccessChain 34(data) 37 67 38
242: 23(int16_t) Load 241
243: 23(int16_t) GroupNonUniformBroadcastFirst 42 242
244: 211(ptr) AccessChain 34(data) 240 67 38
Store 244 243
245: 6(int) Load 8(invocation)
246: 218(ptr) AccessChain 34(data) 46 67
247: 24(i16vec4) Load 246
248:217(i16vec2) VectorShuffle 247 247 0 1
249:217(i16vec2) GroupNonUniformBroadcastFirst 42 248
250: 218(ptr) AccessChain 34(data) 245 67
251: 24(i16vec4) Load 250
252: 24(i16vec4) VectorShuffle 251 249 4 5 2 3
Store 250 252
253: 6(int) Load 8(invocation)
254: 218(ptr) AccessChain 34(data) 57 67
255: 24(i16vec4) Load 254
256:227(i16vec3) VectorShuffle 255 255 0 1 2
257:227(i16vec3) GroupNonUniformBroadcastFirst 42 256
258: 218(ptr) AccessChain 34(data) 253 67
259: 24(i16vec4) Load 258
260: 24(i16vec4) VectorShuffle 259 257 4 5 6 3
Store 258 260
261: 6(int) Load 8(invocation)
262: 218(ptr) AccessChain 34(data) 67 67
263: 24(i16vec4) Load 262
264: 24(i16vec4) GroupNonUniformBroadcastFirst 42 263
265: 218(ptr) AccessChain 34(data) 261 67
Store 265 264
266: 6(int) Load 8(invocation)
269: 268(ptr) AccessChain 34(data) 37 267 38
270: 25(int64_t) Load 269
271: 25(int64_t) GroupNonUniformBroadcast 42 270 42
272: 268(ptr) AccessChain 34(data) 266 267 38
Store 272 271
273: 6(int) Load 8(invocation)
276: 275(ptr) AccessChain 34(data) 46 267
277: 26(i64vec4) Load 276
278:274(i64vec2) VectorShuffle 277 277 0 1
279:274(i64vec2) GroupNonUniformBroadcast 42 278 42
280: 275(ptr) AccessChain 34(data) 273 267
281: 26(i64vec4) Load 280
282: 26(i64vec4) VectorShuffle 281 279 4 5 2 3
Store 280 282
283: 6(int) Load 8(invocation)
285: 275(ptr) AccessChain 34(data) 57 267
286: 26(i64vec4) Load 285
287:284(i64vec3) VectorShuffle 286 286 0 1 2
288:284(i64vec3) GroupNonUniformBroadcast 42 287 42
289: 275(ptr) AccessChain 34(data) 283 267
290: 26(i64vec4) Load 289
291: 26(i64vec4) VectorShuffle 290 288 4 5 6 3
Store 289 291
292: 6(int) Load 8(invocation)
293: 275(ptr) AccessChain 34(data) 67 267
294: 26(i64vec4) Load 293
295: 26(i64vec4) GroupNonUniformBroadcast 42 294 42
296: 275(ptr) AccessChain 34(data) 292 267
Store 296 295
297: 6(int) Load 8(invocation)
298: 268(ptr) AccessChain 34(data) 37 267 38
299: 25(int64_t) Load 298
300: 25(int64_t) GroupNonUniformBroadcastFirst 42 299
301: 268(ptr) AccessChain 34(data) 297 267 38
Store 301 300
302: 6(int) Load 8(invocation)
303: 275(ptr) AccessChain 34(data) 46 267
304: 26(i64vec4) Load 303
305:274(i64vec2) VectorShuffle 304 304 0 1
306:274(i64vec2) GroupNonUniformBroadcastFirst 42 305
307: 275(ptr) AccessChain 34(data) 302 267
308: 26(i64vec4) Load 307
309: 26(i64vec4) VectorShuffle 308 306 4 5 2 3
Store 307 309
310: 6(int) Load 8(invocation)
311: 275(ptr) AccessChain 34(data) 57 267
312: 26(i64vec4) Load 311
313:284(i64vec3) VectorShuffle 312 312 0 1 2
314:284(i64vec3) GroupNonUniformBroadcastFirst 42 313
315: 275(ptr) AccessChain 34(data) 310 267
316: 26(i64vec4) Load 315
317: 26(i64vec4) VectorShuffle 316 314 4 5 6 3
Store 315 317
318: 6(int) Load 8(invocation)
319: 275(ptr) AccessChain 34(data) 67 267
320: 26(i64vec4) Load 319
321: 26(i64vec4) GroupNonUniformBroadcastFirst 42 320
322: 275(ptr) AccessChain 34(data) 318 267
Store 322 321
323: 6(int) Load 8(invocation)
326: 325(ptr) AccessChain 34(data) 37 324 38
327: 27(int64_t) Load 326
328: 27(int64_t) GroupNonUniformBroadcast 42 327 42
329: 325(ptr) AccessChain 34(data) 323 324 38
Store 329 328
330: 6(int) Load 8(invocation)
333: 332(ptr) AccessChain 34(data) 46 324
334: 28(i64vec4) Load 333
335:331(i64vec2) VectorShuffle 334 334 0 1
336:331(i64vec2) GroupNonUniformBroadcast 42 335 42
337: 332(ptr) AccessChain 34(data) 330 324
338: 28(i64vec4) Load 337
339: 28(i64vec4) VectorShuffle 338 336 4 5 2 3
Store 337 339
340: 6(int) Load 8(invocation)
342: 332(ptr) AccessChain 34(data) 57 324
343: 28(i64vec4) Load 342
344:341(i64vec3) VectorShuffle 343 343 0 1 2
345:341(i64vec3) GroupNonUniformBroadcast 42 344 42
346: 332(ptr) AccessChain 34(data) 340 324
347: 28(i64vec4) Load 346
348: 28(i64vec4) VectorShuffle 347 345 4 5 6 3
Store 346 348
349: 6(int) Load 8(invocation)
350: 332(ptr) AccessChain 34(data) 67 324
351: 28(i64vec4) Load 350
352: 28(i64vec4) GroupNonUniformBroadcast 42 351 42
353: 332(ptr) AccessChain 34(data) 349 324
Store 353 352
354: 6(int) Load 8(invocation)
355: 325(ptr) AccessChain 34(data) 37 324 38
356: 27(int64_t) Load 355
357: 27(int64_t) GroupNonUniformBroadcastFirst 42 356
358: 325(ptr) AccessChain 34(data) 354 324 38
Store 358 357
359: 6(int) Load 8(invocation)
360: 332(ptr) AccessChain 34(data) 46 324
361: 28(i64vec4) Load 360
362:331(i64vec2) VectorShuffle 361 361 0 1
363:331(i64vec2) GroupNonUniformBroadcastFirst 42 362
364: 332(ptr) AccessChain 34(data) 359 324
365: 28(i64vec4) Load 364
366: 28(i64vec4) VectorShuffle 365 363 4 5 2 3
Store 364 366
367: 6(int) Load 8(invocation)
368: 332(ptr) AccessChain 34(data) 57 324
369: 28(i64vec4) Load 368
370:341(i64vec3) VectorShuffle 369 369 0 1 2
371:341(i64vec3) GroupNonUniformBroadcastFirst 42 370
372: 332(ptr) AccessChain 34(data) 367 324
373: 28(i64vec4) Load 372
374: 28(i64vec4) VectorShuffle 373 371 4 5 6 3
Store 372 374
375: 6(int) Load 8(invocation)
376: 332(ptr) AccessChain 34(data) 67 324
377: 28(i64vec4) Load 376
378: 28(i64vec4) GroupNonUniformBroadcastFirst 42 377
379: 332(ptr) AccessChain 34(data) 375 324
Store 379 378
380: 6(int) Load 8(invocation)
383: 382(ptr) AccessChain 34(data) 37 381 38
384:29(float16_t) Load 383
385:29(float16_t) GroupNonUniformBroadcast 42 384 42
386: 382(ptr) AccessChain 34(data) 380 381 38
Store 386 385
387: 6(int) Load 8(invocation)
390: 389(ptr) AccessChain 34(data) 46 381
391: 30(f16vec4) Load 390
392:388(f16vec2) VectorShuffle 391 391 0 1
393:388(f16vec2) GroupNonUniformBroadcast 42 392 42
394: 389(ptr) AccessChain 34(data) 387 381
395: 30(f16vec4) Load 394
396: 30(f16vec4) VectorShuffle 395 393 4 5 2 3
Store 394 396
397: 6(int) Load 8(invocation)
399: 389(ptr) AccessChain 34(data) 57 381
400: 30(f16vec4) Load 399
401:398(f16vec3) VectorShuffle 400 400 0 1 2
402:398(f16vec3) GroupNonUniformBroadcast 42 401 42
403: 389(ptr) AccessChain 34(data) 397 381
404: 30(f16vec4) Load 403
405: 30(f16vec4) VectorShuffle 404 402 4 5 6 3
Store 403 405
406: 6(int) Load 8(invocation)
407: 389(ptr) AccessChain 34(data) 67 381
408: 30(f16vec4) Load 407
409: 30(f16vec4) GroupNonUniformBroadcast 42 408 42
410: 389(ptr) AccessChain 34(data) 406 381
Store 410 409
411: 6(int) Load 8(invocation)
412: 382(ptr) AccessChain 34(data) 37 381 38
413:29(float16_t) Load 412
414:29(float16_t) GroupNonUniformBroadcastFirst 42 413
415: 382(ptr) AccessChain 34(data) 411 381 38
Store 415 414
416: 6(int) Load 8(invocation)
417: 389(ptr) AccessChain 34(data) 46 381
418: 30(f16vec4) Load 417
419:388(f16vec2) VectorShuffle 418 418 0 1
420:388(f16vec2) GroupNonUniformBroadcastFirst 42 419
421: 389(ptr) AccessChain 34(data) 416 381
422: 30(f16vec4) Load 421
423: 30(f16vec4) VectorShuffle 422 420 4 5 2 3
Store 421 423
424: 6(int) Load 8(invocation)
425: 389(ptr) AccessChain 34(data) 57 381
426: 30(f16vec4) Load 425
427:398(f16vec3) VectorShuffle 426 426 0 1 2
428:398(f16vec3) GroupNonUniformBroadcastFirst 42 427
429: 389(ptr) AccessChain 34(data) 424 381
430: 30(f16vec4) Load 429
431: 30(f16vec4) VectorShuffle 430 428 4 5 6 3
Store 429 431
432: 6(int) Load 8(invocation)
433: 389(ptr) AccessChain 34(data) 67 381
434: 30(f16vec4) Load 433
435: 30(f16vec4) GroupNonUniformBroadcastFirst 42 434
436: 389(ptr) AccessChain 34(data) 432 381
Store 436 435
Return
FunctionEnd

View File

@ -0,0 +1,61 @@
spv.subgroupExtendedTypesBallotNeg.comp
ERROR: 0:26: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:27: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:28: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:29: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:30: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:31: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:32: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:33: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:35: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:36: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:37: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:38: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:39: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:40: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:41: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:42: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:44: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:45: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:46: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:47: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:48: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:49: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:50: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:51: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:53: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:54: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:55: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:56: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:57: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:58: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:59: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:60: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:62: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:63: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:64: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:65: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:66: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:67: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:68: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:69: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:71: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:72: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:73: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:74: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:75: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:76: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:77: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:78: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:80: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:81: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:82: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:83: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:84: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:85: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:86: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:87: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 56 compilation errors. No code generated.
SPIR-V is not generated for failed compile or link

View File

@ -0,0 +1,9 @@
spv.subgroupExtendedTypesBasic.comp
ERROR: #version: compute shaders require es profile with version 310 or above, or non-es profile with version 420 or above
ERROR: #version: statement must appear first in es-profile shader; before comments or newlines
ERROR: 1 compilation errors. No code generated.
ERROR: Linking compute stage: Missing entry point: Each stage requires one entry point
SPIR-V is not generated for failed compile or link

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,189 @@
spv.subgroupExtendedTypesClusteredNeg.comp
ERROR: 0:26: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:27: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:28: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:29: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:31: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:32: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:33: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:34: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:36: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:37: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:38: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:39: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:41: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:42: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:43: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:44: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:46: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:47: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:48: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:49: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:51: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:52: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:53: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:54: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:56: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:57: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:58: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:59: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:61: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:62: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:63: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:64: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:66: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:67: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:68: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:69: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:71: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:72: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:73: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:74: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:76: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:77: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:78: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:79: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:81: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:82: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:83: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:84: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:86: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:87: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:88: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:89: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:91: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:92: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:93: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:94: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:96: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:97: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:98: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:99: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:101: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:102: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:103: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:104: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:106: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:107: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:108: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:109: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:111: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:112: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:113: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:114: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:116: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:117: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:118: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:119: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:121: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:122: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:123: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:124: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:126: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:127: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:128: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:129: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:131: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:132: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:133: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:134: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:136: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:137: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:138: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:139: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:141: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:142: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:143: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:144: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:146: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:147: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:148: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:149: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:151: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:152: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:153: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:154: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:156: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:157: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:158: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:159: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:161: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:162: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:163: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:164: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:166: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:167: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:168: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:169: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:171: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:172: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:173: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:174: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:176: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:177: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:178: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:179: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:181: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:182: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:183: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:184: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:186: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:187: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:188: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:189: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:191: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:192: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:193: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:194: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:196: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:197: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:198: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:199: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:201: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:202: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:203: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:204: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:206: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:207: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:208: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:209: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:211: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:212: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:213: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:214: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:216: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:217: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:218: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:219: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:221: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:222: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:223: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:224: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:226: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:227: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:228: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:229: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:231: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:232: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:233: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:234: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:236: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:237: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:238: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:239: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:241: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:242: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:243: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:244: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:246: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:247: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:248: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:249: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:251: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:252: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:253: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:254: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 184 compilation errors. No code generated.
SPIR-V is not generated for failed compile or link

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,217 @@
spv.subgroupExtendedTypesPartitionedNeg.comp
ERROR: 0:27: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:28: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:29: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:30: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:32: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:33: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:34: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:35: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:37: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:38: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:39: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:40: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:42: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:43: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:44: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:45: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:47: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:48: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:49: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:50: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:52: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:53: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:54: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:55: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:57: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:58: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:59: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:60: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:62: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:63: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:64: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:65: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:67: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:68: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:69: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:70: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:72: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:73: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:74: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:75: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:77: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:78: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:79: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:80: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:82: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:83: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:84: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:85: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:87: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:88: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:89: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:90: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:92: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:93: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:94: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:95: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:97: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:98: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:99: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:100: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:102: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:103: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:104: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:105: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:107: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:108: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:109: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:110: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:112: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:113: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:114: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:115: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:117: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:118: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:119: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:120: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:122: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:123: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:124: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:125: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:127: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:128: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:129: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:130: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:132: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:133: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:134: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:135: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:137: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:138: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:139: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:140: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:142: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:143: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:144: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:145: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:147: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:148: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:149: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:150: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:152: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:153: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:154: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:155: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:157: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:158: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:159: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:160: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:162: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:163: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:164: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:165: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:167: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:168: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:169: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:170: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:172: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:173: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:174: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:175: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:177: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:178: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:179: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:180: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:182: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:183: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:184: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:185: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:187: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:188: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:189: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:190: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:192: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:193: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:194: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:195: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:197: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:198: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:199: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:200: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:202: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:203: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:204: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:205: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:207: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:208: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:209: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:210: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:212: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:213: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:214: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:215: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:217: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:218: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:219: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:220: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:222: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:223: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:224: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:225: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:227: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:228: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:229: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:230: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:232: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:233: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:234: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:235: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:237: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:238: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:239: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:240: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:242: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:243: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:244: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:245: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:247: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:248: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:249: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:250: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:252: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:253: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:254: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:255: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:257: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:258: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:259: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:260: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:262: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:263: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:264: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:265: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:267: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:268: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:269: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:270: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:272: ' temp highp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:273: ' temp highp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:274: ' temp highp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:275: 'layout( column_major std430) buffer highp 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:277: ' temp highp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:278: ' temp highp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:279: ' temp highp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:280: 'layout( column_major std430) buffer highp 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:282: ' temp highp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:283: ' temp highp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:284: ' temp highp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:285: 'layout( column_major std430) buffer highp 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:287: ' temp highp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:288: ' temp highp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:289: ' temp highp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:290: 'layout( column_major std430) buffer highp 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 212 compilation errors. No code generated.
SPIR-V is not generated for failed compile or link

View File

@ -0,0 +1,981 @@
spv.subgroupExtendedTypesQuad.comp
// Module Version 10300
// Generated by (magic number): 80007
// Id's are bound by 806
Capability Shader
Capability Float16
Capability Int64
Capability Int16
Capability Int8
Capability GroupNonUniform
Capability GroupNonUniformQuad
Capability StorageUniformBufferBlock16
Capability StorageBuffer8BitAccess
Extension "SPV_KHR_8bit_storage"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint GLCompute 4 "main" 10 12
ExecutionMode 4 LocalSize 8 1 1
Source GLSL 450
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16"
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int16"
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int64"
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int8"
SourceExtension "GL_EXT_shader_subgroup_extended_types_float16"
SourceExtension "GL_EXT_shader_subgroup_extended_types_int16"
SourceExtension "GL_EXT_shader_subgroup_extended_types_int64"
SourceExtension "GL_EXT_shader_subgroup_extended_types_int8"
SourceExtension "GL_KHR_shader_subgroup_basic"
SourceExtension "GL_KHR_shader_subgroup_quad"
Name 4 "main"
Name 8 "invocation"
Name 10 "gl_SubgroupInvocationID"
Name 12 "gl_SubgroupSize"
Name 31 "Buffers"
MemberName 31(Buffers) 0 "i8"
MemberName 31(Buffers) 1 "u8"
MemberName 31(Buffers) 2 "i16"
MemberName 31(Buffers) 3 "u16"
MemberName 31(Buffers) 4 "i64"
MemberName 31(Buffers) 5 "u64"
MemberName 31(Buffers) 6 "f16"
Name 34 "data"
Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision
Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
Decorate 11 RelaxedPrecision
Decorate 12(gl_SubgroupSize) RelaxedPrecision
Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize
Decorate 13 RelaxedPrecision
Decorate 14 RelaxedPrecision
Decorate 16 RelaxedPrecision
MemberDecorate 31(Buffers) 0 Offset 0
MemberDecorate 31(Buffers) 1 Offset 4
MemberDecorate 31(Buffers) 2 Offset 8
MemberDecorate 31(Buffers) 3 Offset 16
MemberDecorate 31(Buffers) 4 Offset 32
MemberDecorate 31(Buffers) 5 Offset 64
MemberDecorate 31(Buffers) 6 Offset 96
Decorate 31(Buffers) Block
Decorate 34(data) DescriptorSet 0
Decorate 34(data) Binding 0
Decorate 805 BuiltIn WorkgroupSize
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
7: TypePointer Function 6(int)
9: TypePointer Input 6(int)
10(gl_SubgroupInvocationID): 9(ptr) Variable Input
12(gl_SubgroupSize): 9(ptr) Variable Input
15: 6(int) Constant 4
17: TypeInt 8 1
18: TypeVector 17(int8_t) 4
19: TypeInt 8 0
20: TypeVector 19(int8_t) 4
21: TypeInt 16 1
22: TypeVector 21(int16_t) 4
23: TypeInt 16 0
24: TypeVector 23(int16_t) 4
25: TypeInt 64 1
26: TypeVector 25(int64_t) 4
27: TypeInt 64 0
28: TypeVector 27(int64_t) 4
29: TypeFloat 16
30: TypeVector 29(float16_t) 4
31(Buffers): TypeStruct 18(i8vec4) 20(i8vec4) 22(i16vec4) 24(i16vec4) 26(i64vec4) 28(i64vec4) 30(f16vec4)
32: TypeArray 31(Buffers) 15
33: TypePointer StorageBuffer 32
34(data): 33(ptr) Variable StorageBuffer
36: TypeInt 32 1
37: 36(int) Constant 0
38: 6(int) Constant 0
39: TypePointer StorageBuffer 17(int8_t)
42: 6(int) Constant 1
43: 6(int) Constant 3
47: 36(int) Constant 1
48: TypeVector 17(int8_t) 2
49: TypePointer StorageBuffer 18(i8vec4)
58: 36(int) Constant 2
59: TypeVector 17(int8_t) 3
68: 36(int) Constant 3
128: 6(int) Constant 2
153: TypePointer StorageBuffer 19(int8_t)
159: TypeVector 19(int8_t) 2
160: TypePointer StorageBuffer 20(i8vec4)
169: TypeVector 19(int8_t) 3
261: TypePointer StorageBuffer 21(int16_t)
267: TypeVector 21(int16_t) 2
268: TypePointer StorageBuffer 22(i16vec4)
277: TypeVector 21(int16_t) 3
369: TypePointer StorageBuffer 23(int16_t)
375: TypeVector 23(int16_t) 2
376: TypePointer StorageBuffer 24(i16vec4)
385: TypeVector 23(int16_t) 3
477: 36(int) Constant 4
478: TypePointer StorageBuffer 25(int64_t)
484: TypeVector 25(int64_t) 2
485: TypePointer StorageBuffer 26(i64vec4)
494: TypeVector 25(int64_t) 3
586: 36(int) Constant 5
587: TypePointer StorageBuffer 27(int64_t)
593: TypeVector 27(int64_t) 2
594: TypePointer StorageBuffer 28(i64vec4)
603: TypeVector 27(int64_t) 3
695: 36(int) Constant 6
696: TypePointer StorageBuffer 29(float16_t)
702: TypeVector 29(float16_t) 2
703: TypePointer StorageBuffer 30(f16vec4)
712: TypeVector 29(float16_t) 3
803: TypeVector 6(int) 3
804: 6(int) Constant 8
805: 803(ivec3) ConstantComposite 804 42 42
4(main): 2 Function None 3
5: Label
8(invocation): 7(ptr) Variable Function
11: 6(int) Load 10(gl_SubgroupInvocationID)
13: 6(int) Load 12(gl_SubgroupSize)
14: 6(int) IAdd 11 13
16: 6(int) UMod 14 15
Store 8(invocation) 16
35: 6(int) Load 8(invocation)
40: 39(ptr) AccessChain 34(data) 37 37 38
41: 17(int8_t) Load 40
44: 17(int8_t) GroupNonUniformQuadBroadcast 43 41 42
45: 39(ptr) AccessChain 34(data) 35 37 38
Store 45 44
46: 6(int) Load 8(invocation)
50: 49(ptr) AccessChain 34(data) 47 37
51: 18(i8vec4) Load 50
52: 48(i8vec2) VectorShuffle 51 51 0 1
53: 48(i8vec2) GroupNonUniformQuadBroadcast 43 52 42
54: 49(ptr) AccessChain 34(data) 46 37
55: 18(i8vec4) Load 54
56: 18(i8vec4) VectorShuffle 55 53 4 5 2 3
Store 54 56
57: 6(int) Load 8(invocation)
60: 49(ptr) AccessChain 34(data) 58 37
61: 18(i8vec4) Load 60
62: 59(i8vec3) VectorShuffle 61 61 0 1 2
63: 59(i8vec3) GroupNonUniformQuadBroadcast 43 62 42
64: 49(ptr) AccessChain 34(data) 57 37
65: 18(i8vec4) Load 64
66: 18(i8vec4) VectorShuffle 65 63 4 5 6 3
Store 64 66
67: 6(int) Load 8(invocation)
69: 49(ptr) AccessChain 34(data) 68 37
70: 18(i8vec4) Load 69
71: 18(i8vec4) GroupNonUniformQuadBroadcast 43 70 42
72: 49(ptr) AccessChain 34(data) 67 37
Store 72 71
73: 6(int) Load 8(invocation)
74: 39(ptr) AccessChain 34(data) 37 37 38
75: 17(int8_t) Load 74
76: 17(int8_t) GroupNonUniformQuadSwap 43 75 38
77: 39(ptr) AccessChain 34(data) 73 37 38
Store 77 76
78: 6(int) Load 8(invocation)
79: 49(ptr) AccessChain 34(data) 47 37
80: 18(i8vec4) Load 79
81: 48(i8vec2) VectorShuffle 80 80 0 1
82: 48(i8vec2) GroupNonUniformQuadSwap 43 81 38
83: 49(ptr) AccessChain 34(data) 78 37
84: 18(i8vec4) Load 83
85: 18(i8vec4) VectorShuffle 84 82 4 5 2 3
Store 83 85
86: 6(int) Load 8(invocation)
87: 49(ptr) AccessChain 34(data) 58 37
88: 18(i8vec4) Load 87
89: 59(i8vec3) VectorShuffle 88 88 0 1 2
90: 59(i8vec3) GroupNonUniformQuadSwap 43 89 38
91: 49(ptr) AccessChain 34(data) 86 37
92: 18(i8vec4) Load 91
93: 18(i8vec4) VectorShuffle 92 90 4 5 6 3
Store 91 93
94: 6(int) Load 8(invocation)
95: 49(ptr) AccessChain 34(data) 68 37
96: 18(i8vec4) Load 95
97: 18(i8vec4) GroupNonUniformQuadSwap 43 96 38
98: 49(ptr) AccessChain 34(data) 94 37
Store 98 97
99: 6(int) Load 8(invocation)
100: 39(ptr) AccessChain 34(data) 37 37 38
101: 17(int8_t) Load 100
102: 17(int8_t) GroupNonUniformQuadSwap 43 101 42
103: 39(ptr) AccessChain 34(data) 99 37 38
Store 103 102
104: 6(int) Load 8(invocation)
105: 49(ptr) AccessChain 34(data) 47 37
106: 18(i8vec4) Load 105
107: 48(i8vec2) VectorShuffle 106 106 0 1
108: 48(i8vec2) GroupNonUniformQuadSwap 43 107 42
109: 49(ptr) AccessChain 34(data) 104 37
110: 18(i8vec4) Load 109
111: 18(i8vec4) VectorShuffle 110 108 4 5 2 3
Store 109 111
112: 6(int) Load 8(invocation)
113: 49(ptr) AccessChain 34(data) 58 37
114: 18(i8vec4) Load 113
115: 59(i8vec3) VectorShuffle 114 114 0 1 2
116: 59(i8vec3) GroupNonUniformQuadSwap 43 115 42
117: 49(ptr) AccessChain 34(data) 112 37
118: 18(i8vec4) Load 117
119: 18(i8vec4) VectorShuffle 118 116 4 5 6 3
Store 117 119
120: 6(int) Load 8(invocation)
121: 49(ptr) AccessChain 34(data) 68 37
122: 18(i8vec4) Load 121
123: 18(i8vec4) GroupNonUniformQuadSwap 43 122 42
124: 49(ptr) AccessChain 34(data) 120 37
Store 124 123
125: 6(int) Load 8(invocation)
126: 39(ptr) AccessChain 34(data) 37 37 38
127: 17(int8_t) Load 126
129: 17(int8_t) GroupNonUniformQuadSwap 43 127 128
130: 39(ptr) AccessChain 34(data) 125 37 38
Store 130 129
131: 6(int) Load 8(invocation)
132: 49(ptr) AccessChain 34(data) 47 37
133: 18(i8vec4) Load 132
134: 48(i8vec2) VectorShuffle 133 133 0 1
135: 48(i8vec2) GroupNonUniformQuadSwap 43 134 128
136: 49(ptr) AccessChain 34(data) 131 37
137: 18(i8vec4) Load 136
138: 18(i8vec4) VectorShuffle 137 135 4 5 2 3
Store 136 138
139: 6(int) Load 8(invocation)
140: 49(ptr) AccessChain 34(data) 58 37
141: 18(i8vec4) Load 140
142: 59(i8vec3) VectorShuffle 141 141 0 1 2
143: 59(i8vec3) GroupNonUniformQuadSwap 43 142 128
144: 49(ptr) AccessChain 34(data) 139 37
145: 18(i8vec4) Load 144
146: 18(i8vec4) VectorShuffle 145 143 4 5 6 3
Store 144 146
147: 6(int) Load 8(invocation)
148: 49(ptr) AccessChain 34(data) 68 37
149: 18(i8vec4) Load 148
150: 18(i8vec4) GroupNonUniformQuadSwap 43 149 128
151: 49(ptr) AccessChain 34(data) 147 37
Store 151 150
152: 6(int) Load 8(invocation)
154: 153(ptr) AccessChain 34(data) 37 47 38
155: 19(int8_t) Load 154
156: 19(int8_t) GroupNonUniformQuadBroadcast 43 155 42
157: 153(ptr) AccessChain 34(data) 152 47 38
Store 157 156
158: 6(int) Load 8(invocation)
161: 160(ptr) AccessChain 34(data) 47 47
162: 20(i8vec4) Load 161
163: 159(i8vec2) VectorShuffle 162 162 0 1
164: 159(i8vec2) GroupNonUniformQuadBroadcast 43 163 42
165: 160(ptr) AccessChain 34(data) 158 47
166: 20(i8vec4) Load 165
167: 20(i8vec4) VectorShuffle 166 164 4 5 2 3
Store 165 167
168: 6(int) Load 8(invocation)
170: 160(ptr) AccessChain 34(data) 58 47
171: 20(i8vec4) Load 170
172: 169(i8vec3) VectorShuffle 171 171 0 1 2
173: 169(i8vec3) GroupNonUniformQuadBroadcast 43 172 42
174: 160(ptr) AccessChain 34(data) 168 47
175: 20(i8vec4) Load 174
176: 20(i8vec4) VectorShuffle 175 173 4 5 6 3
Store 174 176
177: 6(int) Load 8(invocation)
178: 160(ptr) AccessChain 34(data) 68 47
179: 20(i8vec4) Load 178
180: 20(i8vec4) GroupNonUniformQuadBroadcast 43 179 42
181: 160(ptr) AccessChain 34(data) 177 47
Store 181 180
182: 6(int) Load 8(invocation)
183: 153(ptr) AccessChain 34(data) 37 47 38
184: 19(int8_t) Load 183
185: 19(int8_t) GroupNonUniformQuadSwap 43 184 38
186: 153(ptr) AccessChain 34(data) 182 47 38
Store 186 185
187: 6(int) Load 8(invocation)
188: 160(ptr) AccessChain 34(data) 47 47
189: 20(i8vec4) Load 188
190: 159(i8vec2) VectorShuffle 189 189 0 1
191: 159(i8vec2) GroupNonUniformQuadSwap 43 190 38
192: 160(ptr) AccessChain 34(data) 187 47
193: 20(i8vec4) Load 192
194: 20(i8vec4) VectorShuffle 193 191 4 5 2 3
Store 192 194
195: 6(int) Load 8(invocation)
196: 160(ptr) AccessChain 34(data) 58 47
197: 20(i8vec4) Load 196
198: 169(i8vec3) VectorShuffle 197 197 0 1 2
199: 169(i8vec3) GroupNonUniformQuadSwap 43 198 38
200: 160(ptr) AccessChain 34(data) 195 47
201: 20(i8vec4) Load 200
202: 20(i8vec4) VectorShuffle 201 199 4 5 6 3
Store 200 202
203: 6(int) Load 8(invocation)
204: 160(ptr) AccessChain 34(data) 68 47
205: 20(i8vec4) Load 204
206: 20(i8vec4) GroupNonUniformQuadSwap 43 205 38
207: 160(ptr) AccessChain 34(data) 203 47
Store 207 206
208: 6(int) Load 8(invocation)
209: 153(ptr) AccessChain 34(data) 37 47 38
210: 19(int8_t) Load 209
211: 19(int8_t) GroupNonUniformQuadSwap 43 210 42
212: 153(ptr) AccessChain 34(data) 208 47 38
Store 212 211
213: 6(int) Load 8(invocation)
214: 160(ptr) AccessChain 34(data) 47 47
215: 20(i8vec4) Load 214
216: 159(i8vec2) VectorShuffle 215 215 0 1
217: 159(i8vec2) GroupNonUniformQuadSwap 43 216 42
218: 160(ptr) AccessChain 34(data) 213 47
219: 20(i8vec4) Load 218
220: 20(i8vec4) VectorShuffle 219 217 4 5 2 3
Store 218 220
221: 6(int) Load 8(invocation)
222: 160(ptr) AccessChain 34(data) 58 47
223: 20(i8vec4) Load 222
224: 169(i8vec3) VectorShuffle 223 223 0 1 2
225: 169(i8vec3) GroupNonUniformQuadSwap 43 224 42
226: 160(ptr) AccessChain 34(data) 221 47
227: 20(i8vec4) Load 226
228: 20(i8vec4) VectorShuffle 227 225 4 5 6 3
Store 226 228
229: 6(int) Load 8(invocation)
230: 160(ptr) AccessChain 34(data) 68 47
231: 20(i8vec4) Load 230
232: 20(i8vec4) GroupNonUniformQuadSwap 43 231 42
233: 160(ptr) AccessChain 34(data) 229 47
Store 233 232
234: 6(int) Load 8(invocation)
235: 153(ptr) AccessChain 34(data) 37 47 38
236: 19(int8_t) Load 235
237: 19(int8_t) GroupNonUniformQuadSwap 43 236 128
238: 153(ptr) AccessChain 34(data) 234 47 38
Store 238 237
239: 6(int) Load 8(invocation)
240: 160(ptr) AccessChain 34(data) 47 47
241: 20(i8vec4) Load 240
242: 159(i8vec2) VectorShuffle 241 241 0 1
243: 159(i8vec2) GroupNonUniformQuadSwap 43 242 128
244: 160(ptr) AccessChain 34(data) 239 47
245: 20(i8vec4) Load 244
246: 20(i8vec4) VectorShuffle 245 243 4 5 2 3
Store 244 246
247: 6(int) Load 8(invocation)
248: 160(ptr) AccessChain 34(data) 58 47
249: 20(i8vec4) Load 248
250: 169(i8vec3) VectorShuffle 249 249 0 1 2
251: 169(i8vec3) GroupNonUniformQuadSwap 43 250 128
252: 160(ptr) AccessChain 34(data) 247 47
253: 20(i8vec4) Load 252
254: 20(i8vec4) VectorShuffle 253 251 4 5 6 3
Store 252 254
255: 6(int) Load 8(invocation)
256: 160(ptr) AccessChain 34(data) 68 47
257: 20(i8vec4) Load 256
258: 20(i8vec4) GroupNonUniformQuadSwap 43 257 128
259: 160(ptr) AccessChain 34(data) 255 47
Store 259 258
260: 6(int) Load 8(invocation)
262: 261(ptr) AccessChain 34(data) 37 58 38
263: 21(int16_t) Load 262
264: 21(int16_t) GroupNonUniformQuadBroadcast 43 263 42
265: 261(ptr) AccessChain 34(data) 260 58 38
Store 265 264
266: 6(int) Load 8(invocation)
269: 268(ptr) AccessChain 34(data) 47 58
270: 22(i16vec4) Load 269
271:267(i16vec2) VectorShuffle 270 270 0 1
272:267(i16vec2) GroupNonUniformQuadBroadcast 43 271 42
273: 268(ptr) AccessChain 34(data) 266 58
274: 22(i16vec4) Load 273
275: 22(i16vec4) VectorShuffle 274 272 4 5 2 3
Store 273 275
276: 6(int) Load 8(invocation)
278: 268(ptr) AccessChain 34(data) 58 58
279: 22(i16vec4) Load 278
280:277(i16vec3) VectorShuffle 279 279 0 1 2
281:277(i16vec3) GroupNonUniformQuadBroadcast 43 280 42
282: 268(ptr) AccessChain 34(data) 276 58
283: 22(i16vec4) Load 282
284: 22(i16vec4) VectorShuffle 283 281 4 5 6 3
Store 282 284
285: 6(int) Load 8(invocation)
286: 268(ptr) AccessChain 34(data) 68 58
287: 22(i16vec4) Load 286
288: 22(i16vec4) GroupNonUniformQuadBroadcast 43 287 42
289: 268(ptr) AccessChain 34(data) 285 58
Store 289 288
290: 6(int) Load 8(invocation)
291: 261(ptr) AccessChain 34(data) 37 58 38
292: 21(int16_t) Load 291
293: 21(int16_t) GroupNonUniformQuadSwap 43 292 38
294: 261(ptr) AccessChain 34(data) 290 58 38
Store 294 293
295: 6(int) Load 8(invocation)
296: 268(ptr) AccessChain 34(data) 47 58
297: 22(i16vec4) Load 296
298:267(i16vec2) VectorShuffle 297 297 0 1
299:267(i16vec2) GroupNonUniformQuadSwap 43 298 38
300: 268(ptr) AccessChain 34(data) 295 58
301: 22(i16vec4) Load 300
302: 22(i16vec4) VectorShuffle 301 299 4 5 2 3
Store 300 302
303: 6(int) Load 8(invocation)
304: 268(ptr) AccessChain 34(data) 58 58
305: 22(i16vec4) Load 304
306:277(i16vec3) VectorShuffle 305 305 0 1 2
307:277(i16vec3) GroupNonUniformQuadSwap 43 306 38
308: 268(ptr) AccessChain 34(data) 303 58
309: 22(i16vec4) Load 308
310: 22(i16vec4) VectorShuffle 309 307 4 5 6 3
Store 308 310
311: 6(int) Load 8(invocation)
312: 268(ptr) AccessChain 34(data) 68 58
313: 22(i16vec4) Load 312
314: 22(i16vec4) GroupNonUniformQuadSwap 43 313 38
315: 268(ptr) AccessChain 34(data) 311 58
Store 315 314
316: 6(int) Load 8(invocation)
317: 261(ptr) AccessChain 34(data) 37 58 38
318: 21(int16_t) Load 317
319: 21(int16_t) GroupNonUniformQuadSwap 43 318 42
320: 261(ptr) AccessChain 34(data) 316 58 38
Store 320 319
321: 6(int) Load 8(invocation)
322: 268(ptr) AccessChain 34(data) 47 58
323: 22(i16vec4) Load 322
324:267(i16vec2) VectorShuffle 323 323 0 1
325:267(i16vec2) GroupNonUniformQuadSwap 43 324 42
326: 268(ptr) AccessChain 34(data) 321 58
327: 22(i16vec4) Load 326
328: 22(i16vec4) VectorShuffle 327 325 4 5 2 3
Store 326 328
329: 6(int) Load 8(invocation)
330: 268(ptr) AccessChain 34(data) 58 58
331: 22(i16vec4) Load 330
332:277(i16vec3) VectorShuffle 331 331 0 1 2
333:277(i16vec3) GroupNonUniformQuadSwap 43 332 42
334: 268(ptr) AccessChain 34(data) 329 58
335: 22(i16vec4) Load 334
336: 22(i16vec4) VectorShuffle 335 333 4 5 6 3
Store 334 336
337: 6(int) Load 8(invocation)
338: 268(ptr) AccessChain 34(data) 68 58
339: 22(i16vec4) Load 338
340: 22(i16vec4) GroupNonUniformQuadSwap 43 339 42
341: 268(ptr) AccessChain 34(data) 337 58
Store 341 340
342: 6(int) Load 8(invocation)
343: 261(ptr) AccessChain 34(data) 37 58 38
344: 21(int16_t) Load 343
345: 21(int16_t) GroupNonUniformQuadSwap 43 344 128
346: 261(ptr) AccessChain 34(data) 342 58 38
Store 346 345
347: 6(int) Load 8(invocation)
348: 268(ptr) AccessChain 34(data) 47 58
349: 22(i16vec4) Load 348
350:267(i16vec2) VectorShuffle 349 349 0 1
351:267(i16vec2) GroupNonUniformQuadSwap 43 350 128
352: 268(ptr) AccessChain 34(data) 347 58
353: 22(i16vec4) Load 352
354: 22(i16vec4) VectorShuffle 353 351 4 5 2 3
Store 352 354
355: 6(int) Load 8(invocation)
356: 268(ptr) AccessChain 34(data) 58 58
357: 22(i16vec4) Load 356
358:277(i16vec3) VectorShuffle 357 357 0 1 2
359:277(i16vec3) GroupNonUniformQuadSwap 43 358 128
360: 268(ptr) AccessChain 34(data) 355 58
361: 22(i16vec4) Load 360
362: 22(i16vec4) VectorShuffle 361 359 4 5 6 3
Store 360 362
363: 6(int) Load 8(invocation)
364: 268(ptr) AccessChain 34(data) 68 58
365: 22(i16vec4) Load 364
366: 22(i16vec4) GroupNonUniformQuadSwap 43 365 128
367: 268(ptr) AccessChain 34(data) 363 58
Store 367 366
368: 6(int) Load 8(invocation)
370: 369(ptr) AccessChain 34(data) 37 68 38
371: 23(int16_t) Load 370
372: 23(int16_t) GroupNonUniformQuadBroadcast 43 371 42
373: 369(ptr) AccessChain 34(data) 368 68 38
Store 373 372
374: 6(int) Load 8(invocation)
377: 376(ptr) AccessChain 34(data) 47 68
378: 24(i16vec4) Load 377
379:375(i16vec2) VectorShuffle 378 378 0 1
380:375(i16vec2) GroupNonUniformQuadBroadcast 43 379 42
381: 376(ptr) AccessChain 34(data) 374 68
382: 24(i16vec4) Load 381
383: 24(i16vec4) VectorShuffle 382 380 4 5 2 3
Store 381 383
384: 6(int) Load 8(invocation)
386: 376(ptr) AccessChain 34(data) 58 68
387: 24(i16vec4) Load 386
388:385(i16vec3) VectorShuffle 387 387 0 1 2
389:385(i16vec3) GroupNonUniformQuadBroadcast 43 388 42
390: 376(ptr) AccessChain 34(data) 384 68
391: 24(i16vec4) Load 390
392: 24(i16vec4) VectorShuffle 391 389 4 5 6 3
Store 390 392
393: 6(int) Load 8(invocation)
394: 376(ptr) AccessChain 34(data) 68 68
395: 24(i16vec4) Load 394
396: 24(i16vec4) GroupNonUniformQuadBroadcast 43 395 42
397: 376(ptr) AccessChain 34(data) 393 68
Store 397 396
398: 6(int) Load 8(invocation)
399: 369(ptr) AccessChain 34(data) 37 68 38
400: 23(int16_t) Load 399
401: 23(int16_t) GroupNonUniformQuadSwap 43 400 38
402: 369(ptr) AccessChain 34(data) 398 68 38
Store 402 401
403: 6(int) Load 8(invocation)
404: 376(ptr) AccessChain 34(data) 47 68
405: 24(i16vec4) Load 404
406:375(i16vec2) VectorShuffle 405 405 0 1
407:375(i16vec2) GroupNonUniformQuadSwap 43 406 38
408: 376(ptr) AccessChain 34(data) 403 68
409: 24(i16vec4) Load 408
410: 24(i16vec4) VectorShuffle 409 407 4 5 2 3
Store 408 410
411: 6(int) Load 8(invocation)
412: 376(ptr) AccessChain 34(data) 58 68
413: 24(i16vec4) Load 412
414:385(i16vec3) VectorShuffle 413 413 0 1 2
415:385(i16vec3) GroupNonUniformQuadSwap 43 414 38
416: 376(ptr) AccessChain 34(data) 411 68
417: 24(i16vec4) Load 416
418: 24(i16vec4) VectorShuffle 417 415 4 5 6 3
Store 416 418
419: 6(int) Load 8(invocation)
420: 376(ptr) AccessChain 34(data) 68 68
421: 24(i16vec4) Load 420
422: 24(i16vec4) GroupNonUniformQuadSwap 43 421 38
423: 376(ptr) AccessChain 34(data) 419 68
Store 423 422
424: 6(int) Load 8(invocation)
425: 369(ptr) AccessChain 34(data) 37 68 38
426: 23(int16_t) Load 425
427: 23(int16_t) GroupNonUniformQuadSwap 43 426 42
428: 369(ptr) AccessChain 34(data) 424 68 38
Store 428 427
429: 6(int) Load 8(invocation)
430: 376(ptr) AccessChain 34(data) 47 68
431: 24(i16vec4) Load 430
432:375(i16vec2) VectorShuffle 431 431 0 1
433:375(i16vec2) GroupNonUniformQuadSwap 43 432 42
434: 376(ptr) AccessChain 34(data) 429 68
435: 24(i16vec4) Load 434
436: 24(i16vec4) VectorShuffle 435 433 4 5 2 3
Store 434 436
437: 6(int) Load 8(invocation)
438: 376(ptr) AccessChain 34(data) 58 68
439: 24(i16vec4) Load 438
440:385(i16vec3) VectorShuffle 439 439 0 1 2
441:385(i16vec3) GroupNonUniformQuadSwap 43 440 42
442: 376(ptr) AccessChain 34(data) 437 68
443: 24(i16vec4) Load 442
444: 24(i16vec4) VectorShuffle 443 441 4 5 6 3
Store 442 444
445: 6(int) Load 8(invocation)
446: 376(ptr) AccessChain 34(data) 68 68
447: 24(i16vec4) Load 446
448: 24(i16vec4) GroupNonUniformQuadSwap 43 447 42
449: 376(ptr) AccessChain 34(data) 445 68
Store 449 448
450: 6(int) Load 8(invocation)
451: 369(ptr) AccessChain 34(data) 37 68 38
452: 23(int16_t) Load 451
453: 23(int16_t) GroupNonUniformQuadSwap 43 452 128
454: 369(ptr) AccessChain 34(data) 450 68 38
Store 454 453
455: 6(int) Load 8(invocation)
456: 376(ptr) AccessChain 34(data) 47 68
457: 24(i16vec4) Load 456
458:375(i16vec2) VectorShuffle 457 457 0 1
459:375(i16vec2) GroupNonUniformQuadSwap 43 458 128
460: 376(ptr) AccessChain 34(data) 455 68
461: 24(i16vec4) Load 460
462: 24(i16vec4) VectorShuffle 461 459 4 5 2 3
Store 460 462
463: 6(int) Load 8(invocation)
464: 376(ptr) AccessChain 34(data) 58 68
465: 24(i16vec4) Load 464
466:385(i16vec3) VectorShuffle 465 465 0 1 2
467:385(i16vec3) GroupNonUniformQuadSwap 43 466 128
468: 376(ptr) AccessChain 34(data) 463 68
469: 24(i16vec4) Load 468
470: 24(i16vec4) VectorShuffle 469 467 4 5 6 3
Store 468 470
471: 6(int) Load 8(invocation)
472: 376(ptr) AccessChain 34(data) 68 68
473: 24(i16vec4) Load 472
474: 24(i16vec4) GroupNonUniformQuadSwap 43 473 128
475: 376(ptr) AccessChain 34(data) 471 68
Store 475 474
476: 6(int) Load 8(invocation)
479: 478(ptr) AccessChain 34(data) 37 477 38
480: 25(int64_t) Load 479
481: 25(int64_t) GroupNonUniformQuadBroadcast 43 480 42
482: 478(ptr) AccessChain 34(data) 476 477 38
Store 482 481
483: 6(int) Load 8(invocation)
486: 485(ptr) AccessChain 34(data) 47 477
487: 26(i64vec4) Load 486
488:484(i64vec2) VectorShuffle 487 487 0 1
489:484(i64vec2) GroupNonUniformQuadBroadcast 43 488 42
490: 485(ptr) AccessChain 34(data) 483 477
491: 26(i64vec4) Load 490
492: 26(i64vec4) VectorShuffle 491 489 4 5 2 3
Store 490 492
493: 6(int) Load 8(invocation)
495: 485(ptr) AccessChain 34(data) 58 477
496: 26(i64vec4) Load 495
497:494(i64vec3) VectorShuffle 496 496 0 1 2
498:494(i64vec3) GroupNonUniformQuadBroadcast 43 497 42
499: 485(ptr) AccessChain 34(data) 493 477
500: 26(i64vec4) Load 499
501: 26(i64vec4) VectorShuffle 500 498 4 5 6 3
Store 499 501
502: 6(int) Load 8(invocation)
503: 485(ptr) AccessChain 34(data) 68 477
504: 26(i64vec4) Load 503
505: 26(i64vec4) GroupNonUniformQuadBroadcast 43 504 42
506: 485(ptr) AccessChain 34(data) 502 477
Store 506 505
507: 6(int) Load 8(invocation)
508: 478(ptr) AccessChain 34(data) 37 477 38
509: 25(int64_t) Load 508
510: 25(int64_t) GroupNonUniformQuadSwap 43 509 38
511: 478(ptr) AccessChain 34(data) 507 477 38
Store 511 510
512: 6(int) Load 8(invocation)
513: 485(ptr) AccessChain 34(data) 47 477
514: 26(i64vec4) Load 513
515:484(i64vec2) VectorShuffle 514 514 0 1
516:484(i64vec2) GroupNonUniformQuadSwap 43 515 38
517: 485(ptr) AccessChain 34(data) 512 477
518: 26(i64vec4) Load 517
519: 26(i64vec4) VectorShuffle 518 516 4 5 2 3
Store 517 519
520: 6(int) Load 8(invocation)
521: 485(ptr) AccessChain 34(data) 58 477
522: 26(i64vec4) Load 521
523:494(i64vec3) VectorShuffle 522 522 0 1 2
524:494(i64vec3) GroupNonUniformQuadSwap 43 523 38
525: 485(ptr) AccessChain 34(data) 520 477
526: 26(i64vec4) Load 525
527: 26(i64vec4) VectorShuffle 526 524 4 5 6 3
Store 525 527
528: 6(int) Load 8(invocation)
529: 485(ptr) AccessChain 34(data) 68 477
530: 26(i64vec4) Load 529
531: 26(i64vec4) GroupNonUniformQuadSwap 43 530 38
532: 485(ptr) AccessChain 34(data) 528 477
Store 532 531
533: 6(int) Load 8(invocation)
534: 478(ptr) AccessChain 34(data) 37 477 38
535: 25(int64_t) Load 534
536: 25(int64_t) GroupNonUniformQuadSwap 43 535 42
537: 478(ptr) AccessChain 34(data) 533 477 38
Store 537 536
538: 6(int) Load 8(invocation)
539: 485(ptr) AccessChain 34(data) 47 477
540: 26(i64vec4) Load 539
541:484(i64vec2) VectorShuffle 540 540 0 1
542:484(i64vec2) GroupNonUniformQuadSwap 43 541 42
543: 485(ptr) AccessChain 34(data) 538 477
544: 26(i64vec4) Load 543
545: 26(i64vec4) VectorShuffle 544 542 4 5 2 3
Store 543 545
546: 6(int) Load 8(invocation)
547: 485(ptr) AccessChain 34(data) 58 477
548: 26(i64vec4) Load 547
549:494(i64vec3) VectorShuffle 548 548 0 1 2
550:494(i64vec3) GroupNonUniformQuadSwap 43 549 42
551: 485(ptr) AccessChain 34(data) 546 477
552: 26(i64vec4) Load 551
553: 26(i64vec4) VectorShuffle 552 550 4 5 6 3
Store 551 553
554: 6(int) Load 8(invocation)
555: 485(ptr) AccessChain 34(data) 68 477
556: 26(i64vec4) Load 555
557: 26(i64vec4) GroupNonUniformQuadSwap 43 556 42
558: 485(ptr) AccessChain 34(data) 554 477
Store 558 557
559: 6(int) Load 8(invocation)
560: 478(ptr) AccessChain 34(data) 37 477 38
561: 25(int64_t) Load 560
562: 25(int64_t) GroupNonUniformQuadSwap 43 561 128
563: 478(ptr) AccessChain 34(data) 559 477 38
Store 563 562
564: 6(int) Load 8(invocation)
565: 485(ptr) AccessChain 34(data) 47 477
566: 26(i64vec4) Load 565
567:484(i64vec2) VectorShuffle 566 566 0 1
568:484(i64vec2) GroupNonUniformQuadSwap 43 567 128
569: 485(ptr) AccessChain 34(data) 564 477
570: 26(i64vec4) Load 569
571: 26(i64vec4) VectorShuffle 570 568 4 5 2 3
Store 569 571
572: 6(int) Load 8(invocation)
573: 485(ptr) AccessChain 34(data) 58 477
574: 26(i64vec4) Load 573
575:494(i64vec3) VectorShuffle 574 574 0 1 2
576:494(i64vec3) GroupNonUniformQuadSwap 43 575 128
577: 485(ptr) AccessChain 34(data) 572 477
578: 26(i64vec4) Load 577
579: 26(i64vec4) VectorShuffle 578 576 4 5 6 3
Store 577 579
580: 6(int) Load 8(invocation)
581: 485(ptr) AccessChain 34(data) 68 477
582: 26(i64vec4) Load 581
583: 26(i64vec4) GroupNonUniformQuadSwap 43 582 128
584: 485(ptr) AccessChain 34(data) 580 477
Store 584 583
585: 6(int) Load 8(invocation)
588: 587(ptr) AccessChain 34(data) 37 586 38
589: 27(int64_t) Load 588
590: 27(int64_t) GroupNonUniformQuadBroadcast 43 589 42
591: 587(ptr) AccessChain 34(data) 585 586 38
Store 591 590
592: 6(int) Load 8(invocation)
595: 594(ptr) AccessChain 34(data) 47 586
596: 28(i64vec4) Load 595
597:593(i64vec2) VectorShuffle 596 596 0 1
598:593(i64vec2) GroupNonUniformQuadBroadcast 43 597 42
599: 594(ptr) AccessChain 34(data) 592 586
600: 28(i64vec4) Load 599
601: 28(i64vec4) VectorShuffle 600 598 4 5 2 3
Store 599 601
602: 6(int) Load 8(invocation)
604: 594(ptr) AccessChain 34(data) 58 586
605: 28(i64vec4) Load 604
606:603(i64vec3) VectorShuffle 605 605 0 1 2
607:603(i64vec3) GroupNonUniformQuadBroadcast 43 606 42
608: 594(ptr) AccessChain 34(data) 602 586
609: 28(i64vec4) Load 608
610: 28(i64vec4) VectorShuffle 609 607 4 5 6 3
Store 608 610
611: 6(int) Load 8(invocation)
612: 594(ptr) AccessChain 34(data) 68 586
613: 28(i64vec4) Load 612
614: 28(i64vec4) GroupNonUniformQuadBroadcast 43 613 42
615: 594(ptr) AccessChain 34(data) 611 586
Store 615 614
616: 6(int) Load 8(invocation)
617: 587(ptr) AccessChain 34(data) 37 586 38
618: 27(int64_t) Load 617
619: 27(int64_t) GroupNonUniformQuadSwap 43 618 38
620: 587(ptr) AccessChain 34(data) 616 586 38
Store 620 619
621: 6(int) Load 8(invocation)
622: 594(ptr) AccessChain 34(data) 47 586
623: 28(i64vec4) Load 622
624:593(i64vec2) VectorShuffle 623 623 0 1
625:593(i64vec2) GroupNonUniformQuadSwap 43 624 38
626: 594(ptr) AccessChain 34(data) 621 586
627: 28(i64vec4) Load 626
628: 28(i64vec4) VectorShuffle 627 625 4 5 2 3
Store 626 628
629: 6(int) Load 8(invocation)
630: 594(ptr) AccessChain 34(data) 58 586
631: 28(i64vec4) Load 630
632:603(i64vec3) VectorShuffle 631 631 0 1 2
633:603(i64vec3) GroupNonUniformQuadSwap 43 632 38
634: 594(ptr) AccessChain 34(data) 629 586
635: 28(i64vec4) Load 634
636: 28(i64vec4) VectorShuffle 635 633 4 5 6 3
Store 634 636
637: 6(int) Load 8(invocation)
638: 594(ptr) AccessChain 34(data) 68 586
639: 28(i64vec4) Load 638
640: 28(i64vec4) GroupNonUniformQuadSwap 43 639 38
641: 594(ptr) AccessChain 34(data) 637 586
Store 641 640
642: 6(int) Load 8(invocation)
643: 587(ptr) AccessChain 34(data) 37 586 38
644: 27(int64_t) Load 643
645: 27(int64_t) GroupNonUniformQuadSwap 43 644 42
646: 587(ptr) AccessChain 34(data) 642 586 38
Store 646 645
647: 6(int) Load 8(invocation)
648: 594(ptr) AccessChain 34(data) 47 586
649: 28(i64vec4) Load 648
650:593(i64vec2) VectorShuffle 649 649 0 1
651:593(i64vec2) GroupNonUniformQuadSwap 43 650 42
652: 594(ptr) AccessChain 34(data) 647 586
653: 28(i64vec4) Load 652
654: 28(i64vec4) VectorShuffle 653 651 4 5 2 3
Store 652 654
655: 6(int) Load 8(invocation)
656: 594(ptr) AccessChain 34(data) 58 586
657: 28(i64vec4) Load 656
658:603(i64vec3) VectorShuffle 657 657 0 1 2
659:603(i64vec3) GroupNonUniformQuadSwap 43 658 42
660: 594(ptr) AccessChain 34(data) 655 586
661: 28(i64vec4) Load 660
662: 28(i64vec4) VectorShuffle 661 659 4 5 6 3
Store 660 662
663: 6(int) Load 8(invocation)
664: 594(ptr) AccessChain 34(data) 68 586
665: 28(i64vec4) Load 664
666: 28(i64vec4) GroupNonUniformQuadSwap 43 665 42
667: 594(ptr) AccessChain 34(data) 663 586
Store 667 666
668: 6(int) Load 8(invocation)
669: 587(ptr) AccessChain 34(data) 37 586 38
670: 27(int64_t) Load 669
671: 27(int64_t) GroupNonUniformQuadSwap 43 670 128
672: 587(ptr) AccessChain 34(data) 668 586 38
Store 672 671
673: 6(int) Load 8(invocation)
674: 594(ptr) AccessChain 34(data) 47 586
675: 28(i64vec4) Load 674
676:593(i64vec2) VectorShuffle 675 675 0 1
677:593(i64vec2) GroupNonUniformQuadSwap 43 676 128
678: 594(ptr) AccessChain 34(data) 673 586
679: 28(i64vec4) Load 678
680: 28(i64vec4) VectorShuffle 679 677 4 5 2 3
Store 678 680
681: 6(int) Load 8(invocation)
682: 594(ptr) AccessChain 34(data) 58 586
683: 28(i64vec4) Load 682
684:603(i64vec3) VectorShuffle 683 683 0 1 2
685:603(i64vec3) GroupNonUniformQuadSwap 43 684 128
686: 594(ptr) AccessChain 34(data) 681 586
687: 28(i64vec4) Load 686
688: 28(i64vec4) VectorShuffle 687 685 4 5 6 3
Store 686 688
689: 6(int) Load 8(invocation)
690: 594(ptr) AccessChain 34(data) 68 586
691: 28(i64vec4) Load 690
692: 28(i64vec4) GroupNonUniformQuadSwap 43 691 128
693: 594(ptr) AccessChain 34(data) 689 586
Store 693 692
694: 6(int) Load 8(invocation)
697: 696(ptr) AccessChain 34(data) 37 695 38
698:29(float16_t) Load 697
699:29(float16_t) GroupNonUniformQuadBroadcast 43 698 42
700: 696(ptr) AccessChain 34(data) 694 695 38
Store 700 699
701: 6(int) Load 8(invocation)
704: 703(ptr) AccessChain 34(data) 47 695
705: 30(f16vec4) Load 704
706:702(f16vec2) VectorShuffle 705 705 0 1
707:702(f16vec2) GroupNonUniformQuadBroadcast 43 706 42
708: 703(ptr) AccessChain 34(data) 701 695
709: 30(f16vec4) Load 708
710: 30(f16vec4) VectorShuffle 709 707 4 5 2 3
Store 708 710
711: 6(int) Load 8(invocation)
713: 703(ptr) AccessChain 34(data) 58 695
714: 30(f16vec4) Load 713
715:712(f16vec3) VectorShuffle 714 714 0 1 2
716:712(f16vec3) GroupNonUniformQuadBroadcast 43 715 42
717: 703(ptr) AccessChain 34(data) 711 695
718: 30(f16vec4) Load 717
719: 30(f16vec4) VectorShuffle 718 716 4 5 6 3
Store 717 719
720: 6(int) Load 8(invocation)
721: 703(ptr) AccessChain 34(data) 68 695
722: 30(f16vec4) Load 721
723: 30(f16vec4) GroupNonUniformQuadBroadcast 43 722 42
724: 703(ptr) AccessChain 34(data) 720 695
Store 724 723
725: 6(int) Load 8(invocation)
726: 696(ptr) AccessChain 34(data) 37 695 38
727:29(float16_t) Load 726
728:29(float16_t) GroupNonUniformQuadSwap 43 727 38
729: 696(ptr) AccessChain 34(data) 725 695 38
Store 729 728
730: 6(int) Load 8(invocation)
731: 703(ptr) AccessChain 34(data) 47 695
732: 30(f16vec4) Load 731
733:702(f16vec2) VectorShuffle 732 732 0 1
734:702(f16vec2) GroupNonUniformQuadSwap 43 733 38
735: 703(ptr) AccessChain 34(data) 730 695
736: 30(f16vec4) Load 735
737: 30(f16vec4) VectorShuffle 736 734 4 5 2 3
Store 735 737
738: 6(int) Load 8(invocation)
739: 703(ptr) AccessChain 34(data) 58 695
740: 30(f16vec4) Load 739
741:712(f16vec3) VectorShuffle 740 740 0 1 2
742:712(f16vec3) GroupNonUniformQuadSwap 43 741 38
743: 703(ptr) AccessChain 34(data) 738 695
744: 30(f16vec4) Load 743
745: 30(f16vec4) VectorShuffle 744 742 4 5 6 3
Store 743 745
746: 6(int) Load 8(invocation)
747: 703(ptr) AccessChain 34(data) 68 695
748: 30(f16vec4) Load 747
749: 30(f16vec4) GroupNonUniformQuadSwap 43 748 38
750: 703(ptr) AccessChain 34(data) 746 695
Store 750 749
751: 6(int) Load 8(invocation)
752: 696(ptr) AccessChain 34(data) 37 695 38
753:29(float16_t) Load 752
754:29(float16_t) GroupNonUniformQuadSwap 43 753 42
755: 696(ptr) AccessChain 34(data) 751 695 38
Store 755 754
756: 6(int) Load 8(invocation)
757: 703(ptr) AccessChain 34(data) 47 695
758: 30(f16vec4) Load 757
759:702(f16vec2) VectorShuffle 758 758 0 1
760:702(f16vec2) GroupNonUniformQuadSwap 43 759 42
761: 703(ptr) AccessChain 34(data) 756 695
762: 30(f16vec4) Load 761
763: 30(f16vec4) VectorShuffle 762 760 4 5 2 3
Store 761 763
764: 6(int) Load 8(invocation)
765: 703(ptr) AccessChain 34(data) 58 695
766: 30(f16vec4) Load 765
767:712(f16vec3) VectorShuffle 766 766 0 1 2
768:712(f16vec3) GroupNonUniformQuadSwap 43 767 42
769: 703(ptr) AccessChain 34(data) 764 695
770: 30(f16vec4) Load 769
771: 30(f16vec4) VectorShuffle 770 768 4 5 6 3
Store 769 771
772: 6(int) Load 8(invocation)
773: 703(ptr) AccessChain 34(data) 68 695
774: 30(f16vec4) Load 773
775: 30(f16vec4) GroupNonUniformQuadSwap 43 774 42
776: 703(ptr) AccessChain 34(data) 772 695
Store 776 775
777: 6(int) Load 8(invocation)
778: 696(ptr) AccessChain 34(data) 37 695 38
779:29(float16_t) Load 778
780:29(float16_t) GroupNonUniformQuadSwap 43 779 128
781: 696(ptr) AccessChain 34(data) 777 695 38
Store 781 780
782: 6(int) Load 8(invocation)
783: 703(ptr) AccessChain 34(data) 47 695
784: 30(f16vec4) Load 783
785:702(f16vec2) VectorShuffle 784 784 0 1
786:702(f16vec2) GroupNonUniformQuadSwap 43 785 128
787: 703(ptr) AccessChain 34(data) 782 695
788: 30(f16vec4) Load 787
789: 30(f16vec4) VectorShuffle 788 786 4 5 2 3
Store 787 789
790: 6(int) Load 8(invocation)
791: 703(ptr) AccessChain 34(data) 58 695
792: 30(f16vec4) Load 791
793:712(f16vec3) VectorShuffle 792 792 0 1 2
794:712(f16vec3) GroupNonUniformQuadSwap 43 793 128
795: 703(ptr) AccessChain 34(data) 790 695
796: 30(f16vec4) Load 795
797: 30(f16vec4) VectorShuffle 796 794 4 5 6 3
Store 795 797
798: 6(int) Load 8(invocation)
799: 703(ptr) AccessChain 34(data) 68 695
800: 30(f16vec4) Load 799
801: 30(f16vec4) GroupNonUniformQuadSwap 43 800 128
802: 703(ptr) AccessChain 34(data) 798 695
Store 802 801
Return
FunctionEnd

View File

@ -0,0 +1,117 @@
spv.subgroupExtendedTypesQuadNeg.comp
ERROR: 0:26: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:27: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:28: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:29: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:31: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:32: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:33: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:34: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:36: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:37: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:38: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:39: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:41: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:42: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:43: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:44: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:46: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:47: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:48: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:49: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:51: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:52: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:53: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:54: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:56: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:57: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:58: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:59: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:61: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:62: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:63: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:64: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:66: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:67: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:68: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:69: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:71: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:72: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:73: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:74: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:76: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:77: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:78: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:79: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:81: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:82: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:83: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:84: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:86: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:87: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:88: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:89: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:91: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:92: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:93: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:94: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:96: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:97: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:98: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:99: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:101: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:102: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:103: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:104: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:106: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:107: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:108: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:109: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:111: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:112: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:113: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:114: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:116: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:117: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:118: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:119: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:121: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:122: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:123: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:124: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:126: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:127: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:128: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:129: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:131: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:132: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:133: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:134: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:136: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:137: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:138: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:139: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:141: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:142: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:143: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:144: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:146: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:147: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:148: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:149: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:151: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:152: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:153: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:154: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:156: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:157: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:158: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:159: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:161: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:162: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:163: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:164: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 112 compilation errors. No code generated.
SPIR-V is not generated for failed compile or link

View File

@ -0,0 +1,616 @@
spv.subgroupExtendedTypesShuffle.comp
// Module Version 10300
// Generated by (magic number): 80007
// Id's are bound by 497
Capability Shader
Capability Float16
Capability Int64
Capability Int16
Capability Int8
Capability GroupNonUniform
Capability GroupNonUniformShuffle
Capability StorageUniformBufferBlock16
Capability StorageBuffer8BitAccess
Extension "SPV_KHR_8bit_storage"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint GLCompute 4 "main" 10 12
ExecutionMode 4 LocalSize 8 1 1
Source GLSL 450
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16"
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int16"
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int64"
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int8"
SourceExtension "GL_EXT_shader_subgroup_extended_types_float16"
SourceExtension "GL_EXT_shader_subgroup_extended_types_int16"
SourceExtension "GL_EXT_shader_subgroup_extended_types_int64"
SourceExtension "GL_EXT_shader_subgroup_extended_types_int8"
SourceExtension "GL_KHR_shader_subgroup_basic"
SourceExtension "GL_KHR_shader_subgroup_shuffle"
Name 4 "main"
Name 8 "invocation"
Name 10 "gl_SubgroupInvocationID"
Name 12 "gl_SubgroupSize"
Name 31 "Buffers"
MemberName 31(Buffers) 0 "i8"
MemberName 31(Buffers) 1 "u8"
MemberName 31(Buffers) 2 "i16"
MemberName 31(Buffers) 3 "u16"
MemberName 31(Buffers) 4 "i64"
MemberName 31(Buffers) 5 "u64"
MemberName 31(Buffers) 6 "f16"
Name 34 "data"
Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision
Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
Decorate 11 RelaxedPrecision
Decorate 12(gl_SubgroupSize) RelaxedPrecision
Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize
Decorate 13 RelaxedPrecision
Decorate 14 RelaxedPrecision
Decorate 16 RelaxedPrecision
MemberDecorate 31(Buffers) 0 Offset 0
MemberDecorate 31(Buffers) 1 Offset 4
MemberDecorate 31(Buffers) 2 Offset 8
MemberDecorate 31(Buffers) 3 Offset 16
MemberDecorate 31(Buffers) 4 Offset 32
MemberDecorate 31(Buffers) 5 Offset 64
MemberDecorate 31(Buffers) 6 Offset 96
Decorate 31(Buffers) Block
Decorate 34(data) DescriptorSet 0
Decorate 34(data) Binding 0
Decorate 496 BuiltIn WorkgroupSize
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
7: TypePointer Function 6(int)
9: TypePointer Input 6(int)
10(gl_SubgroupInvocationID): 9(ptr) Variable Input
12(gl_SubgroupSize): 9(ptr) Variable Input
15: 6(int) Constant 4
17: TypeInt 8 1
18: TypeVector 17(int8_t) 4
19: TypeInt 8 0
20: TypeVector 19(int8_t) 4
21: TypeInt 16 1
22: TypeVector 21(int16_t) 4
23: TypeInt 16 0
24: TypeVector 23(int16_t) 4
25: TypeInt 64 1
26: TypeVector 25(int64_t) 4
27: TypeInt 64 0
28: TypeVector 27(int64_t) 4
29: TypeFloat 16
30: TypeVector 29(float16_t) 4
31(Buffers): TypeStruct 18(i8vec4) 20(i8vec4) 22(i16vec4) 24(i16vec4) 26(i64vec4) 28(i64vec4) 30(f16vec4)
32: TypeArray 31(Buffers) 15
33: TypePointer StorageBuffer 32
34(data): 33(ptr) Variable StorageBuffer
36: TypeInt 32 1
37: 36(int) Constant 0
38: 6(int) Constant 0
39: TypePointer StorageBuffer 17(int8_t)
43: 6(int) Constant 3
47: 36(int) Constant 1
48: TypeVector 17(int8_t) 2
49: TypePointer StorageBuffer 18(i8vec4)
59: 36(int) Constant 2
60: TypeVector 17(int8_t) 3
70: 36(int) Constant 3
107: TypePointer StorageBuffer 19(int8_t)
114: TypeVector 19(int8_t) 2
115: TypePointer StorageBuffer 20(i8vec4)
125: TypeVector 19(int8_t) 3
171: TypePointer StorageBuffer 21(int16_t)
178: TypeVector 21(int16_t) 2
179: TypePointer StorageBuffer 22(i16vec4)
189: TypeVector 21(int16_t) 3
235: TypePointer StorageBuffer 23(int16_t)
242: TypeVector 23(int16_t) 2
243: TypePointer StorageBuffer 24(i16vec4)
253: TypeVector 23(int16_t) 3
299: 36(int) Constant 4
300: TypePointer StorageBuffer 25(int64_t)
307: TypeVector 25(int64_t) 2
308: TypePointer StorageBuffer 26(i64vec4)
318: TypeVector 25(int64_t) 3
364: 36(int) Constant 5
365: TypePointer StorageBuffer 27(int64_t)
372: TypeVector 27(int64_t) 2
373: TypePointer StorageBuffer 28(i64vec4)
383: TypeVector 27(int64_t) 3
429: 36(int) Constant 6
430: TypePointer StorageBuffer 29(float16_t)
437: TypeVector 29(float16_t) 2
438: TypePointer StorageBuffer 30(f16vec4)
448: TypeVector 29(float16_t) 3
493: TypeVector 6(int) 3
494: 6(int) Constant 8
495: 6(int) Constant 1
496: 493(ivec3) ConstantComposite 494 495 495
4(main): 2 Function None 3
5: Label
8(invocation): 7(ptr) Variable Function
11: 6(int) Load 10(gl_SubgroupInvocationID)
13: 6(int) Load 12(gl_SubgroupSize)
14: 6(int) IAdd 11 13
16: 6(int) UMod 14 15
Store 8(invocation) 16
35: 6(int) Load 8(invocation)
40: 39(ptr) AccessChain 34(data) 37 37 38
41: 17(int8_t) Load 40
42: 6(int) Load 8(invocation)
44: 17(int8_t) GroupNonUniformShuffle 43 41 42
45: 39(ptr) AccessChain 34(data) 35 37 38
Store 45 44
46: 6(int) Load 8(invocation)
50: 49(ptr) AccessChain 34(data) 47 37
51: 18(i8vec4) Load 50
52: 48(i8vec2) VectorShuffle 51 51 0 1
53: 6(int) Load 8(invocation)
54: 48(i8vec2) GroupNonUniformShuffle 43 52 53
55: 49(ptr) AccessChain 34(data) 46 37
56: 18(i8vec4) Load 55
57: 18(i8vec4) VectorShuffle 56 54 4 5 2 3
Store 55 57
58: 6(int) Load 8(invocation)
61: 49(ptr) AccessChain 34(data) 59 37
62: 18(i8vec4) Load 61
63: 60(i8vec3) VectorShuffle 62 62 0 1 2
64: 6(int) Load 8(invocation)
65: 60(i8vec3) GroupNonUniformShuffle 43 63 64
66: 49(ptr) AccessChain 34(data) 58 37
67: 18(i8vec4) Load 66
68: 18(i8vec4) VectorShuffle 67 65 4 5 6 3
Store 66 68
69: 6(int) Load 8(invocation)
71: 49(ptr) AccessChain 34(data) 70 37
72: 18(i8vec4) Load 71
73: 6(int) Load 8(invocation)
74: 18(i8vec4) GroupNonUniformShuffle 43 72 73
75: 49(ptr) AccessChain 34(data) 69 37
Store 75 74
76: 6(int) Load 8(invocation)
77: 39(ptr) AccessChain 34(data) 37 37 38
78: 17(int8_t) Load 77
79: 6(int) Load 8(invocation)
80: 17(int8_t) GroupNonUniformShuffleXor 43 78 79
81: 39(ptr) AccessChain 34(data) 76 37 38
Store 81 80
82: 6(int) Load 8(invocation)
83: 49(ptr) AccessChain 34(data) 47 37
84: 18(i8vec4) Load 83
85: 48(i8vec2) VectorShuffle 84 84 0 1
86: 6(int) Load 8(invocation)
87: 48(i8vec2) GroupNonUniformShuffleXor 43 85 86
88: 49(ptr) AccessChain 34(data) 82 37
89: 18(i8vec4) Load 88
90: 18(i8vec4) VectorShuffle 89 87 4 5 2 3
Store 88 90
91: 6(int) Load 8(invocation)
92: 49(ptr) AccessChain 34(data) 59 37
93: 18(i8vec4) Load 92
94: 60(i8vec3) VectorShuffle 93 93 0 1 2
95: 6(int) Load 8(invocation)
96: 60(i8vec3) GroupNonUniformShuffleXor 43 94 95
97: 49(ptr) AccessChain 34(data) 91 37
98: 18(i8vec4) Load 97
99: 18(i8vec4) VectorShuffle 98 96 4 5 6 3
Store 97 99
100: 6(int) Load 8(invocation)
101: 49(ptr) AccessChain 34(data) 70 37
102: 18(i8vec4) Load 101
103: 6(int) Load 8(invocation)
104: 18(i8vec4) GroupNonUniformShuffleXor 43 102 103
105: 49(ptr) AccessChain 34(data) 100 37
Store 105 104
106: 6(int) Load 8(invocation)
108: 107(ptr) AccessChain 34(data) 37 47 38
109: 19(int8_t) Load 108
110: 6(int) Load 8(invocation)
111: 19(int8_t) GroupNonUniformShuffle 43 109 110
112: 107(ptr) AccessChain 34(data) 106 47 38
Store 112 111
113: 6(int) Load 8(invocation)
116: 115(ptr) AccessChain 34(data) 47 47
117: 20(i8vec4) Load 116
118: 114(i8vec2) VectorShuffle 117 117 0 1
119: 6(int) Load 8(invocation)
120: 114(i8vec2) GroupNonUniformShuffle 43 118 119
121: 115(ptr) AccessChain 34(data) 113 47
122: 20(i8vec4) Load 121
123: 20(i8vec4) VectorShuffle 122 120 4 5 2 3
Store 121 123
124: 6(int) Load 8(invocation)
126: 115(ptr) AccessChain 34(data) 59 47
127: 20(i8vec4) Load 126
128: 125(i8vec3) VectorShuffle 127 127 0 1 2
129: 6(int) Load 8(invocation)
130: 125(i8vec3) GroupNonUniformShuffle 43 128 129
131: 115(ptr) AccessChain 34(data) 124 47
132: 20(i8vec4) Load 131
133: 20(i8vec4) VectorShuffle 132 130 4 5 6 3
Store 131 133
134: 6(int) Load 8(invocation)
135: 115(ptr) AccessChain 34(data) 70 47
136: 20(i8vec4) Load 135
137: 6(int) Load 8(invocation)
138: 20(i8vec4) GroupNonUniformShuffle 43 136 137
139: 115(ptr) AccessChain 34(data) 134 47
Store 139 138
140: 6(int) Load 8(invocation)
141: 107(ptr) AccessChain 34(data) 37 47 38
142: 19(int8_t) Load 141
143: 6(int) Load 8(invocation)
144: 19(int8_t) GroupNonUniformShuffleXor 43 142 143
145: 107(ptr) AccessChain 34(data) 140 47 38
Store 145 144
146: 6(int) Load 8(invocation)
147: 115(ptr) AccessChain 34(data) 47 47
148: 20(i8vec4) Load 147
149: 114(i8vec2) VectorShuffle 148 148 0 1
150: 6(int) Load 8(invocation)
151: 114(i8vec2) GroupNonUniformShuffleXor 43 149 150
152: 115(ptr) AccessChain 34(data) 146 47
153: 20(i8vec4) Load 152
154: 20(i8vec4) VectorShuffle 153 151 4 5 2 3
Store 152 154
155: 6(int) Load 8(invocation)
156: 115(ptr) AccessChain 34(data) 59 47
157: 20(i8vec4) Load 156
158: 125(i8vec3) VectorShuffle 157 157 0 1 2
159: 6(int) Load 8(invocation)
160: 125(i8vec3) GroupNonUniformShuffleXor 43 158 159
161: 115(ptr) AccessChain 34(data) 155 47
162: 20(i8vec4) Load 161
163: 20(i8vec4) VectorShuffle 162 160 4 5 6 3
Store 161 163
164: 6(int) Load 8(invocation)
165: 115(ptr) AccessChain 34(data) 70 47
166: 20(i8vec4) Load 165
167: 6(int) Load 8(invocation)
168: 20(i8vec4) GroupNonUniformShuffleXor 43 166 167
169: 115(ptr) AccessChain 34(data) 164 47
Store 169 168
170: 6(int) Load 8(invocation)
172: 171(ptr) AccessChain 34(data) 37 59 38
173: 21(int16_t) Load 172
174: 6(int) Load 8(invocation)
175: 21(int16_t) GroupNonUniformShuffle 43 173 174
176: 171(ptr) AccessChain 34(data) 170 59 38
Store 176 175
177: 6(int) Load 8(invocation)
180: 179(ptr) AccessChain 34(data) 47 59
181: 22(i16vec4) Load 180
182:178(i16vec2) VectorShuffle 181 181 0 1
183: 6(int) Load 8(invocation)
184:178(i16vec2) GroupNonUniformShuffle 43 182 183
185: 179(ptr) AccessChain 34(data) 177 59
186: 22(i16vec4) Load 185
187: 22(i16vec4) VectorShuffle 186 184 4 5 2 3
Store 185 187
188: 6(int) Load 8(invocation)
190: 179(ptr) AccessChain 34(data) 59 59
191: 22(i16vec4) Load 190
192:189(i16vec3) VectorShuffle 191 191 0 1 2
193: 6(int) Load 8(invocation)
194:189(i16vec3) GroupNonUniformShuffle 43 192 193
195: 179(ptr) AccessChain 34(data) 188 59
196: 22(i16vec4) Load 195
197: 22(i16vec4) VectorShuffle 196 194 4 5 6 3
Store 195 197
198: 6(int) Load 8(invocation)
199: 179(ptr) AccessChain 34(data) 70 59
200: 22(i16vec4) Load 199
201: 6(int) Load 8(invocation)
202: 22(i16vec4) GroupNonUniformShuffle 43 200 201
203: 179(ptr) AccessChain 34(data) 198 59
Store 203 202
204: 6(int) Load 8(invocation)
205: 171(ptr) AccessChain 34(data) 37 59 38
206: 21(int16_t) Load 205
207: 6(int) Load 8(invocation)
208: 21(int16_t) GroupNonUniformShuffleXor 43 206 207
209: 171(ptr) AccessChain 34(data) 204 59 38
Store 209 208
210: 6(int) Load 8(invocation)
211: 179(ptr) AccessChain 34(data) 47 59
212: 22(i16vec4) Load 211
213:178(i16vec2) VectorShuffle 212 212 0 1
214: 6(int) Load 8(invocation)
215:178(i16vec2) GroupNonUniformShuffleXor 43 213 214
216: 179(ptr) AccessChain 34(data) 210 59
217: 22(i16vec4) Load 216
218: 22(i16vec4) VectorShuffle 217 215 4 5 2 3
Store 216 218
219: 6(int) Load 8(invocation)
220: 179(ptr) AccessChain 34(data) 59 59
221: 22(i16vec4) Load 220
222:189(i16vec3) VectorShuffle 221 221 0 1 2
223: 6(int) Load 8(invocation)
224:189(i16vec3) GroupNonUniformShuffleXor 43 222 223
225: 179(ptr) AccessChain 34(data) 219 59
226: 22(i16vec4) Load 225
227: 22(i16vec4) VectorShuffle 226 224 4 5 6 3
Store 225 227
228: 6(int) Load 8(invocation)
229: 179(ptr) AccessChain 34(data) 70 59
230: 22(i16vec4) Load 229
231: 6(int) Load 8(invocation)
232: 22(i16vec4) GroupNonUniformShuffleXor 43 230 231
233: 179(ptr) AccessChain 34(data) 228 59
Store 233 232
234: 6(int) Load 8(invocation)
236: 235(ptr) AccessChain 34(data) 37 70 38
237: 23(int16_t) Load 236
238: 6(int) Load 8(invocation)
239: 23(int16_t) GroupNonUniformShuffle 43 237 238
240: 235(ptr) AccessChain 34(data) 234 70 38
Store 240 239
241: 6(int) Load 8(invocation)
244: 243(ptr) AccessChain 34(data) 47 70
245: 24(i16vec4) Load 244
246:242(i16vec2) VectorShuffle 245 245 0 1
247: 6(int) Load 8(invocation)
248:242(i16vec2) GroupNonUniformShuffle 43 246 247
249: 243(ptr) AccessChain 34(data) 241 70
250: 24(i16vec4) Load 249
251: 24(i16vec4) VectorShuffle 250 248 4 5 2 3
Store 249 251
252: 6(int) Load 8(invocation)
254: 243(ptr) AccessChain 34(data) 59 70
255: 24(i16vec4) Load 254
256:253(i16vec3) VectorShuffle 255 255 0 1 2
257: 6(int) Load 8(invocation)
258:253(i16vec3) GroupNonUniformShuffle 43 256 257
259: 243(ptr) AccessChain 34(data) 252 70
260: 24(i16vec4) Load 259
261: 24(i16vec4) VectorShuffle 260 258 4 5 6 3
Store 259 261
262: 6(int) Load 8(invocation)
263: 243(ptr) AccessChain 34(data) 70 70
264: 24(i16vec4) Load 263
265: 6(int) Load 8(invocation)
266: 24(i16vec4) GroupNonUniformShuffle 43 264 265
267: 243(ptr) AccessChain 34(data) 262 70
Store 267 266
268: 6(int) Load 8(invocation)
269: 235(ptr) AccessChain 34(data) 37 70 38
270: 23(int16_t) Load 269
271: 6(int) Load 8(invocation)
272: 23(int16_t) GroupNonUniformShuffleXor 43 270 271
273: 235(ptr) AccessChain 34(data) 268 70 38
Store 273 272
274: 6(int) Load 8(invocation)
275: 243(ptr) AccessChain 34(data) 47 70
276: 24(i16vec4) Load 275
277:242(i16vec2) VectorShuffle 276 276 0 1
278: 6(int) Load 8(invocation)
279:242(i16vec2) GroupNonUniformShuffleXor 43 277 278
280: 243(ptr) AccessChain 34(data) 274 70
281: 24(i16vec4) Load 280
282: 24(i16vec4) VectorShuffle 281 279 4 5 2 3
Store 280 282
283: 6(int) Load 8(invocation)
284: 243(ptr) AccessChain 34(data) 59 70
285: 24(i16vec4) Load 284
286:253(i16vec3) VectorShuffle 285 285 0 1 2
287: 6(int) Load 8(invocation)
288:253(i16vec3) GroupNonUniformShuffleXor 43 286 287
289: 243(ptr) AccessChain 34(data) 283 70
290: 24(i16vec4) Load 289
291: 24(i16vec4) VectorShuffle 290 288 4 5 6 3
Store 289 291
292: 6(int) Load 8(invocation)
293: 243(ptr) AccessChain 34(data) 70 70
294: 24(i16vec4) Load 293
295: 6(int) Load 8(invocation)
296: 24(i16vec4) GroupNonUniformShuffleXor 43 294 295
297: 243(ptr) AccessChain 34(data) 292 70
Store 297 296
298: 6(int) Load 8(invocation)
301: 300(ptr) AccessChain 34(data) 37 299 38
302: 25(int64_t) Load 301
303: 6(int) Load 8(invocation)
304: 25(int64_t) GroupNonUniformShuffle 43 302 303
305: 300(ptr) AccessChain 34(data) 298 299 38
Store 305 304
306: 6(int) Load 8(invocation)
309: 308(ptr) AccessChain 34(data) 47 299
310: 26(i64vec4) Load 309
311:307(i64vec2) VectorShuffle 310 310 0 1
312: 6(int) Load 8(invocation)
313:307(i64vec2) GroupNonUniformShuffle 43 311 312
314: 308(ptr) AccessChain 34(data) 306 299
315: 26(i64vec4) Load 314
316: 26(i64vec4) VectorShuffle 315 313 4 5 2 3
Store 314 316
317: 6(int) Load 8(invocation)
319: 308(ptr) AccessChain 34(data) 59 299
320: 26(i64vec4) Load 319
321:318(i64vec3) VectorShuffle 320 320 0 1 2
322: 6(int) Load 8(invocation)
323:318(i64vec3) GroupNonUniformShuffle 43 321 322
324: 308(ptr) AccessChain 34(data) 317 299
325: 26(i64vec4) Load 324
326: 26(i64vec4) VectorShuffle 325 323 4 5 6 3
Store 324 326
327: 6(int) Load 8(invocation)
328: 308(ptr) AccessChain 34(data) 70 299
329: 26(i64vec4) Load 328
330: 6(int) Load 8(invocation)
331: 26(i64vec4) GroupNonUniformShuffle 43 329 330
332: 308(ptr) AccessChain 34(data) 327 299
Store 332 331
333: 6(int) Load 8(invocation)
334: 300(ptr) AccessChain 34(data) 37 299 38
335: 25(int64_t) Load 334
336: 6(int) Load 8(invocation)
337: 25(int64_t) GroupNonUniformShuffleXor 43 335 336
338: 300(ptr) AccessChain 34(data) 333 299 38
Store 338 337
339: 6(int) Load 8(invocation)
340: 308(ptr) AccessChain 34(data) 47 299
341: 26(i64vec4) Load 340
342:307(i64vec2) VectorShuffle 341 341 0 1
343: 6(int) Load 8(invocation)
344:307(i64vec2) GroupNonUniformShuffleXor 43 342 343
345: 308(ptr) AccessChain 34(data) 339 299
346: 26(i64vec4) Load 345
347: 26(i64vec4) VectorShuffle 346 344 4 5 2 3
Store 345 347
348: 6(int) Load 8(invocation)
349: 308(ptr) AccessChain 34(data) 59 299
350: 26(i64vec4) Load 349
351:318(i64vec3) VectorShuffle 350 350 0 1 2
352: 6(int) Load 8(invocation)
353:318(i64vec3) GroupNonUniformShuffleXor 43 351 352
354: 308(ptr) AccessChain 34(data) 348 299
355: 26(i64vec4) Load 354
356: 26(i64vec4) VectorShuffle 355 353 4 5 6 3
Store 354 356
357: 6(int) Load 8(invocation)
358: 308(ptr) AccessChain 34(data) 70 299
359: 26(i64vec4) Load 358
360: 6(int) Load 8(invocation)
361: 26(i64vec4) GroupNonUniformShuffleXor 43 359 360
362: 308(ptr) AccessChain 34(data) 357 299
Store 362 361
363: 6(int) Load 8(invocation)
366: 365(ptr) AccessChain 34(data) 37 364 38
367: 27(int64_t) Load 366
368: 6(int) Load 8(invocation)
369: 27(int64_t) GroupNonUniformShuffle 43 367 368
370: 365(ptr) AccessChain 34(data) 363 364 38
Store 370 369
371: 6(int) Load 8(invocation)
374: 373(ptr) AccessChain 34(data) 47 364
375: 28(i64vec4) Load 374
376:372(i64vec2) VectorShuffle 375 375 0 1
377: 6(int) Load 8(invocation)
378:372(i64vec2) GroupNonUniformShuffle 43 376 377
379: 373(ptr) AccessChain 34(data) 371 364
380: 28(i64vec4) Load 379
381: 28(i64vec4) VectorShuffle 380 378 4 5 2 3
Store 379 381
382: 6(int) Load 8(invocation)
384: 373(ptr) AccessChain 34(data) 59 364
385: 28(i64vec4) Load 384
386:383(i64vec3) VectorShuffle 385 385 0 1 2
387: 6(int) Load 8(invocation)
388:383(i64vec3) GroupNonUniformShuffle 43 386 387
389: 373(ptr) AccessChain 34(data) 382 364
390: 28(i64vec4) Load 389
391: 28(i64vec4) VectorShuffle 390 388 4 5 6 3
Store 389 391
392: 6(int) Load 8(invocation)
393: 373(ptr) AccessChain 34(data) 70 364
394: 28(i64vec4) Load 393
395: 6(int) Load 8(invocation)
396: 28(i64vec4) GroupNonUniformShuffle 43 394 395
397: 373(ptr) AccessChain 34(data) 392 364
Store 397 396
398: 6(int) Load 8(invocation)
399: 365(ptr) AccessChain 34(data) 37 364 38
400: 27(int64_t) Load 399
401: 6(int) Load 8(invocation)
402: 27(int64_t) GroupNonUniformShuffleXor 43 400 401
403: 365(ptr) AccessChain 34(data) 398 364 38
Store 403 402
404: 6(int) Load 8(invocation)
405: 373(ptr) AccessChain 34(data) 47 364
406: 28(i64vec4) Load 405
407:372(i64vec2) VectorShuffle 406 406 0 1
408: 6(int) Load 8(invocation)
409:372(i64vec2) GroupNonUniformShuffleXor 43 407 408
410: 373(ptr) AccessChain 34(data) 404 364
411: 28(i64vec4) Load 410
412: 28(i64vec4) VectorShuffle 411 409 4 5 2 3
Store 410 412
413: 6(int) Load 8(invocation)
414: 373(ptr) AccessChain 34(data) 59 364
415: 28(i64vec4) Load 414
416:383(i64vec3) VectorShuffle 415 415 0 1 2
417: 6(int) Load 8(invocation)
418:383(i64vec3) GroupNonUniformShuffleXor 43 416 417
419: 373(ptr) AccessChain 34(data) 413 364
420: 28(i64vec4) Load 419
421: 28(i64vec4) VectorShuffle 420 418 4 5 6 3
Store 419 421
422: 6(int) Load 8(invocation)
423: 373(ptr) AccessChain 34(data) 70 364
424: 28(i64vec4) Load 423
425: 6(int) Load 8(invocation)
426: 28(i64vec4) GroupNonUniformShuffleXor 43 424 425
427: 373(ptr) AccessChain 34(data) 422 364
Store 427 426
428: 6(int) Load 8(invocation)
431: 430(ptr) AccessChain 34(data) 37 429 38
432:29(float16_t) Load 431
433: 6(int) Load 8(invocation)
434:29(float16_t) GroupNonUniformShuffle 43 432 433
435: 430(ptr) AccessChain 34(data) 428 429 38
Store 435 434
436: 6(int) Load 8(invocation)
439: 438(ptr) AccessChain 34(data) 47 429
440: 30(f16vec4) Load 439
441:437(f16vec2) VectorShuffle 440 440 0 1
442: 6(int) Load 8(invocation)
443:437(f16vec2) GroupNonUniformShuffle 43 441 442
444: 438(ptr) AccessChain 34(data) 436 429
445: 30(f16vec4) Load 444
446: 30(f16vec4) VectorShuffle 445 443 4 5 2 3
Store 444 446
447: 6(int) Load 8(invocation)
449: 438(ptr) AccessChain 34(data) 59 429
450: 30(f16vec4) Load 449
451:448(f16vec3) VectorShuffle 450 450 0 1 2
452: 6(int) Load 8(invocation)
453:448(f16vec3) GroupNonUniformShuffle 43 451 452
454: 438(ptr) AccessChain 34(data) 447 429
455: 30(f16vec4) Load 454
456: 30(f16vec4) VectorShuffle 455 453 4 5 6 3
Store 454 456
457: 6(int) Load 8(invocation)
458: 438(ptr) AccessChain 34(data) 70 429
459: 30(f16vec4) Load 458
460: 6(int) Load 8(invocation)
461: 30(f16vec4) GroupNonUniformShuffle 43 459 460
462: 438(ptr) AccessChain 34(data) 457 429
Store 462 461
463: 6(int) Load 8(invocation)
464: 430(ptr) AccessChain 34(data) 37 429 38
465:29(float16_t) Load 464
466: 6(int) Load 8(invocation)
467:29(float16_t) GroupNonUniformShuffleXor 43 465 466
468: 430(ptr) AccessChain 34(data) 463 429 38
Store 468 467
469: 6(int) Load 8(invocation)
470: 438(ptr) AccessChain 34(data) 47 429
471: 30(f16vec4) Load 470
472:437(f16vec2) VectorShuffle 471 471 0 1
473: 6(int) Load 8(invocation)
474:437(f16vec2) GroupNonUniformShuffleXor 43 472 473
475: 438(ptr) AccessChain 34(data) 469 429
476: 30(f16vec4) Load 475
477: 30(f16vec4) VectorShuffle 476 474 4 5 2 3
Store 475 477
478: 6(int) Load 8(invocation)
479: 438(ptr) AccessChain 34(data) 59 429
480: 30(f16vec4) Load 479
481:448(f16vec3) VectorShuffle 480 480 0 1 2
482: 6(int) Load 8(invocation)
483:448(f16vec3) GroupNonUniformShuffleXor 43 481 482
484: 438(ptr) AccessChain 34(data) 478 429
485: 30(f16vec4) Load 484
486: 30(f16vec4) VectorShuffle 485 483 4 5 6 3
Store 484 486
487: 6(int) Load 8(invocation)
488: 438(ptr) AccessChain 34(data) 70 429
489: 30(f16vec4) Load 488
490: 6(int) Load 8(invocation)
491: 30(f16vec4) GroupNonUniformShuffleXor 43 489 490
492: 438(ptr) AccessChain 34(data) 487 429
Store 492 491
Return
FunctionEnd

View File

@ -0,0 +1,61 @@
spv.subgroupExtendedTypesShuffleNeg.comp
ERROR: 0:26: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:27: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:28: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:29: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:31: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:32: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:33: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:34: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:36: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:37: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:38: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:39: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:41: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:42: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:43: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:44: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:46: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:47: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:48: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:49: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:51: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:52: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:53: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:54: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:56: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:57: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:58: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:59: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:61: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:62: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:63: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:64: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:66: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:67: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:68: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:69: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:71: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:72: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:73: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:74: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:76: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:77: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:78: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:79: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:81: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:82: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:83: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:84: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:86: ' temp highp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:87: ' temp highp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:88: ' temp highp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:89: 'layout( column_major std430) buffer highp 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:91: ' temp highp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:92: ' temp highp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:93: ' temp highp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:94: 'layout( column_major std430) buffer highp 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 56 compilation errors. No code generated.
SPIR-V is not generated for failed compile or link

View File

@ -0,0 +1,616 @@
spv.subgroupExtendedTypesShuffleRelative.comp
// Module Version 10300
// Generated by (magic number): 80007
// Id's are bound by 497
Capability Shader
Capability Float16
Capability Int64
Capability Int16
Capability Int8
Capability GroupNonUniform
Capability GroupNonUniformShuffleRelative
Capability StorageUniformBufferBlock16
Capability StorageBuffer8BitAccess
Extension "SPV_KHR_8bit_storage"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint GLCompute 4 "main" 10 12
ExecutionMode 4 LocalSize 8 1 1
Source GLSL 450
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16"
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int16"
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int64"
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int8"
SourceExtension "GL_EXT_shader_subgroup_extended_types_float16"
SourceExtension "GL_EXT_shader_subgroup_extended_types_int16"
SourceExtension "GL_EXT_shader_subgroup_extended_types_int64"
SourceExtension "GL_EXT_shader_subgroup_extended_types_int8"
SourceExtension "GL_KHR_shader_subgroup_basic"
SourceExtension "GL_KHR_shader_subgroup_shuffle_relative"
Name 4 "main"
Name 8 "invocation"
Name 10 "gl_SubgroupInvocationID"
Name 12 "gl_SubgroupSize"
Name 31 "Buffers"
MemberName 31(Buffers) 0 "i8"
MemberName 31(Buffers) 1 "u8"
MemberName 31(Buffers) 2 "i16"
MemberName 31(Buffers) 3 "u16"
MemberName 31(Buffers) 4 "i64"
MemberName 31(Buffers) 5 "u64"
MemberName 31(Buffers) 6 "f16"
Name 34 "data"
Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision
Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
Decorate 11 RelaxedPrecision
Decorate 12(gl_SubgroupSize) RelaxedPrecision
Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize
Decorate 13 RelaxedPrecision
Decorate 14 RelaxedPrecision
Decorate 16 RelaxedPrecision
MemberDecorate 31(Buffers) 0 Offset 0
MemberDecorate 31(Buffers) 1 Offset 4
MemberDecorate 31(Buffers) 2 Offset 8
MemberDecorate 31(Buffers) 3 Offset 16
MemberDecorate 31(Buffers) 4 Offset 32
MemberDecorate 31(Buffers) 5 Offset 64
MemberDecorate 31(Buffers) 6 Offset 96
Decorate 31(Buffers) Block
Decorate 34(data) DescriptorSet 0
Decorate 34(data) Binding 0
Decorate 496 BuiltIn WorkgroupSize
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
7: TypePointer Function 6(int)
9: TypePointer Input 6(int)
10(gl_SubgroupInvocationID): 9(ptr) Variable Input
12(gl_SubgroupSize): 9(ptr) Variable Input
15: 6(int) Constant 4
17: TypeInt 8 1
18: TypeVector 17(int8_t) 4
19: TypeInt 8 0
20: TypeVector 19(int8_t) 4
21: TypeInt 16 1
22: TypeVector 21(int16_t) 4
23: TypeInt 16 0
24: TypeVector 23(int16_t) 4
25: TypeInt 64 1
26: TypeVector 25(int64_t) 4
27: TypeInt 64 0
28: TypeVector 27(int64_t) 4
29: TypeFloat 16
30: TypeVector 29(float16_t) 4
31(Buffers): TypeStruct 18(i8vec4) 20(i8vec4) 22(i16vec4) 24(i16vec4) 26(i64vec4) 28(i64vec4) 30(f16vec4)
32: TypeArray 31(Buffers) 15
33: TypePointer StorageBuffer 32
34(data): 33(ptr) Variable StorageBuffer
36: TypeInt 32 1
37: 36(int) Constant 0
38: 6(int) Constant 0
39: TypePointer StorageBuffer 17(int8_t)
43: 6(int) Constant 3
47: 36(int) Constant 1
48: TypeVector 17(int8_t) 2
49: TypePointer StorageBuffer 18(i8vec4)
59: 36(int) Constant 2
60: TypeVector 17(int8_t) 3
70: 36(int) Constant 3
107: TypePointer StorageBuffer 19(int8_t)
114: TypeVector 19(int8_t) 2
115: TypePointer StorageBuffer 20(i8vec4)
125: TypeVector 19(int8_t) 3
171: TypePointer StorageBuffer 21(int16_t)
178: TypeVector 21(int16_t) 2
179: TypePointer StorageBuffer 22(i16vec4)
189: TypeVector 21(int16_t) 3
235: TypePointer StorageBuffer 23(int16_t)
242: TypeVector 23(int16_t) 2
243: TypePointer StorageBuffer 24(i16vec4)
253: TypeVector 23(int16_t) 3
299: 36(int) Constant 4
300: TypePointer StorageBuffer 25(int64_t)
307: TypeVector 25(int64_t) 2
308: TypePointer StorageBuffer 26(i64vec4)
318: TypeVector 25(int64_t) 3
364: 36(int) Constant 5
365: TypePointer StorageBuffer 27(int64_t)
372: TypeVector 27(int64_t) 2
373: TypePointer StorageBuffer 28(i64vec4)
383: TypeVector 27(int64_t) 3
429: 36(int) Constant 6
430: TypePointer StorageBuffer 29(float16_t)
437: TypeVector 29(float16_t) 2
438: TypePointer StorageBuffer 30(f16vec4)
448: TypeVector 29(float16_t) 3
493: TypeVector 6(int) 3
494: 6(int) Constant 8
495: 6(int) Constant 1
496: 493(ivec3) ConstantComposite 494 495 495
4(main): 2 Function None 3
5: Label
8(invocation): 7(ptr) Variable Function
11: 6(int) Load 10(gl_SubgroupInvocationID)
13: 6(int) Load 12(gl_SubgroupSize)
14: 6(int) IAdd 11 13
16: 6(int) UMod 14 15
Store 8(invocation) 16
35: 6(int) Load 8(invocation)
40: 39(ptr) AccessChain 34(data) 37 37 38
41: 17(int8_t) Load 40
42: 6(int) Load 8(invocation)
44: 17(int8_t) GroupNonUniformShuffleUp 43 41 42
45: 39(ptr) AccessChain 34(data) 35 37 38
Store 45 44
46: 6(int) Load 8(invocation)
50: 49(ptr) AccessChain 34(data) 47 37
51: 18(i8vec4) Load 50
52: 48(i8vec2) VectorShuffle 51 51 0 1
53: 6(int) Load 8(invocation)
54: 48(i8vec2) GroupNonUniformShuffleUp 43 52 53
55: 49(ptr) AccessChain 34(data) 46 37
56: 18(i8vec4) Load 55
57: 18(i8vec4) VectorShuffle 56 54 4 5 2 3
Store 55 57
58: 6(int) Load 8(invocation)
61: 49(ptr) AccessChain 34(data) 59 37
62: 18(i8vec4) Load 61
63: 60(i8vec3) VectorShuffle 62 62 0 1 2
64: 6(int) Load 8(invocation)
65: 60(i8vec3) GroupNonUniformShuffleUp 43 63 64
66: 49(ptr) AccessChain 34(data) 58 37
67: 18(i8vec4) Load 66
68: 18(i8vec4) VectorShuffle 67 65 4 5 6 3
Store 66 68
69: 6(int) Load 8(invocation)
71: 49(ptr) AccessChain 34(data) 70 37
72: 18(i8vec4) Load 71
73: 6(int) Load 8(invocation)
74: 18(i8vec4) GroupNonUniformShuffleUp 43 72 73
75: 49(ptr) AccessChain 34(data) 69 37
Store 75 74
76: 6(int) Load 8(invocation)
77: 39(ptr) AccessChain 34(data) 37 37 38
78: 17(int8_t) Load 77
79: 6(int) Load 8(invocation)
80: 17(int8_t) GroupNonUniformShuffleDown 43 78 79
81: 39(ptr) AccessChain 34(data) 76 37 38
Store 81 80
82: 6(int) Load 8(invocation)
83: 49(ptr) AccessChain 34(data) 47 37
84: 18(i8vec4) Load 83
85: 48(i8vec2) VectorShuffle 84 84 0 1
86: 6(int) Load 8(invocation)
87: 48(i8vec2) GroupNonUniformShuffleDown 43 85 86
88: 49(ptr) AccessChain 34(data) 82 37
89: 18(i8vec4) Load 88
90: 18(i8vec4) VectorShuffle 89 87 4 5 2 3
Store 88 90
91: 6(int) Load 8(invocation)
92: 49(ptr) AccessChain 34(data) 59 37
93: 18(i8vec4) Load 92
94: 60(i8vec3) VectorShuffle 93 93 0 1 2
95: 6(int) Load 8(invocation)
96: 60(i8vec3) GroupNonUniformShuffleDown 43 94 95
97: 49(ptr) AccessChain 34(data) 91 37
98: 18(i8vec4) Load 97
99: 18(i8vec4) VectorShuffle 98 96 4 5 6 3
Store 97 99
100: 6(int) Load 8(invocation)
101: 49(ptr) AccessChain 34(data) 70 37
102: 18(i8vec4) Load 101
103: 6(int) Load 8(invocation)
104: 18(i8vec4) GroupNonUniformShuffleDown 43 102 103
105: 49(ptr) AccessChain 34(data) 100 37
Store 105 104
106: 6(int) Load 8(invocation)
108: 107(ptr) AccessChain 34(data) 37 47 38
109: 19(int8_t) Load 108
110: 6(int) Load 8(invocation)
111: 19(int8_t) GroupNonUniformShuffleUp 43 109 110
112: 107(ptr) AccessChain 34(data) 106 47 38
Store 112 111
113: 6(int) Load 8(invocation)
116: 115(ptr) AccessChain 34(data) 47 47
117: 20(i8vec4) Load 116
118: 114(i8vec2) VectorShuffle 117 117 0 1
119: 6(int) Load 8(invocation)
120: 114(i8vec2) GroupNonUniformShuffleUp 43 118 119
121: 115(ptr) AccessChain 34(data) 113 47
122: 20(i8vec4) Load 121
123: 20(i8vec4) VectorShuffle 122 120 4 5 2 3
Store 121 123
124: 6(int) Load 8(invocation)
126: 115(ptr) AccessChain 34(data) 59 47
127: 20(i8vec4) Load 126
128: 125(i8vec3) VectorShuffle 127 127 0 1 2
129: 6(int) Load 8(invocation)
130: 125(i8vec3) GroupNonUniformShuffleUp 43 128 129
131: 115(ptr) AccessChain 34(data) 124 47
132: 20(i8vec4) Load 131
133: 20(i8vec4) VectorShuffle 132 130 4 5 6 3
Store 131 133
134: 6(int) Load 8(invocation)
135: 115(ptr) AccessChain 34(data) 70 47
136: 20(i8vec4) Load 135
137: 6(int) Load 8(invocation)
138: 20(i8vec4) GroupNonUniformShuffleUp 43 136 137
139: 115(ptr) AccessChain 34(data) 134 47
Store 139 138
140: 6(int) Load 8(invocation)
141: 107(ptr) AccessChain 34(data) 37 47 38
142: 19(int8_t) Load 141
143: 6(int) Load 8(invocation)
144: 19(int8_t) GroupNonUniformShuffleDown 43 142 143
145: 107(ptr) AccessChain 34(data) 140 47 38
Store 145 144
146: 6(int) Load 8(invocation)
147: 115(ptr) AccessChain 34(data) 47 47
148: 20(i8vec4) Load 147
149: 114(i8vec2) VectorShuffle 148 148 0 1
150: 6(int) Load 8(invocation)
151: 114(i8vec2) GroupNonUniformShuffleDown 43 149 150
152: 115(ptr) AccessChain 34(data) 146 47
153: 20(i8vec4) Load 152
154: 20(i8vec4) VectorShuffle 153 151 4 5 2 3
Store 152 154
155: 6(int) Load 8(invocation)
156: 115(ptr) AccessChain 34(data) 59 47
157: 20(i8vec4) Load 156
158: 125(i8vec3) VectorShuffle 157 157 0 1 2
159: 6(int) Load 8(invocation)
160: 125(i8vec3) GroupNonUniformShuffleDown 43 158 159
161: 115(ptr) AccessChain 34(data) 155 47
162: 20(i8vec4) Load 161
163: 20(i8vec4) VectorShuffle 162 160 4 5 6 3
Store 161 163
164: 6(int) Load 8(invocation)
165: 115(ptr) AccessChain 34(data) 70 47
166: 20(i8vec4) Load 165
167: 6(int) Load 8(invocation)
168: 20(i8vec4) GroupNonUniformShuffleDown 43 166 167
169: 115(ptr) AccessChain 34(data) 164 47
Store 169 168
170: 6(int) Load 8(invocation)
172: 171(ptr) AccessChain 34(data) 37 59 38
173: 21(int16_t) Load 172
174: 6(int) Load 8(invocation)
175: 21(int16_t) GroupNonUniformShuffleUp 43 173 174
176: 171(ptr) AccessChain 34(data) 170 59 38
Store 176 175
177: 6(int) Load 8(invocation)
180: 179(ptr) AccessChain 34(data) 47 59
181: 22(i16vec4) Load 180
182:178(i16vec2) VectorShuffle 181 181 0 1
183: 6(int) Load 8(invocation)
184:178(i16vec2) GroupNonUniformShuffleUp 43 182 183
185: 179(ptr) AccessChain 34(data) 177 59
186: 22(i16vec4) Load 185
187: 22(i16vec4) VectorShuffle 186 184 4 5 2 3
Store 185 187
188: 6(int) Load 8(invocation)
190: 179(ptr) AccessChain 34(data) 59 59
191: 22(i16vec4) Load 190
192:189(i16vec3) VectorShuffle 191 191 0 1 2
193: 6(int) Load 8(invocation)
194:189(i16vec3) GroupNonUniformShuffleUp 43 192 193
195: 179(ptr) AccessChain 34(data) 188 59
196: 22(i16vec4) Load 195
197: 22(i16vec4) VectorShuffle 196 194 4 5 6 3
Store 195 197
198: 6(int) Load 8(invocation)
199: 179(ptr) AccessChain 34(data) 70 59
200: 22(i16vec4) Load 199
201: 6(int) Load 8(invocation)
202: 22(i16vec4) GroupNonUniformShuffleUp 43 200 201
203: 179(ptr) AccessChain 34(data) 198 59
Store 203 202
204: 6(int) Load 8(invocation)
205: 171(ptr) AccessChain 34(data) 37 59 38
206: 21(int16_t) Load 205
207: 6(int) Load 8(invocation)
208: 21(int16_t) GroupNonUniformShuffleDown 43 206 207
209: 171(ptr) AccessChain 34(data) 204 59 38
Store 209 208
210: 6(int) Load 8(invocation)
211: 179(ptr) AccessChain 34(data) 47 59
212: 22(i16vec4) Load 211
213:178(i16vec2) VectorShuffle 212 212 0 1
214: 6(int) Load 8(invocation)
215:178(i16vec2) GroupNonUniformShuffleDown 43 213 214
216: 179(ptr) AccessChain 34(data) 210 59
217: 22(i16vec4) Load 216
218: 22(i16vec4) VectorShuffle 217 215 4 5 2 3
Store 216 218
219: 6(int) Load 8(invocation)
220: 179(ptr) AccessChain 34(data) 59 59
221: 22(i16vec4) Load 220
222:189(i16vec3) VectorShuffle 221 221 0 1 2
223: 6(int) Load 8(invocation)
224:189(i16vec3) GroupNonUniformShuffleDown 43 222 223
225: 179(ptr) AccessChain 34(data) 219 59
226: 22(i16vec4) Load 225
227: 22(i16vec4) VectorShuffle 226 224 4 5 6 3
Store 225 227
228: 6(int) Load 8(invocation)
229: 179(ptr) AccessChain 34(data) 70 59
230: 22(i16vec4) Load 229
231: 6(int) Load 8(invocation)
232: 22(i16vec4) GroupNonUniformShuffleDown 43 230 231
233: 179(ptr) AccessChain 34(data) 228 59
Store 233 232
234: 6(int) Load 8(invocation)
236: 235(ptr) AccessChain 34(data) 37 70 38
237: 23(int16_t) Load 236
238: 6(int) Load 8(invocation)
239: 23(int16_t) GroupNonUniformShuffleUp 43 237 238
240: 235(ptr) AccessChain 34(data) 234 70 38
Store 240 239
241: 6(int) Load 8(invocation)
244: 243(ptr) AccessChain 34(data) 47 70
245: 24(i16vec4) Load 244
246:242(i16vec2) VectorShuffle 245 245 0 1
247: 6(int) Load 8(invocation)
248:242(i16vec2) GroupNonUniformShuffleUp 43 246 247
249: 243(ptr) AccessChain 34(data) 241 70
250: 24(i16vec4) Load 249
251: 24(i16vec4) VectorShuffle 250 248 4 5 2 3
Store 249 251
252: 6(int) Load 8(invocation)
254: 243(ptr) AccessChain 34(data) 59 70
255: 24(i16vec4) Load 254
256:253(i16vec3) VectorShuffle 255 255 0 1 2
257: 6(int) Load 8(invocation)
258:253(i16vec3) GroupNonUniformShuffleUp 43 256 257
259: 243(ptr) AccessChain 34(data) 252 70
260: 24(i16vec4) Load 259
261: 24(i16vec4) VectorShuffle 260 258 4 5 6 3
Store 259 261
262: 6(int) Load 8(invocation)
263: 243(ptr) AccessChain 34(data) 70 70
264: 24(i16vec4) Load 263
265: 6(int) Load 8(invocation)
266: 24(i16vec4) GroupNonUniformShuffleUp 43 264 265
267: 243(ptr) AccessChain 34(data) 262 70
Store 267 266
268: 6(int) Load 8(invocation)
269: 235(ptr) AccessChain 34(data) 37 70 38
270: 23(int16_t) Load 269
271: 6(int) Load 8(invocation)
272: 23(int16_t) GroupNonUniformShuffleDown 43 270 271
273: 235(ptr) AccessChain 34(data) 268 70 38
Store 273 272
274: 6(int) Load 8(invocation)
275: 243(ptr) AccessChain 34(data) 47 70
276: 24(i16vec4) Load 275
277:242(i16vec2) VectorShuffle 276 276 0 1
278: 6(int) Load 8(invocation)
279:242(i16vec2) GroupNonUniformShuffleDown 43 277 278
280: 243(ptr) AccessChain 34(data) 274 70
281: 24(i16vec4) Load 280
282: 24(i16vec4) VectorShuffle 281 279 4 5 2 3
Store 280 282
283: 6(int) Load 8(invocation)
284: 243(ptr) AccessChain 34(data) 59 70
285: 24(i16vec4) Load 284
286:253(i16vec3) VectorShuffle 285 285 0 1 2
287: 6(int) Load 8(invocation)
288:253(i16vec3) GroupNonUniformShuffleDown 43 286 287
289: 243(ptr) AccessChain 34(data) 283 70
290: 24(i16vec4) Load 289
291: 24(i16vec4) VectorShuffle 290 288 4 5 6 3
Store 289 291
292: 6(int) Load 8(invocation)
293: 243(ptr) AccessChain 34(data) 70 70
294: 24(i16vec4) Load 293
295: 6(int) Load 8(invocation)
296: 24(i16vec4) GroupNonUniformShuffleDown 43 294 295
297: 243(ptr) AccessChain 34(data) 292 70
Store 297 296
298: 6(int) Load 8(invocation)
301: 300(ptr) AccessChain 34(data) 37 299 38
302: 25(int64_t) Load 301
303: 6(int) Load 8(invocation)
304: 25(int64_t) GroupNonUniformShuffleUp 43 302 303
305: 300(ptr) AccessChain 34(data) 298 299 38
Store 305 304
306: 6(int) Load 8(invocation)
309: 308(ptr) AccessChain 34(data) 47 299
310: 26(i64vec4) Load 309
311:307(i64vec2) VectorShuffle 310 310 0 1
312: 6(int) Load 8(invocation)
313:307(i64vec2) GroupNonUniformShuffleUp 43 311 312
314: 308(ptr) AccessChain 34(data) 306 299
315: 26(i64vec4) Load 314
316: 26(i64vec4) VectorShuffle 315 313 4 5 2 3
Store 314 316
317: 6(int) Load 8(invocation)
319: 308(ptr) AccessChain 34(data) 59 299
320: 26(i64vec4) Load 319
321:318(i64vec3) VectorShuffle 320 320 0 1 2
322: 6(int) Load 8(invocation)
323:318(i64vec3) GroupNonUniformShuffleUp 43 321 322
324: 308(ptr) AccessChain 34(data) 317 299
325: 26(i64vec4) Load 324
326: 26(i64vec4) VectorShuffle 325 323 4 5 6 3
Store 324 326
327: 6(int) Load 8(invocation)
328: 308(ptr) AccessChain 34(data) 70 299
329: 26(i64vec4) Load 328
330: 6(int) Load 8(invocation)
331: 26(i64vec4) GroupNonUniformShuffleUp 43 329 330
332: 308(ptr) AccessChain 34(data) 327 299
Store 332 331
333: 6(int) Load 8(invocation)
334: 300(ptr) AccessChain 34(data) 37 299 38
335: 25(int64_t) Load 334
336: 6(int) Load 8(invocation)
337: 25(int64_t) GroupNonUniformShuffleDown 43 335 336
338: 300(ptr) AccessChain 34(data) 333 299 38
Store 338 337
339: 6(int) Load 8(invocation)
340: 308(ptr) AccessChain 34(data) 47 299
341: 26(i64vec4) Load 340
342:307(i64vec2) VectorShuffle 341 341 0 1
343: 6(int) Load 8(invocation)
344:307(i64vec2) GroupNonUniformShuffleDown 43 342 343
345: 308(ptr) AccessChain 34(data) 339 299
346: 26(i64vec4) Load 345
347: 26(i64vec4) VectorShuffle 346 344 4 5 2 3
Store 345 347
348: 6(int) Load 8(invocation)
349: 308(ptr) AccessChain 34(data) 59 299
350: 26(i64vec4) Load 349
351:318(i64vec3) VectorShuffle 350 350 0 1 2
352: 6(int) Load 8(invocation)
353:318(i64vec3) GroupNonUniformShuffleDown 43 351 352
354: 308(ptr) AccessChain 34(data) 348 299
355: 26(i64vec4) Load 354
356: 26(i64vec4) VectorShuffle 355 353 4 5 6 3
Store 354 356
357: 6(int) Load 8(invocation)
358: 308(ptr) AccessChain 34(data) 70 299
359: 26(i64vec4) Load 358
360: 6(int) Load 8(invocation)
361: 26(i64vec4) GroupNonUniformShuffleDown 43 359 360
362: 308(ptr) AccessChain 34(data) 357 299
Store 362 361
363: 6(int) Load 8(invocation)
366: 365(ptr) AccessChain 34(data) 37 364 38
367: 27(int64_t) Load 366
368: 6(int) Load 8(invocation)
369: 27(int64_t) GroupNonUniformShuffleUp 43 367 368
370: 365(ptr) AccessChain 34(data) 363 364 38
Store 370 369
371: 6(int) Load 8(invocation)
374: 373(ptr) AccessChain 34(data) 47 364
375: 28(i64vec4) Load 374
376:372(i64vec2) VectorShuffle 375 375 0 1
377: 6(int) Load 8(invocation)
378:372(i64vec2) GroupNonUniformShuffleUp 43 376 377
379: 373(ptr) AccessChain 34(data) 371 364
380: 28(i64vec4) Load 379
381: 28(i64vec4) VectorShuffle 380 378 4 5 2 3
Store 379 381
382: 6(int) Load 8(invocation)
384: 373(ptr) AccessChain 34(data) 59 364
385: 28(i64vec4) Load 384
386:383(i64vec3) VectorShuffle 385 385 0 1 2
387: 6(int) Load 8(invocation)
388:383(i64vec3) GroupNonUniformShuffleUp 43 386 387
389: 373(ptr) AccessChain 34(data) 382 364
390: 28(i64vec4) Load 389
391: 28(i64vec4) VectorShuffle 390 388 4 5 6 3
Store 389 391
392: 6(int) Load 8(invocation)
393: 373(ptr) AccessChain 34(data) 70 364
394: 28(i64vec4) Load 393
395: 6(int) Load 8(invocation)
396: 28(i64vec4) GroupNonUniformShuffleUp 43 394 395
397: 373(ptr) AccessChain 34(data) 392 364
Store 397 396
398: 6(int) Load 8(invocation)
399: 365(ptr) AccessChain 34(data) 37 364 38
400: 27(int64_t) Load 399
401: 6(int) Load 8(invocation)
402: 27(int64_t) GroupNonUniformShuffleDown 43 400 401
403: 365(ptr) AccessChain 34(data) 398 364 38
Store 403 402
404: 6(int) Load 8(invocation)
405: 373(ptr) AccessChain 34(data) 47 364
406: 28(i64vec4) Load 405
407:372(i64vec2) VectorShuffle 406 406 0 1
408: 6(int) Load 8(invocation)
409:372(i64vec2) GroupNonUniformShuffleDown 43 407 408
410: 373(ptr) AccessChain 34(data) 404 364
411: 28(i64vec4) Load 410
412: 28(i64vec4) VectorShuffle 411 409 4 5 2 3
Store 410 412
413: 6(int) Load 8(invocation)
414: 373(ptr) AccessChain 34(data) 59 364
415: 28(i64vec4) Load 414
416:383(i64vec3) VectorShuffle 415 415 0 1 2
417: 6(int) Load 8(invocation)
418:383(i64vec3) GroupNonUniformShuffleDown 43 416 417
419: 373(ptr) AccessChain 34(data) 413 364
420: 28(i64vec4) Load 419
421: 28(i64vec4) VectorShuffle 420 418 4 5 6 3
Store 419 421
422: 6(int) Load 8(invocation)
423: 373(ptr) AccessChain 34(data) 70 364
424: 28(i64vec4) Load 423
425: 6(int) Load 8(invocation)
426: 28(i64vec4) GroupNonUniformShuffleDown 43 424 425
427: 373(ptr) AccessChain 34(data) 422 364
Store 427 426
428: 6(int) Load 8(invocation)
431: 430(ptr) AccessChain 34(data) 37 429 38
432:29(float16_t) Load 431
433: 6(int) Load 8(invocation)
434:29(float16_t) GroupNonUniformShuffleUp 43 432 433
435: 430(ptr) AccessChain 34(data) 428 429 38
Store 435 434
436: 6(int) Load 8(invocation)
439: 438(ptr) AccessChain 34(data) 47 429
440: 30(f16vec4) Load 439
441:437(f16vec2) VectorShuffle 440 440 0 1
442: 6(int) Load 8(invocation)
443:437(f16vec2) GroupNonUniformShuffleUp 43 441 442
444: 438(ptr) AccessChain 34(data) 436 429
445: 30(f16vec4) Load 444
446: 30(f16vec4) VectorShuffle 445 443 4 5 2 3
Store 444 446
447: 6(int) Load 8(invocation)
449: 438(ptr) AccessChain 34(data) 59 429
450: 30(f16vec4) Load 449
451:448(f16vec3) VectorShuffle 450 450 0 1 2
452: 6(int) Load 8(invocation)
453:448(f16vec3) GroupNonUniformShuffleUp 43 451 452
454: 438(ptr) AccessChain 34(data) 447 429
455: 30(f16vec4) Load 454
456: 30(f16vec4) VectorShuffle 455 453 4 5 6 3
Store 454 456
457: 6(int) Load 8(invocation)
458: 438(ptr) AccessChain 34(data) 70 429
459: 30(f16vec4) Load 458
460: 6(int) Load 8(invocation)
461: 30(f16vec4) GroupNonUniformShuffleUp 43 459 460
462: 438(ptr) AccessChain 34(data) 457 429
Store 462 461
463: 6(int) Load 8(invocation)
464: 430(ptr) AccessChain 34(data) 37 429 38
465:29(float16_t) Load 464
466: 6(int) Load 8(invocation)
467:29(float16_t) GroupNonUniformShuffleDown 43 465 466
468: 430(ptr) AccessChain 34(data) 463 429 38
Store 468 467
469: 6(int) Load 8(invocation)
470: 438(ptr) AccessChain 34(data) 47 429
471: 30(f16vec4) Load 470
472:437(f16vec2) VectorShuffle 471 471 0 1
473: 6(int) Load 8(invocation)
474:437(f16vec2) GroupNonUniformShuffleDown 43 472 473
475: 438(ptr) AccessChain 34(data) 469 429
476: 30(f16vec4) Load 475
477: 30(f16vec4) VectorShuffle 476 474 4 5 2 3
Store 475 477
478: 6(int) Load 8(invocation)
479: 438(ptr) AccessChain 34(data) 59 429
480: 30(f16vec4) Load 479
481:448(f16vec3) VectorShuffle 480 480 0 1 2
482: 6(int) Load 8(invocation)
483:448(f16vec3) GroupNonUniformShuffleDown 43 481 482
484: 438(ptr) AccessChain 34(data) 478 429
485: 30(f16vec4) Load 484
486: 30(f16vec4) VectorShuffle 485 483 4 5 6 3
Store 484 486
487: 6(int) Load 8(invocation)
488: 438(ptr) AccessChain 34(data) 70 429
489: 30(f16vec4) Load 488
490: 6(int) Load 8(invocation)
491: 30(f16vec4) GroupNonUniformShuffleDown 43 489 490
492: 438(ptr) AccessChain 34(data) 487 429
Store 492 491
Return
FunctionEnd

View File

@ -0,0 +1,61 @@
spv.subgroupExtendedTypesShuffleRelativeNeg.comp
ERROR: 0:26: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:27: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:28: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:29: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:31: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:32: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:33: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:34: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:36: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:37: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:38: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:39: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:41: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:42: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:43: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:44: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:46: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:47: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:48: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:49: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:51: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:52: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:53: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:54: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:56: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:57: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:58: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:59: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:61: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:62: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:63: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:64: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:66: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:67: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:68: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:69: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:71: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:72: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:73: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:74: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:76: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:77: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:78: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:79: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:81: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:82: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:83: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:84: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:86: ' temp highp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:87: ' temp highp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:88: ' temp highp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:89: 'layout( column_major std430) buffer highp 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:91: ' temp highp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:92: ' temp highp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:93: ' temp highp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:94: 'layout( column_major std430) buffer highp 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 56 compilation errors. No code generated.
SPIR-V is not generated for failed compile or link

View File

@ -0,0 +1,377 @@
spv.subgroupExtendedTypesVote.comp
// Module Version 10300
// Generated by (magic number): 80007
// Id's are bound by 277
Capability Shader
Capability Float16
Capability Int64
Capability Int16
Capability Int8
Capability GroupNonUniform
Capability GroupNonUniformVote
Capability StorageUniformBufferBlock16
Capability StorageBuffer8BitAccess
Extension "SPV_KHR_8bit_storage"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint GLCompute 4 "main" 10 12
ExecutionMode 4 LocalSize 8 1 1
Source GLSL 450
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_float16"
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int16"
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int64"
SourceExtension "GL_EXT_shader_explicit_arithmetic_types_int8"
SourceExtension "GL_EXT_shader_subgroup_extended_types_float16"
SourceExtension "GL_EXT_shader_subgroup_extended_types_int16"
SourceExtension "GL_EXT_shader_subgroup_extended_types_int64"
SourceExtension "GL_EXT_shader_subgroup_extended_types_int8"
SourceExtension "GL_KHR_shader_subgroup_basic"
SourceExtension "GL_KHR_shader_subgroup_vote"
Name 4 "main"
Name 8 "invocation"
Name 10 "gl_SubgroupInvocationID"
Name 12 "gl_SubgroupSize"
Name 32 "Buffers"
MemberName 32(Buffers) 0 "i8"
MemberName 32(Buffers) 1 "u8"
MemberName 32(Buffers) 2 "i16"
MemberName 32(Buffers) 3 "u16"
MemberName 32(Buffers) 4 "i64"
MemberName 32(Buffers) 5 "u64"
MemberName 32(Buffers) 6 "f16"
MemberName 32(Buffers) 7 "r"
Name 35 "data"
Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision
Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
Decorate 11 RelaxedPrecision
Decorate 12(gl_SubgroupSize) RelaxedPrecision
Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize
Decorate 13 RelaxedPrecision
Decorate 14 RelaxedPrecision
Decorate 16 RelaxedPrecision
MemberDecorate 32(Buffers) 0 Offset 0
MemberDecorate 32(Buffers) 1 Offset 4
MemberDecorate 32(Buffers) 2 Offset 8
MemberDecorate 32(Buffers) 3 Offset 16
MemberDecorate 32(Buffers) 4 Offset 32
MemberDecorate 32(Buffers) 5 Offset 64
MemberDecorate 32(Buffers) 6 Offset 96
MemberDecorate 32(Buffers) 7 Offset 104
Decorate 32(Buffers) Block
Decorate 35(data) DescriptorSet 0
Decorate 35(data) Binding 0
Decorate 276 BuiltIn WorkgroupSize
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
7: TypePointer Function 6(int)
9: TypePointer Input 6(int)
10(gl_SubgroupInvocationID): 9(ptr) Variable Input
12(gl_SubgroupSize): 9(ptr) Variable Input
15: 6(int) Constant 4
17: TypeInt 8 1
18: TypeVector 17(int8_t) 4
19: TypeInt 8 0
20: TypeVector 19(int8_t) 4
21: TypeInt 16 1
22: TypeVector 21(int16_t) 4
23: TypeInt 16 0
24: TypeVector 23(int16_t) 4
25: TypeInt 64 1
26: TypeVector 25(int64_t) 4
27: TypeInt 64 0
28: TypeVector 27(int64_t) 4
29: TypeFloat 16
30: TypeVector 29(float16_t) 4
31: TypeInt 32 1
32(Buffers): TypeStruct 18(i8vec4) 20(i8vec4) 22(i16vec4) 24(i16vec4) 26(i64vec4) 28(i64vec4) 30(f16vec4) 31(int)
33: TypeArray 32(Buffers) 15
34: TypePointer StorageBuffer 33
35(data): 34(ptr) Variable StorageBuffer
37: 31(int) Constant 7
38: TypePointer StorageBuffer 31(int)
41: 31(int) Constant 0
42: TypeBool
44: 6(int) Constant 3
49: 6(int) Constant 0
50: TypePointer StorageBuffer 17(int8_t)
54: 31(int) Constant 1
58: TypeVector 17(int8_t) 2
59: TypePointer StorageBuffer 18(i8vec4)
67: 31(int) Constant 2
68: TypeVector 17(int8_t) 3
76: 31(int) Constant 3
83: TypePointer StorageBuffer 19(int8_t)
90: TypeVector 19(int8_t) 2
91: TypePointer StorageBuffer 20(i8vec4)
99: TypeVector 19(int8_t) 3
113: TypePointer StorageBuffer 21(int16_t)
120: TypeVector 21(int16_t) 2
121: TypePointer StorageBuffer 22(i16vec4)
129: TypeVector 21(int16_t) 3
143: TypePointer StorageBuffer 23(int16_t)
150: TypeVector 23(int16_t) 2
151: TypePointer StorageBuffer 24(i16vec4)
159: TypeVector 23(int16_t) 3
181: 31(int) Constant 4
182: TypePointer StorageBuffer 25(int64_t)
189: TypeVector 25(int64_t) 2
190: TypePointer StorageBuffer 26(i64vec4)
198: TypeVector 25(int64_t) 3
212: 31(int) Constant 5
213: TypePointer StorageBuffer 27(int64_t)
220: TypeVector 27(int64_t) 2
221: TypePointer StorageBuffer 28(i64vec4)
229: TypeVector 27(int64_t) 3
243: 31(int) Constant 6
244: TypePointer StorageBuffer 29(float16_t)
251: TypeVector 29(float16_t) 2
252: TypePointer StorageBuffer 30(f16vec4)
260: TypeVector 29(float16_t) 3
273: TypeVector 6(int) 3
274: 6(int) Constant 8
275: 6(int) Constant 1
276: 273(ivec3) ConstantComposite 274 275 275
4(main): 2 Function None 3
5: Label
8(invocation): 7(ptr) Variable Function
11: 6(int) Load 10(gl_SubgroupInvocationID)
13: 6(int) Load 12(gl_SubgroupSize)
14: 6(int) IAdd 11 13
16: 6(int) UMod 14 15
Store 8(invocation) 16
36: 6(int) Load 8(invocation)
39: 38(ptr) AccessChain 35(data) 36 37
40: 31(int) Load 39
43: 42(bool) SLessThan 40 41
45: 42(bool) GroupNonUniformAll 44 43
SelectionMerge 47 None
BranchConditional 45 46 172
46: Label
48: 6(int) Load 8(invocation)
51: 50(ptr) AccessChain 35(data) 41 41 49
52: 17(int8_t) Load 51
53: 42(bool) GroupNonUniformAllEqual 44 52
55: 31(int) Select 53 54 41
56: 38(ptr) AccessChain 35(data) 48 37
Store 56 55
57: 6(int) Load 8(invocation)
60: 59(ptr) AccessChain 35(data) 54 41
61: 18(i8vec4) Load 60
62: 58(i8vec2) VectorShuffle 61 61 0 1
63: 42(bool) GroupNonUniformAllEqual 44 62
64: 31(int) Select 63 54 41
65: 38(ptr) AccessChain 35(data) 57 37
Store 65 64
66: 6(int) Load 8(invocation)
69: 59(ptr) AccessChain 35(data) 67 41
70: 18(i8vec4) Load 69
71: 68(i8vec3) VectorShuffle 70 70 0 1 2
72: 42(bool) GroupNonUniformAllEqual 44 71
73: 31(int) Select 72 54 41
74: 38(ptr) AccessChain 35(data) 66 37
Store 74 73
75: 6(int) Load 8(invocation)
77: 59(ptr) AccessChain 35(data) 76 41
78: 18(i8vec4) Load 77
79: 42(bool) GroupNonUniformAllEqual 44 78
80: 31(int) Select 79 54 41
81: 38(ptr) AccessChain 35(data) 75 37
Store 81 80
82: 6(int) Load 8(invocation)
84: 83(ptr) AccessChain 35(data) 41 54 49
85: 19(int8_t) Load 84
86: 42(bool) GroupNonUniformAllEqual 44 85
87: 31(int) Select 86 54 41
88: 38(ptr) AccessChain 35(data) 82 37
Store 88 87
89: 6(int) Load 8(invocation)
92: 91(ptr) AccessChain 35(data) 54 54
93: 20(i8vec4) Load 92
94: 90(i8vec2) VectorShuffle 93 93 0 1
95: 42(bool) GroupNonUniformAllEqual 44 94
96: 31(int) Select 95 54 41
97: 38(ptr) AccessChain 35(data) 89 37
Store 97 96
98: 6(int) Load 8(invocation)
100: 91(ptr) AccessChain 35(data) 67 54
101: 20(i8vec4) Load 100
102: 99(i8vec3) VectorShuffle 101 101 0 1 2
103: 42(bool) GroupNonUniformAllEqual 44 102
104: 31(int) Select 103 54 41
105: 38(ptr) AccessChain 35(data) 98 37
Store 105 104
106: 6(int) Load 8(invocation)
107: 91(ptr) AccessChain 35(data) 76 54
108: 20(i8vec4) Load 107
109: 42(bool) GroupNonUniformAllEqual 44 108
110: 31(int) Select 109 54 41
111: 38(ptr) AccessChain 35(data) 106 37
Store 111 110
112: 6(int) Load 8(invocation)
114: 113(ptr) AccessChain 35(data) 41 67 49
115: 21(int16_t) Load 114
116: 42(bool) GroupNonUniformAllEqual 44 115
117: 31(int) Select 116 54 41
118: 38(ptr) AccessChain 35(data) 112 37
Store 118 117
119: 6(int) Load 8(invocation)
122: 121(ptr) AccessChain 35(data) 54 67
123: 22(i16vec4) Load 122
124:120(i16vec2) VectorShuffle 123 123 0 1
125: 42(bool) GroupNonUniformAllEqual 44 124
126: 31(int) Select 125 54 41
127: 38(ptr) AccessChain 35(data) 119 37
Store 127 126
128: 6(int) Load 8(invocation)
130: 121(ptr) AccessChain 35(data) 67 67
131: 22(i16vec4) Load 130
132:129(i16vec3) VectorShuffle 131 131 0 1 2
133: 42(bool) GroupNonUniformAllEqual 44 132
134: 31(int) Select 133 54 41
135: 38(ptr) AccessChain 35(data) 128 37
Store 135 134
136: 6(int) Load 8(invocation)
137: 121(ptr) AccessChain 35(data) 76 67
138: 22(i16vec4) Load 137
139: 42(bool) GroupNonUniformAllEqual 44 138
140: 31(int) Select 139 54 41
141: 38(ptr) AccessChain 35(data) 136 37
Store 141 140
142: 6(int) Load 8(invocation)
144: 143(ptr) AccessChain 35(data) 41 76 49
145: 23(int16_t) Load 144
146: 42(bool) GroupNonUniformAllEqual 44 145
147: 31(int) Select 146 54 41
148: 38(ptr) AccessChain 35(data) 142 37
Store 148 147
149: 6(int) Load 8(invocation)
152: 151(ptr) AccessChain 35(data) 54 76
153: 24(i16vec4) Load 152
154:150(i16vec2) VectorShuffle 153 153 0 1
155: 42(bool) GroupNonUniformAllEqual 44 154
156: 31(int) Select 155 54 41
157: 38(ptr) AccessChain 35(data) 149 37
Store 157 156
158: 6(int) Load 8(invocation)
160: 151(ptr) AccessChain 35(data) 67 76
161: 24(i16vec4) Load 160
162:159(i16vec3) VectorShuffle 161 161 0 1 2
163: 42(bool) GroupNonUniformAllEqual 44 162
164: 31(int) Select 163 54 41
165: 38(ptr) AccessChain 35(data) 158 37
Store 165 164
166: 6(int) Load 8(invocation)
167: 151(ptr) AccessChain 35(data) 76 76
168: 24(i16vec4) Load 167
169: 42(bool) GroupNonUniformAllEqual 44 168
170: 31(int) Select 169 54 41
171: 38(ptr) AccessChain 35(data) 166 37
Store 171 170
Branch 47
172: Label
173: 6(int) Load 8(invocation)
174: 38(ptr) AccessChain 35(data) 173 37
175: 31(int) Load 174
176: 42(bool) SLessThan 175 41
177: 42(bool) GroupNonUniformAny 44 176
SelectionMerge 179 None
BranchConditional 177 178 179
178: Label
180: 6(int) Load 8(invocation)
183: 182(ptr) AccessChain 35(data) 41 181 49
184: 25(int64_t) Load 183
185: 42(bool) GroupNonUniformAllEqual 44 184
186: 31(int) Select 185 54 41
187: 38(ptr) AccessChain 35(data) 180 37
Store 187 186
188: 6(int) Load 8(invocation)
191: 190(ptr) AccessChain 35(data) 54 181
192: 26(i64vec4) Load 191
193:189(i64vec2) VectorShuffle 192 192 0 1
194: 42(bool) GroupNonUniformAllEqual 44 193
195: 31(int) Select 194 54 41
196: 38(ptr) AccessChain 35(data) 188 37
Store 196 195
197: 6(int) Load 8(invocation)
199: 190(ptr) AccessChain 35(data) 67 181
200: 26(i64vec4) Load 199
201:198(i64vec3) VectorShuffle 200 200 0 1 2
202: 42(bool) GroupNonUniformAllEqual 44 201
203: 31(int) Select 202 54 41
204: 38(ptr) AccessChain 35(data) 197 37
Store 204 203
205: 6(int) Load 8(invocation)
206: 190(ptr) AccessChain 35(data) 76 181
207: 26(i64vec4) Load 206
208: 42(bool) GroupNonUniformAllEqual 44 207
209: 31(int) Select 208 54 41
210: 38(ptr) AccessChain 35(data) 205 37
Store 210 209
211: 6(int) Load 8(invocation)
214: 213(ptr) AccessChain 35(data) 41 212 49
215: 27(int64_t) Load 214
216: 42(bool) GroupNonUniformAllEqual 44 215
217: 31(int) Select 216 54 41
218: 38(ptr) AccessChain 35(data) 211 37
Store 218 217
219: 6(int) Load 8(invocation)
222: 221(ptr) AccessChain 35(data) 54 212
223: 28(i64vec4) Load 222
224:220(i64vec2) VectorShuffle 223 223 0 1
225: 42(bool) GroupNonUniformAllEqual 44 224
226: 31(int) Select 225 54 41
227: 38(ptr) AccessChain 35(data) 219 37
Store 227 226
228: 6(int) Load 8(invocation)
230: 221(ptr) AccessChain 35(data) 67 212
231: 28(i64vec4) Load 230
232:229(i64vec3) VectorShuffle 231 231 0 1 2
233: 42(bool) GroupNonUniformAllEqual 44 232
234: 31(int) Select 233 54 41
235: 38(ptr) AccessChain 35(data) 228 37
Store 235 234
236: 6(int) Load 8(invocation)
237: 221(ptr) AccessChain 35(data) 76 212
238: 28(i64vec4) Load 237
239: 42(bool) GroupNonUniformAllEqual 44 238
240: 31(int) Select 239 54 41
241: 38(ptr) AccessChain 35(data) 236 37
Store 241 240
242: 6(int) Load 8(invocation)
245: 244(ptr) AccessChain 35(data) 41 243 49
246:29(float16_t) Load 245
247: 42(bool) GroupNonUniformAllEqual 44 246
248: 31(int) Select 247 54 41
249: 38(ptr) AccessChain 35(data) 242 37
Store 249 248
250: 6(int) Load 8(invocation)
253: 252(ptr) AccessChain 35(data) 54 243
254: 30(f16vec4) Load 253
255:251(f16vec2) VectorShuffle 254 254 0 1
256: 42(bool) GroupNonUniformAllEqual 44 255
257: 31(int) Select 256 54 41
258: 38(ptr) AccessChain 35(data) 250 37
Store 258 257
259: 6(int) Load 8(invocation)
261: 252(ptr) AccessChain 35(data) 67 243
262: 30(f16vec4) Load 261
263:260(f16vec3) VectorShuffle 262 262 0 1 2
264: 42(bool) GroupNonUniformAllEqual 44 263
265: 31(int) Select 264 54 41
266: 38(ptr) AccessChain 35(data) 259 37
Store 266 265
267: 6(int) Load 8(invocation)
268: 252(ptr) AccessChain 35(data) 76 243
269: 30(f16vec4) Load 268
270: 42(bool) GroupNonUniformAllEqual 44 269
271: 31(int) Select 270 54 41
272: 38(ptr) AccessChain 35(data) 267 37
Store 272 271
Branch 179
179: Label
Branch 47
47: Label
Return
FunctionEnd

View File

@ -0,0 +1,33 @@
spv.subgroupExtendedTypesVoteNeg.comp
ERROR: 0:29: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:30: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:31: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:32: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:34: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:35: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:36: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:37: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
ERROR: 0:39: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:40: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:41: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:42: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:44: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:45: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:46: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:47: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
ERROR: 0:51: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:52: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:53: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:54: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:56: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:57: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:58: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:59: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
ERROR: 0:61: ' temp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:62: ' temp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:63: ' temp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 0:64: 'layout( column_major std430) buffer 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
ERROR: 28 compilation errors. No code generated.
SPIR-V is not generated for failed compile or link

View File

@ -0,0 +1,715 @@
#version 450
#extension GL_KHR_shader_subgroup_arithmetic: enable
#extension GL_EXT_shader_subgroup_extended_types_int8: enable
#extension GL_EXT_shader_subgroup_extended_types_int16: enable
#extension GL_EXT_shader_subgroup_extended_types_int64: enable
#extension GL_EXT_shader_subgroup_extended_types_float16: enable
layout (local_size_x = 8) in;
layout(binding = 0) buffer Buffers
{
i8vec4 i8;
u8vec4 u8;
i16vec4 i16;
u16vec4 u16;
i64vec4 i64;
u64vec4 u64;
f16vec4 f16;
} data[4];
void main()
{
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
data[invocation].i8.x = subgroupAdd(data[0].i8.x);
data[invocation].i8.xy = subgroupAdd(data[1].i8.xy);
data[invocation].i8.xyz = subgroupAdd(data[2].i8.xyz);
data[invocation].i8 = subgroupAdd(data[3].i8);
data[invocation].i8.x = subgroupMul(data[0].i8.x);
data[invocation].i8.xy = subgroupMul(data[1].i8.xy);
data[invocation].i8.xyz = subgroupMul(data[2].i8.xyz);
data[invocation].i8 = subgroupMul(data[3].i8);
data[invocation].i8.x = subgroupMin(data[0].i8.x);
data[invocation].i8.xy = subgroupMin(data[1].i8.xy);
data[invocation].i8.xyz = subgroupMin(data[2].i8.xyz);
data[invocation].i8 = subgroupMin(data[3].i8);
data[invocation].i8.x = subgroupMax(data[0].i8.x);
data[invocation].i8.xy = subgroupMax(data[1].i8.xy);
data[invocation].i8.xyz = subgroupMax(data[2].i8.xyz);
data[invocation].i8 = subgroupMax(data[3].i8);
data[invocation].i8.x = subgroupAnd(data[0].i8.x);
data[invocation].i8.xy = subgroupAnd(data[1].i8.xy);
data[invocation].i8.xyz = subgroupAnd(data[2].i8.xyz);
data[invocation].i8 = subgroupAnd(data[3].i8);
data[invocation].i8.x = subgroupOr(data[0].i8.x);
data[invocation].i8.xy = subgroupOr(data[1].i8.xy);
data[invocation].i8.xyz = subgroupOr(data[2].i8.xyz);
data[invocation].i8 = subgroupOr(data[3].i8);
data[invocation].i8.x = subgroupXor(data[0].i8.x);
data[invocation].i8.xy = subgroupXor(data[1].i8.xy);
data[invocation].i8.xyz = subgroupXor(data[2].i8.xyz);
data[invocation].i8 = subgroupXor(data[3].i8);
data[invocation].i8.x = subgroupInclusiveAdd(data[0].i8.x);
data[invocation].i8.xy = subgroupInclusiveAdd(data[1].i8.xy);
data[invocation].i8.xyz = subgroupInclusiveAdd(data[2].i8.xyz);
data[invocation].i8 = subgroupInclusiveAdd(data[3].i8);
data[invocation].i8.x = subgroupInclusiveMul(data[0].i8.x);
data[invocation].i8.xy = subgroupInclusiveMul(data[1].i8.xy);
data[invocation].i8.xyz = subgroupInclusiveMul(data[2].i8.xyz);
data[invocation].i8 = subgroupInclusiveMul(data[3].i8);
data[invocation].i8.x = subgroupInclusiveMin(data[0].i8.x);
data[invocation].i8.xy = subgroupInclusiveMin(data[1].i8.xy);
data[invocation].i8.xyz = subgroupInclusiveMin(data[2].i8.xyz);
data[invocation].i8 = subgroupInclusiveMin(data[3].i8);
data[invocation].i8.x = subgroupInclusiveMax(data[0].i8.x);
data[invocation].i8.xy = subgroupInclusiveMax(data[1].i8.xy);
data[invocation].i8.xyz = subgroupInclusiveMax(data[2].i8.xyz);
data[invocation].i8 = subgroupInclusiveMax(data[3].i8);
data[invocation].i8.x = subgroupInclusiveAnd(data[0].i8.x);
data[invocation].i8.xy = subgroupInclusiveAnd(data[1].i8.xy);
data[invocation].i8.xyz = subgroupInclusiveAnd(data[2].i8.xyz);
data[invocation].i8 = subgroupInclusiveAnd(data[3].i8);
data[invocation].i8.x = subgroupInclusiveOr(data[0].i8.x);
data[invocation].i8.xy = subgroupInclusiveOr(data[1].i8.xy);
data[invocation].i8.xyz = subgroupInclusiveOr(data[2].i8.xyz);
data[invocation].i8 = subgroupInclusiveOr(data[3].i8);
data[invocation].i8.x = subgroupInclusiveXor(data[0].i8.x);
data[invocation].i8.xy = subgroupInclusiveXor(data[1].i8.xy);
data[invocation].i8.xyz = subgroupInclusiveXor(data[2].i8.xyz);
data[invocation].i8 = subgroupInclusiveXor(data[3].i8);
data[invocation].i8.x = subgroupExclusiveAdd(data[0].i8.x);
data[invocation].i8.xy = subgroupExclusiveAdd(data[1].i8.xy);
data[invocation].i8.xyz = subgroupExclusiveAdd(data[2].i8.xyz);
data[invocation].i8 = subgroupExclusiveAdd(data[3].i8);
data[invocation].i8.x = subgroupExclusiveMul(data[0].i8.x);
data[invocation].i8.xy = subgroupExclusiveMul(data[1].i8.xy);
data[invocation].i8.xyz = subgroupExclusiveMul(data[2].i8.xyz);
data[invocation].i8 = subgroupExclusiveMul(data[3].i8);
data[invocation].i8.x = subgroupExclusiveMin(data[0].i8.x);
data[invocation].i8.xy = subgroupExclusiveMin(data[1].i8.xy);
data[invocation].i8.xyz = subgroupExclusiveMin(data[2].i8.xyz);
data[invocation].i8 = subgroupExclusiveMin(data[3].i8);
data[invocation].i8.x = subgroupExclusiveMax(data[0].i8.x);
data[invocation].i8.xy = subgroupExclusiveMax(data[1].i8.xy);
data[invocation].i8.xyz = subgroupExclusiveMax(data[2].i8.xyz);
data[invocation].i8 = subgroupExclusiveMax(data[3].i8);
data[invocation].i8.x = subgroupExclusiveAnd(data[0].i8.x);
data[invocation].i8.xy = subgroupExclusiveAnd(data[1].i8.xy);
data[invocation].i8.xyz = subgroupExclusiveAnd(data[2].i8.xyz);
data[invocation].i8 = subgroupExclusiveAnd(data[3].i8);
data[invocation].i8.x = subgroupExclusiveOr(data[0].i8.x);
data[invocation].i8.xy = subgroupExclusiveOr(data[1].i8.xy);
data[invocation].i8.xyz = subgroupExclusiveOr(data[2].i8.xyz);
data[invocation].i8 = subgroupExclusiveOr(data[3].i8);
data[invocation].i8.x = subgroupExclusiveXor(data[0].i8.x);
data[invocation].i8.xy = subgroupExclusiveXor(data[1].i8.xy);
data[invocation].i8.xyz = subgroupExclusiveXor(data[2].i8.xyz);
data[invocation].i8 = subgroupExclusiveXor(data[3].i8);
data[invocation].u8.x = subgroupAdd(data[0].u8.x);
data[invocation].u8.xy = subgroupAdd(data[1].u8.xy);
data[invocation].u8.xyz = subgroupAdd(data[2].u8.xyz);
data[invocation].u8 = subgroupAdd(data[3].u8);
data[invocation].u8.x = subgroupMul(data[0].u8.x);
data[invocation].u8.xy = subgroupMul(data[1].u8.xy);
data[invocation].u8.xyz = subgroupMul(data[2].u8.xyz);
data[invocation].u8 = subgroupMul(data[3].u8);
data[invocation].u8.x = subgroupMin(data[0].u8.x);
data[invocation].u8.xy = subgroupMin(data[1].u8.xy);
data[invocation].u8.xyz = subgroupMin(data[2].u8.xyz);
data[invocation].u8 = subgroupMin(data[3].u8);
data[invocation].u8.x = subgroupMax(data[0].u8.x);
data[invocation].u8.xy = subgroupMax(data[1].u8.xy);
data[invocation].u8.xyz = subgroupMax(data[2].u8.xyz);
data[invocation].u8 = subgroupMax(data[3].u8);
data[invocation].u8.x = subgroupAnd(data[0].u8.x);
data[invocation].u8.xy = subgroupAnd(data[1].u8.xy);
data[invocation].u8.xyz = subgroupAnd(data[2].u8.xyz);
data[invocation].u8 = subgroupAnd(data[3].u8);
data[invocation].u8.x = subgroupOr(data[0].u8.x);
data[invocation].u8.xy = subgroupOr(data[1].u8.xy);
data[invocation].u8.xyz = subgroupOr(data[2].u8.xyz);
data[invocation].u8 = subgroupOr(data[3].u8);
data[invocation].u8.x = subgroupXor(data[0].u8.x);
data[invocation].u8.xy = subgroupXor(data[1].u8.xy);
data[invocation].u8.xyz = subgroupXor(data[2].u8.xyz);
data[invocation].u8 = subgroupXor(data[3].u8);
data[invocation].u8.x = subgroupInclusiveAdd(data[0].u8.x);
data[invocation].u8.xy = subgroupInclusiveAdd(data[1].u8.xy);
data[invocation].u8.xyz = subgroupInclusiveAdd(data[2].u8.xyz);
data[invocation].u8 = subgroupInclusiveAdd(data[3].u8);
data[invocation].u8.x = subgroupInclusiveMul(data[0].u8.x);
data[invocation].u8.xy = subgroupInclusiveMul(data[1].u8.xy);
data[invocation].u8.xyz = subgroupInclusiveMul(data[2].u8.xyz);
data[invocation].u8 = subgroupInclusiveMul(data[3].u8);
data[invocation].u8.x = subgroupInclusiveMin(data[0].u8.x);
data[invocation].u8.xy = subgroupInclusiveMin(data[1].u8.xy);
data[invocation].u8.xyz = subgroupInclusiveMin(data[2].u8.xyz);
data[invocation].u8 = subgroupInclusiveMin(data[3].u8);
data[invocation].u8.x = subgroupInclusiveMax(data[0].u8.x);
data[invocation].u8.xy = subgroupInclusiveMax(data[1].u8.xy);
data[invocation].u8.xyz = subgroupInclusiveMax(data[2].u8.xyz);
data[invocation].u8 = subgroupInclusiveMax(data[3].u8);
data[invocation].u8.x = subgroupInclusiveAnd(data[0].u8.x);
data[invocation].u8.xy = subgroupInclusiveAnd(data[1].u8.xy);
data[invocation].u8.xyz = subgroupInclusiveAnd(data[2].u8.xyz);
data[invocation].u8 = subgroupInclusiveAnd(data[3].u8);
data[invocation].u8.x = subgroupInclusiveOr(data[0].u8.x);
data[invocation].u8.xy = subgroupInclusiveOr(data[1].u8.xy);
data[invocation].u8.xyz = subgroupInclusiveOr(data[2].u8.xyz);
data[invocation].u8 = subgroupInclusiveOr(data[3].u8);
data[invocation].u8.x = subgroupInclusiveXor(data[0].u8.x);
data[invocation].u8.xy = subgroupInclusiveXor(data[1].u8.xy);
data[invocation].u8.xyz = subgroupInclusiveXor(data[2].u8.xyz);
data[invocation].u8 = subgroupInclusiveXor(data[3].u8);
data[invocation].u8.x = subgroupExclusiveAdd(data[0].u8.x);
data[invocation].u8.xy = subgroupExclusiveAdd(data[1].u8.xy);
data[invocation].u8.xyz = subgroupExclusiveAdd(data[2].u8.xyz);
data[invocation].u8 = subgroupExclusiveAdd(data[3].u8);
data[invocation].u8.x = subgroupExclusiveMul(data[0].u8.x);
data[invocation].u8.xy = subgroupExclusiveMul(data[1].u8.xy);
data[invocation].u8.xyz = subgroupExclusiveMul(data[2].u8.xyz);
data[invocation].u8 = subgroupExclusiveMul(data[3].u8);
data[invocation].u8.x = subgroupExclusiveMin(data[0].u8.x);
data[invocation].u8.xy = subgroupExclusiveMin(data[1].u8.xy);
data[invocation].u8.xyz = subgroupExclusiveMin(data[2].u8.xyz);
data[invocation].u8 = subgroupExclusiveMin(data[3].u8);
data[invocation].u8.x = subgroupExclusiveMax(data[0].u8.x);
data[invocation].u8.xy = subgroupExclusiveMax(data[1].u8.xy);
data[invocation].u8.xyz = subgroupExclusiveMax(data[2].u8.xyz);
data[invocation].u8 = subgroupExclusiveMax(data[3].u8);
data[invocation].u8.x = subgroupExclusiveAnd(data[0].u8.x);
data[invocation].u8.xy = subgroupExclusiveAnd(data[1].u8.xy);
data[invocation].u8.xyz = subgroupExclusiveAnd(data[2].u8.xyz);
data[invocation].u8 = subgroupExclusiveAnd(data[3].u8);
data[invocation].u8.x = subgroupExclusiveOr(data[0].u8.x);
data[invocation].u8.xy = subgroupExclusiveOr(data[1].u8.xy);
data[invocation].u8.xyz = subgroupExclusiveOr(data[2].u8.xyz);
data[invocation].u8 = subgroupExclusiveOr(data[3].u8);
data[invocation].u8.x = subgroupExclusiveXor(data[0].u8.x);
data[invocation].u8.xy = subgroupExclusiveXor(data[1].u8.xy);
data[invocation].u8.xyz = subgroupExclusiveXor(data[2].u8.xyz);
data[invocation].u8 = subgroupExclusiveXor(data[3].u8);
data[invocation].i16.x = subgroupAdd(data[0].i16.x);
data[invocation].i16.xy = subgroupAdd(data[1].i16.xy);
data[invocation].i16.xyz = subgroupAdd(data[2].i16.xyz);
data[invocation].i16 = subgroupAdd(data[3].i16);
data[invocation].i16.x = subgroupMul(data[0].i16.x);
data[invocation].i16.xy = subgroupMul(data[1].i16.xy);
data[invocation].i16.xyz = subgroupMul(data[2].i16.xyz);
data[invocation].i16 = subgroupMul(data[3].i16);
data[invocation].i16.x = subgroupMin(data[0].i16.x);
data[invocation].i16.xy = subgroupMin(data[1].i16.xy);
data[invocation].i16.xyz = subgroupMin(data[2].i16.xyz);
data[invocation].i16 = subgroupMin(data[3].i16);
data[invocation].i16.x = subgroupMax(data[0].i16.x);
data[invocation].i16.xy = subgroupMax(data[1].i16.xy);
data[invocation].i16.xyz = subgroupMax(data[2].i16.xyz);
data[invocation].i16 = subgroupMax(data[3].i16);
data[invocation].i16.x = subgroupAnd(data[0].i16.x);
data[invocation].i16.xy = subgroupAnd(data[1].i16.xy);
data[invocation].i16.xyz = subgroupAnd(data[2].i16.xyz);
data[invocation].i16 = subgroupAnd(data[3].i16);
data[invocation].i16.x = subgroupOr(data[0].i16.x);
data[invocation].i16.xy = subgroupOr(data[1].i16.xy);
data[invocation].i16.xyz = subgroupOr(data[2].i16.xyz);
data[invocation].i16 = subgroupOr(data[3].i16);
data[invocation].i16.x = subgroupXor(data[0].i16.x);
data[invocation].i16.xy = subgroupXor(data[1].i16.xy);
data[invocation].i16.xyz = subgroupXor(data[2].i16.xyz);
data[invocation].i16 = subgroupXor(data[3].i16);
data[invocation].i16.x = subgroupInclusiveAdd(data[0].i16.x);
data[invocation].i16.xy = subgroupInclusiveAdd(data[1].i16.xy);
data[invocation].i16.xyz = subgroupInclusiveAdd(data[2].i16.xyz);
data[invocation].i16 = subgroupInclusiveAdd(data[3].i16);
data[invocation].i16.x = subgroupInclusiveMul(data[0].i16.x);
data[invocation].i16.xy = subgroupInclusiveMul(data[1].i16.xy);
data[invocation].i16.xyz = subgroupInclusiveMul(data[2].i16.xyz);
data[invocation].i16 = subgroupInclusiveMul(data[3].i16);
data[invocation].i16.x = subgroupInclusiveMin(data[0].i16.x);
data[invocation].i16.xy = subgroupInclusiveMin(data[1].i16.xy);
data[invocation].i16.xyz = subgroupInclusiveMin(data[2].i16.xyz);
data[invocation].i16 = subgroupInclusiveMin(data[3].i16);
data[invocation].i16.x = subgroupInclusiveMax(data[0].i16.x);
data[invocation].i16.xy = subgroupInclusiveMax(data[1].i16.xy);
data[invocation].i16.xyz = subgroupInclusiveMax(data[2].i16.xyz);
data[invocation].i16 = subgroupInclusiveMax(data[3].i16);
data[invocation].i16.x = subgroupInclusiveAnd(data[0].i16.x);
data[invocation].i16.xy = subgroupInclusiveAnd(data[1].i16.xy);
data[invocation].i16.xyz = subgroupInclusiveAnd(data[2].i16.xyz);
data[invocation].i16 = subgroupInclusiveAnd(data[3].i16);
data[invocation].i16.x = subgroupInclusiveOr(data[0].i16.x);
data[invocation].i16.xy = subgroupInclusiveOr(data[1].i16.xy);
data[invocation].i16.xyz = subgroupInclusiveOr(data[2].i16.xyz);
data[invocation].i16 = subgroupInclusiveOr(data[3].i16);
data[invocation].i16.x = subgroupInclusiveXor(data[0].i16.x);
data[invocation].i16.xy = subgroupInclusiveXor(data[1].i16.xy);
data[invocation].i16.xyz = subgroupInclusiveXor(data[2].i16.xyz);
data[invocation].i16 = subgroupInclusiveXor(data[3].i16);
data[invocation].i16.x = subgroupExclusiveAdd(data[0].i16.x);
data[invocation].i16.xy = subgroupExclusiveAdd(data[1].i16.xy);
data[invocation].i16.xyz = subgroupExclusiveAdd(data[2].i16.xyz);
data[invocation].i16 = subgroupExclusiveAdd(data[3].i16);
data[invocation].i16.x = subgroupExclusiveMul(data[0].i16.x);
data[invocation].i16.xy = subgroupExclusiveMul(data[1].i16.xy);
data[invocation].i16.xyz = subgroupExclusiveMul(data[2].i16.xyz);
data[invocation].i16 = subgroupExclusiveMul(data[3].i16);
data[invocation].i16.x = subgroupExclusiveMin(data[0].i16.x);
data[invocation].i16.xy = subgroupExclusiveMin(data[1].i16.xy);
data[invocation].i16.xyz = subgroupExclusiveMin(data[2].i16.xyz);
data[invocation].i16 = subgroupExclusiveMin(data[3].i16);
data[invocation].i16.x = subgroupExclusiveMax(data[0].i16.x);
data[invocation].i16.xy = subgroupExclusiveMax(data[1].i16.xy);
data[invocation].i16.xyz = subgroupExclusiveMax(data[2].i16.xyz);
data[invocation].i16 = subgroupExclusiveMax(data[3].i16);
data[invocation].i16.x = subgroupExclusiveAnd(data[0].i16.x);
data[invocation].i16.xy = subgroupExclusiveAnd(data[1].i16.xy);
data[invocation].i16.xyz = subgroupExclusiveAnd(data[2].i16.xyz);
data[invocation].i16 = subgroupExclusiveAnd(data[3].i16);
data[invocation].i16.x = subgroupExclusiveOr(data[0].i16.x);
data[invocation].i16.xy = subgroupExclusiveOr(data[1].i16.xy);
data[invocation].i16.xyz = subgroupExclusiveOr(data[2].i16.xyz);
data[invocation].i16 = subgroupExclusiveOr(data[3].i16);
data[invocation].i16.x = subgroupExclusiveXor(data[0].i16.x);
data[invocation].i16.xy = subgroupExclusiveXor(data[1].i16.xy);
data[invocation].i16.xyz = subgroupExclusiveXor(data[2].i16.xyz);
data[invocation].i16 = subgroupExclusiveXor(data[3].i16);
data[invocation].u16.x = subgroupAdd(data[0].u16.x);
data[invocation].u16.xy = subgroupAdd(data[1].u16.xy);
data[invocation].u16.xyz = subgroupAdd(data[2].u16.xyz);
data[invocation].u16 = subgroupAdd(data[3].u16);
data[invocation].u16.x = subgroupMul(data[0].u16.x);
data[invocation].u16.xy = subgroupMul(data[1].u16.xy);
data[invocation].u16.xyz = subgroupMul(data[2].u16.xyz);
data[invocation].u16 = subgroupMul(data[3].u16);
data[invocation].u16.x = subgroupMin(data[0].u16.x);
data[invocation].u16.xy = subgroupMin(data[1].u16.xy);
data[invocation].u16.xyz = subgroupMin(data[2].u16.xyz);
data[invocation].u16 = subgroupMin(data[3].u16);
data[invocation].u16.x = subgroupMax(data[0].u16.x);
data[invocation].u16.xy = subgroupMax(data[1].u16.xy);
data[invocation].u16.xyz = subgroupMax(data[2].u16.xyz);
data[invocation].u16 = subgroupMax(data[3].u16);
data[invocation].u16.x = subgroupAnd(data[0].u16.x);
data[invocation].u16.xy = subgroupAnd(data[1].u16.xy);
data[invocation].u16.xyz = subgroupAnd(data[2].u16.xyz);
data[invocation].u16 = subgroupAnd(data[3].u16);
data[invocation].u16.x = subgroupOr(data[0].u16.x);
data[invocation].u16.xy = subgroupOr(data[1].u16.xy);
data[invocation].u16.xyz = subgroupOr(data[2].u16.xyz);
data[invocation].u16 = subgroupOr(data[3].u16);
data[invocation].u16.x = subgroupXor(data[0].u16.x);
data[invocation].u16.xy = subgroupXor(data[1].u16.xy);
data[invocation].u16.xyz = subgroupXor(data[2].u16.xyz);
data[invocation].u16 = subgroupXor(data[3].u16);
data[invocation].u16.x = subgroupInclusiveAdd(data[0].u16.x);
data[invocation].u16.xy = subgroupInclusiveAdd(data[1].u16.xy);
data[invocation].u16.xyz = subgroupInclusiveAdd(data[2].u16.xyz);
data[invocation].u16 = subgroupInclusiveAdd(data[3].u16);
data[invocation].u16.x = subgroupInclusiveMul(data[0].u16.x);
data[invocation].u16.xy = subgroupInclusiveMul(data[1].u16.xy);
data[invocation].u16.xyz = subgroupInclusiveMul(data[2].u16.xyz);
data[invocation].u16 = subgroupInclusiveMul(data[3].u16);
data[invocation].u16.x = subgroupInclusiveMin(data[0].u16.x);
data[invocation].u16.xy = subgroupInclusiveMin(data[1].u16.xy);
data[invocation].u16.xyz = subgroupInclusiveMin(data[2].u16.xyz);
data[invocation].u16 = subgroupInclusiveMin(data[3].u16);
data[invocation].u16.x = subgroupInclusiveMax(data[0].u16.x);
data[invocation].u16.xy = subgroupInclusiveMax(data[1].u16.xy);
data[invocation].u16.xyz = subgroupInclusiveMax(data[2].u16.xyz);
data[invocation].u16 = subgroupInclusiveMax(data[3].u16);
data[invocation].u16.x = subgroupInclusiveAnd(data[0].u16.x);
data[invocation].u16.xy = subgroupInclusiveAnd(data[1].u16.xy);
data[invocation].u16.xyz = subgroupInclusiveAnd(data[2].u16.xyz);
data[invocation].u16 = subgroupInclusiveAnd(data[3].u16);
data[invocation].u16.x = subgroupInclusiveOr(data[0].u16.x);
data[invocation].u16.xy = subgroupInclusiveOr(data[1].u16.xy);
data[invocation].u16.xyz = subgroupInclusiveOr(data[2].u16.xyz);
data[invocation].u16 = subgroupInclusiveOr(data[3].u16);
data[invocation].u16.x = subgroupInclusiveXor(data[0].u16.x);
data[invocation].u16.xy = subgroupInclusiveXor(data[1].u16.xy);
data[invocation].u16.xyz = subgroupInclusiveXor(data[2].u16.xyz);
data[invocation].u16 = subgroupInclusiveXor(data[3].u16);
data[invocation].u16.x = subgroupExclusiveAdd(data[0].u16.x);
data[invocation].u16.xy = subgroupExclusiveAdd(data[1].u16.xy);
data[invocation].u16.xyz = subgroupExclusiveAdd(data[2].u16.xyz);
data[invocation].u16 = subgroupExclusiveAdd(data[3].u16);
data[invocation].u16.x = subgroupExclusiveMul(data[0].u16.x);
data[invocation].u16.xy = subgroupExclusiveMul(data[1].u16.xy);
data[invocation].u16.xyz = subgroupExclusiveMul(data[2].u16.xyz);
data[invocation].u16 = subgroupExclusiveMul(data[3].u16);
data[invocation].u16.x = subgroupExclusiveMin(data[0].u16.x);
data[invocation].u16.xy = subgroupExclusiveMin(data[1].u16.xy);
data[invocation].u16.xyz = subgroupExclusiveMin(data[2].u16.xyz);
data[invocation].u16 = subgroupExclusiveMin(data[3].u16);
data[invocation].u16.x = subgroupExclusiveMax(data[0].u16.x);
data[invocation].u16.xy = subgroupExclusiveMax(data[1].u16.xy);
data[invocation].u16.xyz = subgroupExclusiveMax(data[2].u16.xyz);
data[invocation].u16 = subgroupExclusiveMax(data[3].u16);
data[invocation].u16.x = subgroupExclusiveAnd(data[0].u16.x);
data[invocation].u16.xy = subgroupExclusiveAnd(data[1].u16.xy);
data[invocation].u16.xyz = subgroupExclusiveAnd(data[2].u16.xyz);
data[invocation].u16 = subgroupExclusiveAnd(data[3].u16);
data[invocation].u16.x = subgroupExclusiveOr(data[0].u16.x);
data[invocation].u16.xy = subgroupExclusiveOr(data[1].u16.xy);
data[invocation].u16.xyz = subgroupExclusiveOr(data[2].u16.xyz);
data[invocation].u16 = subgroupExclusiveOr(data[3].u16);
data[invocation].u16.x = subgroupExclusiveXor(data[0].u16.x);
data[invocation].u16.xy = subgroupExclusiveXor(data[1].u16.xy);
data[invocation].u16.xyz = subgroupExclusiveXor(data[2].u16.xyz);
data[invocation].u16 = subgroupExclusiveXor(data[3].u16);
data[invocation].i64.x = subgroupAdd(data[0].i64.x);
data[invocation].i64.xy = subgroupAdd(data[1].i64.xy);
data[invocation].i64.xyz = subgroupAdd(data[2].i64.xyz);
data[invocation].i64 = subgroupAdd(data[3].i64);
data[invocation].i64.x = subgroupMul(data[0].i64.x);
data[invocation].i64.xy = subgroupMul(data[1].i64.xy);
data[invocation].i64.xyz = subgroupMul(data[2].i64.xyz);
data[invocation].i64 = subgroupMul(data[3].i64);
data[invocation].i64.x = subgroupMin(data[0].i64.x);
data[invocation].i64.xy = subgroupMin(data[1].i64.xy);
data[invocation].i64.xyz = subgroupMin(data[2].i64.xyz);
data[invocation].i64 = subgroupMin(data[3].i64);
data[invocation].i64.x = subgroupMax(data[0].i64.x);
data[invocation].i64.xy = subgroupMax(data[1].i64.xy);
data[invocation].i64.xyz = subgroupMax(data[2].i64.xyz);
data[invocation].i64 = subgroupMax(data[3].i64);
data[invocation].i64.x = subgroupAnd(data[0].i64.x);
data[invocation].i64.xy = subgroupAnd(data[1].i64.xy);
data[invocation].i64.xyz = subgroupAnd(data[2].i64.xyz);
data[invocation].i64 = subgroupAnd(data[3].i64);
data[invocation].i64.x = subgroupOr(data[0].i64.x);
data[invocation].i64.xy = subgroupOr(data[1].i64.xy);
data[invocation].i64.xyz = subgroupOr(data[2].i64.xyz);
data[invocation].i64 = subgroupOr(data[3].i64);
data[invocation].i64.x = subgroupXor(data[0].i64.x);
data[invocation].i64.xy = subgroupXor(data[1].i64.xy);
data[invocation].i64.xyz = subgroupXor(data[2].i64.xyz);
data[invocation].i64 = subgroupXor(data[3].i64);
data[invocation].i64.x = subgroupInclusiveAdd(data[0].i64.x);
data[invocation].i64.xy = subgroupInclusiveAdd(data[1].i64.xy);
data[invocation].i64.xyz = subgroupInclusiveAdd(data[2].i64.xyz);
data[invocation].i64 = subgroupInclusiveAdd(data[3].i64);
data[invocation].i64.x = subgroupInclusiveMul(data[0].i64.x);
data[invocation].i64.xy = subgroupInclusiveMul(data[1].i64.xy);
data[invocation].i64.xyz = subgroupInclusiveMul(data[2].i64.xyz);
data[invocation].i64 = subgroupInclusiveMul(data[3].i64);
data[invocation].i64.x = subgroupInclusiveMin(data[0].i64.x);
data[invocation].i64.xy = subgroupInclusiveMin(data[1].i64.xy);
data[invocation].i64.xyz = subgroupInclusiveMin(data[2].i64.xyz);
data[invocation].i64 = subgroupInclusiveMin(data[3].i64);
data[invocation].i64.x = subgroupInclusiveMax(data[0].i64.x);
data[invocation].i64.xy = subgroupInclusiveMax(data[1].i64.xy);
data[invocation].i64.xyz = subgroupInclusiveMax(data[2].i64.xyz);
data[invocation].i64 = subgroupInclusiveMax(data[3].i64);
data[invocation].i64.x = subgroupInclusiveAnd(data[0].i64.x);
data[invocation].i64.xy = subgroupInclusiveAnd(data[1].i64.xy);
data[invocation].i64.xyz = subgroupInclusiveAnd(data[2].i64.xyz);
data[invocation].i64 = subgroupInclusiveAnd(data[3].i64);
data[invocation].i64.x = subgroupInclusiveOr(data[0].i64.x);
data[invocation].i64.xy = subgroupInclusiveOr(data[1].i64.xy);
data[invocation].i64.xyz = subgroupInclusiveOr(data[2].i64.xyz);
data[invocation].i64 = subgroupInclusiveOr(data[3].i64);
data[invocation].i64.x = subgroupInclusiveXor(data[0].i64.x);
data[invocation].i64.xy = subgroupInclusiveXor(data[1].i64.xy);
data[invocation].i64.xyz = subgroupInclusiveXor(data[2].i64.xyz);
data[invocation].i64 = subgroupInclusiveXor(data[3].i64);
data[invocation].i64.x = subgroupExclusiveAdd(data[0].i64.x);
data[invocation].i64.xy = subgroupExclusiveAdd(data[1].i64.xy);
data[invocation].i64.xyz = subgroupExclusiveAdd(data[2].i64.xyz);
data[invocation].i64 = subgroupExclusiveAdd(data[3].i64);
data[invocation].i64.x = subgroupExclusiveMul(data[0].i64.x);
data[invocation].i64.xy = subgroupExclusiveMul(data[1].i64.xy);
data[invocation].i64.xyz = subgroupExclusiveMul(data[2].i64.xyz);
data[invocation].i64 = subgroupExclusiveMul(data[3].i64);
data[invocation].i64.x = subgroupExclusiveMin(data[0].i64.x);
data[invocation].i64.xy = subgroupExclusiveMin(data[1].i64.xy);
data[invocation].i64.xyz = subgroupExclusiveMin(data[2].i64.xyz);
data[invocation].i64 = subgroupExclusiveMin(data[3].i64);
data[invocation].i64.x = subgroupExclusiveMax(data[0].i64.x);
data[invocation].i64.xy = subgroupExclusiveMax(data[1].i64.xy);
data[invocation].i64.xyz = subgroupExclusiveMax(data[2].i64.xyz);
data[invocation].i64 = subgroupExclusiveMax(data[3].i64);
data[invocation].i64.x = subgroupExclusiveAnd(data[0].i64.x);
data[invocation].i64.xy = subgroupExclusiveAnd(data[1].i64.xy);
data[invocation].i64.xyz = subgroupExclusiveAnd(data[2].i64.xyz);
data[invocation].i64 = subgroupExclusiveAnd(data[3].i64);
data[invocation].i64.x = subgroupExclusiveOr(data[0].i64.x);
data[invocation].i64.xy = subgroupExclusiveOr(data[1].i64.xy);
data[invocation].i64.xyz = subgroupExclusiveOr(data[2].i64.xyz);
data[invocation].i64 = subgroupExclusiveOr(data[3].i64);
data[invocation].i64.x = subgroupExclusiveXor(data[0].i64.x);
data[invocation].i64.xy = subgroupExclusiveXor(data[1].i64.xy);
data[invocation].i64.xyz = subgroupExclusiveXor(data[2].i64.xyz);
data[invocation].i64 = subgroupExclusiveXor(data[3].i64);
data[invocation].u64.x = subgroupAdd(data[0].u64.x);
data[invocation].u64.xy = subgroupAdd(data[1].u64.xy);
data[invocation].u64.xyz = subgroupAdd(data[2].u64.xyz);
data[invocation].u64 = subgroupAdd(data[3].u64);
data[invocation].u64.x = subgroupMul(data[0].u64.x);
data[invocation].u64.xy = subgroupMul(data[1].u64.xy);
data[invocation].u64.xyz = subgroupMul(data[2].u64.xyz);
data[invocation].u64 = subgroupMul(data[3].u64);
data[invocation].u64.x = subgroupMin(data[0].u64.x);
data[invocation].u64.xy = subgroupMin(data[1].u64.xy);
data[invocation].u64.xyz = subgroupMin(data[2].u64.xyz);
data[invocation].u64 = subgroupMin(data[3].u64);
data[invocation].u64.x = subgroupMax(data[0].u64.x);
data[invocation].u64.xy = subgroupMax(data[1].u64.xy);
data[invocation].u64.xyz = subgroupMax(data[2].u64.xyz);
data[invocation].u64 = subgroupMax(data[3].u64);
data[invocation].u64.x = subgroupAnd(data[0].u64.x);
data[invocation].u64.xy = subgroupAnd(data[1].u64.xy);
data[invocation].u64.xyz = subgroupAnd(data[2].u64.xyz);
data[invocation].u64 = subgroupAnd(data[3].u64);
data[invocation].u64.x = subgroupOr(data[0].u64.x);
data[invocation].u64.xy = subgroupOr(data[1].u64.xy);
data[invocation].u64.xyz = subgroupOr(data[2].u64.xyz);
data[invocation].u64 = subgroupOr(data[3].u64);
data[invocation].u64.x = subgroupXor(data[0].u64.x);
data[invocation].u64.xy = subgroupXor(data[1].u64.xy);
data[invocation].u64.xyz = subgroupXor(data[2].u64.xyz);
data[invocation].u64 = subgroupXor(data[3].u64);
data[invocation].u64.x = subgroupInclusiveAdd(data[0].u64.x);
data[invocation].u64.xy = subgroupInclusiveAdd(data[1].u64.xy);
data[invocation].u64.xyz = subgroupInclusiveAdd(data[2].u64.xyz);
data[invocation].u64 = subgroupInclusiveAdd(data[3].u64);
data[invocation].u64.x = subgroupInclusiveMul(data[0].u64.x);
data[invocation].u64.xy = subgroupInclusiveMul(data[1].u64.xy);
data[invocation].u64.xyz = subgroupInclusiveMul(data[2].u64.xyz);
data[invocation].u64 = subgroupInclusiveMul(data[3].u64);
data[invocation].u64.x = subgroupInclusiveMin(data[0].u64.x);
data[invocation].u64.xy = subgroupInclusiveMin(data[1].u64.xy);
data[invocation].u64.xyz = subgroupInclusiveMin(data[2].u64.xyz);
data[invocation].u64 = subgroupInclusiveMin(data[3].u64);
data[invocation].u64.x = subgroupInclusiveMax(data[0].u64.x);
data[invocation].u64.xy = subgroupInclusiveMax(data[1].u64.xy);
data[invocation].u64.xyz = subgroupInclusiveMax(data[2].u64.xyz);
data[invocation].u64 = subgroupInclusiveMax(data[3].u64);
data[invocation].u64.x = subgroupInclusiveAnd(data[0].u64.x);
data[invocation].u64.xy = subgroupInclusiveAnd(data[1].u64.xy);
data[invocation].u64.xyz = subgroupInclusiveAnd(data[2].u64.xyz);
data[invocation].u64 = subgroupInclusiveAnd(data[3].u64);
data[invocation].u64.x = subgroupInclusiveOr(data[0].u64.x);
data[invocation].u64.xy = subgroupInclusiveOr(data[1].u64.xy);
data[invocation].u64.xyz = subgroupInclusiveOr(data[2].u64.xyz);
data[invocation].u64 = subgroupInclusiveOr(data[3].u64);
data[invocation].u64.x = subgroupInclusiveXor(data[0].u64.x);
data[invocation].u64.xy = subgroupInclusiveXor(data[1].u64.xy);
data[invocation].u64.xyz = subgroupInclusiveXor(data[2].u64.xyz);
data[invocation].u64 = subgroupInclusiveXor(data[3].u64);
data[invocation].u64.x = subgroupExclusiveAdd(data[0].u64.x);
data[invocation].u64.xy = subgroupExclusiveAdd(data[1].u64.xy);
data[invocation].u64.xyz = subgroupExclusiveAdd(data[2].u64.xyz);
data[invocation].u64 = subgroupExclusiveAdd(data[3].u64);
data[invocation].u64.x = subgroupExclusiveMul(data[0].u64.x);
data[invocation].u64.xy = subgroupExclusiveMul(data[1].u64.xy);
data[invocation].u64.xyz = subgroupExclusiveMul(data[2].u64.xyz);
data[invocation].u64 = subgroupExclusiveMul(data[3].u64);
data[invocation].u64.x = subgroupExclusiveMin(data[0].u64.x);
data[invocation].u64.xy = subgroupExclusiveMin(data[1].u64.xy);
data[invocation].u64.xyz = subgroupExclusiveMin(data[2].u64.xyz);
data[invocation].u64 = subgroupExclusiveMin(data[3].u64);
data[invocation].u64.x = subgroupExclusiveMax(data[0].u64.x);
data[invocation].u64.xy = subgroupExclusiveMax(data[1].u64.xy);
data[invocation].u64.xyz = subgroupExclusiveMax(data[2].u64.xyz);
data[invocation].u64 = subgroupExclusiveMax(data[3].u64);
data[invocation].u64.x = subgroupExclusiveAnd(data[0].u64.x);
data[invocation].u64.xy = subgroupExclusiveAnd(data[1].u64.xy);
data[invocation].u64.xyz = subgroupExclusiveAnd(data[2].u64.xyz);
data[invocation].u64 = subgroupExclusiveAnd(data[3].u64);
data[invocation].u64.x = subgroupExclusiveOr(data[0].u64.x);
data[invocation].u64.xy = subgroupExclusiveOr(data[1].u64.xy);
data[invocation].u64.xyz = subgroupExclusiveOr(data[2].u64.xyz);
data[invocation].u64 = subgroupExclusiveOr(data[3].u64);
data[invocation].u64.x = subgroupExclusiveXor(data[0].u64.x);
data[invocation].u64.xy = subgroupExclusiveXor(data[1].u64.xy);
data[invocation].u64.xyz = subgroupExclusiveXor(data[2].u64.xyz);
data[invocation].u64 = subgroupExclusiveXor(data[3].u64);
data[invocation].f16.x = subgroupAdd(data[0].f16.x);
data[invocation].f16.xy = subgroupAdd(data[1].f16.xy);
data[invocation].f16.xyz = subgroupAdd(data[2].f16.xyz);
data[invocation].f16 = subgroupAdd(data[3].f16);
data[invocation].f16.x = subgroupMul(data[0].f16.x);
data[invocation].f16.xy = subgroupMul(data[1].f16.xy);
data[invocation].f16.xyz = subgroupMul(data[2].f16.xyz);
data[invocation].f16 = subgroupMul(data[3].f16);
data[invocation].f16.x = subgroupMin(data[0].f16.x);
data[invocation].f16.xy = subgroupMin(data[1].f16.xy);
data[invocation].f16.xyz = subgroupMin(data[2].f16.xyz);
data[invocation].f16 = subgroupMin(data[3].f16);
data[invocation].f16.x = subgroupMax(data[0].f16.x);
data[invocation].f16.xy = subgroupMax(data[1].f16.xy);
data[invocation].f16.xyz = subgroupMax(data[2].f16.xyz);
data[invocation].f16 = subgroupMax(data[3].f16);
data[invocation].f16.x = subgroupInclusiveAdd(data[0].f16.x);
data[invocation].f16.xy = subgroupInclusiveAdd(data[1].f16.xy);
data[invocation].f16.xyz = subgroupInclusiveAdd(data[2].f16.xyz);
data[invocation].f16 = subgroupInclusiveAdd(data[3].f16);
data[invocation].f16.x = subgroupInclusiveMul(data[0].f16.x);
data[invocation].f16.xy = subgroupInclusiveMul(data[1].f16.xy);
data[invocation].f16.xyz = subgroupInclusiveMul(data[2].f16.xyz);
data[invocation].f16 = subgroupInclusiveMul(data[3].f16);
data[invocation].f16.x = subgroupInclusiveMin(data[0].f16.x);
data[invocation].f16.xy = subgroupInclusiveMin(data[1].f16.xy);
data[invocation].f16.xyz = subgroupInclusiveMin(data[2].f16.xyz);
data[invocation].f16 = subgroupInclusiveMin(data[3].f16);
data[invocation].f16.x = subgroupInclusiveMax(data[0].f16.x);
data[invocation].f16.xy = subgroupInclusiveMax(data[1].f16.xy);
data[invocation].f16.xyz = subgroupInclusiveMax(data[2].f16.xyz);
data[invocation].f16 = subgroupInclusiveMax(data[3].f16);
data[invocation].f16.x = subgroupExclusiveAdd(data[0].f16.x);
data[invocation].f16.xy = subgroupExclusiveAdd(data[1].f16.xy);
data[invocation].f16.xyz = subgroupExclusiveAdd(data[2].f16.xyz);
data[invocation].f16 = subgroupExclusiveAdd(data[3].f16);
data[invocation].f16.x = subgroupExclusiveMul(data[0].f16.x);
data[invocation].f16.xy = subgroupExclusiveMul(data[1].f16.xy);
data[invocation].f16.xyz = subgroupExclusiveMul(data[2].f16.xyz);
data[invocation].f16 = subgroupExclusiveMul(data[3].f16);
data[invocation].f16.x = subgroupExclusiveMin(data[0].f16.x);
data[invocation].f16.xy = subgroupExclusiveMin(data[1].f16.xy);
data[invocation].f16.xyz = subgroupExclusiveMin(data[2].f16.xyz);
data[invocation].f16 = subgroupExclusiveMin(data[3].f16);
data[invocation].f16.x = subgroupExclusiveMax(data[0].f16.x);
data[invocation].f16.xy = subgroupExclusiveMax(data[1].f16.xy);
data[invocation].f16.xyz = subgroupExclusiveMax(data[2].f16.xyz);
data[invocation].f16 = subgroupExclusiveMax(data[3].f16);
}

View File

@ -0,0 +1,715 @@
#version 450
#extension GL_KHR_shader_subgroup_arithmetic: enable
#extension GL_EXT_shader_explicit_arithmetic_types_int8: enable
#extension GL_EXT_shader_explicit_arithmetic_types_int16: enable
#extension GL_EXT_shader_explicit_arithmetic_types_int64: enable
#extension GL_EXT_shader_explicit_arithmetic_types_float16: enable
layout (local_size_x = 8) in;
layout(binding = 0) buffer Buffers
{
i8vec4 i8;
u8vec4 u8;
i16vec4 i16;
u16vec4 u16;
i64vec4 i64;
u64vec4 u64;
f16vec4 f16;
} data[4];
void main()
{
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
data[invocation].i8.x = subgroupAdd(data[0].i8.x);
data[invocation].i8.xy = subgroupAdd(data[1].i8.xy);
data[invocation].i8.xyz = subgroupAdd(data[2].i8.xyz);
data[invocation].i8 = subgroupAdd(data[3].i8);
data[invocation].i8.x = subgroupMul(data[0].i8.x);
data[invocation].i8.xy = subgroupMul(data[1].i8.xy);
data[invocation].i8.xyz = subgroupMul(data[2].i8.xyz);
data[invocation].i8 = subgroupMul(data[3].i8);
data[invocation].i8.x = subgroupMin(data[0].i8.x);
data[invocation].i8.xy = subgroupMin(data[1].i8.xy);
data[invocation].i8.xyz = subgroupMin(data[2].i8.xyz);
data[invocation].i8 = subgroupMin(data[3].i8);
data[invocation].i8.x = subgroupMax(data[0].i8.x);
data[invocation].i8.xy = subgroupMax(data[1].i8.xy);
data[invocation].i8.xyz = subgroupMax(data[2].i8.xyz);
data[invocation].i8 = subgroupMax(data[3].i8);
data[invocation].i8.x = subgroupAnd(data[0].i8.x);
data[invocation].i8.xy = subgroupAnd(data[1].i8.xy);
data[invocation].i8.xyz = subgroupAnd(data[2].i8.xyz);
data[invocation].i8 = subgroupAnd(data[3].i8);
data[invocation].i8.x = subgroupOr(data[0].i8.x);
data[invocation].i8.xy = subgroupOr(data[1].i8.xy);
data[invocation].i8.xyz = subgroupOr(data[2].i8.xyz);
data[invocation].i8 = subgroupOr(data[3].i8);
data[invocation].i8.x = subgroupXor(data[0].i8.x);
data[invocation].i8.xy = subgroupXor(data[1].i8.xy);
data[invocation].i8.xyz = subgroupXor(data[2].i8.xyz);
data[invocation].i8 = subgroupXor(data[3].i8);
data[invocation].i8.x = subgroupInclusiveAdd(data[0].i8.x);
data[invocation].i8.xy = subgroupInclusiveAdd(data[1].i8.xy);
data[invocation].i8.xyz = subgroupInclusiveAdd(data[2].i8.xyz);
data[invocation].i8 = subgroupInclusiveAdd(data[3].i8);
data[invocation].i8.x = subgroupInclusiveMul(data[0].i8.x);
data[invocation].i8.xy = subgroupInclusiveMul(data[1].i8.xy);
data[invocation].i8.xyz = subgroupInclusiveMul(data[2].i8.xyz);
data[invocation].i8 = subgroupInclusiveMul(data[3].i8);
data[invocation].i8.x = subgroupInclusiveMin(data[0].i8.x);
data[invocation].i8.xy = subgroupInclusiveMin(data[1].i8.xy);
data[invocation].i8.xyz = subgroupInclusiveMin(data[2].i8.xyz);
data[invocation].i8 = subgroupInclusiveMin(data[3].i8);
data[invocation].i8.x = subgroupInclusiveMax(data[0].i8.x);
data[invocation].i8.xy = subgroupInclusiveMax(data[1].i8.xy);
data[invocation].i8.xyz = subgroupInclusiveMax(data[2].i8.xyz);
data[invocation].i8 = subgroupInclusiveMax(data[3].i8);
data[invocation].i8.x = subgroupInclusiveAnd(data[0].i8.x);
data[invocation].i8.xy = subgroupInclusiveAnd(data[1].i8.xy);
data[invocation].i8.xyz = subgroupInclusiveAnd(data[2].i8.xyz);
data[invocation].i8 = subgroupInclusiveAnd(data[3].i8);
data[invocation].i8.x = subgroupInclusiveOr(data[0].i8.x);
data[invocation].i8.xy = subgroupInclusiveOr(data[1].i8.xy);
data[invocation].i8.xyz = subgroupInclusiveOr(data[2].i8.xyz);
data[invocation].i8 = subgroupInclusiveOr(data[3].i8);
data[invocation].i8.x = subgroupInclusiveXor(data[0].i8.x);
data[invocation].i8.xy = subgroupInclusiveXor(data[1].i8.xy);
data[invocation].i8.xyz = subgroupInclusiveXor(data[2].i8.xyz);
data[invocation].i8 = subgroupInclusiveXor(data[3].i8);
data[invocation].i8.x = subgroupExclusiveAdd(data[0].i8.x);
data[invocation].i8.xy = subgroupExclusiveAdd(data[1].i8.xy);
data[invocation].i8.xyz = subgroupExclusiveAdd(data[2].i8.xyz);
data[invocation].i8 = subgroupExclusiveAdd(data[3].i8);
data[invocation].i8.x = subgroupExclusiveMul(data[0].i8.x);
data[invocation].i8.xy = subgroupExclusiveMul(data[1].i8.xy);
data[invocation].i8.xyz = subgroupExclusiveMul(data[2].i8.xyz);
data[invocation].i8 = subgroupExclusiveMul(data[3].i8);
data[invocation].i8.x = subgroupExclusiveMin(data[0].i8.x);
data[invocation].i8.xy = subgroupExclusiveMin(data[1].i8.xy);
data[invocation].i8.xyz = subgroupExclusiveMin(data[2].i8.xyz);
data[invocation].i8 = subgroupExclusiveMin(data[3].i8);
data[invocation].i8.x = subgroupExclusiveMax(data[0].i8.x);
data[invocation].i8.xy = subgroupExclusiveMax(data[1].i8.xy);
data[invocation].i8.xyz = subgroupExclusiveMax(data[2].i8.xyz);
data[invocation].i8 = subgroupExclusiveMax(data[3].i8);
data[invocation].i8.x = subgroupExclusiveAnd(data[0].i8.x);
data[invocation].i8.xy = subgroupExclusiveAnd(data[1].i8.xy);
data[invocation].i8.xyz = subgroupExclusiveAnd(data[2].i8.xyz);
data[invocation].i8 = subgroupExclusiveAnd(data[3].i8);
data[invocation].i8.x = subgroupExclusiveOr(data[0].i8.x);
data[invocation].i8.xy = subgroupExclusiveOr(data[1].i8.xy);
data[invocation].i8.xyz = subgroupExclusiveOr(data[2].i8.xyz);
data[invocation].i8 = subgroupExclusiveOr(data[3].i8);
data[invocation].i8.x = subgroupExclusiveXor(data[0].i8.x);
data[invocation].i8.xy = subgroupExclusiveXor(data[1].i8.xy);
data[invocation].i8.xyz = subgroupExclusiveXor(data[2].i8.xyz);
data[invocation].i8 = subgroupExclusiveXor(data[3].i8);
data[invocation].u8.x = subgroupAdd(data[0].u8.x);
data[invocation].u8.xy = subgroupAdd(data[1].u8.xy);
data[invocation].u8.xyz = subgroupAdd(data[2].u8.xyz);
data[invocation].u8 = subgroupAdd(data[3].u8);
data[invocation].u8.x = subgroupMul(data[0].u8.x);
data[invocation].u8.xy = subgroupMul(data[1].u8.xy);
data[invocation].u8.xyz = subgroupMul(data[2].u8.xyz);
data[invocation].u8 = subgroupMul(data[3].u8);
data[invocation].u8.x = subgroupMin(data[0].u8.x);
data[invocation].u8.xy = subgroupMin(data[1].u8.xy);
data[invocation].u8.xyz = subgroupMin(data[2].u8.xyz);
data[invocation].u8 = subgroupMin(data[3].u8);
data[invocation].u8.x = subgroupMax(data[0].u8.x);
data[invocation].u8.xy = subgroupMax(data[1].u8.xy);
data[invocation].u8.xyz = subgroupMax(data[2].u8.xyz);
data[invocation].u8 = subgroupMax(data[3].u8);
data[invocation].u8.x = subgroupAnd(data[0].u8.x);
data[invocation].u8.xy = subgroupAnd(data[1].u8.xy);
data[invocation].u8.xyz = subgroupAnd(data[2].u8.xyz);
data[invocation].u8 = subgroupAnd(data[3].u8);
data[invocation].u8.x = subgroupOr(data[0].u8.x);
data[invocation].u8.xy = subgroupOr(data[1].u8.xy);
data[invocation].u8.xyz = subgroupOr(data[2].u8.xyz);
data[invocation].u8 = subgroupOr(data[3].u8);
data[invocation].u8.x = subgroupXor(data[0].u8.x);
data[invocation].u8.xy = subgroupXor(data[1].u8.xy);
data[invocation].u8.xyz = subgroupXor(data[2].u8.xyz);
data[invocation].u8 = subgroupXor(data[3].u8);
data[invocation].u8.x = subgroupInclusiveAdd(data[0].u8.x);
data[invocation].u8.xy = subgroupInclusiveAdd(data[1].u8.xy);
data[invocation].u8.xyz = subgroupInclusiveAdd(data[2].u8.xyz);
data[invocation].u8 = subgroupInclusiveAdd(data[3].u8);
data[invocation].u8.x = subgroupInclusiveMul(data[0].u8.x);
data[invocation].u8.xy = subgroupInclusiveMul(data[1].u8.xy);
data[invocation].u8.xyz = subgroupInclusiveMul(data[2].u8.xyz);
data[invocation].u8 = subgroupInclusiveMul(data[3].u8);
data[invocation].u8.x = subgroupInclusiveMin(data[0].u8.x);
data[invocation].u8.xy = subgroupInclusiveMin(data[1].u8.xy);
data[invocation].u8.xyz = subgroupInclusiveMin(data[2].u8.xyz);
data[invocation].u8 = subgroupInclusiveMin(data[3].u8);
data[invocation].u8.x = subgroupInclusiveMax(data[0].u8.x);
data[invocation].u8.xy = subgroupInclusiveMax(data[1].u8.xy);
data[invocation].u8.xyz = subgroupInclusiveMax(data[2].u8.xyz);
data[invocation].u8 = subgroupInclusiveMax(data[3].u8);
data[invocation].u8.x = subgroupInclusiveAnd(data[0].u8.x);
data[invocation].u8.xy = subgroupInclusiveAnd(data[1].u8.xy);
data[invocation].u8.xyz = subgroupInclusiveAnd(data[2].u8.xyz);
data[invocation].u8 = subgroupInclusiveAnd(data[3].u8);
data[invocation].u8.x = subgroupInclusiveOr(data[0].u8.x);
data[invocation].u8.xy = subgroupInclusiveOr(data[1].u8.xy);
data[invocation].u8.xyz = subgroupInclusiveOr(data[2].u8.xyz);
data[invocation].u8 = subgroupInclusiveOr(data[3].u8);
data[invocation].u8.x = subgroupInclusiveXor(data[0].u8.x);
data[invocation].u8.xy = subgroupInclusiveXor(data[1].u8.xy);
data[invocation].u8.xyz = subgroupInclusiveXor(data[2].u8.xyz);
data[invocation].u8 = subgroupInclusiveXor(data[3].u8);
data[invocation].u8.x = subgroupExclusiveAdd(data[0].u8.x);
data[invocation].u8.xy = subgroupExclusiveAdd(data[1].u8.xy);
data[invocation].u8.xyz = subgroupExclusiveAdd(data[2].u8.xyz);
data[invocation].u8 = subgroupExclusiveAdd(data[3].u8);
data[invocation].u8.x = subgroupExclusiveMul(data[0].u8.x);
data[invocation].u8.xy = subgroupExclusiveMul(data[1].u8.xy);
data[invocation].u8.xyz = subgroupExclusiveMul(data[2].u8.xyz);
data[invocation].u8 = subgroupExclusiveMul(data[3].u8);
data[invocation].u8.x = subgroupExclusiveMin(data[0].u8.x);
data[invocation].u8.xy = subgroupExclusiveMin(data[1].u8.xy);
data[invocation].u8.xyz = subgroupExclusiveMin(data[2].u8.xyz);
data[invocation].u8 = subgroupExclusiveMin(data[3].u8);
data[invocation].u8.x = subgroupExclusiveMax(data[0].u8.x);
data[invocation].u8.xy = subgroupExclusiveMax(data[1].u8.xy);
data[invocation].u8.xyz = subgroupExclusiveMax(data[2].u8.xyz);
data[invocation].u8 = subgroupExclusiveMax(data[3].u8);
data[invocation].u8.x = subgroupExclusiveAnd(data[0].u8.x);
data[invocation].u8.xy = subgroupExclusiveAnd(data[1].u8.xy);
data[invocation].u8.xyz = subgroupExclusiveAnd(data[2].u8.xyz);
data[invocation].u8 = subgroupExclusiveAnd(data[3].u8);
data[invocation].u8.x = subgroupExclusiveOr(data[0].u8.x);
data[invocation].u8.xy = subgroupExclusiveOr(data[1].u8.xy);
data[invocation].u8.xyz = subgroupExclusiveOr(data[2].u8.xyz);
data[invocation].u8 = subgroupExclusiveOr(data[3].u8);
data[invocation].u8.x = subgroupExclusiveXor(data[0].u8.x);
data[invocation].u8.xy = subgroupExclusiveXor(data[1].u8.xy);
data[invocation].u8.xyz = subgroupExclusiveXor(data[2].u8.xyz);
data[invocation].u8 = subgroupExclusiveXor(data[3].u8);
data[invocation].i16.x = subgroupAdd(data[0].i16.x);
data[invocation].i16.xy = subgroupAdd(data[1].i16.xy);
data[invocation].i16.xyz = subgroupAdd(data[2].i16.xyz);
data[invocation].i16 = subgroupAdd(data[3].i16);
data[invocation].i16.x = subgroupMul(data[0].i16.x);
data[invocation].i16.xy = subgroupMul(data[1].i16.xy);
data[invocation].i16.xyz = subgroupMul(data[2].i16.xyz);
data[invocation].i16 = subgroupMul(data[3].i16);
data[invocation].i16.x = subgroupMin(data[0].i16.x);
data[invocation].i16.xy = subgroupMin(data[1].i16.xy);
data[invocation].i16.xyz = subgroupMin(data[2].i16.xyz);
data[invocation].i16 = subgroupMin(data[3].i16);
data[invocation].i16.x = subgroupMax(data[0].i16.x);
data[invocation].i16.xy = subgroupMax(data[1].i16.xy);
data[invocation].i16.xyz = subgroupMax(data[2].i16.xyz);
data[invocation].i16 = subgroupMax(data[3].i16);
data[invocation].i16.x = subgroupAnd(data[0].i16.x);
data[invocation].i16.xy = subgroupAnd(data[1].i16.xy);
data[invocation].i16.xyz = subgroupAnd(data[2].i16.xyz);
data[invocation].i16 = subgroupAnd(data[3].i16);
data[invocation].i16.x = subgroupOr(data[0].i16.x);
data[invocation].i16.xy = subgroupOr(data[1].i16.xy);
data[invocation].i16.xyz = subgroupOr(data[2].i16.xyz);
data[invocation].i16 = subgroupOr(data[3].i16);
data[invocation].i16.x = subgroupXor(data[0].i16.x);
data[invocation].i16.xy = subgroupXor(data[1].i16.xy);
data[invocation].i16.xyz = subgroupXor(data[2].i16.xyz);
data[invocation].i16 = subgroupXor(data[3].i16);
data[invocation].i16.x = subgroupInclusiveAdd(data[0].i16.x);
data[invocation].i16.xy = subgroupInclusiveAdd(data[1].i16.xy);
data[invocation].i16.xyz = subgroupInclusiveAdd(data[2].i16.xyz);
data[invocation].i16 = subgroupInclusiveAdd(data[3].i16);
data[invocation].i16.x = subgroupInclusiveMul(data[0].i16.x);
data[invocation].i16.xy = subgroupInclusiveMul(data[1].i16.xy);
data[invocation].i16.xyz = subgroupInclusiveMul(data[2].i16.xyz);
data[invocation].i16 = subgroupInclusiveMul(data[3].i16);
data[invocation].i16.x = subgroupInclusiveMin(data[0].i16.x);
data[invocation].i16.xy = subgroupInclusiveMin(data[1].i16.xy);
data[invocation].i16.xyz = subgroupInclusiveMin(data[2].i16.xyz);
data[invocation].i16 = subgroupInclusiveMin(data[3].i16);
data[invocation].i16.x = subgroupInclusiveMax(data[0].i16.x);
data[invocation].i16.xy = subgroupInclusiveMax(data[1].i16.xy);
data[invocation].i16.xyz = subgroupInclusiveMax(data[2].i16.xyz);
data[invocation].i16 = subgroupInclusiveMax(data[3].i16);
data[invocation].i16.x = subgroupInclusiveAnd(data[0].i16.x);
data[invocation].i16.xy = subgroupInclusiveAnd(data[1].i16.xy);
data[invocation].i16.xyz = subgroupInclusiveAnd(data[2].i16.xyz);
data[invocation].i16 = subgroupInclusiveAnd(data[3].i16);
data[invocation].i16.x = subgroupInclusiveOr(data[0].i16.x);
data[invocation].i16.xy = subgroupInclusiveOr(data[1].i16.xy);
data[invocation].i16.xyz = subgroupInclusiveOr(data[2].i16.xyz);
data[invocation].i16 = subgroupInclusiveOr(data[3].i16);
data[invocation].i16.x = subgroupInclusiveXor(data[0].i16.x);
data[invocation].i16.xy = subgroupInclusiveXor(data[1].i16.xy);
data[invocation].i16.xyz = subgroupInclusiveXor(data[2].i16.xyz);
data[invocation].i16 = subgroupInclusiveXor(data[3].i16);
data[invocation].i16.x = subgroupExclusiveAdd(data[0].i16.x);
data[invocation].i16.xy = subgroupExclusiveAdd(data[1].i16.xy);
data[invocation].i16.xyz = subgroupExclusiveAdd(data[2].i16.xyz);
data[invocation].i16 = subgroupExclusiveAdd(data[3].i16);
data[invocation].i16.x = subgroupExclusiveMul(data[0].i16.x);
data[invocation].i16.xy = subgroupExclusiveMul(data[1].i16.xy);
data[invocation].i16.xyz = subgroupExclusiveMul(data[2].i16.xyz);
data[invocation].i16 = subgroupExclusiveMul(data[3].i16);
data[invocation].i16.x = subgroupExclusiveMin(data[0].i16.x);
data[invocation].i16.xy = subgroupExclusiveMin(data[1].i16.xy);
data[invocation].i16.xyz = subgroupExclusiveMin(data[2].i16.xyz);
data[invocation].i16 = subgroupExclusiveMin(data[3].i16);
data[invocation].i16.x = subgroupExclusiveMax(data[0].i16.x);
data[invocation].i16.xy = subgroupExclusiveMax(data[1].i16.xy);
data[invocation].i16.xyz = subgroupExclusiveMax(data[2].i16.xyz);
data[invocation].i16 = subgroupExclusiveMax(data[3].i16);
data[invocation].i16.x = subgroupExclusiveAnd(data[0].i16.x);
data[invocation].i16.xy = subgroupExclusiveAnd(data[1].i16.xy);
data[invocation].i16.xyz = subgroupExclusiveAnd(data[2].i16.xyz);
data[invocation].i16 = subgroupExclusiveAnd(data[3].i16);
data[invocation].i16.x = subgroupExclusiveOr(data[0].i16.x);
data[invocation].i16.xy = subgroupExclusiveOr(data[1].i16.xy);
data[invocation].i16.xyz = subgroupExclusiveOr(data[2].i16.xyz);
data[invocation].i16 = subgroupExclusiveOr(data[3].i16);
data[invocation].i16.x = subgroupExclusiveXor(data[0].i16.x);
data[invocation].i16.xy = subgroupExclusiveXor(data[1].i16.xy);
data[invocation].i16.xyz = subgroupExclusiveXor(data[2].i16.xyz);
data[invocation].i16 = subgroupExclusiveXor(data[3].i16);
data[invocation].u16.x = subgroupAdd(data[0].u16.x);
data[invocation].u16.xy = subgroupAdd(data[1].u16.xy);
data[invocation].u16.xyz = subgroupAdd(data[2].u16.xyz);
data[invocation].u16 = subgroupAdd(data[3].u16);
data[invocation].u16.x = subgroupMul(data[0].u16.x);
data[invocation].u16.xy = subgroupMul(data[1].u16.xy);
data[invocation].u16.xyz = subgroupMul(data[2].u16.xyz);
data[invocation].u16 = subgroupMul(data[3].u16);
data[invocation].u16.x = subgroupMin(data[0].u16.x);
data[invocation].u16.xy = subgroupMin(data[1].u16.xy);
data[invocation].u16.xyz = subgroupMin(data[2].u16.xyz);
data[invocation].u16 = subgroupMin(data[3].u16);
data[invocation].u16.x = subgroupMax(data[0].u16.x);
data[invocation].u16.xy = subgroupMax(data[1].u16.xy);
data[invocation].u16.xyz = subgroupMax(data[2].u16.xyz);
data[invocation].u16 = subgroupMax(data[3].u16);
data[invocation].u16.x = subgroupAnd(data[0].u16.x);
data[invocation].u16.xy = subgroupAnd(data[1].u16.xy);
data[invocation].u16.xyz = subgroupAnd(data[2].u16.xyz);
data[invocation].u16 = subgroupAnd(data[3].u16);
data[invocation].u16.x = subgroupOr(data[0].u16.x);
data[invocation].u16.xy = subgroupOr(data[1].u16.xy);
data[invocation].u16.xyz = subgroupOr(data[2].u16.xyz);
data[invocation].u16 = subgroupOr(data[3].u16);
data[invocation].u16.x = subgroupXor(data[0].u16.x);
data[invocation].u16.xy = subgroupXor(data[1].u16.xy);
data[invocation].u16.xyz = subgroupXor(data[2].u16.xyz);
data[invocation].u16 = subgroupXor(data[3].u16);
data[invocation].u16.x = subgroupInclusiveAdd(data[0].u16.x);
data[invocation].u16.xy = subgroupInclusiveAdd(data[1].u16.xy);
data[invocation].u16.xyz = subgroupInclusiveAdd(data[2].u16.xyz);
data[invocation].u16 = subgroupInclusiveAdd(data[3].u16);
data[invocation].u16.x = subgroupInclusiveMul(data[0].u16.x);
data[invocation].u16.xy = subgroupInclusiveMul(data[1].u16.xy);
data[invocation].u16.xyz = subgroupInclusiveMul(data[2].u16.xyz);
data[invocation].u16 = subgroupInclusiveMul(data[3].u16);
data[invocation].u16.x = subgroupInclusiveMin(data[0].u16.x);
data[invocation].u16.xy = subgroupInclusiveMin(data[1].u16.xy);
data[invocation].u16.xyz = subgroupInclusiveMin(data[2].u16.xyz);
data[invocation].u16 = subgroupInclusiveMin(data[3].u16);
data[invocation].u16.x = subgroupInclusiveMax(data[0].u16.x);
data[invocation].u16.xy = subgroupInclusiveMax(data[1].u16.xy);
data[invocation].u16.xyz = subgroupInclusiveMax(data[2].u16.xyz);
data[invocation].u16 = subgroupInclusiveMax(data[3].u16);
data[invocation].u16.x = subgroupInclusiveAnd(data[0].u16.x);
data[invocation].u16.xy = subgroupInclusiveAnd(data[1].u16.xy);
data[invocation].u16.xyz = subgroupInclusiveAnd(data[2].u16.xyz);
data[invocation].u16 = subgroupInclusiveAnd(data[3].u16);
data[invocation].u16.x = subgroupInclusiveOr(data[0].u16.x);
data[invocation].u16.xy = subgroupInclusiveOr(data[1].u16.xy);
data[invocation].u16.xyz = subgroupInclusiveOr(data[2].u16.xyz);
data[invocation].u16 = subgroupInclusiveOr(data[3].u16);
data[invocation].u16.x = subgroupInclusiveXor(data[0].u16.x);
data[invocation].u16.xy = subgroupInclusiveXor(data[1].u16.xy);
data[invocation].u16.xyz = subgroupInclusiveXor(data[2].u16.xyz);
data[invocation].u16 = subgroupInclusiveXor(data[3].u16);
data[invocation].u16.x = subgroupExclusiveAdd(data[0].u16.x);
data[invocation].u16.xy = subgroupExclusiveAdd(data[1].u16.xy);
data[invocation].u16.xyz = subgroupExclusiveAdd(data[2].u16.xyz);
data[invocation].u16 = subgroupExclusiveAdd(data[3].u16);
data[invocation].u16.x = subgroupExclusiveMul(data[0].u16.x);
data[invocation].u16.xy = subgroupExclusiveMul(data[1].u16.xy);
data[invocation].u16.xyz = subgroupExclusiveMul(data[2].u16.xyz);
data[invocation].u16 = subgroupExclusiveMul(data[3].u16);
data[invocation].u16.x = subgroupExclusiveMin(data[0].u16.x);
data[invocation].u16.xy = subgroupExclusiveMin(data[1].u16.xy);
data[invocation].u16.xyz = subgroupExclusiveMin(data[2].u16.xyz);
data[invocation].u16 = subgroupExclusiveMin(data[3].u16);
data[invocation].u16.x = subgroupExclusiveMax(data[0].u16.x);
data[invocation].u16.xy = subgroupExclusiveMax(data[1].u16.xy);
data[invocation].u16.xyz = subgroupExclusiveMax(data[2].u16.xyz);
data[invocation].u16 = subgroupExclusiveMax(data[3].u16);
data[invocation].u16.x = subgroupExclusiveAnd(data[0].u16.x);
data[invocation].u16.xy = subgroupExclusiveAnd(data[1].u16.xy);
data[invocation].u16.xyz = subgroupExclusiveAnd(data[2].u16.xyz);
data[invocation].u16 = subgroupExclusiveAnd(data[3].u16);
data[invocation].u16.x = subgroupExclusiveOr(data[0].u16.x);
data[invocation].u16.xy = subgroupExclusiveOr(data[1].u16.xy);
data[invocation].u16.xyz = subgroupExclusiveOr(data[2].u16.xyz);
data[invocation].u16 = subgroupExclusiveOr(data[3].u16);
data[invocation].u16.x = subgroupExclusiveXor(data[0].u16.x);
data[invocation].u16.xy = subgroupExclusiveXor(data[1].u16.xy);
data[invocation].u16.xyz = subgroupExclusiveXor(data[2].u16.xyz);
data[invocation].u16 = subgroupExclusiveXor(data[3].u16);
data[invocation].i64.x = subgroupAdd(data[0].i64.x);
data[invocation].i64.xy = subgroupAdd(data[1].i64.xy);
data[invocation].i64.xyz = subgroupAdd(data[2].i64.xyz);
data[invocation].i64 = subgroupAdd(data[3].i64);
data[invocation].i64.x = subgroupMul(data[0].i64.x);
data[invocation].i64.xy = subgroupMul(data[1].i64.xy);
data[invocation].i64.xyz = subgroupMul(data[2].i64.xyz);
data[invocation].i64 = subgroupMul(data[3].i64);
data[invocation].i64.x = subgroupMin(data[0].i64.x);
data[invocation].i64.xy = subgroupMin(data[1].i64.xy);
data[invocation].i64.xyz = subgroupMin(data[2].i64.xyz);
data[invocation].i64 = subgroupMin(data[3].i64);
data[invocation].i64.x = subgroupMax(data[0].i64.x);
data[invocation].i64.xy = subgroupMax(data[1].i64.xy);
data[invocation].i64.xyz = subgroupMax(data[2].i64.xyz);
data[invocation].i64 = subgroupMax(data[3].i64);
data[invocation].i64.x = subgroupAnd(data[0].i64.x);
data[invocation].i64.xy = subgroupAnd(data[1].i64.xy);
data[invocation].i64.xyz = subgroupAnd(data[2].i64.xyz);
data[invocation].i64 = subgroupAnd(data[3].i64);
data[invocation].i64.x = subgroupOr(data[0].i64.x);
data[invocation].i64.xy = subgroupOr(data[1].i64.xy);
data[invocation].i64.xyz = subgroupOr(data[2].i64.xyz);
data[invocation].i64 = subgroupOr(data[3].i64);
data[invocation].i64.x = subgroupXor(data[0].i64.x);
data[invocation].i64.xy = subgroupXor(data[1].i64.xy);
data[invocation].i64.xyz = subgroupXor(data[2].i64.xyz);
data[invocation].i64 = subgroupXor(data[3].i64);
data[invocation].i64.x = subgroupInclusiveAdd(data[0].i64.x);
data[invocation].i64.xy = subgroupInclusiveAdd(data[1].i64.xy);
data[invocation].i64.xyz = subgroupInclusiveAdd(data[2].i64.xyz);
data[invocation].i64 = subgroupInclusiveAdd(data[3].i64);
data[invocation].i64.x = subgroupInclusiveMul(data[0].i64.x);
data[invocation].i64.xy = subgroupInclusiveMul(data[1].i64.xy);
data[invocation].i64.xyz = subgroupInclusiveMul(data[2].i64.xyz);
data[invocation].i64 = subgroupInclusiveMul(data[3].i64);
data[invocation].i64.x = subgroupInclusiveMin(data[0].i64.x);
data[invocation].i64.xy = subgroupInclusiveMin(data[1].i64.xy);
data[invocation].i64.xyz = subgroupInclusiveMin(data[2].i64.xyz);
data[invocation].i64 = subgroupInclusiveMin(data[3].i64);
data[invocation].i64.x = subgroupInclusiveMax(data[0].i64.x);
data[invocation].i64.xy = subgroupInclusiveMax(data[1].i64.xy);
data[invocation].i64.xyz = subgroupInclusiveMax(data[2].i64.xyz);
data[invocation].i64 = subgroupInclusiveMax(data[3].i64);
data[invocation].i64.x = subgroupInclusiveAnd(data[0].i64.x);
data[invocation].i64.xy = subgroupInclusiveAnd(data[1].i64.xy);
data[invocation].i64.xyz = subgroupInclusiveAnd(data[2].i64.xyz);
data[invocation].i64 = subgroupInclusiveAnd(data[3].i64);
data[invocation].i64.x = subgroupInclusiveOr(data[0].i64.x);
data[invocation].i64.xy = subgroupInclusiveOr(data[1].i64.xy);
data[invocation].i64.xyz = subgroupInclusiveOr(data[2].i64.xyz);
data[invocation].i64 = subgroupInclusiveOr(data[3].i64);
data[invocation].i64.x = subgroupInclusiveXor(data[0].i64.x);
data[invocation].i64.xy = subgroupInclusiveXor(data[1].i64.xy);
data[invocation].i64.xyz = subgroupInclusiveXor(data[2].i64.xyz);
data[invocation].i64 = subgroupInclusiveXor(data[3].i64);
data[invocation].i64.x = subgroupExclusiveAdd(data[0].i64.x);
data[invocation].i64.xy = subgroupExclusiveAdd(data[1].i64.xy);
data[invocation].i64.xyz = subgroupExclusiveAdd(data[2].i64.xyz);
data[invocation].i64 = subgroupExclusiveAdd(data[3].i64);
data[invocation].i64.x = subgroupExclusiveMul(data[0].i64.x);
data[invocation].i64.xy = subgroupExclusiveMul(data[1].i64.xy);
data[invocation].i64.xyz = subgroupExclusiveMul(data[2].i64.xyz);
data[invocation].i64 = subgroupExclusiveMul(data[3].i64);
data[invocation].i64.x = subgroupExclusiveMin(data[0].i64.x);
data[invocation].i64.xy = subgroupExclusiveMin(data[1].i64.xy);
data[invocation].i64.xyz = subgroupExclusiveMin(data[2].i64.xyz);
data[invocation].i64 = subgroupExclusiveMin(data[3].i64);
data[invocation].i64.x = subgroupExclusiveMax(data[0].i64.x);
data[invocation].i64.xy = subgroupExclusiveMax(data[1].i64.xy);
data[invocation].i64.xyz = subgroupExclusiveMax(data[2].i64.xyz);
data[invocation].i64 = subgroupExclusiveMax(data[3].i64);
data[invocation].i64.x = subgroupExclusiveAnd(data[0].i64.x);
data[invocation].i64.xy = subgroupExclusiveAnd(data[1].i64.xy);
data[invocation].i64.xyz = subgroupExclusiveAnd(data[2].i64.xyz);
data[invocation].i64 = subgroupExclusiveAnd(data[3].i64);
data[invocation].i64.x = subgroupExclusiveOr(data[0].i64.x);
data[invocation].i64.xy = subgroupExclusiveOr(data[1].i64.xy);
data[invocation].i64.xyz = subgroupExclusiveOr(data[2].i64.xyz);
data[invocation].i64 = subgroupExclusiveOr(data[3].i64);
data[invocation].i64.x = subgroupExclusiveXor(data[0].i64.x);
data[invocation].i64.xy = subgroupExclusiveXor(data[1].i64.xy);
data[invocation].i64.xyz = subgroupExclusiveXor(data[2].i64.xyz);
data[invocation].i64 = subgroupExclusiveXor(data[3].i64);
data[invocation].u64.x = subgroupAdd(data[0].u64.x);
data[invocation].u64.xy = subgroupAdd(data[1].u64.xy);
data[invocation].u64.xyz = subgroupAdd(data[2].u64.xyz);
data[invocation].u64 = subgroupAdd(data[3].u64);
data[invocation].u64.x = subgroupMul(data[0].u64.x);
data[invocation].u64.xy = subgroupMul(data[1].u64.xy);
data[invocation].u64.xyz = subgroupMul(data[2].u64.xyz);
data[invocation].u64 = subgroupMul(data[3].u64);
data[invocation].u64.x = subgroupMin(data[0].u64.x);
data[invocation].u64.xy = subgroupMin(data[1].u64.xy);
data[invocation].u64.xyz = subgroupMin(data[2].u64.xyz);
data[invocation].u64 = subgroupMin(data[3].u64);
data[invocation].u64.x = subgroupMax(data[0].u64.x);
data[invocation].u64.xy = subgroupMax(data[1].u64.xy);
data[invocation].u64.xyz = subgroupMax(data[2].u64.xyz);
data[invocation].u64 = subgroupMax(data[3].u64);
data[invocation].u64.x = subgroupAnd(data[0].u64.x);
data[invocation].u64.xy = subgroupAnd(data[1].u64.xy);
data[invocation].u64.xyz = subgroupAnd(data[2].u64.xyz);
data[invocation].u64 = subgroupAnd(data[3].u64);
data[invocation].u64.x = subgroupOr(data[0].u64.x);
data[invocation].u64.xy = subgroupOr(data[1].u64.xy);
data[invocation].u64.xyz = subgroupOr(data[2].u64.xyz);
data[invocation].u64 = subgroupOr(data[3].u64);
data[invocation].u64.x = subgroupXor(data[0].u64.x);
data[invocation].u64.xy = subgroupXor(data[1].u64.xy);
data[invocation].u64.xyz = subgroupXor(data[2].u64.xyz);
data[invocation].u64 = subgroupXor(data[3].u64);
data[invocation].u64.x = subgroupInclusiveAdd(data[0].u64.x);
data[invocation].u64.xy = subgroupInclusiveAdd(data[1].u64.xy);
data[invocation].u64.xyz = subgroupInclusiveAdd(data[2].u64.xyz);
data[invocation].u64 = subgroupInclusiveAdd(data[3].u64);
data[invocation].u64.x = subgroupInclusiveMul(data[0].u64.x);
data[invocation].u64.xy = subgroupInclusiveMul(data[1].u64.xy);
data[invocation].u64.xyz = subgroupInclusiveMul(data[2].u64.xyz);
data[invocation].u64 = subgroupInclusiveMul(data[3].u64);
data[invocation].u64.x = subgroupInclusiveMin(data[0].u64.x);
data[invocation].u64.xy = subgroupInclusiveMin(data[1].u64.xy);
data[invocation].u64.xyz = subgroupInclusiveMin(data[2].u64.xyz);
data[invocation].u64 = subgroupInclusiveMin(data[3].u64);
data[invocation].u64.x = subgroupInclusiveMax(data[0].u64.x);
data[invocation].u64.xy = subgroupInclusiveMax(data[1].u64.xy);
data[invocation].u64.xyz = subgroupInclusiveMax(data[2].u64.xyz);
data[invocation].u64 = subgroupInclusiveMax(data[3].u64);
data[invocation].u64.x = subgroupInclusiveAnd(data[0].u64.x);
data[invocation].u64.xy = subgroupInclusiveAnd(data[1].u64.xy);
data[invocation].u64.xyz = subgroupInclusiveAnd(data[2].u64.xyz);
data[invocation].u64 = subgroupInclusiveAnd(data[3].u64);
data[invocation].u64.x = subgroupInclusiveOr(data[0].u64.x);
data[invocation].u64.xy = subgroupInclusiveOr(data[1].u64.xy);
data[invocation].u64.xyz = subgroupInclusiveOr(data[2].u64.xyz);
data[invocation].u64 = subgroupInclusiveOr(data[3].u64);
data[invocation].u64.x = subgroupInclusiveXor(data[0].u64.x);
data[invocation].u64.xy = subgroupInclusiveXor(data[1].u64.xy);
data[invocation].u64.xyz = subgroupInclusiveXor(data[2].u64.xyz);
data[invocation].u64 = subgroupInclusiveXor(data[3].u64);
data[invocation].u64.x = subgroupExclusiveAdd(data[0].u64.x);
data[invocation].u64.xy = subgroupExclusiveAdd(data[1].u64.xy);
data[invocation].u64.xyz = subgroupExclusiveAdd(data[2].u64.xyz);
data[invocation].u64 = subgroupExclusiveAdd(data[3].u64);
data[invocation].u64.x = subgroupExclusiveMul(data[0].u64.x);
data[invocation].u64.xy = subgroupExclusiveMul(data[1].u64.xy);
data[invocation].u64.xyz = subgroupExclusiveMul(data[2].u64.xyz);
data[invocation].u64 = subgroupExclusiveMul(data[3].u64);
data[invocation].u64.x = subgroupExclusiveMin(data[0].u64.x);
data[invocation].u64.xy = subgroupExclusiveMin(data[1].u64.xy);
data[invocation].u64.xyz = subgroupExclusiveMin(data[2].u64.xyz);
data[invocation].u64 = subgroupExclusiveMin(data[3].u64);
data[invocation].u64.x = subgroupExclusiveMax(data[0].u64.x);
data[invocation].u64.xy = subgroupExclusiveMax(data[1].u64.xy);
data[invocation].u64.xyz = subgroupExclusiveMax(data[2].u64.xyz);
data[invocation].u64 = subgroupExclusiveMax(data[3].u64);
data[invocation].u64.x = subgroupExclusiveAnd(data[0].u64.x);
data[invocation].u64.xy = subgroupExclusiveAnd(data[1].u64.xy);
data[invocation].u64.xyz = subgroupExclusiveAnd(data[2].u64.xyz);
data[invocation].u64 = subgroupExclusiveAnd(data[3].u64);
data[invocation].u64.x = subgroupExclusiveOr(data[0].u64.x);
data[invocation].u64.xy = subgroupExclusiveOr(data[1].u64.xy);
data[invocation].u64.xyz = subgroupExclusiveOr(data[2].u64.xyz);
data[invocation].u64 = subgroupExclusiveOr(data[3].u64);
data[invocation].u64.x = subgroupExclusiveXor(data[0].u64.x);
data[invocation].u64.xy = subgroupExclusiveXor(data[1].u64.xy);
data[invocation].u64.xyz = subgroupExclusiveXor(data[2].u64.xyz);
data[invocation].u64 = subgroupExclusiveXor(data[3].u64);
data[invocation].f16.x = subgroupAdd(data[0].f16.x);
data[invocation].f16.xy = subgroupAdd(data[1].f16.xy);
data[invocation].f16.xyz = subgroupAdd(data[2].f16.xyz);
data[invocation].f16 = subgroupAdd(data[3].f16);
data[invocation].f16.x = subgroupMul(data[0].f16.x);
data[invocation].f16.xy = subgroupMul(data[1].f16.xy);
data[invocation].f16.xyz = subgroupMul(data[2].f16.xyz);
data[invocation].f16 = subgroupMul(data[3].f16);
data[invocation].f16.x = subgroupMin(data[0].f16.x);
data[invocation].f16.xy = subgroupMin(data[1].f16.xy);
data[invocation].f16.xyz = subgroupMin(data[2].f16.xyz);
data[invocation].f16 = subgroupMin(data[3].f16);
data[invocation].f16.x = subgroupMax(data[0].f16.x);
data[invocation].f16.xy = subgroupMax(data[1].f16.xy);
data[invocation].f16.xyz = subgroupMax(data[2].f16.xyz);
data[invocation].f16 = subgroupMax(data[3].f16);
data[invocation].f16.x = subgroupInclusiveAdd(data[0].f16.x);
data[invocation].f16.xy = subgroupInclusiveAdd(data[1].f16.xy);
data[invocation].f16.xyz = subgroupInclusiveAdd(data[2].f16.xyz);
data[invocation].f16 = subgroupInclusiveAdd(data[3].f16);
data[invocation].f16.x = subgroupInclusiveMul(data[0].f16.x);
data[invocation].f16.xy = subgroupInclusiveMul(data[1].f16.xy);
data[invocation].f16.xyz = subgroupInclusiveMul(data[2].f16.xyz);
data[invocation].f16 = subgroupInclusiveMul(data[3].f16);
data[invocation].f16.x = subgroupInclusiveMin(data[0].f16.x);
data[invocation].f16.xy = subgroupInclusiveMin(data[1].f16.xy);
data[invocation].f16.xyz = subgroupInclusiveMin(data[2].f16.xyz);
data[invocation].f16 = subgroupInclusiveMin(data[3].f16);
data[invocation].f16.x = subgroupInclusiveMax(data[0].f16.x);
data[invocation].f16.xy = subgroupInclusiveMax(data[1].f16.xy);
data[invocation].f16.xyz = subgroupInclusiveMax(data[2].f16.xyz);
data[invocation].f16 = subgroupInclusiveMax(data[3].f16);
data[invocation].f16.x = subgroupExclusiveAdd(data[0].f16.x);
data[invocation].f16.xy = subgroupExclusiveAdd(data[1].f16.xy);
data[invocation].f16.xyz = subgroupExclusiveAdd(data[2].f16.xyz);
data[invocation].f16 = subgroupExclusiveAdd(data[3].f16);
data[invocation].f16.x = subgroupExclusiveMul(data[0].f16.x);
data[invocation].f16.xy = subgroupExclusiveMul(data[1].f16.xy);
data[invocation].f16.xyz = subgroupExclusiveMul(data[2].f16.xyz);
data[invocation].f16 = subgroupExclusiveMul(data[3].f16);
data[invocation].f16.x = subgroupExclusiveMin(data[0].f16.x);
data[invocation].f16.xy = subgroupExclusiveMin(data[1].f16.xy);
data[invocation].f16.xyz = subgroupExclusiveMin(data[2].f16.xyz);
data[invocation].f16 = subgroupExclusiveMin(data[3].f16);
data[invocation].f16.x = subgroupExclusiveMax(data[0].f16.x);
data[invocation].f16.xy = subgroupExclusiveMax(data[1].f16.xy);
data[invocation].f16.xyz = subgroupExclusiveMax(data[2].f16.xyz);
data[invocation].f16 = subgroupExclusiveMax(data[3].f16);
}

View File

@ -0,0 +1,88 @@
#version 450
#extension GL_KHR_shader_subgroup_ballot: enable
#extension GL_EXT_shader_subgroup_extended_types_int8: enable
#extension GL_EXT_shader_subgroup_extended_types_int16: enable
#extension GL_EXT_shader_subgroup_extended_types_int64: enable
#extension GL_EXT_shader_subgroup_extended_types_float16: enable
layout (local_size_x = 8) in;
layout(binding = 0) buffer Buffers
{
i8vec4 i8;
u8vec4 u8;
i16vec4 i16;
u16vec4 u16;
i64vec4 i64;
u64vec4 u64;
f16vec4 f16;
} data[4];
void main()
{
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
data[invocation].i8.x = subgroupBroadcast(data[0].i8.x, 3);
data[invocation].i8.xy = subgroupBroadcast(data[1].i8.xy, 3);
data[invocation].i8.xyz = subgroupBroadcast(data[2].i8.xyz, 3);
data[invocation].i8 = subgroupBroadcast(data[3].i8, 3);
data[invocation].i8.x = subgroupBroadcastFirst(data[0].i8.x);
data[invocation].i8.xy = subgroupBroadcastFirst(data[1].i8.xy);
data[invocation].i8.xyz = subgroupBroadcastFirst(data[2].i8.xyz);
data[invocation].i8 = subgroupBroadcastFirst(data[3].i8);
data[invocation].u8.x = subgroupBroadcast(data[0].u8.x, 3);
data[invocation].u8.xy = subgroupBroadcast(data[1].u8.xy, 3);
data[invocation].u8.xyz = subgroupBroadcast(data[2].u8.xyz, 3);
data[invocation].u8 = subgroupBroadcast(data[3].u8, 3);
data[invocation].u8.x = subgroupBroadcastFirst(data[0].u8.x);
data[invocation].u8.xy = subgroupBroadcastFirst(data[1].u8.xy);
data[invocation].u8.xyz = subgroupBroadcastFirst(data[2].u8.xyz);
data[invocation].u8 = subgroupBroadcastFirst(data[3].u8);
data[invocation].i16.x = subgroupBroadcast(data[0].i16.x, 3);
data[invocation].i16.xy = subgroupBroadcast(data[1].i16.xy, 3);
data[invocation].i16.xyz = subgroupBroadcast(data[2].i16.xyz, 3);
data[invocation].i16 = subgroupBroadcast(data[3].i16, 3);
data[invocation].i16.x = subgroupBroadcastFirst(data[0].i16.x);
data[invocation].i16.xy = subgroupBroadcastFirst(data[1].i16.xy);
data[invocation].i16.xyz = subgroupBroadcastFirst(data[2].i16.xyz);
data[invocation].i16 = subgroupBroadcastFirst(data[3].i16);
data[invocation].u16.x = subgroupBroadcast(data[0].u16.x, 3);
data[invocation].u16.xy = subgroupBroadcast(data[1].u16.xy, 3);
data[invocation].u16.xyz = subgroupBroadcast(data[2].u16.xyz, 3);
data[invocation].u16 = subgroupBroadcast(data[3].u16, 3);
data[invocation].u16.x = subgroupBroadcastFirst(data[0].u16.x);
data[invocation].u16.xy = subgroupBroadcastFirst(data[1].u16.xy);
data[invocation].u16.xyz = subgroupBroadcastFirst(data[2].u16.xyz);
data[invocation].u16 = subgroupBroadcastFirst(data[3].u16);
data[invocation].i64.x = subgroupBroadcast(data[0].i64.x, 3);
data[invocation].i64.xy = subgroupBroadcast(data[1].i64.xy, 3);
data[invocation].i64.xyz = subgroupBroadcast(data[2].i64.xyz, 3);
data[invocation].i64 = subgroupBroadcast(data[3].i64, 3);
data[invocation].i64.x = subgroupBroadcastFirst(data[0].i64.x);
data[invocation].i64.xy = subgroupBroadcastFirst(data[1].i64.xy);
data[invocation].i64.xyz = subgroupBroadcastFirst(data[2].i64.xyz);
data[invocation].i64 = subgroupBroadcastFirst(data[3].i64);
data[invocation].u64.x = subgroupBroadcast(data[0].u64.x, 3);
data[invocation].u64.xy = subgroupBroadcast(data[1].u64.xy, 3);
data[invocation].u64.xyz = subgroupBroadcast(data[2].u64.xyz, 3);
data[invocation].u64 = subgroupBroadcast(data[3].u64, 3);
data[invocation].u64.x = subgroupBroadcastFirst(data[0].u64.x);
data[invocation].u64.xy = subgroupBroadcastFirst(data[1].u64.xy);
data[invocation].u64.xyz = subgroupBroadcastFirst(data[2].u64.xyz);
data[invocation].u64 = subgroupBroadcastFirst(data[3].u64);
data[invocation].f16.x = subgroupBroadcast(data[0].f16.x, 3);
data[invocation].f16.xy = subgroupBroadcast(data[1].f16.xy, 3);
data[invocation].f16.xyz = subgroupBroadcast(data[2].f16.xyz, 3);
data[invocation].f16 = subgroupBroadcast(data[3].f16, 3);
data[invocation].f16.x = subgroupBroadcastFirst(data[0].f16.x);
data[invocation].f16.xy = subgroupBroadcastFirst(data[1].f16.xy);
data[invocation].f16.xyz = subgroupBroadcastFirst(data[2].f16.xyz);
data[invocation].f16 = subgroupBroadcastFirst(data[3].f16);
}

View File

@ -0,0 +1,88 @@
#version 450
#extension GL_KHR_shader_subgroup_ballot: enable
#extension GL_EXT_shader_explicit_arithmetic_types_int8: enable
#extension GL_EXT_shader_explicit_arithmetic_types_int16: enable
#extension GL_EXT_shader_explicit_arithmetic_types_int64: enable
#extension GL_EXT_shader_explicit_arithmetic_types_float16: enable
layout (local_size_x = 8) in;
layout(binding = 0) buffer Buffers
{
i8vec4 i8;
u8vec4 u8;
i16vec4 i16;
u16vec4 u16;
i64vec4 i64;
u64vec4 u64;
f16vec4 f16;
} data[4];
void main()
{
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
data[invocation].i8.x = subgroupBroadcast(data[0].i8.x, 3);
data[invocation].i8.xy = subgroupBroadcast(data[1].i8.xy, 3);
data[invocation].i8.xyz = subgroupBroadcast(data[2].i8.xyz, 3);
data[invocation].i8 = subgroupBroadcast(data[3].i8, 3);
data[invocation].i8.x = subgroupBroadcastFirst(data[0].i8.x);
data[invocation].i8.xy = subgroupBroadcastFirst(data[1].i8.xy);
data[invocation].i8.xyz = subgroupBroadcastFirst(data[2].i8.xyz);
data[invocation].i8 = subgroupBroadcastFirst(data[3].i8);
data[invocation].u8.x = subgroupBroadcast(data[0].u8.x, 3);
data[invocation].u8.xy = subgroupBroadcast(data[1].u8.xy, 3);
data[invocation].u8.xyz = subgroupBroadcast(data[2].u8.xyz, 3);
data[invocation].u8 = subgroupBroadcast(data[3].u8, 3);
data[invocation].u8.x = subgroupBroadcastFirst(data[0].u8.x);
data[invocation].u8.xy = subgroupBroadcastFirst(data[1].u8.xy);
data[invocation].u8.xyz = subgroupBroadcastFirst(data[2].u8.xyz);
data[invocation].u8 = subgroupBroadcastFirst(data[3].u8);
data[invocation].i16.x = subgroupBroadcast(data[0].i16.x, 3);
data[invocation].i16.xy = subgroupBroadcast(data[1].i16.xy, 3);
data[invocation].i16.xyz = subgroupBroadcast(data[2].i16.xyz, 3);
data[invocation].i16 = subgroupBroadcast(data[3].i16, 3);
data[invocation].i16.x = subgroupBroadcastFirst(data[0].i16.x);
data[invocation].i16.xy = subgroupBroadcastFirst(data[1].i16.xy);
data[invocation].i16.xyz = subgroupBroadcastFirst(data[2].i16.xyz);
data[invocation].i16 = subgroupBroadcastFirst(data[3].i16);
data[invocation].u16.x = subgroupBroadcast(data[0].u16.x, 3);
data[invocation].u16.xy = subgroupBroadcast(data[1].u16.xy, 3);
data[invocation].u16.xyz = subgroupBroadcast(data[2].u16.xyz, 3);
data[invocation].u16 = subgroupBroadcast(data[3].u16, 3);
data[invocation].u16.x = subgroupBroadcastFirst(data[0].u16.x);
data[invocation].u16.xy = subgroupBroadcastFirst(data[1].u16.xy);
data[invocation].u16.xyz = subgroupBroadcastFirst(data[2].u16.xyz);
data[invocation].u16 = subgroupBroadcastFirst(data[3].u16);
data[invocation].i64.x = subgroupBroadcast(data[0].i64.x, 3);
data[invocation].i64.xy = subgroupBroadcast(data[1].i64.xy, 3);
data[invocation].i64.xyz = subgroupBroadcast(data[2].i64.xyz, 3);
data[invocation].i64 = subgroupBroadcast(data[3].i64, 3);
data[invocation].i64.x = subgroupBroadcastFirst(data[0].i64.x);
data[invocation].i64.xy = subgroupBroadcastFirst(data[1].i64.xy);
data[invocation].i64.xyz = subgroupBroadcastFirst(data[2].i64.xyz);
data[invocation].i64 = subgroupBroadcastFirst(data[3].i64);
data[invocation].u64.x = subgroupBroadcast(data[0].u64.x, 3);
data[invocation].u64.xy = subgroupBroadcast(data[1].u64.xy, 3);
data[invocation].u64.xyz = subgroupBroadcast(data[2].u64.xyz, 3);
data[invocation].u64 = subgroupBroadcast(data[3].u64, 3);
data[invocation].u64.x = subgroupBroadcastFirst(data[0].u64.x);
data[invocation].u64.xy = subgroupBroadcastFirst(data[1].u64.xy);
data[invocation].u64.xyz = subgroupBroadcastFirst(data[2].u64.xyz);
data[invocation].u64 = subgroupBroadcastFirst(data[3].u64);
data[invocation].f16.x = subgroupBroadcast(data[0].f16.x, 3);
data[invocation].f16.xy = subgroupBroadcast(data[1].f16.xy, 3);
data[invocation].f16.xyz = subgroupBroadcast(data[2].f16.xyz, 3);
data[invocation].f16 = subgroupBroadcast(data[3].f16, 3);
data[invocation].f16.x = subgroupBroadcastFirst(data[0].f16.x);
data[invocation].f16.xy = subgroupBroadcastFirst(data[1].f16.xy);
data[invocation].f16.xyz = subgroupBroadcastFirst(data[2].f16.xyz);
data[invocation].f16 = subgroupBroadcastFirst(data[3].f16);
}

View File

@ -0,0 +1,255 @@
#version 450
#extension GL_KHR_shader_subgroup_clustered: enable
#extension GL_EXT_shader_subgroup_extended_types_int8: enable
#extension GL_EXT_shader_subgroup_extended_types_int16: enable
#extension GL_EXT_shader_subgroup_extended_types_int64: enable
#extension GL_EXT_shader_subgroup_extended_types_float16: enable
layout (local_size_x = 8) in;
layout(binding = 0) buffer Buffers
{
i8vec4 i8;
u8vec4 u8;
i16vec4 i16;
u16vec4 u16;
i64vec4 i64;
u64vec4 u64;
f16vec4 f16;
} data[4];
void main()
{
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
data[invocation].i8.x = subgroupClusteredAdd(data[0].i8.x, 1);
data[invocation].i8.xy = subgroupClusteredAdd(data[1].i8.xy, 1);
data[invocation].i8.xyz = subgroupClusteredAdd(data[2].i8.xyz, 1);
data[invocation].i8 = subgroupClusteredAdd(data[3].i8, 1);
data[invocation].i8.x = subgroupClusteredMul(data[0].i8.x, 1);
data[invocation].i8.xy = subgroupClusteredMul(data[1].i8.xy, 1);
data[invocation].i8.xyz = subgroupClusteredMul(data[2].i8.xyz, 1);
data[invocation].i8 = subgroupClusteredMul(data[3].i8, 1);
data[invocation].i8.x = subgroupClusteredMin(data[0].i8.x, 1);
data[invocation].i8.xy = subgroupClusteredMin(data[1].i8.xy, 1);
data[invocation].i8.xyz = subgroupClusteredMin(data[2].i8.xyz, 1);
data[invocation].i8 = subgroupClusteredMin(data[3].i8, 1);
data[invocation].i8.x = subgroupClusteredMax(data[0].i8.x, 1);
data[invocation].i8.xy = subgroupClusteredMax(data[1].i8.xy, 1);
data[invocation].i8.xyz = subgroupClusteredMax(data[2].i8.xyz, 1);
data[invocation].i8 = subgroupClusteredMax(data[3].i8, 1);
data[invocation].i8.x = subgroupClusteredAnd(data[0].i8.x, 1);
data[invocation].i8.xy = subgroupClusteredAnd(data[1].i8.xy, 1);
data[invocation].i8.xyz = subgroupClusteredAnd(data[2].i8.xyz, 1);
data[invocation].i8 = subgroupClusteredAnd(data[3].i8, 1);
data[invocation].i8.x = subgroupClusteredOr(data[0].i8.x, 1);
data[invocation].i8.xy = subgroupClusteredOr(data[1].i8.xy, 1);
data[invocation].i8.xyz = subgroupClusteredOr(data[2].i8.xyz, 1);
data[invocation].i8 = subgroupClusteredOr(data[3].i8, 1);
data[invocation].i8.x = subgroupClusteredXor(data[0].i8.x, 1);
data[invocation].i8.xy = subgroupClusteredXor(data[1].i8.xy, 1);
data[invocation].i8.xyz = subgroupClusteredXor(data[2].i8.xyz, 1);
data[invocation].i8 = subgroupClusteredXor(data[3].i8, 1);
data[invocation].u8.x = subgroupClusteredAdd(data[0].u8.x, 1);
data[invocation].u8.xy = subgroupClusteredAdd(data[1].u8.xy, 1);
data[invocation].u8.xyz = subgroupClusteredAdd(data[2].u8.xyz, 1);
data[invocation].u8 = subgroupClusteredAdd(data[3].u8, 1);
data[invocation].u8.x = subgroupClusteredMul(data[0].u8.x, 1);
data[invocation].u8.xy = subgroupClusteredMul(data[1].u8.xy, 1);
data[invocation].u8.xyz = subgroupClusteredMul(data[2].u8.xyz, 1);
data[invocation].u8 = subgroupClusteredMul(data[3].u8, 1);
data[invocation].u8.x = subgroupClusteredMin(data[0].u8.x, 1);
data[invocation].u8.xy = subgroupClusteredMin(data[1].u8.xy, 1);
data[invocation].u8.xyz = subgroupClusteredMin(data[2].u8.xyz, 1);
data[invocation].u8 = subgroupClusteredMin(data[3].u8, 1);
data[invocation].u8.x = subgroupClusteredMax(data[0].u8.x, 1);
data[invocation].u8.xy = subgroupClusteredMax(data[1].u8.xy, 1);
data[invocation].u8.xyz = subgroupClusteredMax(data[2].u8.xyz, 1);
data[invocation].u8 = subgroupClusteredMax(data[3].u8, 1);
data[invocation].u8.x = subgroupClusteredAnd(data[0].u8.x, 1);
data[invocation].u8.xy = subgroupClusteredAnd(data[1].u8.xy, 1);
data[invocation].u8.xyz = subgroupClusteredAnd(data[2].u8.xyz, 1);
data[invocation].u8 = subgroupClusteredAnd(data[3].u8, 1);
data[invocation].u8.x = subgroupClusteredOr(data[0].u8.x, 1);
data[invocation].u8.xy = subgroupClusteredOr(data[1].u8.xy, 1);
data[invocation].u8.xyz = subgroupClusteredOr(data[2].u8.xyz, 1);
data[invocation].u8 = subgroupClusteredOr(data[3].u8, 1);
data[invocation].u8.x = subgroupClusteredXor(data[0].u8.x, 1);
data[invocation].u8.xy = subgroupClusteredXor(data[1].u8.xy, 1);
data[invocation].u8.xyz = subgroupClusteredXor(data[2].u8.xyz, 1);
data[invocation].u8 = subgroupClusteredXor(data[3].u8, 1);
data[invocation].i16.x = subgroupClusteredAdd(data[0].i16.x, 1);
data[invocation].i16.xy = subgroupClusteredAdd(data[1].i16.xy, 1);
data[invocation].i16.xyz = subgroupClusteredAdd(data[2].i16.xyz, 1);
data[invocation].i16 = subgroupClusteredAdd(data[3].i16, 1);
data[invocation].i16.x = subgroupClusteredMul(data[0].i16.x, 1);
data[invocation].i16.xy = subgroupClusteredMul(data[1].i16.xy, 1);
data[invocation].i16.xyz = subgroupClusteredMul(data[2].i16.xyz, 1);
data[invocation].i16 = subgroupClusteredMul(data[3].i16, 1);
data[invocation].i16.x = subgroupClusteredMin(data[0].i16.x, 1);
data[invocation].i16.xy = subgroupClusteredMin(data[1].i16.xy, 1);
data[invocation].i16.xyz = subgroupClusteredMin(data[2].i16.xyz, 1);
data[invocation].i16 = subgroupClusteredMin(data[3].i16, 1);
data[invocation].i16.x = subgroupClusteredMax(data[0].i16.x, 1);
data[invocation].i16.xy = subgroupClusteredMax(data[1].i16.xy, 1);
data[invocation].i16.xyz = subgroupClusteredMax(data[2].i16.xyz, 1);
data[invocation].i16 = subgroupClusteredMax(data[3].i16, 1);
data[invocation].i16.x = subgroupClusteredAnd(data[0].i16.x, 1);
data[invocation].i16.xy = subgroupClusteredAnd(data[1].i16.xy, 1);
data[invocation].i16.xyz = subgroupClusteredAnd(data[2].i16.xyz, 1);
data[invocation].i16 = subgroupClusteredAnd(data[3].i16, 1);
data[invocation].i16.x = subgroupClusteredOr(data[0].i16.x, 1);
data[invocation].i16.xy = subgroupClusteredOr(data[1].i16.xy, 1);
data[invocation].i16.xyz = subgroupClusteredOr(data[2].i16.xyz, 1);
data[invocation].i16 = subgroupClusteredOr(data[3].i16, 1);
data[invocation].i16.x = subgroupClusteredXor(data[0].i16.x, 1);
data[invocation].i16.xy = subgroupClusteredXor(data[1].i16.xy, 1);
data[invocation].i16.xyz = subgroupClusteredXor(data[2].i16.xyz, 1);
data[invocation].i16 = subgroupClusteredXor(data[3].i16, 1);
data[invocation].u16.x = subgroupClusteredAdd(data[0].u16.x, 1);
data[invocation].u16.xy = subgroupClusteredAdd(data[1].u16.xy, 1);
data[invocation].u16.xyz = subgroupClusteredAdd(data[2].u16.xyz, 1);
data[invocation].u16 = subgroupClusteredAdd(data[3].u16, 1);
data[invocation].u16.x = subgroupClusteredMul(data[0].u16.x, 1);
data[invocation].u16.xy = subgroupClusteredMul(data[1].u16.xy, 1);
data[invocation].u16.xyz = subgroupClusteredMul(data[2].u16.xyz, 1);
data[invocation].u16 = subgroupClusteredMul(data[3].u16, 1);
data[invocation].u16.x = subgroupClusteredMin(data[0].u16.x, 1);
data[invocation].u16.xy = subgroupClusteredMin(data[1].u16.xy, 1);
data[invocation].u16.xyz = subgroupClusteredMin(data[2].u16.xyz, 1);
data[invocation].u16 = subgroupClusteredMin(data[3].u16, 1);
data[invocation].u16.x = subgroupClusteredMax(data[0].u16.x, 1);
data[invocation].u16.xy = subgroupClusteredMax(data[1].u16.xy, 1);
data[invocation].u16.xyz = subgroupClusteredMax(data[2].u16.xyz, 1);
data[invocation].u16 = subgroupClusteredMax(data[3].u16, 1);
data[invocation].u16.x = subgroupClusteredAnd(data[0].u16.x, 1);
data[invocation].u16.xy = subgroupClusteredAnd(data[1].u16.xy, 1);
data[invocation].u16.xyz = subgroupClusteredAnd(data[2].u16.xyz, 1);
data[invocation].u16 = subgroupClusteredAnd(data[3].u16, 1);
data[invocation].u16.x = subgroupClusteredOr(data[0].u16.x, 1);
data[invocation].u16.xy = subgroupClusteredOr(data[1].u16.xy, 1);
data[invocation].u16.xyz = subgroupClusteredOr(data[2].u16.xyz, 1);
data[invocation].u16 = subgroupClusteredOr(data[3].u16, 1);
data[invocation].u16.x = subgroupClusteredXor(data[0].u16.x, 1);
data[invocation].u16.xy = subgroupClusteredXor(data[1].u16.xy, 1);
data[invocation].u16.xyz = subgroupClusteredXor(data[2].u16.xyz, 1);
data[invocation].u16 = subgroupClusteredXor(data[3].u16, 1);
data[invocation].i64.x = subgroupClusteredAdd(data[0].i64.x, 1);
data[invocation].i64.xy = subgroupClusteredAdd(data[1].i64.xy, 1);
data[invocation].i64.xyz = subgroupClusteredAdd(data[2].i64.xyz, 1);
data[invocation].i64 = subgroupClusteredAdd(data[3].i64, 1);
data[invocation].i64.x = subgroupClusteredMul(data[0].i64.x, 1);
data[invocation].i64.xy = subgroupClusteredMul(data[1].i64.xy, 1);
data[invocation].i64.xyz = subgroupClusteredMul(data[2].i64.xyz, 1);
data[invocation].i64 = subgroupClusteredMul(data[3].i64, 1);
data[invocation].i64.x = subgroupClusteredMin(data[0].i64.x, 1);
data[invocation].i64.xy = subgroupClusteredMin(data[1].i64.xy, 1);
data[invocation].i64.xyz = subgroupClusteredMin(data[2].i64.xyz, 1);
data[invocation].i64 = subgroupClusteredMin(data[3].i64, 1);
data[invocation].i64.x = subgroupClusteredMax(data[0].i64.x, 1);
data[invocation].i64.xy = subgroupClusteredMax(data[1].i64.xy, 1);
data[invocation].i64.xyz = subgroupClusteredMax(data[2].i64.xyz, 1);
data[invocation].i64 = subgroupClusteredMax(data[3].i64, 1);
data[invocation].i64.x = subgroupClusteredAnd(data[0].i64.x, 1);
data[invocation].i64.xy = subgroupClusteredAnd(data[1].i64.xy, 1);
data[invocation].i64.xyz = subgroupClusteredAnd(data[2].i64.xyz, 1);
data[invocation].i64 = subgroupClusteredAnd(data[3].i64, 1);
data[invocation].i64.x = subgroupClusteredOr(data[0].i64.x, 1);
data[invocation].i64.xy = subgroupClusteredOr(data[1].i64.xy, 1);
data[invocation].i64.xyz = subgroupClusteredOr(data[2].i64.xyz, 1);
data[invocation].i64 = subgroupClusteredOr(data[3].i64, 1);
data[invocation].i64.x = subgroupClusteredXor(data[0].i64.x, 1);
data[invocation].i64.xy = subgroupClusteredXor(data[1].i64.xy, 1);
data[invocation].i64.xyz = subgroupClusteredXor(data[2].i64.xyz, 1);
data[invocation].i64 = subgroupClusteredXor(data[3].i64, 1);
data[invocation].u64.x = subgroupClusteredAdd(data[0].u64.x, 1);
data[invocation].u64.xy = subgroupClusteredAdd(data[1].u64.xy, 1);
data[invocation].u64.xyz = subgroupClusteredAdd(data[2].u64.xyz, 1);
data[invocation].u64 = subgroupClusteredAdd(data[3].u64, 1);
data[invocation].u64.x = subgroupClusteredMul(data[0].u64.x, 1);
data[invocation].u64.xy = subgroupClusteredMul(data[1].u64.xy, 1);
data[invocation].u64.xyz = subgroupClusteredMul(data[2].u64.xyz, 1);
data[invocation].u64 = subgroupClusteredMul(data[3].u64, 1);
data[invocation].u64.x = subgroupClusteredMin(data[0].u64.x, 1);
data[invocation].u64.xy = subgroupClusteredMin(data[1].u64.xy, 1);
data[invocation].u64.xyz = subgroupClusteredMin(data[2].u64.xyz, 1);
data[invocation].u64 = subgroupClusteredMin(data[3].u64, 1);
data[invocation].u64.x = subgroupClusteredMax(data[0].u64.x, 1);
data[invocation].u64.xy = subgroupClusteredMax(data[1].u64.xy, 1);
data[invocation].u64.xyz = subgroupClusteredMax(data[2].u64.xyz, 1);
data[invocation].u64 = subgroupClusteredMax(data[3].u64, 1);
data[invocation].u64.x = subgroupClusteredAnd(data[0].u64.x, 1);
data[invocation].u64.xy = subgroupClusteredAnd(data[1].u64.xy, 1);
data[invocation].u64.xyz = subgroupClusteredAnd(data[2].u64.xyz, 1);
data[invocation].u64 = subgroupClusteredAnd(data[3].u64, 1);
data[invocation].u64.x = subgroupClusteredOr(data[0].u64.x, 1);
data[invocation].u64.xy = subgroupClusteredOr(data[1].u64.xy, 1);
data[invocation].u64.xyz = subgroupClusteredOr(data[2].u64.xyz, 1);
data[invocation].u64 = subgroupClusteredOr(data[3].u64, 1);
data[invocation].u64.x = subgroupClusteredXor(data[0].u64.x, 1);
data[invocation].u64.xy = subgroupClusteredXor(data[1].u64.xy, 1);
data[invocation].u64.xyz = subgroupClusteredXor(data[2].u64.xyz, 1);
data[invocation].u64 = subgroupClusteredXor(data[3].u64, 1);
data[invocation].f16.x = subgroupClusteredAdd(data[0].f16.x, 1);
data[invocation].f16.xy = subgroupClusteredAdd(data[1].f16.xy, 1);
data[invocation].f16.xyz = subgroupClusteredAdd(data[2].f16.xyz, 1);
data[invocation].f16 = subgroupClusteredAdd(data[3].f16, 1);
data[invocation].f16.x = subgroupClusteredMul(data[0].f16.x, 1);
data[invocation].f16.xy = subgroupClusteredMul(data[1].f16.xy, 1);
data[invocation].f16.xyz = subgroupClusteredMul(data[2].f16.xyz, 1);
data[invocation].f16 = subgroupClusteredMul(data[3].f16, 1);
data[invocation].f16.x = subgroupClusteredMin(data[0].f16.x, 1);
data[invocation].f16.xy = subgroupClusteredMin(data[1].f16.xy, 1);
data[invocation].f16.xyz = subgroupClusteredMin(data[2].f16.xyz, 1);
data[invocation].f16 = subgroupClusteredMin(data[3].f16, 1);
data[invocation].f16.x = subgroupClusteredMax(data[0].f16.x, 1);
data[invocation].f16.xy = subgroupClusteredMax(data[1].f16.xy, 1);
data[invocation].f16.xyz = subgroupClusteredMax(data[2].f16.xyz, 1);
data[invocation].f16 = subgroupClusteredMax(data[3].f16, 1);
}

View File

@ -0,0 +1,255 @@
#version 450
#extension GL_KHR_shader_subgroup_clustered: enable
#extension GL_EXT_shader_explicit_arithmetic_types_int8: enable
#extension GL_EXT_shader_explicit_arithmetic_types_int16: enable
#extension GL_EXT_shader_explicit_arithmetic_types_int64: enable
#extension GL_EXT_shader_explicit_arithmetic_types_float16: enable
layout (local_size_x = 8) in;
layout(binding = 0) buffer Buffers
{
i8vec4 i8;
u8vec4 u8;
i16vec4 i16;
u16vec4 u16;
i64vec4 i64;
u64vec4 u64;
f16vec4 f16;
} data[4];
void main()
{
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
data[invocation].i8.x = subgroupClusteredAdd(data[0].i8.x, 1);
data[invocation].i8.xy = subgroupClusteredAdd(data[1].i8.xy, 1);
data[invocation].i8.xyz = subgroupClusteredAdd(data[2].i8.xyz, 1);
data[invocation].i8 = subgroupClusteredAdd(data[3].i8, 1);
data[invocation].i8.x = subgroupClusteredMul(data[0].i8.x, 1);
data[invocation].i8.xy = subgroupClusteredMul(data[1].i8.xy, 1);
data[invocation].i8.xyz = subgroupClusteredMul(data[2].i8.xyz, 1);
data[invocation].i8 = subgroupClusteredMul(data[3].i8, 1);
data[invocation].i8.x = subgroupClusteredMin(data[0].i8.x, 1);
data[invocation].i8.xy = subgroupClusteredMin(data[1].i8.xy, 1);
data[invocation].i8.xyz = subgroupClusteredMin(data[2].i8.xyz, 1);
data[invocation].i8 = subgroupClusteredMin(data[3].i8, 1);
data[invocation].i8.x = subgroupClusteredMax(data[0].i8.x, 1);
data[invocation].i8.xy = subgroupClusteredMax(data[1].i8.xy, 1);
data[invocation].i8.xyz = subgroupClusteredMax(data[2].i8.xyz, 1);
data[invocation].i8 = subgroupClusteredMax(data[3].i8, 1);
data[invocation].i8.x = subgroupClusteredAnd(data[0].i8.x, 1);
data[invocation].i8.xy = subgroupClusteredAnd(data[1].i8.xy, 1);
data[invocation].i8.xyz = subgroupClusteredAnd(data[2].i8.xyz, 1);
data[invocation].i8 = subgroupClusteredAnd(data[3].i8, 1);
data[invocation].i8.x = subgroupClusteredOr(data[0].i8.x, 1);
data[invocation].i8.xy = subgroupClusteredOr(data[1].i8.xy, 1);
data[invocation].i8.xyz = subgroupClusteredOr(data[2].i8.xyz, 1);
data[invocation].i8 = subgroupClusteredOr(data[3].i8, 1);
data[invocation].i8.x = subgroupClusteredXor(data[0].i8.x, 1);
data[invocation].i8.xy = subgroupClusteredXor(data[1].i8.xy, 1);
data[invocation].i8.xyz = subgroupClusteredXor(data[2].i8.xyz, 1);
data[invocation].i8 = subgroupClusteredXor(data[3].i8, 1);
data[invocation].u8.x = subgroupClusteredAdd(data[0].u8.x, 1);
data[invocation].u8.xy = subgroupClusteredAdd(data[1].u8.xy, 1);
data[invocation].u8.xyz = subgroupClusteredAdd(data[2].u8.xyz, 1);
data[invocation].u8 = subgroupClusteredAdd(data[3].u8, 1);
data[invocation].u8.x = subgroupClusteredMul(data[0].u8.x, 1);
data[invocation].u8.xy = subgroupClusteredMul(data[1].u8.xy, 1);
data[invocation].u8.xyz = subgroupClusteredMul(data[2].u8.xyz, 1);
data[invocation].u8 = subgroupClusteredMul(data[3].u8, 1);
data[invocation].u8.x = subgroupClusteredMin(data[0].u8.x, 1);
data[invocation].u8.xy = subgroupClusteredMin(data[1].u8.xy, 1);
data[invocation].u8.xyz = subgroupClusteredMin(data[2].u8.xyz, 1);
data[invocation].u8 = subgroupClusteredMin(data[3].u8, 1);
data[invocation].u8.x = subgroupClusteredMax(data[0].u8.x, 1);
data[invocation].u8.xy = subgroupClusteredMax(data[1].u8.xy, 1);
data[invocation].u8.xyz = subgroupClusteredMax(data[2].u8.xyz, 1);
data[invocation].u8 = subgroupClusteredMax(data[3].u8, 1);
data[invocation].u8.x = subgroupClusteredAnd(data[0].u8.x, 1);
data[invocation].u8.xy = subgroupClusteredAnd(data[1].u8.xy, 1);
data[invocation].u8.xyz = subgroupClusteredAnd(data[2].u8.xyz, 1);
data[invocation].u8 = subgroupClusteredAnd(data[3].u8, 1);
data[invocation].u8.x = subgroupClusteredOr(data[0].u8.x, 1);
data[invocation].u8.xy = subgroupClusteredOr(data[1].u8.xy, 1);
data[invocation].u8.xyz = subgroupClusteredOr(data[2].u8.xyz, 1);
data[invocation].u8 = subgroupClusteredOr(data[3].u8, 1);
data[invocation].u8.x = subgroupClusteredXor(data[0].u8.x, 1);
data[invocation].u8.xy = subgroupClusteredXor(data[1].u8.xy, 1);
data[invocation].u8.xyz = subgroupClusteredXor(data[2].u8.xyz, 1);
data[invocation].u8 = subgroupClusteredXor(data[3].u8, 1);
data[invocation].i16.x = subgroupClusteredAdd(data[0].i16.x, 1);
data[invocation].i16.xy = subgroupClusteredAdd(data[1].i16.xy, 1);
data[invocation].i16.xyz = subgroupClusteredAdd(data[2].i16.xyz, 1);
data[invocation].i16 = subgroupClusteredAdd(data[3].i16, 1);
data[invocation].i16.x = subgroupClusteredMul(data[0].i16.x, 1);
data[invocation].i16.xy = subgroupClusteredMul(data[1].i16.xy, 1);
data[invocation].i16.xyz = subgroupClusteredMul(data[2].i16.xyz, 1);
data[invocation].i16 = subgroupClusteredMul(data[3].i16, 1);
data[invocation].i16.x = subgroupClusteredMin(data[0].i16.x, 1);
data[invocation].i16.xy = subgroupClusteredMin(data[1].i16.xy, 1);
data[invocation].i16.xyz = subgroupClusteredMin(data[2].i16.xyz, 1);
data[invocation].i16 = subgroupClusteredMin(data[3].i16, 1);
data[invocation].i16.x = subgroupClusteredMax(data[0].i16.x, 1);
data[invocation].i16.xy = subgroupClusteredMax(data[1].i16.xy, 1);
data[invocation].i16.xyz = subgroupClusteredMax(data[2].i16.xyz, 1);
data[invocation].i16 = subgroupClusteredMax(data[3].i16, 1);
data[invocation].i16.x = subgroupClusteredAnd(data[0].i16.x, 1);
data[invocation].i16.xy = subgroupClusteredAnd(data[1].i16.xy, 1);
data[invocation].i16.xyz = subgroupClusteredAnd(data[2].i16.xyz, 1);
data[invocation].i16 = subgroupClusteredAnd(data[3].i16, 1);
data[invocation].i16.x = subgroupClusteredOr(data[0].i16.x, 1);
data[invocation].i16.xy = subgroupClusteredOr(data[1].i16.xy, 1);
data[invocation].i16.xyz = subgroupClusteredOr(data[2].i16.xyz, 1);
data[invocation].i16 = subgroupClusteredOr(data[3].i16, 1);
data[invocation].i16.x = subgroupClusteredXor(data[0].i16.x, 1);
data[invocation].i16.xy = subgroupClusteredXor(data[1].i16.xy, 1);
data[invocation].i16.xyz = subgroupClusteredXor(data[2].i16.xyz, 1);
data[invocation].i16 = subgroupClusteredXor(data[3].i16, 1);
data[invocation].u16.x = subgroupClusteredAdd(data[0].u16.x, 1);
data[invocation].u16.xy = subgroupClusteredAdd(data[1].u16.xy, 1);
data[invocation].u16.xyz = subgroupClusteredAdd(data[2].u16.xyz, 1);
data[invocation].u16 = subgroupClusteredAdd(data[3].u16, 1);
data[invocation].u16.x = subgroupClusteredMul(data[0].u16.x, 1);
data[invocation].u16.xy = subgroupClusteredMul(data[1].u16.xy, 1);
data[invocation].u16.xyz = subgroupClusteredMul(data[2].u16.xyz, 1);
data[invocation].u16 = subgroupClusteredMul(data[3].u16, 1);
data[invocation].u16.x = subgroupClusteredMin(data[0].u16.x, 1);
data[invocation].u16.xy = subgroupClusteredMin(data[1].u16.xy, 1);
data[invocation].u16.xyz = subgroupClusteredMin(data[2].u16.xyz, 1);
data[invocation].u16 = subgroupClusteredMin(data[3].u16, 1);
data[invocation].u16.x = subgroupClusteredMax(data[0].u16.x, 1);
data[invocation].u16.xy = subgroupClusteredMax(data[1].u16.xy, 1);
data[invocation].u16.xyz = subgroupClusteredMax(data[2].u16.xyz, 1);
data[invocation].u16 = subgroupClusteredMax(data[3].u16, 1);
data[invocation].u16.x = subgroupClusteredAnd(data[0].u16.x, 1);
data[invocation].u16.xy = subgroupClusteredAnd(data[1].u16.xy, 1);
data[invocation].u16.xyz = subgroupClusteredAnd(data[2].u16.xyz, 1);
data[invocation].u16 = subgroupClusteredAnd(data[3].u16, 1);
data[invocation].u16.x = subgroupClusteredOr(data[0].u16.x, 1);
data[invocation].u16.xy = subgroupClusteredOr(data[1].u16.xy, 1);
data[invocation].u16.xyz = subgroupClusteredOr(data[2].u16.xyz, 1);
data[invocation].u16 = subgroupClusteredOr(data[3].u16, 1);
data[invocation].u16.x = subgroupClusteredXor(data[0].u16.x, 1);
data[invocation].u16.xy = subgroupClusteredXor(data[1].u16.xy, 1);
data[invocation].u16.xyz = subgroupClusteredXor(data[2].u16.xyz, 1);
data[invocation].u16 = subgroupClusteredXor(data[3].u16, 1);
data[invocation].i64.x = subgroupClusteredAdd(data[0].i64.x, 1);
data[invocation].i64.xy = subgroupClusteredAdd(data[1].i64.xy, 1);
data[invocation].i64.xyz = subgroupClusteredAdd(data[2].i64.xyz, 1);
data[invocation].i64 = subgroupClusteredAdd(data[3].i64, 1);
data[invocation].i64.x = subgroupClusteredMul(data[0].i64.x, 1);
data[invocation].i64.xy = subgroupClusteredMul(data[1].i64.xy, 1);
data[invocation].i64.xyz = subgroupClusteredMul(data[2].i64.xyz, 1);
data[invocation].i64 = subgroupClusteredMul(data[3].i64, 1);
data[invocation].i64.x = subgroupClusteredMin(data[0].i64.x, 1);
data[invocation].i64.xy = subgroupClusteredMin(data[1].i64.xy, 1);
data[invocation].i64.xyz = subgroupClusteredMin(data[2].i64.xyz, 1);
data[invocation].i64 = subgroupClusteredMin(data[3].i64, 1);
data[invocation].i64.x = subgroupClusteredMax(data[0].i64.x, 1);
data[invocation].i64.xy = subgroupClusteredMax(data[1].i64.xy, 1);
data[invocation].i64.xyz = subgroupClusteredMax(data[2].i64.xyz, 1);
data[invocation].i64 = subgroupClusteredMax(data[3].i64, 1);
data[invocation].i64.x = subgroupClusteredAnd(data[0].i64.x, 1);
data[invocation].i64.xy = subgroupClusteredAnd(data[1].i64.xy, 1);
data[invocation].i64.xyz = subgroupClusteredAnd(data[2].i64.xyz, 1);
data[invocation].i64 = subgroupClusteredAnd(data[3].i64, 1);
data[invocation].i64.x = subgroupClusteredOr(data[0].i64.x, 1);
data[invocation].i64.xy = subgroupClusteredOr(data[1].i64.xy, 1);
data[invocation].i64.xyz = subgroupClusteredOr(data[2].i64.xyz, 1);
data[invocation].i64 = subgroupClusteredOr(data[3].i64, 1);
data[invocation].i64.x = subgroupClusteredXor(data[0].i64.x, 1);
data[invocation].i64.xy = subgroupClusteredXor(data[1].i64.xy, 1);
data[invocation].i64.xyz = subgroupClusteredXor(data[2].i64.xyz, 1);
data[invocation].i64 = subgroupClusteredXor(data[3].i64, 1);
data[invocation].u64.x = subgroupClusteredAdd(data[0].u64.x, 1);
data[invocation].u64.xy = subgroupClusteredAdd(data[1].u64.xy, 1);
data[invocation].u64.xyz = subgroupClusteredAdd(data[2].u64.xyz, 1);
data[invocation].u64 = subgroupClusteredAdd(data[3].u64, 1);
data[invocation].u64.x = subgroupClusteredMul(data[0].u64.x, 1);
data[invocation].u64.xy = subgroupClusteredMul(data[1].u64.xy, 1);
data[invocation].u64.xyz = subgroupClusteredMul(data[2].u64.xyz, 1);
data[invocation].u64 = subgroupClusteredMul(data[3].u64, 1);
data[invocation].u64.x = subgroupClusteredMin(data[0].u64.x, 1);
data[invocation].u64.xy = subgroupClusteredMin(data[1].u64.xy, 1);
data[invocation].u64.xyz = subgroupClusteredMin(data[2].u64.xyz, 1);
data[invocation].u64 = subgroupClusteredMin(data[3].u64, 1);
data[invocation].u64.x = subgroupClusteredMax(data[0].u64.x, 1);
data[invocation].u64.xy = subgroupClusteredMax(data[1].u64.xy, 1);
data[invocation].u64.xyz = subgroupClusteredMax(data[2].u64.xyz, 1);
data[invocation].u64 = subgroupClusteredMax(data[3].u64, 1);
data[invocation].u64.x = subgroupClusteredAnd(data[0].u64.x, 1);
data[invocation].u64.xy = subgroupClusteredAnd(data[1].u64.xy, 1);
data[invocation].u64.xyz = subgroupClusteredAnd(data[2].u64.xyz, 1);
data[invocation].u64 = subgroupClusteredAnd(data[3].u64, 1);
data[invocation].u64.x = subgroupClusteredOr(data[0].u64.x, 1);
data[invocation].u64.xy = subgroupClusteredOr(data[1].u64.xy, 1);
data[invocation].u64.xyz = subgroupClusteredOr(data[2].u64.xyz, 1);
data[invocation].u64 = subgroupClusteredOr(data[3].u64, 1);
data[invocation].u64.x = subgroupClusteredXor(data[0].u64.x, 1);
data[invocation].u64.xy = subgroupClusteredXor(data[1].u64.xy, 1);
data[invocation].u64.xyz = subgroupClusteredXor(data[2].u64.xyz, 1);
data[invocation].u64 = subgroupClusteredXor(data[3].u64, 1);
data[invocation].f16.x = subgroupClusteredAdd(data[0].f16.x, 1);
data[invocation].f16.xy = subgroupClusteredAdd(data[1].f16.xy, 1);
data[invocation].f16.xyz = subgroupClusteredAdd(data[2].f16.xyz, 1);
data[invocation].f16 = subgroupClusteredAdd(data[3].f16, 1);
data[invocation].f16.x = subgroupClusteredMul(data[0].f16.x, 1);
data[invocation].f16.xy = subgroupClusteredMul(data[1].f16.xy, 1);
data[invocation].f16.xyz = subgroupClusteredMul(data[2].f16.xyz, 1);
data[invocation].f16 = subgroupClusteredMul(data[3].f16, 1);
data[invocation].f16.x = subgroupClusteredMin(data[0].f16.x, 1);
data[invocation].f16.xy = subgroupClusteredMin(data[1].f16.xy, 1);
data[invocation].f16.xyz = subgroupClusteredMin(data[2].f16.xyz, 1);
data[invocation].f16 = subgroupClusteredMin(data[3].f16, 1);
data[invocation].f16.x = subgroupClusteredMax(data[0].f16.x, 1);
data[invocation].f16.xy = subgroupClusteredMax(data[1].f16.xy, 1);
data[invocation].f16.xyz = subgroupClusteredMax(data[2].f16.xyz, 1);
data[invocation].f16 = subgroupClusteredMax(data[3].f16, 1);
}

View File

@ -0,0 +1,291 @@
#version 450
#extension GL_NV_shader_subgroup_partitioned: enable
#extension GL_EXT_shader_subgroup_extended_types_int8: enable
#extension GL_EXT_shader_subgroup_extended_types_int16: enable
#extension GL_EXT_shader_subgroup_extended_types_int64: enable
#extension GL_EXT_shader_subgroup_extended_types_float16: enable
layout (local_size_x = 8) in;
layout(binding = 0) buffer Buffers
{
i8vec4 i8;
u8vec4 u8;
i16vec4 i16;
u16vec4 u16;
i64vec4 i64;
u64vec4 u64;
f16vec4 f16;
} data[4];
void main()
{
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
uvec4 ballot;
ballot = subgroupPartitionNV(data[0].i8.x);
ballot = subgroupPartitionNV(data[1].i8.xy);
ballot = subgroupPartitionNV(data[2].i8.xyz);
ballot = subgroupPartitionNV(data[3].i8);
ballot = subgroupPartitionNV(data[0].u8.x);
ballot = subgroupPartitionNV(data[1].u8.xy);
ballot = subgroupPartitionNV(data[2].u8.xyz);
ballot = subgroupPartitionNV(data[3].u8);
ballot = subgroupPartitionNV(data[0].i16.x);
ballot = subgroupPartitionNV(data[1].i16.xy);
ballot = subgroupPartitionNV(data[2].i16.xyz);
ballot = subgroupPartitionNV(data[3].i16);
ballot = subgroupPartitionNV(data[0].u16.x);
ballot = subgroupPartitionNV(data[1].u16.xy);
ballot = subgroupPartitionNV(data[2].u16.xyz);
ballot = subgroupPartitionNV(data[3].u16);
ballot = subgroupPartitionNV(data[0].i64.x);
ballot = subgroupPartitionNV(data[1].i64.xy);
ballot = subgroupPartitionNV(data[2].i64.xyz);
ballot = subgroupPartitionNV(data[3].i64);
ballot = subgroupPartitionNV(data[0].u64.x);
ballot = subgroupPartitionNV(data[1].u64.xy);
ballot = subgroupPartitionNV(data[2].u64.xyz);
ballot = subgroupPartitionNV(data[3].u64);
ballot = subgroupPartitionNV(data[0].f16.x);
ballot = subgroupPartitionNV(data[1].f16.xy);
ballot = subgroupPartitionNV(data[2].f16.xyz);
ballot = subgroupPartitionNV(data[3].f16);
data[invocation].i8.x = subgroupPartitionedAddNV(data[0].i8.x, ballot);
data[invocation].i8.xy = subgroupPartitionedAddNV(data[1].i8.xy, ballot);
data[invocation].i8.xyz = subgroupPartitionedAddNV(data[2].i8.xyz, ballot);
data[invocation].i8 = subgroupPartitionedAddNV(data[3].i8, ballot);
data[invocation].i8.x = subgroupPartitionedMulNV(data[0].i8.x, ballot);
data[invocation].i8.xy = subgroupPartitionedMulNV(data[1].i8.xy, ballot);
data[invocation].i8.xyz = subgroupPartitionedMulNV(data[2].i8.xyz, ballot);
data[invocation].i8 = subgroupPartitionedMulNV(data[3].i8, ballot);
data[invocation].i8.x = subgroupPartitionedMinNV(data[0].i8.x, ballot);
data[invocation].i8.xy = subgroupPartitionedMinNV(data[1].i8.xy, ballot);
data[invocation].i8.xyz = subgroupPartitionedMinNV(data[2].i8.xyz, ballot);
data[invocation].i8 = subgroupPartitionedMinNV(data[3].i8, ballot);
data[invocation].i8.x = subgroupPartitionedMaxNV(data[0].i8.x, ballot);
data[invocation].i8.xy = subgroupPartitionedMaxNV(data[1].i8.xy, ballot);
data[invocation].i8.xyz = subgroupPartitionedMaxNV(data[2].i8.xyz, ballot);
data[invocation].i8 = subgroupPartitionedMaxNV(data[3].i8, ballot);
data[invocation].i8.x = subgroupPartitionedAndNV(data[0].i8.x, ballot);
data[invocation].i8.xy = subgroupPartitionedAndNV(data[1].i8.xy, ballot);
data[invocation].i8.xyz = subgroupPartitionedAndNV(data[2].i8.xyz, ballot);
data[invocation].i8 = subgroupPartitionedAndNV(data[3].i8, ballot);
data[invocation].i8.x = subgroupPartitionedOrNV(data[0].i8.x, ballot);
data[invocation].i8.xy = subgroupPartitionedOrNV(data[1].i8.xy, ballot);
data[invocation].i8.xyz = subgroupPartitionedOrNV(data[2].i8.xyz, ballot);
data[invocation].i8 = subgroupPartitionedOrNV(data[3].i8, ballot);
data[invocation].i8.x = subgroupPartitionedXorNV(data[0].i8.x, ballot);
data[invocation].i8.xy = subgroupPartitionedXorNV(data[1].i8.xy, ballot);
data[invocation].i8.xyz = subgroupPartitionedXorNV(data[2].i8.xyz, ballot);
data[invocation].i8 = subgroupPartitionedXorNV(data[3].i8, ballot);
data[invocation].u8.x = subgroupPartitionedAddNV(data[0].u8.x, ballot);
data[invocation].u8.xy = subgroupPartitionedAddNV(data[1].u8.xy, ballot);
data[invocation].u8.xyz = subgroupPartitionedAddNV(data[2].u8.xyz, ballot);
data[invocation].u8 = subgroupPartitionedAddNV(data[3].u8, ballot);
data[invocation].u8.x = subgroupPartitionedMulNV(data[0].u8.x, ballot);
data[invocation].u8.xy = subgroupPartitionedMulNV(data[1].u8.xy, ballot);
data[invocation].u8.xyz = subgroupPartitionedMulNV(data[2].u8.xyz, ballot);
data[invocation].u8 = subgroupPartitionedMulNV(data[3].u8, ballot);
data[invocation].u8.x = subgroupPartitionedMinNV(data[0].u8.x, ballot);
data[invocation].u8.xy = subgroupPartitionedMinNV(data[1].u8.xy, ballot);
data[invocation].u8.xyz = subgroupPartitionedMinNV(data[2].u8.xyz, ballot);
data[invocation].u8 = subgroupPartitionedMinNV(data[3].u8, ballot);
data[invocation].u8.x = subgroupPartitionedMaxNV(data[0].u8.x, ballot);
data[invocation].u8.xy = subgroupPartitionedMaxNV(data[1].u8.xy, ballot);
data[invocation].u8.xyz = subgroupPartitionedMaxNV(data[2].u8.xyz, ballot);
data[invocation].u8 = subgroupPartitionedMaxNV(data[3].u8, ballot);
data[invocation].u8.x = subgroupPartitionedAndNV(data[0].u8.x, ballot);
data[invocation].u8.xy = subgroupPartitionedAndNV(data[1].u8.xy, ballot);
data[invocation].u8.xyz = subgroupPartitionedAndNV(data[2].u8.xyz, ballot);
data[invocation].u8 = subgroupPartitionedAndNV(data[3].u8, ballot);
data[invocation].u8.x = subgroupPartitionedOrNV(data[0].u8.x, ballot);
data[invocation].u8.xy = subgroupPartitionedOrNV(data[1].u8.xy, ballot);
data[invocation].u8.xyz = subgroupPartitionedOrNV(data[2].u8.xyz, ballot);
data[invocation].u8 = subgroupPartitionedOrNV(data[3].u8, ballot);
data[invocation].u8.x = subgroupPartitionedXorNV(data[0].u8.x, ballot);
data[invocation].u8.xy = subgroupPartitionedXorNV(data[1].u8.xy, ballot);
data[invocation].u8.xyz = subgroupPartitionedXorNV(data[2].u8.xyz, ballot);
data[invocation].u8 = subgroupPartitionedXorNV(data[3].u8, ballot);
data[invocation].i16.x = subgroupPartitionedAddNV(data[0].i16.x, ballot);
data[invocation].i16.xy = subgroupPartitionedAddNV(data[1].i16.xy, ballot);
data[invocation].i16.xyz = subgroupPartitionedAddNV(data[2].i16.xyz, ballot);
data[invocation].i16 = subgroupPartitionedAddNV(data[3].i16, ballot);
data[invocation].i16.x = subgroupPartitionedMulNV(data[0].i16.x, ballot);
data[invocation].i16.xy = subgroupPartitionedMulNV(data[1].i16.xy, ballot);
data[invocation].i16.xyz = subgroupPartitionedMulNV(data[2].i16.xyz, ballot);
data[invocation].i16 = subgroupPartitionedMulNV(data[3].i16, ballot);
data[invocation].i16.x = subgroupPartitionedMinNV(data[0].i16.x, ballot);
data[invocation].i16.xy = subgroupPartitionedMinNV(data[1].i16.xy, ballot);
data[invocation].i16.xyz = subgroupPartitionedMinNV(data[2].i16.xyz, ballot);
data[invocation].i16 = subgroupPartitionedMinNV(data[3].i16, ballot);
data[invocation].i16.x = subgroupPartitionedMaxNV(data[0].i16.x, ballot);
data[invocation].i16.xy = subgroupPartitionedMaxNV(data[1].i16.xy, ballot);
data[invocation].i16.xyz = subgroupPartitionedMaxNV(data[2].i16.xyz, ballot);
data[invocation].i16 = subgroupPartitionedMaxNV(data[3].i16, ballot);
data[invocation].i16.x = subgroupPartitionedAndNV(data[0].i16.x, ballot);
data[invocation].i16.xy = subgroupPartitionedAndNV(data[1].i16.xy, ballot);
data[invocation].i16.xyz = subgroupPartitionedAndNV(data[2].i16.xyz, ballot);
data[invocation].i16 = subgroupPartitionedAndNV(data[3].i16, ballot);
data[invocation].i16.x = subgroupPartitionedOrNV(data[0].i16.x, ballot);
data[invocation].i16.xy = subgroupPartitionedOrNV(data[1].i16.xy, ballot);
data[invocation].i16.xyz = subgroupPartitionedOrNV(data[2].i16.xyz, ballot);
data[invocation].i16 = subgroupPartitionedOrNV(data[3].i16, ballot);
data[invocation].i16.x = subgroupPartitionedXorNV(data[0].i16.x, ballot);
data[invocation].i16.xy = subgroupPartitionedXorNV(data[1].i16.xy, ballot);
data[invocation].i16.xyz = subgroupPartitionedXorNV(data[2].i16.xyz, ballot);
data[invocation].i16 = subgroupPartitionedXorNV(data[3].i16, ballot);
data[invocation].u16.x = subgroupPartitionedAddNV(data[0].u16.x, ballot);
data[invocation].u16.xy = subgroupPartitionedAddNV(data[1].u16.xy, ballot);
data[invocation].u16.xyz = subgroupPartitionedAddNV(data[2].u16.xyz, ballot);
data[invocation].u16 = subgroupPartitionedAddNV(data[3].u16, ballot);
data[invocation].u16.x = subgroupPartitionedMulNV(data[0].u16.x, ballot);
data[invocation].u16.xy = subgroupPartitionedMulNV(data[1].u16.xy, ballot);
data[invocation].u16.xyz = subgroupPartitionedMulNV(data[2].u16.xyz, ballot);
data[invocation].u16 = subgroupPartitionedMulNV(data[3].u16, ballot);
data[invocation].u16.x = subgroupPartitionedMinNV(data[0].u16.x, ballot);
data[invocation].u16.xy = subgroupPartitionedMinNV(data[1].u16.xy, ballot);
data[invocation].u16.xyz = subgroupPartitionedMinNV(data[2].u16.xyz, ballot);
data[invocation].u16 = subgroupPartitionedMinNV(data[3].u16, ballot);
data[invocation].u16.x = subgroupPartitionedMaxNV(data[0].u16.x, ballot);
data[invocation].u16.xy = subgroupPartitionedMaxNV(data[1].u16.xy, ballot);
data[invocation].u16.xyz = subgroupPartitionedMaxNV(data[2].u16.xyz, ballot);
data[invocation].u16 = subgroupPartitionedMaxNV(data[3].u16, ballot);
data[invocation].u16.x = subgroupPartitionedAndNV(data[0].u16.x, ballot);
data[invocation].u16.xy = subgroupPartitionedAndNV(data[1].u16.xy, ballot);
data[invocation].u16.xyz = subgroupPartitionedAndNV(data[2].u16.xyz, ballot);
data[invocation].u16 = subgroupPartitionedAndNV(data[3].u16, ballot);
data[invocation].u16.x = subgroupPartitionedOrNV(data[0].u16.x, ballot);
data[invocation].u16.xy = subgroupPartitionedOrNV(data[1].u16.xy, ballot);
data[invocation].u16.xyz = subgroupPartitionedOrNV(data[2].u16.xyz, ballot);
data[invocation].u16 = subgroupPartitionedOrNV(data[3].u16, ballot);
data[invocation].u16.x = subgroupPartitionedXorNV(data[0].u16.x, ballot);
data[invocation].u16.xy = subgroupPartitionedXorNV(data[1].u16.xy, ballot);
data[invocation].u16.xyz = subgroupPartitionedXorNV(data[2].u16.xyz, ballot);
data[invocation].u16 = subgroupPartitionedXorNV(data[3].u16, ballot);
data[invocation].i64.x = subgroupPartitionedAddNV(data[0].i64.x, ballot);
data[invocation].i64.xy = subgroupPartitionedAddNV(data[1].i64.xy, ballot);
data[invocation].i64.xyz = subgroupPartitionedAddNV(data[2].i64.xyz, ballot);
data[invocation].i64 = subgroupPartitionedAddNV(data[3].i64, ballot);
data[invocation].i64.x = subgroupPartitionedMulNV(data[0].i64.x, ballot);
data[invocation].i64.xy = subgroupPartitionedMulNV(data[1].i64.xy, ballot);
data[invocation].i64.xyz = subgroupPartitionedMulNV(data[2].i64.xyz, ballot);
data[invocation].i64 = subgroupPartitionedMulNV(data[3].i64, ballot);
data[invocation].i64.x = subgroupPartitionedMinNV(data[0].i64.x, ballot);
data[invocation].i64.xy = subgroupPartitionedMinNV(data[1].i64.xy, ballot);
data[invocation].i64.xyz = subgroupPartitionedMinNV(data[2].i64.xyz, ballot);
data[invocation].i64 = subgroupPartitionedMinNV(data[3].i64, ballot);
data[invocation].i64.x = subgroupPartitionedMaxNV(data[0].i64.x, ballot);
data[invocation].i64.xy = subgroupPartitionedMaxNV(data[1].i64.xy, ballot);
data[invocation].i64.xyz = subgroupPartitionedMaxNV(data[2].i64.xyz, ballot);
data[invocation].i64 = subgroupPartitionedMaxNV(data[3].i64, ballot);
data[invocation].i64.x = subgroupPartitionedAndNV(data[0].i64.x, ballot);
data[invocation].i64.xy = subgroupPartitionedAndNV(data[1].i64.xy, ballot);
data[invocation].i64.xyz = subgroupPartitionedAndNV(data[2].i64.xyz, ballot);
data[invocation].i64 = subgroupPartitionedAndNV(data[3].i64, ballot);
data[invocation].i64.x = subgroupPartitionedOrNV(data[0].i64.x, ballot);
data[invocation].i64.xy = subgroupPartitionedOrNV(data[1].i64.xy, ballot);
data[invocation].i64.xyz = subgroupPartitionedOrNV(data[2].i64.xyz, ballot);
data[invocation].i64 = subgroupPartitionedOrNV(data[3].i64, ballot);
data[invocation].i64.x = subgroupPartitionedXorNV(data[0].i64.x, ballot);
data[invocation].i64.xy = subgroupPartitionedXorNV(data[1].i64.xy, ballot);
data[invocation].i64.xyz = subgroupPartitionedXorNV(data[2].i64.xyz, ballot);
data[invocation].i64 = subgroupPartitionedXorNV(data[3].i64, ballot);
data[invocation].u64.x = subgroupPartitionedAddNV(data[0].u64.x, ballot);
data[invocation].u64.xy = subgroupPartitionedAddNV(data[1].u64.xy, ballot);
data[invocation].u64.xyz = subgroupPartitionedAddNV(data[2].u64.xyz, ballot);
data[invocation].u64 = subgroupPartitionedAddNV(data[3].u64, ballot);
data[invocation].u64.x = subgroupPartitionedMulNV(data[0].u64.x, ballot);
data[invocation].u64.xy = subgroupPartitionedMulNV(data[1].u64.xy, ballot);
data[invocation].u64.xyz = subgroupPartitionedMulNV(data[2].u64.xyz, ballot);
data[invocation].u64 = subgroupPartitionedMulNV(data[3].u64, ballot);
data[invocation].u64.x = subgroupPartitionedMinNV(data[0].u64.x, ballot);
data[invocation].u64.xy = subgroupPartitionedMinNV(data[1].u64.xy, ballot);
data[invocation].u64.xyz = subgroupPartitionedMinNV(data[2].u64.xyz, ballot);
data[invocation].u64 = subgroupPartitionedMinNV(data[3].u64, ballot);
data[invocation].u64.x = subgroupPartitionedMaxNV(data[0].u64.x, ballot);
data[invocation].u64.xy = subgroupPartitionedMaxNV(data[1].u64.xy, ballot);
data[invocation].u64.xyz = subgroupPartitionedMaxNV(data[2].u64.xyz, ballot);
data[invocation].u64 = subgroupPartitionedMaxNV(data[3].u64, ballot);
data[invocation].u64.x = subgroupPartitionedAndNV(data[0].u64.x, ballot);
data[invocation].u64.xy = subgroupPartitionedAndNV(data[1].u64.xy, ballot);
data[invocation].u64.xyz = subgroupPartitionedAndNV(data[2].u64.xyz, ballot);
data[invocation].u64 = subgroupPartitionedAndNV(data[3].u64, ballot);
data[invocation].u64.x = subgroupPartitionedOrNV(data[0].u64.x, ballot);
data[invocation].u64.xy = subgroupPartitionedOrNV(data[1].u64.xy, ballot);
data[invocation].u64.xyz = subgroupPartitionedOrNV(data[2].u64.xyz, ballot);
data[invocation].u64 = subgroupPartitionedOrNV(data[3].u64, ballot);
data[invocation].u64.x = subgroupPartitionedXorNV(data[0].u64.x, ballot);
data[invocation].u64.xy = subgroupPartitionedXorNV(data[1].u64.xy, ballot);
data[invocation].u64.xyz = subgroupPartitionedXorNV(data[2].u64.xyz, ballot);
data[invocation].u64 = subgroupPartitionedXorNV(data[3].u64, ballot);
data[invocation].f16.x = subgroupPartitionedAddNV(data[0].f16.x, ballot);
data[invocation].f16.xy = subgroupPartitionedAddNV(data[1].f16.xy, ballot);
data[invocation].f16.xyz = subgroupPartitionedAddNV(data[2].f16.xyz, ballot);
data[invocation].f16 = subgroupPartitionedAddNV(data[3].f16, ballot);
data[invocation].f16.x = subgroupPartitionedMulNV(data[0].f16.x, ballot);
data[invocation].f16.xy = subgroupPartitionedMulNV(data[1].f16.xy, ballot);
data[invocation].f16.xyz = subgroupPartitionedMulNV(data[2].f16.xyz, ballot);
data[invocation].f16 = subgroupPartitionedMulNV(data[3].f16, ballot);
data[invocation].f16.x = subgroupPartitionedMinNV(data[0].f16.x, ballot);
data[invocation].f16.xy = subgroupPartitionedMinNV(data[1].f16.xy, ballot);
data[invocation].f16.xyz = subgroupPartitionedMinNV(data[2].f16.xyz, ballot);
data[invocation].f16 = subgroupPartitionedMinNV(data[3].f16, ballot);
data[invocation].f16.x = subgroupPartitionedMaxNV(data[0].f16.x, ballot);
data[invocation].f16.xy = subgroupPartitionedMaxNV(data[1].f16.xy, ballot);
data[invocation].f16.xyz = subgroupPartitionedMaxNV(data[2].f16.xyz, ballot);
data[invocation].f16 = subgroupPartitionedMaxNV(data[3].f16, ballot);
}

View File

@ -0,0 +1,291 @@
#version 450
#extension GL_NV_shader_subgroup_partitioned: enable
#extension GL_EXT_shader_explicit_arithmetic_types_int8: enable
#extension GL_EXT_shader_explicit_arithmetic_types_int16: enable
#extension GL_EXT_shader_explicit_arithmetic_types_int64: enable
#extension GL_EXT_shader_explicit_arithmetic_types_float16: enable
layout (local_size_x = 8) in;
layout(binding = 0) buffer Buffers
{
i8vec4 i8;
u8vec4 u8;
i16vec4 i16;
u16vec4 u16;
i64vec4 i64;
u64vec4 u64;
f16vec4 f16;
} data[4];
void main()
{
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
uvec4 ballot;
ballot = subgroupPartitionNV(data[0].i8.x);
ballot = subgroupPartitionNV(data[1].i8.xy);
ballot = subgroupPartitionNV(data[2].i8.xyz);
ballot = subgroupPartitionNV(data[3].i8);
ballot = subgroupPartitionNV(data[0].u8.x);
ballot = subgroupPartitionNV(data[1].u8.xy);
ballot = subgroupPartitionNV(data[2].u8.xyz);
ballot = subgroupPartitionNV(data[3].u8);
ballot = subgroupPartitionNV(data[0].i16.x);
ballot = subgroupPartitionNV(data[1].i16.xy);
ballot = subgroupPartitionNV(data[2].i16.xyz);
ballot = subgroupPartitionNV(data[3].i16);
ballot = subgroupPartitionNV(data[0].u16.x);
ballot = subgroupPartitionNV(data[1].u16.xy);
ballot = subgroupPartitionNV(data[2].u16.xyz);
ballot = subgroupPartitionNV(data[3].u16);
ballot = subgroupPartitionNV(data[0].i64.x);
ballot = subgroupPartitionNV(data[1].i64.xy);
ballot = subgroupPartitionNV(data[2].i64.xyz);
ballot = subgroupPartitionNV(data[3].i64);
ballot = subgroupPartitionNV(data[0].u64.x);
ballot = subgroupPartitionNV(data[1].u64.xy);
ballot = subgroupPartitionNV(data[2].u64.xyz);
ballot = subgroupPartitionNV(data[3].u64);
ballot = subgroupPartitionNV(data[0].f16.x);
ballot = subgroupPartitionNV(data[1].f16.xy);
ballot = subgroupPartitionNV(data[2].f16.xyz);
ballot = subgroupPartitionNV(data[3].f16);
data[invocation].i8.x = subgroupPartitionedAddNV(data[0].i8.x, ballot);
data[invocation].i8.xy = subgroupPartitionedAddNV(data[1].i8.xy, ballot);
data[invocation].i8.xyz = subgroupPartitionedAddNV(data[2].i8.xyz, ballot);
data[invocation].i8 = subgroupPartitionedAddNV(data[3].i8, ballot);
data[invocation].i8.x = subgroupPartitionedMulNV(data[0].i8.x, ballot);
data[invocation].i8.xy = subgroupPartitionedMulNV(data[1].i8.xy, ballot);
data[invocation].i8.xyz = subgroupPartitionedMulNV(data[2].i8.xyz, ballot);
data[invocation].i8 = subgroupPartitionedMulNV(data[3].i8, ballot);
data[invocation].i8.x = subgroupPartitionedMinNV(data[0].i8.x, ballot);
data[invocation].i8.xy = subgroupPartitionedMinNV(data[1].i8.xy, ballot);
data[invocation].i8.xyz = subgroupPartitionedMinNV(data[2].i8.xyz, ballot);
data[invocation].i8 = subgroupPartitionedMinNV(data[3].i8, ballot);
data[invocation].i8.x = subgroupPartitionedMaxNV(data[0].i8.x, ballot);
data[invocation].i8.xy = subgroupPartitionedMaxNV(data[1].i8.xy, ballot);
data[invocation].i8.xyz = subgroupPartitionedMaxNV(data[2].i8.xyz, ballot);
data[invocation].i8 = subgroupPartitionedMaxNV(data[3].i8, ballot);
data[invocation].i8.x = subgroupPartitionedAndNV(data[0].i8.x, ballot);
data[invocation].i8.xy = subgroupPartitionedAndNV(data[1].i8.xy, ballot);
data[invocation].i8.xyz = subgroupPartitionedAndNV(data[2].i8.xyz, ballot);
data[invocation].i8 = subgroupPartitionedAndNV(data[3].i8, ballot);
data[invocation].i8.x = subgroupPartitionedOrNV(data[0].i8.x, ballot);
data[invocation].i8.xy = subgroupPartitionedOrNV(data[1].i8.xy, ballot);
data[invocation].i8.xyz = subgroupPartitionedOrNV(data[2].i8.xyz, ballot);
data[invocation].i8 = subgroupPartitionedOrNV(data[3].i8, ballot);
data[invocation].i8.x = subgroupPartitionedXorNV(data[0].i8.x, ballot);
data[invocation].i8.xy = subgroupPartitionedXorNV(data[1].i8.xy, ballot);
data[invocation].i8.xyz = subgroupPartitionedXorNV(data[2].i8.xyz, ballot);
data[invocation].i8 = subgroupPartitionedXorNV(data[3].i8, ballot);
data[invocation].u8.x = subgroupPartitionedAddNV(data[0].u8.x, ballot);
data[invocation].u8.xy = subgroupPartitionedAddNV(data[1].u8.xy, ballot);
data[invocation].u8.xyz = subgroupPartitionedAddNV(data[2].u8.xyz, ballot);
data[invocation].u8 = subgroupPartitionedAddNV(data[3].u8, ballot);
data[invocation].u8.x = subgroupPartitionedMulNV(data[0].u8.x, ballot);
data[invocation].u8.xy = subgroupPartitionedMulNV(data[1].u8.xy, ballot);
data[invocation].u8.xyz = subgroupPartitionedMulNV(data[2].u8.xyz, ballot);
data[invocation].u8 = subgroupPartitionedMulNV(data[3].u8, ballot);
data[invocation].u8.x = subgroupPartitionedMinNV(data[0].u8.x, ballot);
data[invocation].u8.xy = subgroupPartitionedMinNV(data[1].u8.xy, ballot);
data[invocation].u8.xyz = subgroupPartitionedMinNV(data[2].u8.xyz, ballot);
data[invocation].u8 = subgroupPartitionedMinNV(data[3].u8, ballot);
data[invocation].u8.x = subgroupPartitionedMaxNV(data[0].u8.x, ballot);
data[invocation].u8.xy = subgroupPartitionedMaxNV(data[1].u8.xy, ballot);
data[invocation].u8.xyz = subgroupPartitionedMaxNV(data[2].u8.xyz, ballot);
data[invocation].u8 = subgroupPartitionedMaxNV(data[3].u8, ballot);
data[invocation].u8.x = subgroupPartitionedAndNV(data[0].u8.x, ballot);
data[invocation].u8.xy = subgroupPartitionedAndNV(data[1].u8.xy, ballot);
data[invocation].u8.xyz = subgroupPartitionedAndNV(data[2].u8.xyz, ballot);
data[invocation].u8 = subgroupPartitionedAndNV(data[3].u8, ballot);
data[invocation].u8.x = subgroupPartitionedOrNV(data[0].u8.x, ballot);
data[invocation].u8.xy = subgroupPartitionedOrNV(data[1].u8.xy, ballot);
data[invocation].u8.xyz = subgroupPartitionedOrNV(data[2].u8.xyz, ballot);
data[invocation].u8 = subgroupPartitionedOrNV(data[3].u8, ballot);
data[invocation].u8.x = subgroupPartitionedXorNV(data[0].u8.x, ballot);
data[invocation].u8.xy = subgroupPartitionedXorNV(data[1].u8.xy, ballot);
data[invocation].u8.xyz = subgroupPartitionedXorNV(data[2].u8.xyz, ballot);
data[invocation].u8 = subgroupPartitionedXorNV(data[3].u8, ballot);
data[invocation].i16.x = subgroupPartitionedAddNV(data[0].i16.x, ballot);
data[invocation].i16.xy = subgroupPartitionedAddNV(data[1].i16.xy, ballot);
data[invocation].i16.xyz = subgroupPartitionedAddNV(data[2].i16.xyz, ballot);
data[invocation].i16 = subgroupPartitionedAddNV(data[3].i16, ballot);
data[invocation].i16.x = subgroupPartitionedMulNV(data[0].i16.x, ballot);
data[invocation].i16.xy = subgroupPartitionedMulNV(data[1].i16.xy, ballot);
data[invocation].i16.xyz = subgroupPartitionedMulNV(data[2].i16.xyz, ballot);
data[invocation].i16 = subgroupPartitionedMulNV(data[3].i16, ballot);
data[invocation].i16.x = subgroupPartitionedMinNV(data[0].i16.x, ballot);
data[invocation].i16.xy = subgroupPartitionedMinNV(data[1].i16.xy, ballot);
data[invocation].i16.xyz = subgroupPartitionedMinNV(data[2].i16.xyz, ballot);
data[invocation].i16 = subgroupPartitionedMinNV(data[3].i16, ballot);
data[invocation].i16.x = subgroupPartitionedMaxNV(data[0].i16.x, ballot);
data[invocation].i16.xy = subgroupPartitionedMaxNV(data[1].i16.xy, ballot);
data[invocation].i16.xyz = subgroupPartitionedMaxNV(data[2].i16.xyz, ballot);
data[invocation].i16 = subgroupPartitionedMaxNV(data[3].i16, ballot);
data[invocation].i16.x = subgroupPartitionedAndNV(data[0].i16.x, ballot);
data[invocation].i16.xy = subgroupPartitionedAndNV(data[1].i16.xy, ballot);
data[invocation].i16.xyz = subgroupPartitionedAndNV(data[2].i16.xyz, ballot);
data[invocation].i16 = subgroupPartitionedAndNV(data[3].i16, ballot);
data[invocation].i16.x = subgroupPartitionedOrNV(data[0].i16.x, ballot);
data[invocation].i16.xy = subgroupPartitionedOrNV(data[1].i16.xy, ballot);
data[invocation].i16.xyz = subgroupPartitionedOrNV(data[2].i16.xyz, ballot);
data[invocation].i16 = subgroupPartitionedOrNV(data[3].i16, ballot);
data[invocation].i16.x = subgroupPartitionedXorNV(data[0].i16.x, ballot);
data[invocation].i16.xy = subgroupPartitionedXorNV(data[1].i16.xy, ballot);
data[invocation].i16.xyz = subgroupPartitionedXorNV(data[2].i16.xyz, ballot);
data[invocation].i16 = subgroupPartitionedXorNV(data[3].i16, ballot);
data[invocation].u16.x = subgroupPartitionedAddNV(data[0].u16.x, ballot);
data[invocation].u16.xy = subgroupPartitionedAddNV(data[1].u16.xy, ballot);
data[invocation].u16.xyz = subgroupPartitionedAddNV(data[2].u16.xyz, ballot);
data[invocation].u16 = subgroupPartitionedAddNV(data[3].u16, ballot);
data[invocation].u16.x = subgroupPartitionedMulNV(data[0].u16.x, ballot);
data[invocation].u16.xy = subgroupPartitionedMulNV(data[1].u16.xy, ballot);
data[invocation].u16.xyz = subgroupPartitionedMulNV(data[2].u16.xyz, ballot);
data[invocation].u16 = subgroupPartitionedMulNV(data[3].u16, ballot);
data[invocation].u16.x = subgroupPartitionedMinNV(data[0].u16.x, ballot);
data[invocation].u16.xy = subgroupPartitionedMinNV(data[1].u16.xy, ballot);
data[invocation].u16.xyz = subgroupPartitionedMinNV(data[2].u16.xyz, ballot);
data[invocation].u16 = subgroupPartitionedMinNV(data[3].u16, ballot);
data[invocation].u16.x = subgroupPartitionedMaxNV(data[0].u16.x, ballot);
data[invocation].u16.xy = subgroupPartitionedMaxNV(data[1].u16.xy, ballot);
data[invocation].u16.xyz = subgroupPartitionedMaxNV(data[2].u16.xyz, ballot);
data[invocation].u16 = subgroupPartitionedMaxNV(data[3].u16, ballot);
data[invocation].u16.x = subgroupPartitionedAndNV(data[0].u16.x, ballot);
data[invocation].u16.xy = subgroupPartitionedAndNV(data[1].u16.xy, ballot);
data[invocation].u16.xyz = subgroupPartitionedAndNV(data[2].u16.xyz, ballot);
data[invocation].u16 = subgroupPartitionedAndNV(data[3].u16, ballot);
data[invocation].u16.x = subgroupPartitionedOrNV(data[0].u16.x, ballot);
data[invocation].u16.xy = subgroupPartitionedOrNV(data[1].u16.xy, ballot);
data[invocation].u16.xyz = subgroupPartitionedOrNV(data[2].u16.xyz, ballot);
data[invocation].u16 = subgroupPartitionedOrNV(data[3].u16, ballot);
data[invocation].u16.x = subgroupPartitionedXorNV(data[0].u16.x, ballot);
data[invocation].u16.xy = subgroupPartitionedXorNV(data[1].u16.xy, ballot);
data[invocation].u16.xyz = subgroupPartitionedXorNV(data[2].u16.xyz, ballot);
data[invocation].u16 = subgroupPartitionedXorNV(data[3].u16, ballot);
data[invocation].i64.x = subgroupPartitionedAddNV(data[0].i64.x, ballot);
data[invocation].i64.xy = subgroupPartitionedAddNV(data[1].i64.xy, ballot);
data[invocation].i64.xyz = subgroupPartitionedAddNV(data[2].i64.xyz, ballot);
data[invocation].i64 = subgroupPartitionedAddNV(data[3].i64, ballot);
data[invocation].i64.x = subgroupPartitionedMulNV(data[0].i64.x, ballot);
data[invocation].i64.xy = subgroupPartitionedMulNV(data[1].i64.xy, ballot);
data[invocation].i64.xyz = subgroupPartitionedMulNV(data[2].i64.xyz, ballot);
data[invocation].i64 = subgroupPartitionedMulNV(data[3].i64, ballot);
data[invocation].i64.x = subgroupPartitionedMinNV(data[0].i64.x, ballot);
data[invocation].i64.xy = subgroupPartitionedMinNV(data[1].i64.xy, ballot);
data[invocation].i64.xyz = subgroupPartitionedMinNV(data[2].i64.xyz, ballot);
data[invocation].i64 = subgroupPartitionedMinNV(data[3].i64, ballot);
data[invocation].i64.x = subgroupPartitionedMaxNV(data[0].i64.x, ballot);
data[invocation].i64.xy = subgroupPartitionedMaxNV(data[1].i64.xy, ballot);
data[invocation].i64.xyz = subgroupPartitionedMaxNV(data[2].i64.xyz, ballot);
data[invocation].i64 = subgroupPartitionedMaxNV(data[3].i64, ballot);
data[invocation].i64.x = subgroupPartitionedAndNV(data[0].i64.x, ballot);
data[invocation].i64.xy = subgroupPartitionedAndNV(data[1].i64.xy, ballot);
data[invocation].i64.xyz = subgroupPartitionedAndNV(data[2].i64.xyz, ballot);
data[invocation].i64 = subgroupPartitionedAndNV(data[3].i64, ballot);
data[invocation].i64.x = subgroupPartitionedOrNV(data[0].i64.x, ballot);
data[invocation].i64.xy = subgroupPartitionedOrNV(data[1].i64.xy, ballot);
data[invocation].i64.xyz = subgroupPartitionedOrNV(data[2].i64.xyz, ballot);
data[invocation].i64 = subgroupPartitionedOrNV(data[3].i64, ballot);
data[invocation].i64.x = subgroupPartitionedXorNV(data[0].i64.x, ballot);
data[invocation].i64.xy = subgroupPartitionedXorNV(data[1].i64.xy, ballot);
data[invocation].i64.xyz = subgroupPartitionedXorNV(data[2].i64.xyz, ballot);
data[invocation].i64 = subgroupPartitionedXorNV(data[3].i64, ballot);
data[invocation].u64.x = subgroupPartitionedAddNV(data[0].u64.x, ballot);
data[invocation].u64.xy = subgroupPartitionedAddNV(data[1].u64.xy, ballot);
data[invocation].u64.xyz = subgroupPartitionedAddNV(data[2].u64.xyz, ballot);
data[invocation].u64 = subgroupPartitionedAddNV(data[3].u64, ballot);
data[invocation].u64.x = subgroupPartitionedMulNV(data[0].u64.x, ballot);
data[invocation].u64.xy = subgroupPartitionedMulNV(data[1].u64.xy, ballot);
data[invocation].u64.xyz = subgroupPartitionedMulNV(data[2].u64.xyz, ballot);
data[invocation].u64 = subgroupPartitionedMulNV(data[3].u64, ballot);
data[invocation].u64.x = subgroupPartitionedMinNV(data[0].u64.x, ballot);
data[invocation].u64.xy = subgroupPartitionedMinNV(data[1].u64.xy, ballot);
data[invocation].u64.xyz = subgroupPartitionedMinNV(data[2].u64.xyz, ballot);
data[invocation].u64 = subgroupPartitionedMinNV(data[3].u64, ballot);
data[invocation].u64.x = subgroupPartitionedMaxNV(data[0].u64.x, ballot);
data[invocation].u64.xy = subgroupPartitionedMaxNV(data[1].u64.xy, ballot);
data[invocation].u64.xyz = subgroupPartitionedMaxNV(data[2].u64.xyz, ballot);
data[invocation].u64 = subgroupPartitionedMaxNV(data[3].u64, ballot);
data[invocation].u64.x = subgroupPartitionedAndNV(data[0].u64.x, ballot);
data[invocation].u64.xy = subgroupPartitionedAndNV(data[1].u64.xy, ballot);
data[invocation].u64.xyz = subgroupPartitionedAndNV(data[2].u64.xyz, ballot);
data[invocation].u64 = subgroupPartitionedAndNV(data[3].u64, ballot);
data[invocation].u64.x = subgroupPartitionedOrNV(data[0].u64.x, ballot);
data[invocation].u64.xy = subgroupPartitionedOrNV(data[1].u64.xy, ballot);
data[invocation].u64.xyz = subgroupPartitionedOrNV(data[2].u64.xyz, ballot);
data[invocation].u64 = subgroupPartitionedOrNV(data[3].u64, ballot);
data[invocation].u64.x = subgroupPartitionedXorNV(data[0].u64.x, ballot);
data[invocation].u64.xy = subgroupPartitionedXorNV(data[1].u64.xy, ballot);
data[invocation].u64.xyz = subgroupPartitionedXorNV(data[2].u64.xyz, ballot);
data[invocation].u64 = subgroupPartitionedXorNV(data[3].u64, ballot);
data[invocation].f16.x = subgroupPartitionedAddNV(data[0].f16.x, ballot);
data[invocation].f16.xy = subgroupPartitionedAddNV(data[1].f16.xy, ballot);
data[invocation].f16.xyz = subgroupPartitionedAddNV(data[2].f16.xyz, ballot);
data[invocation].f16 = subgroupPartitionedAddNV(data[3].f16, ballot);
data[invocation].f16.x = subgroupPartitionedMulNV(data[0].f16.x, ballot);
data[invocation].f16.xy = subgroupPartitionedMulNV(data[1].f16.xy, ballot);
data[invocation].f16.xyz = subgroupPartitionedMulNV(data[2].f16.xyz, ballot);
data[invocation].f16 = subgroupPartitionedMulNV(data[3].f16, ballot);
data[invocation].f16.x = subgroupPartitionedMinNV(data[0].f16.x, ballot);
data[invocation].f16.xy = subgroupPartitionedMinNV(data[1].f16.xy, ballot);
data[invocation].f16.xyz = subgroupPartitionedMinNV(data[2].f16.xyz, ballot);
data[invocation].f16 = subgroupPartitionedMinNV(data[3].f16, ballot);
data[invocation].f16.x = subgroupPartitionedMaxNV(data[0].f16.x, ballot);
data[invocation].f16.xy = subgroupPartitionedMaxNV(data[1].f16.xy, ballot);
data[invocation].f16.xyz = subgroupPartitionedMaxNV(data[2].f16.xyz, ballot);
data[invocation].f16 = subgroupPartitionedMaxNV(data[3].f16, ballot);
}

View File

@ -0,0 +1,165 @@
#version 450
#extension GL_KHR_shader_subgroup_quad: enable
#extension GL_EXT_shader_subgroup_extended_types_int8: enable
#extension GL_EXT_shader_subgroup_extended_types_int16: enable
#extension GL_EXT_shader_subgroup_extended_types_int64: enable
#extension GL_EXT_shader_subgroup_extended_types_float16: enable
layout (local_size_x = 8) in;
layout(binding = 0) buffer Buffers
{
i8vec4 i8;
u8vec4 u8;
i16vec4 i16;
u16vec4 u16;
i64vec4 i64;
u64vec4 u64;
f16vec4 f16;
} data[4];
void main()
{
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
data[invocation].i8.x = subgroupQuadBroadcast(data[0].i8.x, 1);
data[invocation].i8.xy = subgroupQuadBroadcast(data[1].i8.xy, 1);
data[invocation].i8.xyz = subgroupQuadBroadcast(data[2].i8.xyz, 1);
data[invocation].i8 = subgroupQuadBroadcast(data[3].i8, 1);
data[invocation].i8.x = subgroupQuadSwapHorizontal(data[0].i8.x);
data[invocation].i8.xy = subgroupQuadSwapHorizontal(data[1].i8.xy);
data[invocation].i8.xyz = subgroupQuadSwapHorizontal(data[2].i8.xyz);
data[invocation].i8 = subgroupQuadSwapHorizontal(data[3].i8);
data[invocation].i8.x = subgroupQuadSwapVertical(data[0].i8.x);
data[invocation].i8.xy = subgroupQuadSwapVertical(data[1].i8.xy);
data[invocation].i8.xyz = subgroupQuadSwapVertical(data[2].i8.xyz);
data[invocation].i8 = subgroupQuadSwapVertical(data[3].i8);
data[invocation].i8.x = subgroupQuadSwapDiagonal(data[0].i8.x);
data[invocation].i8.xy = subgroupQuadSwapDiagonal(data[1].i8.xy);
data[invocation].i8.xyz = subgroupQuadSwapDiagonal(data[2].i8.xyz);
data[invocation].i8 = subgroupQuadSwapDiagonal(data[3].i8);
data[invocation].u8.x = subgroupQuadBroadcast(data[0].u8.x, 1);
data[invocation].u8.xy = subgroupQuadBroadcast(data[1].u8.xy, 1);
data[invocation].u8.xyz = subgroupQuadBroadcast(data[2].u8.xyz, 1);
data[invocation].u8 = subgroupQuadBroadcast(data[3].u8, 1);
data[invocation].u8.x = subgroupQuadSwapHorizontal(data[0].u8.x);
data[invocation].u8.xy = subgroupQuadSwapHorizontal(data[1].u8.xy);
data[invocation].u8.xyz = subgroupQuadSwapHorizontal(data[2].u8.xyz);
data[invocation].u8 = subgroupQuadSwapHorizontal(data[3].u8);
data[invocation].u8.x = subgroupQuadSwapVertical(data[0].u8.x);
data[invocation].u8.xy = subgroupQuadSwapVertical(data[1].u8.xy);
data[invocation].u8.xyz = subgroupQuadSwapVertical(data[2].u8.xyz);
data[invocation].u8 = subgroupQuadSwapVertical(data[3].u8);
data[invocation].u8.x = subgroupQuadSwapDiagonal(data[0].u8.x);
data[invocation].u8.xy = subgroupQuadSwapDiagonal(data[1].u8.xy);
data[invocation].u8.xyz = subgroupQuadSwapDiagonal(data[2].u8.xyz);
data[invocation].u8 = subgroupQuadSwapDiagonal(data[3].u8);
data[invocation].i16.x = subgroupQuadBroadcast(data[0].i16.x, 1);
data[invocation].i16.xy = subgroupQuadBroadcast(data[1].i16.xy, 1);
data[invocation].i16.xyz = subgroupQuadBroadcast(data[2].i16.xyz, 1);
data[invocation].i16 = subgroupQuadBroadcast(data[3].i16, 1);
data[invocation].i16.x = subgroupQuadSwapHorizontal(data[0].i16.x);
data[invocation].i16.xy = subgroupQuadSwapHorizontal(data[1].i16.xy);
data[invocation].i16.xyz = subgroupQuadSwapHorizontal(data[2].i16.xyz);
data[invocation].i16 = subgroupQuadSwapHorizontal(data[3].i16);
data[invocation].i16.x = subgroupQuadSwapVertical(data[0].i16.x);
data[invocation].i16.xy = subgroupQuadSwapVertical(data[1].i16.xy);
data[invocation].i16.xyz = subgroupQuadSwapVertical(data[2].i16.xyz);
data[invocation].i16 = subgroupQuadSwapVertical(data[3].i16);
data[invocation].i16.x = subgroupQuadSwapDiagonal(data[0].i16.x);
data[invocation].i16.xy = subgroupQuadSwapDiagonal(data[1].i16.xy);
data[invocation].i16.xyz = subgroupQuadSwapDiagonal(data[2].i16.xyz);
data[invocation].i16 = subgroupQuadSwapDiagonal(data[3].i16);
data[invocation].u16.x = subgroupQuadBroadcast(data[0].u16.x, 1);
data[invocation].u16.xy = subgroupQuadBroadcast(data[1].u16.xy, 1);
data[invocation].u16.xyz = subgroupQuadBroadcast(data[2].u16.xyz, 1);
data[invocation].u16 = subgroupQuadBroadcast(data[3].u16, 1);
data[invocation].u16.x = subgroupQuadSwapHorizontal(data[0].u16.x);
data[invocation].u16.xy = subgroupQuadSwapHorizontal(data[1].u16.xy);
data[invocation].u16.xyz = subgroupQuadSwapHorizontal(data[2].u16.xyz);
data[invocation].u16 = subgroupQuadSwapHorizontal(data[3].u16);
data[invocation].u16.x = subgroupQuadSwapVertical(data[0].u16.x);
data[invocation].u16.xy = subgroupQuadSwapVertical(data[1].u16.xy);
data[invocation].u16.xyz = subgroupQuadSwapVertical(data[2].u16.xyz);
data[invocation].u16 = subgroupQuadSwapVertical(data[3].u16);
data[invocation].u16.x = subgroupQuadSwapDiagonal(data[0].u16.x);
data[invocation].u16.xy = subgroupQuadSwapDiagonal(data[1].u16.xy);
data[invocation].u16.xyz = subgroupQuadSwapDiagonal(data[2].u16.xyz);
data[invocation].u16 = subgroupQuadSwapDiagonal(data[3].u16);
data[invocation].i64.x = subgroupQuadBroadcast(data[0].i64.x, 1);
data[invocation].i64.xy = subgroupQuadBroadcast(data[1].i64.xy, 1);
data[invocation].i64.xyz = subgroupQuadBroadcast(data[2].i64.xyz, 1);
data[invocation].i64 = subgroupQuadBroadcast(data[3].i64, 1);
data[invocation].i64.x = subgroupQuadSwapHorizontal(data[0].i64.x);
data[invocation].i64.xy = subgroupQuadSwapHorizontal(data[1].i64.xy);
data[invocation].i64.xyz = subgroupQuadSwapHorizontal(data[2].i64.xyz);
data[invocation].i64 = subgroupQuadSwapHorizontal(data[3].i64);
data[invocation].i64.x = subgroupQuadSwapVertical(data[0].i64.x);
data[invocation].i64.xy = subgroupQuadSwapVertical(data[1].i64.xy);
data[invocation].i64.xyz = subgroupQuadSwapVertical(data[2].i64.xyz);
data[invocation].i64 = subgroupQuadSwapVertical(data[3].i64);
data[invocation].i64.x = subgroupQuadSwapDiagonal(data[0].i64.x);
data[invocation].i64.xy = subgroupQuadSwapDiagonal(data[1].i64.xy);
data[invocation].i64.xyz = subgroupQuadSwapDiagonal(data[2].i64.xyz);
data[invocation].i64 = subgroupQuadSwapDiagonal(data[3].i64);
data[invocation].u64.x = subgroupQuadBroadcast(data[0].u64.x, 1);
data[invocation].u64.xy = subgroupQuadBroadcast(data[1].u64.xy, 1);
data[invocation].u64.xyz = subgroupQuadBroadcast(data[2].u64.xyz, 1);
data[invocation].u64 = subgroupQuadBroadcast(data[3].u64, 1);
data[invocation].u64.x = subgroupQuadSwapHorizontal(data[0].u64.x);
data[invocation].u64.xy = subgroupQuadSwapHorizontal(data[1].u64.xy);
data[invocation].u64.xyz = subgroupQuadSwapHorizontal(data[2].u64.xyz);
data[invocation].u64 = subgroupQuadSwapHorizontal(data[3].u64);
data[invocation].u64.x = subgroupQuadSwapVertical(data[0].u64.x);
data[invocation].u64.xy = subgroupQuadSwapVertical(data[1].u64.xy);
data[invocation].u64.xyz = subgroupQuadSwapVertical(data[2].u64.xyz);
data[invocation].u64 = subgroupQuadSwapVertical(data[3].u64);
data[invocation].u64.x = subgroupQuadSwapDiagonal(data[0].u64.x);
data[invocation].u64.xy = subgroupQuadSwapDiagonal(data[1].u64.xy);
data[invocation].u64.xyz = subgroupQuadSwapDiagonal(data[2].u64.xyz);
data[invocation].u64 = subgroupQuadSwapDiagonal(data[3].u64);
data[invocation].f16.x = subgroupQuadBroadcast(data[0].f16.x, 1);
data[invocation].f16.xy = subgroupQuadBroadcast(data[1].f16.xy, 1);
data[invocation].f16.xyz = subgroupQuadBroadcast(data[2].f16.xyz, 1);
data[invocation].f16 = subgroupQuadBroadcast(data[3].f16, 1);
data[invocation].f16.x = subgroupQuadSwapHorizontal(data[0].f16.x);
data[invocation].f16.xy = subgroupQuadSwapHorizontal(data[1].f16.xy);
data[invocation].f16.xyz = subgroupQuadSwapHorizontal(data[2].f16.xyz);
data[invocation].f16 = subgroupQuadSwapHorizontal(data[3].f16);
data[invocation].f16.x = subgroupQuadSwapVertical(data[0].f16.x);
data[invocation].f16.xy = subgroupQuadSwapVertical(data[1].f16.xy);
data[invocation].f16.xyz = subgroupQuadSwapVertical(data[2].f16.xyz);
data[invocation].f16 = subgroupQuadSwapVertical(data[3].f16);
data[invocation].f16.x = subgroupQuadSwapDiagonal(data[0].f16.x);
data[invocation].f16.xy = subgroupQuadSwapDiagonal(data[1].f16.xy);
data[invocation].f16.xyz = subgroupQuadSwapDiagonal(data[2].f16.xyz);
data[invocation].f16 = subgroupQuadSwapDiagonal(data[3].f16);
}

View File

@ -0,0 +1,165 @@
#version 450
#extension GL_KHR_shader_subgroup_quad: enable
#extension GL_EXT_shader_explicit_arithmetic_types_int8: enable
#extension GL_EXT_shader_explicit_arithmetic_types_int16: enable
#extension GL_EXT_shader_explicit_arithmetic_types_int64: enable
#extension GL_EXT_shader_explicit_arithmetic_types_float16: enable
layout (local_size_x = 8) in;
layout(binding = 0) buffer Buffers
{
i8vec4 i8;
u8vec4 u8;
i16vec4 i16;
u16vec4 u16;
i64vec4 i64;
u64vec4 u64;
f16vec4 f16;
} data[4];
void main()
{
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
data[invocation].i8.x = subgroupQuadBroadcast(data[0].i8.x, 1);
data[invocation].i8.xy = subgroupQuadBroadcast(data[1].i8.xy, 1);
data[invocation].i8.xyz = subgroupQuadBroadcast(data[2].i8.xyz, 1);
data[invocation].i8 = subgroupQuadBroadcast(data[3].i8, 1);
data[invocation].i8.x = subgroupQuadSwapHorizontal(data[0].i8.x);
data[invocation].i8.xy = subgroupQuadSwapHorizontal(data[1].i8.xy);
data[invocation].i8.xyz = subgroupQuadSwapHorizontal(data[2].i8.xyz);
data[invocation].i8 = subgroupQuadSwapHorizontal(data[3].i8);
data[invocation].i8.x = subgroupQuadSwapVertical(data[0].i8.x);
data[invocation].i8.xy = subgroupQuadSwapVertical(data[1].i8.xy);
data[invocation].i8.xyz = subgroupQuadSwapVertical(data[2].i8.xyz);
data[invocation].i8 = subgroupQuadSwapVertical(data[3].i8);
data[invocation].i8.x = subgroupQuadSwapDiagonal(data[0].i8.x);
data[invocation].i8.xy = subgroupQuadSwapDiagonal(data[1].i8.xy);
data[invocation].i8.xyz = subgroupQuadSwapDiagonal(data[2].i8.xyz);
data[invocation].i8 = subgroupQuadSwapDiagonal(data[3].i8);
data[invocation].u8.x = subgroupQuadBroadcast(data[0].u8.x, 1);
data[invocation].u8.xy = subgroupQuadBroadcast(data[1].u8.xy, 1);
data[invocation].u8.xyz = subgroupQuadBroadcast(data[2].u8.xyz, 1);
data[invocation].u8 = subgroupQuadBroadcast(data[3].u8, 1);
data[invocation].u8.x = subgroupQuadSwapHorizontal(data[0].u8.x);
data[invocation].u8.xy = subgroupQuadSwapHorizontal(data[1].u8.xy);
data[invocation].u8.xyz = subgroupQuadSwapHorizontal(data[2].u8.xyz);
data[invocation].u8 = subgroupQuadSwapHorizontal(data[3].u8);
data[invocation].u8.x = subgroupQuadSwapVertical(data[0].u8.x);
data[invocation].u8.xy = subgroupQuadSwapVertical(data[1].u8.xy);
data[invocation].u8.xyz = subgroupQuadSwapVertical(data[2].u8.xyz);
data[invocation].u8 = subgroupQuadSwapVertical(data[3].u8);
data[invocation].u8.x = subgroupQuadSwapDiagonal(data[0].u8.x);
data[invocation].u8.xy = subgroupQuadSwapDiagonal(data[1].u8.xy);
data[invocation].u8.xyz = subgroupQuadSwapDiagonal(data[2].u8.xyz);
data[invocation].u8 = subgroupQuadSwapDiagonal(data[3].u8);
data[invocation].i16.x = subgroupQuadBroadcast(data[0].i16.x, 1);
data[invocation].i16.xy = subgroupQuadBroadcast(data[1].i16.xy, 1);
data[invocation].i16.xyz = subgroupQuadBroadcast(data[2].i16.xyz, 1);
data[invocation].i16 = subgroupQuadBroadcast(data[3].i16, 1);
data[invocation].i16.x = subgroupQuadSwapHorizontal(data[0].i16.x);
data[invocation].i16.xy = subgroupQuadSwapHorizontal(data[1].i16.xy);
data[invocation].i16.xyz = subgroupQuadSwapHorizontal(data[2].i16.xyz);
data[invocation].i16 = subgroupQuadSwapHorizontal(data[3].i16);
data[invocation].i16.x = subgroupQuadSwapVertical(data[0].i16.x);
data[invocation].i16.xy = subgroupQuadSwapVertical(data[1].i16.xy);
data[invocation].i16.xyz = subgroupQuadSwapVertical(data[2].i16.xyz);
data[invocation].i16 = subgroupQuadSwapVertical(data[3].i16);
data[invocation].i16.x = subgroupQuadSwapDiagonal(data[0].i16.x);
data[invocation].i16.xy = subgroupQuadSwapDiagonal(data[1].i16.xy);
data[invocation].i16.xyz = subgroupQuadSwapDiagonal(data[2].i16.xyz);
data[invocation].i16 = subgroupQuadSwapDiagonal(data[3].i16);
data[invocation].u16.x = subgroupQuadBroadcast(data[0].u16.x, 1);
data[invocation].u16.xy = subgroupQuadBroadcast(data[1].u16.xy, 1);
data[invocation].u16.xyz = subgroupQuadBroadcast(data[2].u16.xyz, 1);
data[invocation].u16 = subgroupQuadBroadcast(data[3].u16, 1);
data[invocation].u16.x = subgroupQuadSwapHorizontal(data[0].u16.x);
data[invocation].u16.xy = subgroupQuadSwapHorizontal(data[1].u16.xy);
data[invocation].u16.xyz = subgroupQuadSwapHorizontal(data[2].u16.xyz);
data[invocation].u16 = subgroupQuadSwapHorizontal(data[3].u16);
data[invocation].u16.x = subgroupQuadSwapVertical(data[0].u16.x);
data[invocation].u16.xy = subgroupQuadSwapVertical(data[1].u16.xy);
data[invocation].u16.xyz = subgroupQuadSwapVertical(data[2].u16.xyz);
data[invocation].u16 = subgroupQuadSwapVertical(data[3].u16);
data[invocation].u16.x = subgroupQuadSwapDiagonal(data[0].u16.x);
data[invocation].u16.xy = subgroupQuadSwapDiagonal(data[1].u16.xy);
data[invocation].u16.xyz = subgroupQuadSwapDiagonal(data[2].u16.xyz);
data[invocation].u16 = subgroupQuadSwapDiagonal(data[3].u16);
data[invocation].i64.x = subgroupQuadBroadcast(data[0].i64.x, 1);
data[invocation].i64.xy = subgroupQuadBroadcast(data[1].i64.xy, 1);
data[invocation].i64.xyz = subgroupQuadBroadcast(data[2].i64.xyz, 1);
data[invocation].i64 = subgroupQuadBroadcast(data[3].i64, 1);
data[invocation].i64.x = subgroupQuadSwapHorizontal(data[0].i64.x);
data[invocation].i64.xy = subgroupQuadSwapHorizontal(data[1].i64.xy);
data[invocation].i64.xyz = subgroupQuadSwapHorizontal(data[2].i64.xyz);
data[invocation].i64 = subgroupQuadSwapHorizontal(data[3].i64);
data[invocation].i64.x = subgroupQuadSwapVertical(data[0].i64.x);
data[invocation].i64.xy = subgroupQuadSwapVertical(data[1].i64.xy);
data[invocation].i64.xyz = subgroupQuadSwapVertical(data[2].i64.xyz);
data[invocation].i64 = subgroupQuadSwapVertical(data[3].i64);
data[invocation].i64.x = subgroupQuadSwapDiagonal(data[0].i64.x);
data[invocation].i64.xy = subgroupQuadSwapDiagonal(data[1].i64.xy);
data[invocation].i64.xyz = subgroupQuadSwapDiagonal(data[2].i64.xyz);
data[invocation].i64 = subgroupQuadSwapDiagonal(data[3].i64);
data[invocation].u64.x = subgroupQuadBroadcast(data[0].u64.x, 1);
data[invocation].u64.xy = subgroupQuadBroadcast(data[1].u64.xy, 1);
data[invocation].u64.xyz = subgroupQuadBroadcast(data[2].u64.xyz, 1);
data[invocation].u64 = subgroupQuadBroadcast(data[3].u64, 1);
data[invocation].u64.x = subgroupQuadSwapHorizontal(data[0].u64.x);
data[invocation].u64.xy = subgroupQuadSwapHorizontal(data[1].u64.xy);
data[invocation].u64.xyz = subgroupQuadSwapHorizontal(data[2].u64.xyz);
data[invocation].u64 = subgroupQuadSwapHorizontal(data[3].u64);
data[invocation].u64.x = subgroupQuadSwapVertical(data[0].u64.x);
data[invocation].u64.xy = subgroupQuadSwapVertical(data[1].u64.xy);
data[invocation].u64.xyz = subgroupQuadSwapVertical(data[2].u64.xyz);
data[invocation].u64 = subgroupQuadSwapVertical(data[3].u64);
data[invocation].u64.x = subgroupQuadSwapDiagonal(data[0].u64.x);
data[invocation].u64.xy = subgroupQuadSwapDiagonal(data[1].u64.xy);
data[invocation].u64.xyz = subgroupQuadSwapDiagonal(data[2].u64.xyz);
data[invocation].u64 = subgroupQuadSwapDiagonal(data[3].u64);
data[invocation].f16.x = subgroupQuadBroadcast(data[0].f16.x, 1);
data[invocation].f16.xy = subgroupQuadBroadcast(data[1].f16.xy, 1);
data[invocation].f16.xyz = subgroupQuadBroadcast(data[2].f16.xyz, 1);
data[invocation].f16 = subgroupQuadBroadcast(data[3].f16, 1);
data[invocation].f16.x = subgroupQuadSwapHorizontal(data[0].f16.x);
data[invocation].f16.xy = subgroupQuadSwapHorizontal(data[1].f16.xy);
data[invocation].f16.xyz = subgroupQuadSwapHorizontal(data[2].f16.xyz);
data[invocation].f16 = subgroupQuadSwapHorizontal(data[3].f16);
data[invocation].f16.x = subgroupQuadSwapVertical(data[0].f16.x);
data[invocation].f16.xy = subgroupQuadSwapVertical(data[1].f16.xy);
data[invocation].f16.xyz = subgroupQuadSwapVertical(data[2].f16.xyz);
data[invocation].f16 = subgroupQuadSwapVertical(data[3].f16);
data[invocation].f16.x = subgroupQuadSwapDiagonal(data[0].f16.x);
data[invocation].f16.xy = subgroupQuadSwapDiagonal(data[1].f16.xy);
data[invocation].f16.xyz = subgroupQuadSwapDiagonal(data[2].f16.xyz);
data[invocation].f16 = subgroupQuadSwapDiagonal(data[3].f16);
}

View File

@ -0,0 +1,95 @@
#version 450
#extension GL_KHR_shader_subgroup_shuffle: enable
#extension GL_EXT_shader_subgroup_extended_types_int8: enable
#extension GL_EXT_shader_subgroup_extended_types_int16: enable
#extension GL_EXT_shader_subgroup_extended_types_int64: enable
#extension GL_EXT_shader_subgroup_extended_types_float16: enable
layout (local_size_x = 8) in;
layout(binding = 0) buffer Buffers
{
i8vec4 i8;
u8vec4 u8;
i16vec4 i16;
u16vec4 u16;
i64vec4 i64;
u64vec4 u64;
f16vec4 f16;
} data[4];
void main()
{
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
data[invocation].i8.x = subgroupShuffle(data[0].i8.x, invocation);
data[invocation].i8.xy = subgroupShuffle(data[1].i8.xy, invocation);
data[invocation].i8.xyz = subgroupShuffle(data[2].i8.xyz, invocation);
data[invocation].i8 = subgroupShuffle(data[3].i8, invocation);
data[invocation].i8.x = subgroupShuffleXor(data[0].i8.x, invocation);
data[invocation].i8.xy = subgroupShuffleXor(data[1].i8.xy, invocation);
data[invocation].i8.xyz = subgroupShuffleXor(data[2].i8.xyz, invocation);
data[invocation].i8 = subgroupShuffleXor(data[3].i8, invocation);
data[invocation].u8.x = subgroupShuffle(data[0].u8.x, invocation);
data[invocation].u8.xy = subgroupShuffle(data[1].u8.xy, invocation);
data[invocation].u8.xyz = subgroupShuffle(data[2].u8.xyz, invocation);
data[invocation].u8 = subgroupShuffle(data[3].u8, invocation);
data[invocation].u8.x = subgroupShuffleXor(data[0].u8.x, invocation);
data[invocation].u8.xy = subgroupShuffleXor(data[1].u8.xy, invocation);
data[invocation].u8.xyz = subgroupShuffleXor(data[2].u8.xyz, invocation);
data[invocation].u8 = subgroupShuffleXor(data[3].u8, invocation);
data[invocation].i16.x = subgroupShuffle(data[0].i16.x, invocation);
data[invocation].i16.xy = subgroupShuffle(data[1].i16.xy, invocation);
data[invocation].i16.xyz = subgroupShuffle(data[2].i16.xyz, invocation);
data[invocation].i16 = subgroupShuffle(data[3].i16, invocation);
data[invocation].i16.x = subgroupShuffleXor(data[0].i16.x, invocation);
data[invocation].i16.xy = subgroupShuffleXor(data[1].i16.xy, invocation);
data[invocation].i16.xyz = subgroupShuffleXor(data[2].i16.xyz, invocation);
data[invocation].i16 = subgroupShuffleXor(data[3].i16, invocation);
data[invocation].u16.x = subgroupShuffle(data[0].u16.x, invocation);
data[invocation].u16.xy = subgroupShuffle(data[1].u16.xy, invocation);
data[invocation].u16.xyz = subgroupShuffle(data[2].u16.xyz, invocation);
data[invocation].u16 = subgroupShuffle(data[3].u16, invocation);
data[invocation].u16.x = subgroupShuffleXor(data[0].u16.x, invocation);
data[invocation].u16.xy = subgroupShuffleXor(data[1].u16.xy, invocation);
data[invocation].u16.xyz = subgroupShuffleXor(data[2].u16.xyz, invocation);
data[invocation].u16 = subgroupShuffleXor(data[3].u16, invocation);
data[invocation].i64.x = subgroupShuffle(data[0].i64.x, invocation);
data[invocation].i64.xy = subgroupShuffle(data[1].i64.xy, invocation);
data[invocation].i64.xyz = subgroupShuffle(data[2].i64.xyz, invocation);
data[invocation].i64 = subgroupShuffle(data[3].i64, invocation);
data[invocation].i64.x = subgroupShuffleXor(data[0].i64.x, invocation);
data[invocation].i64.xy = subgroupShuffleXor(data[1].i64.xy, invocation);
data[invocation].i64.xyz = subgroupShuffleXor(data[2].i64.xyz, invocation);
data[invocation].i64 = subgroupShuffleXor(data[3].i64, invocation);
data[invocation].u64.x = subgroupShuffle(data[0].u64.x, invocation);
data[invocation].u64.xy = subgroupShuffle(data[1].u64.xy, invocation);
data[invocation].u64.xyz = subgroupShuffle(data[2].u64.xyz, invocation);
data[invocation].u64 = subgroupShuffle(data[3].u64, invocation);
data[invocation].u64.x = subgroupShuffleXor(data[0].u64.x, invocation);
data[invocation].u64.xy = subgroupShuffleXor(data[1].u64.xy, invocation);
data[invocation].u64.xyz = subgroupShuffleXor(data[2].u64.xyz, invocation);
data[invocation].u64 = subgroupShuffleXor(data[3].u64, invocation);
data[invocation].f16.x = subgroupShuffle(data[0].f16.x, invocation);
data[invocation].f16.xy = subgroupShuffle(data[1].f16.xy, invocation);
data[invocation].f16.xyz = subgroupShuffle(data[2].f16.xyz, invocation);
data[invocation].f16 = subgroupShuffle(data[3].f16, invocation);
data[invocation].f16.x = subgroupShuffleXor(data[0].f16.x, invocation);
data[invocation].f16.xy = subgroupShuffleXor(data[1].f16.xy, invocation);
data[invocation].f16.xyz = subgroupShuffleXor(data[2].f16.xyz, invocation);
data[invocation].f16 = subgroupShuffleXor(data[3].f16, invocation);
}

View File

@ -0,0 +1,95 @@
#version 450
#extension GL_KHR_shader_subgroup_shuffle: enable
#extension GL_EXT_shader_explicit_arithmetic_types_int8: enable
#extension GL_EXT_shader_explicit_arithmetic_types_int16: enable
#extension GL_EXT_shader_explicit_arithmetic_types_int64: enable
#extension GL_EXT_shader_explicit_arithmetic_types_float16: enable
layout (local_size_x = 8) in;
layout(binding = 0) buffer Buffers
{
i8vec4 i8;
u8vec4 u8;
i16vec4 i16;
u16vec4 u16;
i64vec4 i64;
u64vec4 u64;
f16vec4 f16;
} data[4];
void main()
{
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
data[invocation].i8.x = subgroupShuffle(data[0].i8.x, invocation);
data[invocation].i8.xy = subgroupShuffle(data[1].i8.xy, invocation);
data[invocation].i8.xyz = subgroupShuffle(data[2].i8.xyz, invocation);
data[invocation].i8 = subgroupShuffle(data[3].i8, invocation);
data[invocation].i8.x = subgroupShuffleXor(data[0].i8.x, invocation);
data[invocation].i8.xy = subgroupShuffleXor(data[1].i8.xy, invocation);
data[invocation].i8.xyz = subgroupShuffleXor(data[2].i8.xyz, invocation);
data[invocation].i8 = subgroupShuffleXor(data[3].i8, invocation);
data[invocation].u8.x = subgroupShuffle(data[0].u8.x, invocation);
data[invocation].u8.xy = subgroupShuffle(data[1].u8.xy, invocation);
data[invocation].u8.xyz = subgroupShuffle(data[2].u8.xyz, invocation);
data[invocation].u8 = subgroupShuffle(data[3].u8, invocation);
data[invocation].u8.x = subgroupShuffleXor(data[0].u8.x, invocation);
data[invocation].u8.xy = subgroupShuffleXor(data[1].u8.xy, invocation);
data[invocation].u8.xyz = subgroupShuffleXor(data[2].u8.xyz, invocation);
data[invocation].u8 = subgroupShuffleXor(data[3].u8, invocation);
data[invocation].i16.x = subgroupShuffle(data[0].i16.x, invocation);
data[invocation].i16.xy = subgroupShuffle(data[1].i16.xy, invocation);
data[invocation].i16.xyz = subgroupShuffle(data[2].i16.xyz, invocation);
data[invocation].i16 = subgroupShuffle(data[3].i16, invocation);
data[invocation].i16.x = subgroupShuffleXor(data[0].i16.x, invocation);
data[invocation].i16.xy = subgroupShuffleXor(data[1].i16.xy, invocation);
data[invocation].i16.xyz = subgroupShuffleXor(data[2].i16.xyz, invocation);
data[invocation].i16 = subgroupShuffleXor(data[3].i16, invocation);
data[invocation].u16.x = subgroupShuffle(data[0].u16.x, invocation);
data[invocation].u16.xy = subgroupShuffle(data[1].u16.xy, invocation);
data[invocation].u16.xyz = subgroupShuffle(data[2].u16.xyz, invocation);
data[invocation].u16 = subgroupShuffle(data[3].u16, invocation);
data[invocation].u16.x = subgroupShuffleXor(data[0].u16.x, invocation);
data[invocation].u16.xy = subgroupShuffleXor(data[1].u16.xy, invocation);
data[invocation].u16.xyz = subgroupShuffleXor(data[2].u16.xyz, invocation);
data[invocation].u16 = subgroupShuffleXor(data[3].u16, invocation);
data[invocation].i64.x = subgroupShuffle(data[0].i64.x, invocation);
data[invocation].i64.xy = subgroupShuffle(data[1].i64.xy, invocation);
data[invocation].i64.xyz = subgroupShuffle(data[2].i64.xyz, invocation);
data[invocation].i64 = subgroupShuffle(data[3].i64, invocation);
data[invocation].i64.x = subgroupShuffleXor(data[0].i64.x, invocation);
data[invocation].i64.xy = subgroupShuffleXor(data[1].i64.xy, invocation);
data[invocation].i64.xyz = subgroupShuffleXor(data[2].i64.xyz, invocation);
data[invocation].i64 = subgroupShuffleXor(data[3].i64, invocation);
data[invocation].u64.x = subgroupShuffle(data[0].u64.x, invocation);
data[invocation].u64.xy = subgroupShuffle(data[1].u64.xy, invocation);
data[invocation].u64.xyz = subgroupShuffle(data[2].u64.xyz, invocation);
data[invocation].u64 = subgroupShuffle(data[3].u64, invocation);
data[invocation].u64.x = subgroupShuffleXor(data[0].u64.x, invocation);
data[invocation].u64.xy = subgroupShuffleXor(data[1].u64.xy, invocation);
data[invocation].u64.xyz = subgroupShuffleXor(data[2].u64.xyz, invocation);
data[invocation].u64 = subgroupShuffleXor(data[3].u64, invocation);
data[invocation].f16.x = subgroupShuffle(data[0].f16.x, invocation);
data[invocation].f16.xy = subgroupShuffle(data[1].f16.xy, invocation);
data[invocation].f16.xyz = subgroupShuffle(data[2].f16.xyz, invocation);
data[invocation].f16 = subgroupShuffle(data[3].f16, invocation);
data[invocation].f16.x = subgroupShuffleXor(data[0].f16.x, invocation);
data[invocation].f16.xy = subgroupShuffleXor(data[1].f16.xy, invocation);
data[invocation].f16.xyz = subgroupShuffleXor(data[2].f16.xyz, invocation);
data[invocation].f16 = subgroupShuffleXor(data[3].f16, invocation);
}

View File

@ -0,0 +1,95 @@
#version 450
#extension GL_KHR_shader_subgroup_shuffle_relative: enable
#extension GL_EXT_shader_subgroup_extended_types_int8: enable
#extension GL_EXT_shader_subgroup_extended_types_int16: enable
#extension GL_EXT_shader_subgroup_extended_types_int64: enable
#extension GL_EXT_shader_subgroup_extended_types_float16: enable
layout (local_size_x = 8) in;
layout(binding = 0) buffer Buffers
{
i8vec4 i8;
u8vec4 u8;
i16vec4 i16;
u16vec4 u16;
i64vec4 i64;
u64vec4 u64;
f16vec4 f16;
} data[4];
void main()
{
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
data[invocation].i8.x = subgroupShuffleUp(data[0].i8.x, invocation);
data[invocation].i8.xy = subgroupShuffleUp(data[1].i8.xy, invocation);
data[invocation].i8.xyz = subgroupShuffleUp(data[2].i8.xyz, invocation);
data[invocation].i8 = subgroupShuffleUp(data[3].i8, invocation);
data[invocation].i8.x = subgroupShuffleDown(data[0].i8.x, invocation);
data[invocation].i8.xy = subgroupShuffleDown(data[1].i8.xy, invocation);
data[invocation].i8.xyz = subgroupShuffleDown(data[2].i8.xyz, invocation);
data[invocation].i8 = subgroupShuffleDown(data[3].i8, invocation);
data[invocation].u8.x = subgroupShuffleUp(data[0].u8.x, invocation);
data[invocation].u8.xy = subgroupShuffleUp(data[1].u8.xy, invocation);
data[invocation].u8.xyz = subgroupShuffleUp(data[2].u8.xyz, invocation);
data[invocation].u8 = subgroupShuffleUp(data[3].u8, invocation);
data[invocation].u8.x = subgroupShuffleDown(data[0].u8.x, invocation);
data[invocation].u8.xy = subgroupShuffleDown(data[1].u8.xy, invocation);
data[invocation].u8.xyz = subgroupShuffleDown(data[2].u8.xyz, invocation);
data[invocation].u8 = subgroupShuffleDown(data[3].u8, invocation);
data[invocation].i16.x = subgroupShuffleUp(data[0].i16.x, invocation);
data[invocation].i16.xy = subgroupShuffleUp(data[1].i16.xy, invocation);
data[invocation].i16.xyz = subgroupShuffleUp(data[2].i16.xyz, invocation);
data[invocation].i16 = subgroupShuffleUp(data[3].i16, invocation);
data[invocation].i16.x = subgroupShuffleDown(data[0].i16.x, invocation);
data[invocation].i16.xy = subgroupShuffleDown(data[1].i16.xy, invocation);
data[invocation].i16.xyz = subgroupShuffleDown(data[2].i16.xyz, invocation);
data[invocation].i16 = subgroupShuffleDown(data[3].i16, invocation);
data[invocation].u16.x = subgroupShuffleUp(data[0].u16.x, invocation);
data[invocation].u16.xy = subgroupShuffleUp(data[1].u16.xy, invocation);
data[invocation].u16.xyz = subgroupShuffleUp(data[2].u16.xyz, invocation);
data[invocation].u16 = subgroupShuffleUp(data[3].u16, invocation);
data[invocation].u16.x = subgroupShuffleDown(data[0].u16.x, invocation);
data[invocation].u16.xy = subgroupShuffleDown(data[1].u16.xy, invocation);
data[invocation].u16.xyz = subgroupShuffleDown(data[2].u16.xyz, invocation);
data[invocation].u16 = subgroupShuffleDown(data[3].u16, invocation);
data[invocation].i64.x = subgroupShuffleUp(data[0].i64.x, invocation);
data[invocation].i64.xy = subgroupShuffleUp(data[1].i64.xy, invocation);
data[invocation].i64.xyz = subgroupShuffleUp(data[2].i64.xyz, invocation);
data[invocation].i64 = subgroupShuffleUp(data[3].i64, invocation);
data[invocation].i64.x = subgroupShuffleDown(data[0].i64.x, invocation);
data[invocation].i64.xy = subgroupShuffleDown(data[1].i64.xy, invocation);
data[invocation].i64.xyz = subgroupShuffleDown(data[2].i64.xyz, invocation);
data[invocation].i64 = subgroupShuffleDown(data[3].i64, invocation);
data[invocation].u64.x = subgroupShuffleUp(data[0].u64.x, invocation);
data[invocation].u64.xy = subgroupShuffleUp(data[1].u64.xy, invocation);
data[invocation].u64.xyz = subgroupShuffleUp(data[2].u64.xyz, invocation);
data[invocation].u64 = subgroupShuffleUp(data[3].u64, invocation);
data[invocation].u64.x = subgroupShuffleDown(data[0].u64.x, invocation);
data[invocation].u64.xy = subgroupShuffleDown(data[1].u64.xy, invocation);
data[invocation].u64.xyz = subgroupShuffleDown(data[2].u64.xyz, invocation);
data[invocation].u64 = subgroupShuffleDown(data[3].u64, invocation);
data[invocation].f16.x = subgroupShuffleUp(data[0].f16.x, invocation);
data[invocation].f16.xy = subgroupShuffleUp(data[1].f16.xy, invocation);
data[invocation].f16.xyz = subgroupShuffleUp(data[2].f16.xyz, invocation);
data[invocation].f16 = subgroupShuffleUp(data[3].f16, invocation);
data[invocation].f16.x = subgroupShuffleDown(data[0].f16.x, invocation);
data[invocation].f16.xy = subgroupShuffleDown(data[1].f16.xy, invocation);
data[invocation].f16.xyz = subgroupShuffleDown(data[2].f16.xyz, invocation);
data[invocation].f16 = subgroupShuffleDown(data[3].f16, invocation);
}

View File

@ -0,0 +1,95 @@
#version 450
#extension GL_KHR_shader_subgroup_shuffle_relative: enable
#extension GL_EXT_shader_explicit_arithmetic_types_int8: enable
#extension GL_EXT_shader_explicit_arithmetic_types_int16: enable
#extension GL_EXT_shader_explicit_arithmetic_types_int64: enable
#extension GL_EXT_shader_explicit_arithmetic_types_float16: enable
layout (local_size_x = 8) in;
layout(binding = 0) buffer Buffers
{
i8vec4 i8;
u8vec4 u8;
i16vec4 i16;
u16vec4 u16;
i64vec4 i64;
u64vec4 u64;
f16vec4 f16;
} data[4];
void main()
{
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
data[invocation].i8.x = subgroupShuffleUp(data[0].i8.x, invocation);
data[invocation].i8.xy = subgroupShuffleUp(data[1].i8.xy, invocation);
data[invocation].i8.xyz = subgroupShuffleUp(data[2].i8.xyz, invocation);
data[invocation].i8 = subgroupShuffleUp(data[3].i8, invocation);
data[invocation].i8.x = subgroupShuffleDown(data[0].i8.x, invocation);
data[invocation].i8.xy = subgroupShuffleDown(data[1].i8.xy, invocation);
data[invocation].i8.xyz = subgroupShuffleDown(data[2].i8.xyz, invocation);
data[invocation].i8 = subgroupShuffleDown(data[3].i8, invocation);
data[invocation].u8.x = subgroupShuffleUp(data[0].u8.x, invocation);
data[invocation].u8.xy = subgroupShuffleUp(data[1].u8.xy, invocation);
data[invocation].u8.xyz = subgroupShuffleUp(data[2].u8.xyz, invocation);
data[invocation].u8 = subgroupShuffleUp(data[3].u8, invocation);
data[invocation].u8.x = subgroupShuffleDown(data[0].u8.x, invocation);
data[invocation].u8.xy = subgroupShuffleDown(data[1].u8.xy, invocation);
data[invocation].u8.xyz = subgroupShuffleDown(data[2].u8.xyz, invocation);
data[invocation].u8 = subgroupShuffleDown(data[3].u8, invocation);
data[invocation].i16.x = subgroupShuffleUp(data[0].i16.x, invocation);
data[invocation].i16.xy = subgroupShuffleUp(data[1].i16.xy, invocation);
data[invocation].i16.xyz = subgroupShuffleUp(data[2].i16.xyz, invocation);
data[invocation].i16 = subgroupShuffleUp(data[3].i16, invocation);
data[invocation].i16.x = subgroupShuffleDown(data[0].i16.x, invocation);
data[invocation].i16.xy = subgroupShuffleDown(data[1].i16.xy, invocation);
data[invocation].i16.xyz = subgroupShuffleDown(data[2].i16.xyz, invocation);
data[invocation].i16 = subgroupShuffleDown(data[3].i16, invocation);
data[invocation].u16.x = subgroupShuffleUp(data[0].u16.x, invocation);
data[invocation].u16.xy = subgroupShuffleUp(data[1].u16.xy, invocation);
data[invocation].u16.xyz = subgroupShuffleUp(data[2].u16.xyz, invocation);
data[invocation].u16 = subgroupShuffleUp(data[3].u16, invocation);
data[invocation].u16.x = subgroupShuffleDown(data[0].u16.x, invocation);
data[invocation].u16.xy = subgroupShuffleDown(data[1].u16.xy, invocation);
data[invocation].u16.xyz = subgroupShuffleDown(data[2].u16.xyz, invocation);
data[invocation].u16 = subgroupShuffleDown(data[3].u16, invocation);
data[invocation].i64.x = subgroupShuffleUp(data[0].i64.x, invocation);
data[invocation].i64.xy = subgroupShuffleUp(data[1].i64.xy, invocation);
data[invocation].i64.xyz = subgroupShuffleUp(data[2].i64.xyz, invocation);
data[invocation].i64 = subgroupShuffleUp(data[3].i64, invocation);
data[invocation].i64.x = subgroupShuffleDown(data[0].i64.x, invocation);
data[invocation].i64.xy = subgroupShuffleDown(data[1].i64.xy, invocation);
data[invocation].i64.xyz = subgroupShuffleDown(data[2].i64.xyz, invocation);
data[invocation].i64 = subgroupShuffleDown(data[3].i64, invocation);
data[invocation].u64.x = subgroupShuffleUp(data[0].u64.x, invocation);
data[invocation].u64.xy = subgroupShuffleUp(data[1].u64.xy, invocation);
data[invocation].u64.xyz = subgroupShuffleUp(data[2].u64.xyz, invocation);
data[invocation].u64 = subgroupShuffleUp(data[3].u64, invocation);
data[invocation].u64.x = subgroupShuffleDown(data[0].u64.x, invocation);
data[invocation].u64.xy = subgroupShuffleDown(data[1].u64.xy, invocation);
data[invocation].u64.xyz = subgroupShuffleDown(data[2].u64.xyz, invocation);
data[invocation].u64 = subgroupShuffleDown(data[3].u64, invocation);
data[invocation].f16.x = subgroupShuffleUp(data[0].f16.x, invocation);
data[invocation].f16.xy = subgroupShuffleUp(data[1].f16.xy, invocation);
data[invocation].f16.xyz = subgroupShuffleUp(data[2].f16.xyz, invocation);
data[invocation].f16 = subgroupShuffleUp(data[3].f16, invocation);
data[invocation].f16.x = subgroupShuffleDown(data[0].f16.x, invocation);
data[invocation].f16.xy = subgroupShuffleDown(data[1].f16.xy, invocation);
data[invocation].f16.xyz = subgroupShuffleDown(data[2].f16.xyz, invocation);
data[invocation].f16 = subgroupShuffleDown(data[3].f16, invocation);
}

View File

@ -0,0 +1,66 @@
#version 450
#extension GL_KHR_shader_subgroup_vote: enable
#extension GL_EXT_shader_subgroup_extended_types_int8: enable
#extension GL_EXT_shader_subgroup_extended_types_int16: enable
#extension GL_EXT_shader_subgroup_extended_types_int64: enable
#extension GL_EXT_shader_subgroup_extended_types_float16: enable
layout (local_size_x = 8) in;
layout(binding = 0) buffer Buffers
{
i8vec4 i8;
u8vec4 u8;
i16vec4 i16;
u16vec4 u16;
i64vec4 i64;
u64vec4 u64;
f16vec4 f16;
int r;
} data[4];
void main()
{
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
if (subgroupAll(data[invocation].r < 0))
{
data[invocation].r = int(subgroupAllEqual(data[0].i8.x));
data[invocation].r = int(subgroupAllEqual(data[1].i8.xy));
data[invocation].r = int(subgroupAllEqual(data[2].i8.xyz));
data[invocation].r = int(subgroupAllEqual(data[3].i8));
data[invocation].r = int(subgroupAllEqual(data[0].u8.x));
data[invocation].r = int(subgroupAllEqual(data[1].u8.xy));
data[invocation].r = int(subgroupAllEqual(data[2].u8.xyz));
data[invocation].r = int(subgroupAllEqual(data[3].u8));
data[invocation].r = int(subgroupAllEqual(data[0].i16.x));
data[invocation].r = int(subgroupAllEqual(data[1].i16.xy));
data[invocation].r = int(subgroupAllEqual(data[2].i16.xyz));
data[invocation].r = int(subgroupAllEqual(data[3].i16));
data[invocation].r = int(subgroupAllEqual(data[0].u16.x));
data[invocation].r = int(subgroupAllEqual(data[1].u16.xy));
data[invocation].r = int(subgroupAllEqual(data[2].u16.xyz));
data[invocation].r = int(subgroupAllEqual(data[3].u16));
}
else if (subgroupAny(data[invocation].r < 0))
{
data[invocation].r = int(subgroupAllEqual(data[0].i64.x));
data[invocation].r = int(subgroupAllEqual(data[1].i64.xy));
data[invocation].r = int(subgroupAllEqual(data[2].i64.xyz));
data[invocation].r = int(subgroupAllEqual(data[3].i64));
data[invocation].r = int(subgroupAllEqual(data[0].u64.x));
data[invocation].r = int(subgroupAllEqual(data[1].u64.xy));
data[invocation].r = int(subgroupAllEqual(data[2].u64.xyz));
data[invocation].r = int(subgroupAllEqual(data[3].u64));
data[invocation].r = int(subgroupAllEqual(data[0].f16.x));
data[invocation].r = int(subgroupAllEqual(data[1].f16.xy));
data[invocation].r = int(subgroupAllEqual(data[2].f16.xyz));
data[invocation].r = int(subgroupAllEqual(data[3].f16));
}
}

View File

@ -0,0 +1,66 @@
#version 450
#extension GL_KHR_shader_subgroup_vote: enable
#extension GL_EXT_shader_explicit_arithmetic_types_int8: enable
#extension GL_EXT_shader_explicit_arithmetic_types_int16: enable
#extension GL_EXT_shader_explicit_arithmetic_types_int64: enable
#extension GL_EXT_shader_explicit_arithmetic_types_float16: enable
layout (local_size_x = 8) in;
layout(binding = 0) buffer Buffers
{
i8vec4 i8;
u8vec4 u8;
i16vec4 i16;
u16vec4 u16;
i64vec4 i64;
u64vec4 u64;
f16vec4 f16;
int r;
} data[4];
void main()
{
uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;
if (subgroupAll(data[invocation].r < 0))
{
data[invocation].r = int(subgroupAllEqual(data[0].i8.x));
data[invocation].r = int(subgroupAllEqual(data[1].i8.xy));
data[invocation].r = int(subgroupAllEqual(data[2].i8.xyz));
data[invocation].r = int(subgroupAllEqual(data[3].i8));
data[invocation].r = int(subgroupAllEqual(data[0].u8.x));
data[invocation].r = int(subgroupAllEqual(data[1].u8.xy));
data[invocation].r = int(subgroupAllEqual(data[2].u8.xyz));
data[invocation].r = int(subgroupAllEqual(data[3].u8));
data[invocation].r = int(subgroupAllEqual(data[0].i16.x));
data[invocation].r = int(subgroupAllEqual(data[1].i16.xy));
data[invocation].r = int(subgroupAllEqual(data[2].i16.xyz));
data[invocation].r = int(subgroupAllEqual(data[3].i16));
data[invocation].r = int(subgroupAllEqual(data[0].u16.x));
data[invocation].r = int(subgroupAllEqual(data[1].u16.xy));
data[invocation].r = int(subgroupAllEqual(data[2].u16.xyz));
data[invocation].r = int(subgroupAllEqual(data[3].u16));
}
else if (subgroupAny(data[invocation].r < 0))
{
data[invocation].r = int(subgroupAllEqual(data[0].i64.x));
data[invocation].r = int(subgroupAllEqual(data[1].i64.xy));
data[invocation].r = int(subgroupAllEqual(data[2].i64.xyz));
data[invocation].r = int(subgroupAllEqual(data[3].i64));
data[invocation].r = int(subgroupAllEqual(data[0].u64.x));
data[invocation].r = int(subgroupAllEqual(data[1].u64.xy));
data[invocation].r = int(subgroupAllEqual(data[2].u64.xyz));
data[invocation].r = int(subgroupAllEqual(data[3].u64));
data[invocation].r = int(subgroupAllEqual(data[0].f16.x));
data[invocation].r = int(subgroupAllEqual(data[1].f16.xy));
data[invocation].r = int(subgroupAllEqual(data[2].f16.xyz));
data[invocation].r = int(subgroupAllEqual(data[3].f16));
}
}

File diff suppressed because it is too large Load Diff

View File

@ -2202,6 +2202,30 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan
// these require SPIR-V 1.3
if (spvVersion.spv > 0 && spvVersion.spv < EShTargetSpv_1_3)
error(loc, "requires SPIR-V 1.3", "subgroup op", "");
// Check that if extended types are being used that the correct extensions are enabled.
if (arg0 != nullptr) {
const TType& type = arg0->getType();
switch (type.getBasicType()) {
default:
break;
case EbtInt8:
case EbtUint8:
requireExtensions(loc, 1, &E_GL_EXT_shader_subgroup_extended_types_int8, type.getCompleteString().c_str());
break;
case EbtInt16:
case EbtUint16:
requireExtensions(loc, 1, &E_GL_EXT_shader_subgroup_extended_types_int16, type.getCompleteString().c_str());
break;
case EbtInt64:
case EbtUint64:
requireExtensions(loc, 1, &E_GL_EXT_shader_subgroup_extended_types_int64, type.getCompleteString().c_str());
break;
case EbtFloat16:
requireExtensions(loc, 1, &E_GL_EXT_shader_subgroup_extended_types_float16, type.getCompleteString().c_str());
break;
}
}
}
}

View File

@ -300,6 +300,12 @@ void TParseVersions::initializeExtensionBehavior()
extensionBehavior[E_GL_EXT_shader_explicit_arithmetic_types_float16] = EBhDisable;
extensionBehavior[E_GL_EXT_shader_explicit_arithmetic_types_float32] = EBhDisable;
extensionBehavior[E_GL_EXT_shader_explicit_arithmetic_types_float64] = EBhDisable;
// subgroup extended types
extensionBehavior[E_GL_EXT_shader_subgroup_extended_types_int8] = EBhDisable;
extensionBehavior[E_GL_EXT_shader_subgroup_extended_types_int16] = EBhDisable;
extensionBehavior[E_GL_EXT_shader_subgroup_extended_types_int64] = EBhDisable;
extensionBehavior[E_GL_EXT_shader_subgroup_extended_types_float16] = EBhDisable;
}
#endif // GLSLANG_WEB
@ -447,6 +453,11 @@ void TParseVersions::getPreamble(std::string& preamble)
"#define GL_EXT_shader_explicit_arithmetic_types_float16 1\n"
"#define GL_EXT_shader_explicit_arithmetic_types_float32 1\n"
"#define GL_EXT_shader_explicit_arithmetic_types_float64 1\n"
"#define GL_EXT_shader_subgroup_extended_types_int8 1\n"
"#define GL_EXT_shader_subgroup_extended_types_int16 1\n"
"#define GL_EXT_shader_subgroup_extended_types_int64 1\n"
"#define GL_EXT_shader_subgroup_extended_types_float16 1\n"
;
if (version >= 150) {
@ -826,6 +837,15 @@ void TParseVersions::updateExtensionBehavior(int line, const char* extension, co
updateExtensionBehavior(line, "GL_EXT_buffer_reference", behaviorString);
else if (strcmp(extension, "GL_NV_integer_cooperative_matrix") == 0)
updateExtensionBehavior(line, "GL_NV_cooperative_matrix", behaviorString);
// subgroup extended types to explicit types
else if (strcmp(extension, "GL_EXT_shader_subgroup_extended_types_int8") == 0)
updateExtensionBehavior(line, "GL_EXT_shader_explicit_arithmetic_types_int8", behaviorString);
else if (strcmp(extension, "GL_EXT_shader_subgroup_extended_types_int16") == 0)
updateExtensionBehavior(line, "GL_EXT_shader_explicit_arithmetic_types_int16", behaviorString);
else if (strcmp(extension, "GL_EXT_shader_subgroup_extended_types_int64") == 0)
updateExtensionBehavior(line, "GL_EXT_shader_explicit_arithmetic_types_int64", behaviorString);
else if (strcmp(extension, "GL_EXT_shader_subgroup_extended_types_float16") == 0)
updateExtensionBehavior(line, "GL_EXT_shader_explicit_arithmetic_types_float16", behaviorString);
}
void TParseVersions::updateExtensionBehavior(const char* extension, TExtensionBehavior behavior)

View File

@ -257,7 +257,7 @@ const char* const E_GL_OES_tessellation_point_size = "GL_OES_tessel
const char* const E_GL_OES_texture_buffer = "GL_OES_texture_buffer";
const char* const E_GL_OES_texture_cube_map_array = "GL_OES_texture_cube_map_array";
// KHX
// EXT
const char* const E_GL_EXT_shader_explicit_arithmetic_types = "GL_EXT_shader_explicit_arithmetic_types";
const char* const E_GL_EXT_shader_explicit_arithmetic_types_int8 = "GL_EXT_shader_explicit_arithmetic_types_int8";
const char* const E_GL_EXT_shader_explicit_arithmetic_types_int16 = "GL_EXT_shader_explicit_arithmetic_types_int16";
@ -267,6 +267,11 @@ const char* const E_GL_EXT_shader_explicit_arithmetic_types_float16 = "GL_EXT_s
const char* const E_GL_EXT_shader_explicit_arithmetic_types_float32 = "GL_EXT_shader_explicit_arithmetic_types_float32";
const char* const E_GL_EXT_shader_explicit_arithmetic_types_float64 = "GL_EXT_shader_explicit_arithmetic_types_float64";
const char* const E_GL_EXT_shader_subgroup_extended_types_int8 = "GL_EXT_shader_subgroup_extended_types_int8";
const char* const E_GL_EXT_shader_subgroup_extended_types_int16 = "GL_EXT_shader_subgroup_extended_types_int16";
const char* const E_GL_EXT_shader_subgroup_extended_types_int64 = "GL_EXT_shader_subgroup_extended_types_int64";
const char* const E_GL_EXT_shader_subgroup_extended_types_float16 = "GL_EXT_shader_subgroup_extended_types_float16";
// Arrays of extensions for the above AEP duplications
const char* const AEP_geometry_shader[] = { E_GL_EXT_geometry_shader, E_GL_OES_geometry_shader };

View File

@ -459,6 +459,22 @@ INSTANTIATE_TEST_CASE_P(
"spv.subgroupShuffleRelative.comp",
"spv.subgroupQuad.comp",
"spv.subgroupVote.comp",
"spv.subgroupExtendedTypesArithmetic.comp",
"spv.subgroupExtendedTypesArithmeticNeg.comp",
"spv.subgroupExtendedTypesBallot.comp",
"spv.subgroupExtendedTypesBallotNeg.comp",
"spv.subgroupExtendedTypesClustered.comp",
"spv.subgroupExtendedTypesClusteredNeg.comp",
"spv.subgroupExtendedTypesPartitioned.comp",
"spv.subgroupExtendedTypesPartitionedNeg.comp",
"spv.subgroupExtendedTypesShuffle.comp",
"spv.subgroupExtendedTypesShuffleNeg.comp",
"spv.subgroupExtendedTypesShuffleRelative.comp",
"spv.subgroupExtendedTypesShuffleRelativeNeg.comp",
"spv.subgroupExtendedTypesQuad.comp",
"spv.subgroupExtendedTypesQuadNeg.comp",
"spv.subgroupExtendedTypesVote.comp",
"spv.subgroupExtendedTypesVoteNeg.comp",
"spv.vulkan110.storageBuffer.vert",
})),
FileNameAsCustomTestSuffix