mirror of
https://github.com/KhronosGroup/glslang
synced 2024-11-08 11:30:06 +00:00
Add GL_KHR_shader_subgroup_rotate support
Co-authored-by: Neil Hickey <neil.hickey@arm.com> Co-authored-by: Stuart Brady <stuart.brady@arm.com> Signed-off-by: Sven van Haastregt <sven.vanhaastregt@arm.com>
This commit is contained in:
parent
8c3dbb3596
commit
b1f7affe94
@ -1,5 +1,6 @@
|
||||
/*
|
||||
** Copyright (c) 2014-2020 The Khronos Group Inc.
|
||||
** Copyright (C) 2022-2024 Arm Limited.
|
||||
** Modifications Copyright (C) 2020 Advanced Micro Devices, Inc. All rights reserved.
|
||||
**
|
||||
** Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
@ -58,5 +59,6 @@ static const char* const E_SPV_AMD_shader_early_and_late_fragment_tests = "SPV_A
|
||||
static const char* const E_SPV_KHR_ray_tracing_position_fetch = "SPV_KHR_ray_tracing_position_fetch";
|
||||
static const char* const E_SPV_KHR_cooperative_matrix = "SPV_KHR_cooperative_matrix";
|
||||
static const char* const E_SPV_KHR_maximal_reconvergence = "SPV_KHR_maximal_reconvergence";
|
||||
static const char* const E_SPV_KHR_subgroup_rotate = "SPV_KHR_subgroup_rotate";
|
||||
|
||||
#endif // #ifndef GLSLextKHR_H
|
||||
|
@ -1,7 +1,7 @@
|
||||
//
|
||||
// Copyright (C) 2014-2016 LunarG, Inc.
|
||||
// Copyright (C) 2015-2020 Google, Inc.
|
||||
// Copyright (C) 2017 ARM Limited.
|
||||
// Copyright (C) 2017, 2022-2024 Arm Limited.
|
||||
// Modifications Copyright (C) 2020 Advanced Micro Devices, Inc. All rights reserved.
|
||||
//
|
||||
// All rights reserved.
|
||||
@ -8318,6 +8318,11 @@ spv::Id TGlslangToSpvTraverser::createSubgroupOperation(glslang::TOperator op, s
|
||||
builder.addCapability(spv::CapabilityGroupNonUniform);
|
||||
builder.addCapability(spv::CapabilityGroupNonUniformBallot);
|
||||
break;
|
||||
case glslang::EOpSubgroupRotate:
|
||||
case glslang::EOpSubgroupClusteredRotate:
|
||||
builder.addExtension(spv::E_SPV_KHR_subgroup_rotate);
|
||||
builder.addCapability(spv::CapabilityGroupNonUniformRotateKHR);
|
||||
break;
|
||||
case glslang::EOpSubgroupShuffle:
|
||||
case glslang::EOpSubgroupShuffleXor:
|
||||
builder.addCapability(spv::CapabilityGroupNonUniform);
|
||||
@ -8425,6 +8430,8 @@ spv::Id TGlslangToSpvTraverser::createSubgroupOperation(glslang::TOperator op, s
|
||||
case glslang::EOpSubgroupShuffleXor: opCode = spv::OpGroupNonUniformShuffleXor; break;
|
||||
case glslang::EOpSubgroupShuffleUp: opCode = spv::OpGroupNonUniformShuffleUp; break;
|
||||
case glslang::EOpSubgroupShuffleDown: opCode = spv::OpGroupNonUniformShuffleDown; break;
|
||||
case glslang::EOpSubgroupRotate:
|
||||
case glslang::EOpSubgroupClusteredRotate: opCode = spv::OpGroupNonUniformRotateKHR; break;
|
||||
case glslang::EOpSubgroupAdd:
|
||||
case glslang::EOpSubgroupInclusiveAdd:
|
||||
case glslang::EOpSubgroupExclusiveAdd:
|
||||
@ -8851,6 +8858,8 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv::
|
||||
case glslang::EOpSubgroupShuffleXor:
|
||||
case glslang::EOpSubgroupShuffleUp:
|
||||
case glslang::EOpSubgroupShuffleDown:
|
||||
case glslang::EOpSubgroupRotate:
|
||||
case glslang::EOpSubgroupClusteredRotate:
|
||||
case glslang::EOpSubgroupClusteredAdd:
|
||||
case glslang::EOpSubgroupClusteredMul:
|
||||
case glslang::EOpSubgroupClusteredMin:
|
||||
|
@ -1,5 +1,6 @@
|
||||
//
|
||||
// Copyright (C) 2014-2015 LunarG, Inc.
|
||||
// Copyright (C) 2022-2024 Arm Limited.
|
||||
// Modifications Copyright (C) 2020 Advanced Micro Devices, Inc. All rights reserved.
|
||||
//
|
||||
// All rights reserved.
|
||||
@ -942,6 +943,7 @@ const char* CapabilityString(int info)
|
||||
case CapabilitySubgroupBallotKHR: return "SubgroupBallotKHR";
|
||||
case CapabilityDrawParameters: return "DrawParameters";
|
||||
case CapabilitySubgroupVoteKHR: return "SubgroupVoteKHR";
|
||||
case CapabilityGroupNonUniformRotateKHR: return "CapabilityGroupNonUniformRotateKHR";
|
||||
|
||||
case CapabilityStorageUniformBufferBlock16: return "StorageUniformBufferBlock16";
|
||||
case CapabilityStorageUniform16: return "StorageUniform16";
|
||||
@ -1483,6 +1485,8 @@ const char* OpcodeString(int op)
|
||||
case OpEmitMeshTasksEXT: return "OpEmitMeshTasksEXT";
|
||||
case OpSetMeshOutputsEXT: return "OpSetMeshOutputsEXT";
|
||||
|
||||
case OpGroupNonUniformRotateKHR: return "OpGroupNonUniformRotateKHR";
|
||||
|
||||
case OpTypeRayQueryKHR: return "OpTypeRayQueryKHR";
|
||||
case OpRayQueryInitializeKHR: return "OpRayQueryInitializeKHR";
|
||||
case OpRayQueryTerminateKHR: return "OpRayQueryTerminateKHR";
|
||||
@ -2901,6 +2905,11 @@ void Parameterize()
|
||||
InstructionDesc[OpSubgroupAllEqualKHR].operands.push(OperandScope, "'Execution'");
|
||||
InstructionDesc[OpSubgroupAllEqualKHR].operands.push(OperandId, "'Predicate'");
|
||||
|
||||
InstructionDesc[OpGroupNonUniformRotateKHR].operands.push(OperandScope, "'Execution'");
|
||||
InstructionDesc[OpGroupNonUniformRotateKHR].operands.push(OperandId, "'X'");
|
||||
InstructionDesc[OpGroupNonUniformRotateKHR].operands.push(OperandId, "'Delta'");
|
||||
InstructionDesc[OpGroupNonUniformRotateKHR].operands.push(OperandId, "'ClusterSize'", true);
|
||||
|
||||
InstructionDesc[OpSubgroupReadInvocationKHR].operands.push(OperandId, "'Value'");
|
||||
InstructionDesc[OpSubgroupReadInvocationKHR].operands.push(OperandId, "'Index'");
|
||||
|
||||
|
2177
Test/baseResults/glsl.450.subgroupRotate.comp.out
Normal file
2177
Test/baseResults/glsl.450.subgroupRotate.comp.out
Normal file
File diff suppressed because it is too large
Load Diff
1833
Test/baseResults/glsl.es320.subgroupRotate.comp.out
Normal file
1833
Test/baseResults/glsl.es320.subgroupRotate.comp.out
Normal file
File diff suppressed because it is too large
Load Diff
711
Test/baseResults/spv.subgroupExtendedTypesRotate.comp.out
Normal file
711
Test/baseResults/spv.subgroupExtendedTypesRotate.comp.out
Normal file
@ -0,0 +1,711 @@
|
||||
spv.subgroupExtendedTypesRotate.comp
|
||||
// Module Version 10300
|
||||
// Generated by (magic number): 8000b
|
||||
// Id's are bound by 553
|
||||
|
||||
Capability Shader
|
||||
Capability Float16
|
||||
Capability Int64
|
||||
Capability Int16
|
||||
Capability Int8
|
||||
Capability StorageUniformBufferBlock16
|
||||
Capability StorageBuffer8BitAccess
|
||||
Capability CapabilityGroupNonUniformRotateKHR
|
||||
Extension "SPV_KHR_8bit_storage"
|
||||
Extension "SPV_KHR_subgroup_rotate"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint GLCompute 4 "main"
|
||||
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_rotate"
|
||||
Name 4 "main"
|
||||
Name 8 "delta"
|
||||
Name 9 "roblock"
|
||||
MemberName 9(roblock) 0 "delta"
|
||||
Name 11 "ro"
|
||||
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 35 "data"
|
||||
MemberDecorate 9(roblock) 0 NonWritable
|
||||
MemberDecorate 9(roblock) 0 Offset 0
|
||||
Decorate 9(roblock) Block
|
||||
Decorate 11(ro) DescriptorSet 0
|
||||
Decorate 11(ro) Binding 1
|
||||
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 35(data) DescriptorSet 0
|
||||
Decorate 35(data) Binding 0
|
||||
Decorate 552 BuiltIn WorkgroupSize
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 0
|
||||
7: TypePointer Function 6(int)
|
||||
9(roblock): TypeStruct 6(int)
|
||||
10: TypePointer StorageBuffer 9(roblock)
|
||||
11(ro): 10(ptr) Variable StorageBuffer
|
||||
12: TypeInt 32 1
|
||||
13: 12(int) Constant 0
|
||||
14: TypePointer StorageBuffer 6(int)
|
||||
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: 6(int) Constant 4
|
||||
33: TypeArray 31(Buffers) 32
|
||||
34: TypePointer StorageBuffer 33
|
||||
35(data): 34(ptr) Variable StorageBuffer
|
||||
37: 6(int) Constant 0
|
||||
38: TypePointer StorageBuffer 17(int8_t)
|
||||
42: 6(int) Constant 3
|
||||
46: 12(int) Constant 1
|
||||
47: TypeVector 17(int8_t) 2
|
||||
48: TypePointer StorageBuffer 18(i8vec4)
|
||||
56: 6(int) Constant 1
|
||||
60: 12(int) Constant 2
|
||||
61: TypeVector 17(int8_t) 3
|
||||
71: 6(int) Constant 2
|
||||
75: 12(int) Constant 3
|
||||
116: TypePointer StorageBuffer 19(int8_t)
|
||||
123: TypeVector 19(int8_t) 2
|
||||
124: TypePointer StorageBuffer 20(i8vec4)
|
||||
135: TypeVector 19(int8_t) 3
|
||||
188: TypePointer StorageBuffer 21(int16_t)
|
||||
195: TypeVector 21(int16_t) 2
|
||||
196: TypePointer StorageBuffer 22(i16vec4)
|
||||
207: TypeVector 21(int16_t) 3
|
||||
260: TypePointer StorageBuffer 23(int16_t)
|
||||
267: TypeVector 23(int16_t) 2
|
||||
268: TypePointer StorageBuffer 24(i16vec4)
|
||||
279: TypeVector 23(int16_t) 3
|
||||
332: 12(int) Constant 4
|
||||
333: TypePointer StorageBuffer 25(int64_t)
|
||||
340: TypeVector 25(int64_t) 2
|
||||
341: TypePointer StorageBuffer 26(i64vec4)
|
||||
352: TypeVector 25(int64_t) 3
|
||||
405: 12(int) Constant 5
|
||||
406: TypePointer StorageBuffer 27(int64_t)
|
||||
413: TypeVector 27(int64_t) 2
|
||||
414: TypePointer StorageBuffer 28(i64vec4)
|
||||
425: TypeVector 27(int64_t) 3
|
||||
478: 12(int) Constant 6
|
||||
479: TypePointer StorageBuffer 29(float16_t)
|
||||
486: TypeVector 29(float16_t) 2
|
||||
487: TypePointer StorageBuffer 30(f16vec4)
|
||||
498: TypeVector 29(float16_t) 3
|
||||
550: TypeVector 6(int) 3
|
||||
551: 6(int) Constant 8
|
||||
552: 550(ivec3) ConstantComposite 551 56 56
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
8(delta): 7(ptr) Variable Function
|
||||
15: 14(ptr) AccessChain 11(ro) 13
|
||||
16: 6(int) Load 15
|
||||
Store 8(delta) 16
|
||||
36: 6(int) Load 8(delta)
|
||||
39: 38(ptr) AccessChain 35(data) 13 13 37
|
||||
40: 17(int8_t) Load 39
|
||||
41: 6(int) Load 8(delta)
|
||||
43: 17(int8_t) GroupNonUniformRotateKHR 42 40 41
|
||||
44: 38(ptr) AccessChain 35(data) 36 13 37
|
||||
Store 44 43
|
||||
45: 6(int) Load 8(delta)
|
||||
49: 48(ptr) AccessChain 35(data) 46 13
|
||||
50: 18(i8vec4) Load 49
|
||||
51: 47(i8vec2) VectorShuffle 50 50 0 1
|
||||
52: 6(int) Load 8(delta)
|
||||
53: 47(i8vec2) GroupNonUniformRotateKHR 42 51 52
|
||||
54: 38(ptr) AccessChain 35(data) 45 13 37
|
||||
55: 17(int8_t) CompositeExtract 53 0
|
||||
Store 54 55
|
||||
57: 38(ptr) AccessChain 35(data) 45 13 56
|
||||
58: 17(int8_t) CompositeExtract 53 1
|
||||
Store 57 58
|
||||
59: 6(int) Load 8(delta)
|
||||
62: 48(ptr) AccessChain 35(data) 60 13
|
||||
63: 18(i8vec4) Load 62
|
||||
64: 61(i8vec3) VectorShuffle 63 63 0 1 2
|
||||
65: 6(int) Load 8(delta)
|
||||
66: 61(i8vec3) GroupNonUniformRotateKHR 42 64 65
|
||||
67: 38(ptr) AccessChain 35(data) 59 13 37
|
||||
68: 17(int8_t) CompositeExtract 66 0
|
||||
Store 67 68
|
||||
69: 38(ptr) AccessChain 35(data) 59 13 56
|
||||
70: 17(int8_t) CompositeExtract 66 1
|
||||
Store 69 70
|
||||
72: 38(ptr) AccessChain 35(data) 59 13 71
|
||||
73: 17(int8_t) CompositeExtract 66 2
|
||||
Store 72 73
|
||||
74: 6(int) Load 8(delta)
|
||||
76: 48(ptr) AccessChain 35(data) 75 13
|
||||
77: 18(i8vec4) Load 76
|
||||
78: 6(int) Load 8(delta)
|
||||
79: 18(i8vec4) GroupNonUniformRotateKHR 42 77 78
|
||||
80: 48(ptr) AccessChain 35(data) 74 13
|
||||
Store 80 79
|
||||
81: 6(int) Load 8(delta)
|
||||
82: 38(ptr) AccessChain 35(data) 13 13 37
|
||||
83: 17(int8_t) Load 82
|
||||
84: 6(int) Load 8(delta)
|
||||
85: 17(int8_t) GroupNonUniformRotateKHR 42 83 84 56
|
||||
86: 38(ptr) AccessChain 35(data) 81 13 37
|
||||
Store 86 85
|
||||
87: 6(int) Load 8(delta)
|
||||
88: 48(ptr) AccessChain 35(data) 46 13
|
||||
89: 18(i8vec4) Load 88
|
||||
90: 47(i8vec2) VectorShuffle 89 89 0 1
|
||||
91: 6(int) Load 8(delta)
|
||||
92: 47(i8vec2) GroupNonUniformRotateKHR 42 90 91 56
|
||||
93: 38(ptr) AccessChain 35(data) 87 13 37
|
||||
94: 17(int8_t) CompositeExtract 92 0
|
||||
Store 93 94
|
||||
95: 38(ptr) AccessChain 35(data) 87 13 56
|
||||
96: 17(int8_t) CompositeExtract 92 1
|
||||
Store 95 96
|
||||
97: 6(int) Load 8(delta)
|
||||
98: 48(ptr) AccessChain 35(data) 60 13
|
||||
99: 18(i8vec4) Load 98
|
||||
100: 61(i8vec3) VectorShuffle 99 99 0 1 2
|
||||
101: 6(int) Load 8(delta)
|
||||
102: 61(i8vec3) GroupNonUniformRotateKHR 42 100 101 56
|
||||
103: 38(ptr) AccessChain 35(data) 97 13 37
|
||||
104: 17(int8_t) CompositeExtract 102 0
|
||||
Store 103 104
|
||||
105: 38(ptr) AccessChain 35(data) 97 13 56
|
||||
106: 17(int8_t) CompositeExtract 102 1
|
||||
Store 105 106
|
||||
107: 38(ptr) AccessChain 35(data) 97 13 71
|
||||
108: 17(int8_t) CompositeExtract 102 2
|
||||
Store 107 108
|
||||
109: 6(int) Load 8(delta)
|
||||
110: 48(ptr) AccessChain 35(data) 75 13
|
||||
111: 18(i8vec4) Load 110
|
||||
112: 6(int) Load 8(delta)
|
||||
113: 18(i8vec4) GroupNonUniformRotateKHR 42 111 112 56
|
||||
114: 48(ptr) AccessChain 35(data) 109 13
|
||||
Store 114 113
|
||||
115: 6(int) Load 8(delta)
|
||||
117: 116(ptr) AccessChain 35(data) 13 46 37
|
||||
118: 19(int8_t) Load 117
|
||||
119: 6(int) Load 8(delta)
|
||||
120: 19(int8_t) GroupNonUniformRotateKHR 42 118 119
|
||||
121: 116(ptr) AccessChain 35(data) 115 46 37
|
||||
Store 121 120
|
||||
122: 6(int) Load 8(delta)
|
||||
125: 124(ptr) AccessChain 35(data) 46 46
|
||||
126: 20(i8vec4) Load 125
|
||||
127: 123(i8vec2) VectorShuffle 126 126 0 1
|
||||
128: 6(int) Load 8(delta)
|
||||
129: 123(i8vec2) GroupNonUniformRotateKHR 42 127 128
|
||||
130: 116(ptr) AccessChain 35(data) 122 46 37
|
||||
131: 19(int8_t) CompositeExtract 129 0
|
||||
Store 130 131
|
||||
132: 116(ptr) AccessChain 35(data) 122 46 56
|
||||
133: 19(int8_t) CompositeExtract 129 1
|
||||
Store 132 133
|
||||
134: 6(int) Load 8(delta)
|
||||
136: 124(ptr) AccessChain 35(data) 60 46
|
||||
137: 20(i8vec4) Load 136
|
||||
138: 135(i8vec3) VectorShuffle 137 137 0 1 2
|
||||
139: 6(int) Load 8(delta)
|
||||
140: 135(i8vec3) GroupNonUniformRotateKHR 42 138 139
|
||||
141: 116(ptr) AccessChain 35(data) 134 46 37
|
||||
142: 19(int8_t) CompositeExtract 140 0
|
||||
Store 141 142
|
||||
143: 116(ptr) AccessChain 35(data) 134 46 56
|
||||
144: 19(int8_t) CompositeExtract 140 1
|
||||
Store 143 144
|
||||
145: 116(ptr) AccessChain 35(data) 134 46 71
|
||||
146: 19(int8_t) CompositeExtract 140 2
|
||||
Store 145 146
|
||||
147: 6(int) Load 8(delta)
|
||||
148: 124(ptr) AccessChain 35(data) 75 46
|
||||
149: 20(i8vec4) Load 148
|
||||
150: 6(int) Load 8(delta)
|
||||
151: 20(i8vec4) GroupNonUniformRotateKHR 42 149 150
|
||||
152: 124(ptr) AccessChain 35(data) 147 46
|
||||
Store 152 151
|
||||
153: 6(int) Load 8(delta)
|
||||
154: 116(ptr) AccessChain 35(data) 13 46 37
|
||||
155: 19(int8_t) Load 154
|
||||
156: 6(int) Load 8(delta)
|
||||
157: 19(int8_t) GroupNonUniformRotateKHR 42 155 156 56
|
||||
158: 116(ptr) AccessChain 35(data) 153 46 37
|
||||
Store 158 157
|
||||
159: 6(int) Load 8(delta)
|
||||
160: 124(ptr) AccessChain 35(data) 46 46
|
||||
161: 20(i8vec4) Load 160
|
||||
162: 123(i8vec2) VectorShuffle 161 161 0 1
|
||||
163: 6(int) Load 8(delta)
|
||||
164: 123(i8vec2) GroupNonUniformRotateKHR 42 162 163 56
|
||||
165: 116(ptr) AccessChain 35(data) 159 46 37
|
||||
166: 19(int8_t) CompositeExtract 164 0
|
||||
Store 165 166
|
||||
167: 116(ptr) AccessChain 35(data) 159 46 56
|
||||
168: 19(int8_t) CompositeExtract 164 1
|
||||
Store 167 168
|
||||
169: 6(int) Load 8(delta)
|
||||
170: 124(ptr) AccessChain 35(data) 60 46
|
||||
171: 20(i8vec4) Load 170
|
||||
172: 135(i8vec3) VectorShuffle 171 171 0 1 2
|
||||
173: 6(int) Load 8(delta)
|
||||
174: 135(i8vec3) GroupNonUniformRotateKHR 42 172 173 56
|
||||
175: 116(ptr) AccessChain 35(data) 169 46 37
|
||||
176: 19(int8_t) CompositeExtract 174 0
|
||||
Store 175 176
|
||||
177: 116(ptr) AccessChain 35(data) 169 46 56
|
||||
178: 19(int8_t) CompositeExtract 174 1
|
||||
Store 177 178
|
||||
179: 116(ptr) AccessChain 35(data) 169 46 71
|
||||
180: 19(int8_t) CompositeExtract 174 2
|
||||
Store 179 180
|
||||
181: 6(int) Load 8(delta)
|
||||
182: 124(ptr) AccessChain 35(data) 75 46
|
||||
183: 20(i8vec4) Load 182
|
||||
184: 6(int) Load 8(delta)
|
||||
185: 20(i8vec4) GroupNonUniformRotateKHR 42 183 184 56
|
||||
186: 124(ptr) AccessChain 35(data) 181 46
|
||||
Store 186 185
|
||||
187: 6(int) Load 8(delta)
|
||||
189: 188(ptr) AccessChain 35(data) 13 60 37
|
||||
190: 21(int16_t) Load 189
|
||||
191: 6(int) Load 8(delta)
|
||||
192: 21(int16_t) GroupNonUniformRotateKHR 42 190 191
|
||||
193: 188(ptr) AccessChain 35(data) 187 60 37
|
||||
Store 193 192
|
||||
194: 6(int) Load 8(delta)
|
||||
197: 196(ptr) AccessChain 35(data) 46 60
|
||||
198: 22(i16vec4) Load 197
|
||||
199:195(i16vec2) VectorShuffle 198 198 0 1
|
||||
200: 6(int) Load 8(delta)
|
||||
201:195(i16vec2) GroupNonUniformRotateKHR 42 199 200
|
||||
202: 188(ptr) AccessChain 35(data) 194 60 37
|
||||
203: 21(int16_t) CompositeExtract 201 0
|
||||
Store 202 203
|
||||
204: 188(ptr) AccessChain 35(data) 194 60 56
|
||||
205: 21(int16_t) CompositeExtract 201 1
|
||||
Store 204 205
|
||||
206: 6(int) Load 8(delta)
|
||||
208: 196(ptr) AccessChain 35(data) 60 60
|
||||
209: 22(i16vec4) Load 208
|
||||
210:207(i16vec3) VectorShuffle 209 209 0 1 2
|
||||
211: 6(int) Load 8(delta)
|
||||
212:207(i16vec3) GroupNonUniformRotateKHR 42 210 211
|
||||
213: 188(ptr) AccessChain 35(data) 206 60 37
|
||||
214: 21(int16_t) CompositeExtract 212 0
|
||||
Store 213 214
|
||||
215: 188(ptr) AccessChain 35(data) 206 60 56
|
||||
216: 21(int16_t) CompositeExtract 212 1
|
||||
Store 215 216
|
||||
217: 188(ptr) AccessChain 35(data) 206 60 71
|
||||
218: 21(int16_t) CompositeExtract 212 2
|
||||
Store 217 218
|
||||
219: 6(int) Load 8(delta)
|
||||
220: 196(ptr) AccessChain 35(data) 75 60
|
||||
221: 22(i16vec4) Load 220
|
||||
222: 6(int) Load 8(delta)
|
||||
223: 22(i16vec4) GroupNonUniformRotateKHR 42 221 222
|
||||
224: 196(ptr) AccessChain 35(data) 219 60
|
||||
Store 224 223
|
||||
225: 6(int) Load 8(delta)
|
||||
226: 188(ptr) AccessChain 35(data) 13 60 37
|
||||
227: 21(int16_t) Load 226
|
||||
228: 6(int) Load 8(delta)
|
||||
229: 21(int16_t) GroupNonUniformRotateKHR 42 227 228 56
|
||||
230: 188(ptr) AccessChain 35(data) 225 60 37
|
||||
Store 230 229
|
||||
231: 6(int) Load 8(delta)
|
||||
232: 196(ptr) AccessChain 35(data) 46 60
|
||||
233: 22(i16vec4) Load 232
|
||||
234:195(i16vec2) VectorShuffle 233 233 0 1
|
||||
235: 6(int) Load 8(delta)
|
||||
236:195(i16vec2) GroupNonUniformRotateKHR 42 234 235 56
|
||||
237: 188(ptr) AccessChain 35(data) 231 60 37
|
||||
238: 21(int16_t) CompositeExtract 236 0
|
||||
Store 237 238
|
||||
239: 188(ptr) AccessChain 35(data) 231 60 56
|
||||
240: 21(int16_t) CompositeExtract 236 1
|
||||
Store 239 240
|
||||
241: 6(int) Load 8(delta)
|
||||
242: 196(ptr) AccessChain 35(data) 60 60
|
||||
243: 22(i16vec4) Load 242
|
||||
244:207(i16vec3) VectorShuffle 243 243 0 1 2
|
||||
245: 6(int) Load 8(delta)
|
||||
246:207(i16vec3) GroupNonUniformRotateKHR 42 244 245 56
|
||||
247: 188(ptr) AccessChain 35(data) 241 60 37
|
||||
248: 21(int16_t) CompositeExtract 246 0
|
||||
Store 247 248
|
||||
249: 188(ptr) AccessChain 35(data) 241 60 56
|
||||
250: 21(int16_t) CompositeExtract 246 1
|
||||
Store 249 250
|
||||
251: 188(ptr) AccessChain 35(data) 241 60 71
|
||||
252: 21(int16_t) CompositeExtract 246 2
|
||||
Store 251 252
|
||||
253: 6(int) Load 8(delta)
|
||||
254: 196(ptr) AccessChain 35(data) 75 60
|
||||
255: 22(i16vec4) Load 254
|
||||
256: 6(int) Load 8(delta)
|
||||
257: 22(i16vec4) GroupNonUniformRotateKHR 42 255 256 56
|
||||
258: 196(ptr) AccessChain 35(data) 253 60
|
||||
Store 258 257
|
||||
259: 6(int) Load 8(delta)
|
||||
261: 260(ptr) AccessChain 35(data) 13 75 37
|
||||
262: 23(int16_t) Load 261
|
||||
263: 6(int) Load 8(delta)
|
||||
264: 23(int16_t) GroupNonUniformRotateKHR 42 262 263
|
||||
265: 260(ptr) AccessChain 35(data) 259 75 37
|
||||
Store 265 264
|
||||
266: 6(int) Load 8(delta)
|
||||
269: 268(ptr) AccessChain 35(data) 46 75
|
||||
270: 24(i16vec4) Load 269
|
||||
271:267(i16vec2) VectorShuffle 270 270 0 1
|
||||
272: 6(int) Load 8(delta)
|
||||
273:267(i16vec2) GroupNonUniformRotateKHR 42 271 272
|
||||
274: 260(ptr) AccessChain 35(data) 266 75 37
|
||||
275: 23(int16_t) CompositeExtract 273 0
|
||||
Store 274 275
|
||||
276: 260(ptr) AccessChain 35(data) 266 75 56
|
||||
277: 23(int16_t) CompositeExtract 273 1
|
||||
Store 276 277
|
||||
278: 6(int) Load 8(delta)
|
||||
280: 268(ptr) AccessChain 35(data) 60 75
|
||||
281: 24(i16vec4) Load 280
|
||||
282:279(i16vec3) VectorShuffle 281 281 0 1 2
|
||||
283: 6(int) Load 8(delta)
|
||||
284:279(i16vec3) GroupNonUniformRotateKHR 42 282 283
|
||||
285: 260(ptr) AccessChain 35(data) 278 75 37
|
||||
286: 23(int16_t) CompositeExtract 284 0
|
||||
Store 285 286
|
||||
287: 260(ptr) AccessChain 35(data) 278 75 56
|
||||
288: 23(int16_t) CompositeExtract 284 1
|
||||
Store 287 288
|
||||
289: 260(ptr) AccessChain 35(data) 278 75 71
|
||||
290: 23(int16_t) CompositeExtract 284 2
|
||||
Store 289 290
|
||||
291: 6(int) Load 8(delta)
|
||||
292: 268(ptr) AccessChain 35(data) 75 75
|
||||
293: 24(i16vec4) Load 292
|
||||
294: 6(int) Load 8(delta)
|
||||
295: 24(i16vec4) GroupNonUniformRotateKHR 42 293 294
|
||||
296: 268(ptr) AccessChain 35(data) 291 75
|
||||
Store 296 295
|
||||
297: 6(int) Load 8(delta)
|
||||
298: 260(ptr) AccessChain 35(data) 13 75 37
|
||||
299: 23(int16_t) Load 298
|
||||
300: 6(int) Load 8(delta)
|
||||
301: 23(int16_t) GroupNonUniformRotateKHR 42 299 300 56
|
||||
302: 260(ptr) AccessChain 35(data) 297 75 37
|
||||
Store 302 301
|
||||
303: 6(int) Load 8(delta)
|
||||
304: 268(ptr) AccessChain 35(data) 46 75
|
||||
305: 24(i16vec4) Load 304
|
||||
306:267(i16vec2) VectorShuffle 305 305 0 1
|
||||
307: 6(int) Load 8(delta)
|
||||
308:267(i16vec2) GroupNonUniformRotateKHR 42 306 307 56
|
||||
309: 260(ptr) AccessChain 35(data) 303 75 37
|
||||
310: 23(int16_t) CompositeExtract 308 0
|
||||
Store 309 310
|
||||
311: 260(ptr) AccessChain 35(data) 303 75 56
|
||||
312: 23(int16_t) CompositeExtract 308 1
|
||||
Store 311 312
|
||||
313: 6(int) Load 8(delta)
|
||||
314: 268(ptr) AccessChain 35(data) 60 75
|
||||
315: 24(i16vec4) Load 314
|
||||
316:279(i16vec3) VectorShuffle 315 315 0 1 2
|
||||
317: 6(int) Load 8(delta)
|
||||
318:279(i16vec3) GroupNonUniformRotateKHR 42 316 317 56
|
||||
319: 260(ptr) AccessChain 35(data) 313 75 37
|
||||
320: 23(int16_t) CompositeExtract 318 0
|
||||
Store 319 320
|
||||
321: 260(ptr) AccessChain 35(data) 313 75 56
|
||||
322: 23(int16_t) CompositeExtract 318 1
|
||||
Store 321 322
|
||||
323: 260(ptr) AccessChain 35(data) 313 75 71
|
||||
324: 23(int16_t) CompositeExtract 318 2
|
||||
Store 323 324
|
||||
325: 6(int) Load 8(delta)
|
||||
326: 268(ptr) AccessChain 35(data) 75 75
|
||||
327: 24(i16vec4) Load 326
|
||||
328: 6(int) Load 8(delta)
|
||||
329: 24(i16vec4) GroupNonUniformRotateKHR 42 327 328 56
|
||||
330: 268(ptr) AccessChain 35(data) 325 75
|
||||
Store 330 329
|
||||
331: 6(int) Load 8(delta)
|
||||
334: 333(ptr) AccessChain 35(data) 13 332 37
|
||||
335: 25(int64_t) Load 334
|
||||
336: 6(int) Load 8(delta)
|
||||
337: 25(int64_t) GroupNonUniformRotateKHR 42 335 336
|
||||
338: 333(ptr) AccessChain 35(data) 331 332 37
|
||||
Store 338 337
|
||||
339: 6(int) Load 8(delta)
|
||||
342: 341(ptr) AccessChain 35(data) 46 332
|
||||
343: 26(i64vec4) Load 342
|
||||
344:340(i64vec2) VectorShuffle 343 343 0 1
|
||||
345: 6(int) Load 8(delta)
|
||||
346:340(i64vec2) GroupNonUniformRotateKHR 42 344 345
|
||||
347: 333(ptr) AccessChain 35(data) 339 332 37
|
||||
348: 25(int64_t) CompositeExtract 346 0
|
||||
Store 347 348
|
||||
349: 333(ptr) AccessChain 35(data) 339 332 56
|
||||
350: 25(int64_t) CompositeExtract 346 1
|
||||
Store 349 350
|
||||
351: 6(int) Load 8(delta)
|
||||
353: 341(ptr) AccessChain 35(data) 60 332
|
||||
354: 26(i64vec4) Load 353
|
||||
355:352(i64vec3) VectorShuffle 354 354 0 1 2
|
||||
356: 6(int) Load 8(delta)
|
||||
357:352(i64vec3) GroupNonUniformRotateKHR 42 355 356
|
||||
358: 333(ptr) AccessChain 35(data) 351 332 37
|
||||
359: 25(int64_t) CompositeExtract 357 0
|
||||
Store 358 359
|
||||
360: 333(ptr) AccessChain 35(data) 351 332 56
|
||||
361: 25(int64_t) CompositeExtract 357 1
|
||||
Store 360 361
|
||||
362: 333(ptr) AccessChain 35(data) 351 332 71
|
||||
363: 25(int64_t) CompositeExtract 357 2
|
||||
Store 362 363
|
||||
364: 6(int) Load 8(delta)
|
||||
365: 341(ptr) AccessChain 35(data) 75 332
|
||||
366: 26(i64vec4) Load 365
|
||||
367: 6(int) Load 8(delta)
|
||||
368: 26(i64vec4) GroupNonUniformRotateKHR 42 366 367
|
||||
369: 341(ptr) AccessChain 35(data) 364 332
|
||||
Store 369 368
|
||||
370: 6(int) Load 8(delta)
|
||||
371: 333(ptr) AccessChain 35(data) 13 332 37
|
||||
372: 25(int64_t) Load 371
|
||||
373: 6(int) Load 8(delta)
|
||||
374: 25(int64_t) GroupNonUniformRotateKHR 42 372 373 56
|
||||
375: 333(ptr) AccessChain 35(data) 370 332 37
|
||||
Store 375 374
|
||||
376: 6(int) Load 8(delta)
|
||||
377: 341(ptr) AccessChain 35(data) 46 332
|
||||
378: 26(i64vec4) Load 377
|
||||
379:340(i64vec2) VectorShuffle 378 378 0 1
|
||||
380: 6(int) Load 8(delta)
|
||||
381:340(i64vec2) GroupNonUniformRotateKHR 42 379 380 56
|
||||
382: 333(ptr) AccessChain 35(data) 376 332 37
|
||||
383: 25(int64_t) CompositeExtract 381 0
|
||||
Store 382 383
|
||||
384: 333(ptr) AccessChain 35(data) 376 332 56
|
||||
385: 25(int64_t) CompositeExtract 381 1
|
||||
Store 384 385
|
||||
386: 6(int) Load 8(delta)
|
||||
387: 341(ptr) AccessChain 35(data) 60 332
|
||||
388: 26(i64vec4) Load 387
|
||||
389:352(i64vec3) VectorShuffle 388 388 0 1 2
|
||||
390: 6(int) Load 8(delta)
|
||||
391:352(i64vec3) GroupNonUniformRotateKHR 42 389 390 56
|
||||
392: 333(ptr) AccessChain 35(data) 386 332 37
|
||||
393: 25(int64_t) CompositeExtract 391 0
|
||||
Store 392 393
|
||||
394: 333(ptr) AccessChain 35(data) 386 332 56
|
||||
395: 25(int64_t) CompositeExtract 391 1
|
||||
Store 394 395
|
||||
396: 333(ptr) AccessChain 35(data) 386 332 71
|
||||
397: 25(int64_t) CompositeExtract 391 2
|
||||
Store 396 397
|
||||
398: 6(int) Load 8(delta)
|
||||
399: 341(ptr) AccessChain 35(data) 75 332
|
||||
400: 26(i64vec4) Load 399
|
||||
401: 6(int) Load 8(delta)
|
||||
402: 26(i64vec4) GroupNonUniformRotateKHR 42 400 401 56
|
||||
403: 341(ptr) AccessChain 35(data) 398 332
|
||||
Store 403 402
|
||||
404: 6(int) Load 8(delta)
|
||||
407: 406(ptr) AccessChain 35(data) 13 405 37
|
||||
408: 27(int64_t) Load 407
|
||||
409: 6(int) Load 8(delta)
|
||||
410: 27(int64_t) GroupNonUniformRotateKHR 42 408 409
|
||||
411: 406(ptr) AccessChain 35(data) 404 405 37
|
||||
Store 411 410
|
||||
412: 6(int) Load 8(delta)
|
||||
415: 414(ptr) AccessChain 35(data) 46 405
|
||||
416: 28(i64vec4) Load 415
|
||||
417:413(i64vec2) VectorShuffle 416 416 0 1
|
||||
418: 6(int) Load 8(delta)
|
||||
419:413(i64vec2) GroupNonUniformRotateKHR 42 417 418
|
||||
420: 406(ptr) AccessChain 35(data) 412 405 37
|
||||
421: 27(int64_t) CompositeExtract 419 0
|
||||
Store 420 421
|
||||
422: 406(ptr) AccessChain 35(data) 412 405 56
|
||||
423: 27(int64_t) CompositeExtract 419 1
|
||||
Store 422 423
|
||||
424: 6(int) Load 8(delta)
|
||||
426: 414(ptr) AccessChain 35(data) 60 405
|
||||
427: 28(i64vec4) Load 426
|
||||
428:425(i64vec3) VectorShuffle 427 427 0 1 2
|
||||
429: 6(int) Load 8(delta)
|
||||
430:425(i64vec3) GroupNonUniformRotateKHR 42 428 429
|
||||
431: 406(ptr) AccessChain 35(data) 424 405 37
|
||||
432: 27(int64_t) CompositeExtract 430 0
|
||||
Store 431 432
|
||||
433: 406(ptr) AccessChain 35(data) 424 405 56
|
||||
434: 27(int64_t) CompositeExtract 430 1
|
||||
Store 433 434
|
||||
435: 406(ptr) AccessChain 35(data) 424 405 71
|
||||
436: 27(int64_t) CompositeExtract 430 2
|
||||
Store 435 436
|
||||
437: 6(int) Load 8(delta)
|
||||
438: 414(ptr) AccessChain 35(data) 75 405
|
||||
439: 28(i64vec4) Load 438
|
||||
440: 6(int) Load 8(delta)
|
||||
441: 28(i64vec4) GroupNonUniformRotateKHR 42 439 440
|
||||
442: 414(ptr) AccessChain 35(data) 437 405
|
||||
Store 442 441
|
||||
443: 6(int) Load 8(delta)
|
||||
444: 406(ptr) AccessChain 35(data) 13 405 37
|
||||
445: 27(int64_t) Load 444
|
||||
446: 6(int) Load 8(delta)
|
||||
447: 27(int64_t) GroupNonUniformRotateKHR 42 445 446 56
|
||||
448: 406(ptr) AccessChain 35(data) 443 405 37
|
||||
Store 448 447
|
||||
449: 6(int) Load 8(delta)
|
||||
450: 414(ptr) AccessChain 35(data) 46 405
|
||||
451: 28(i64vec4) Load 450
|
||||
452:413(i64vec2) VectorShuffle 451 451 0 1
|
||||
453: 6(int) Load 8(delta)
|
||||
454:413(i64vec2) GroupNonUniformRotateKHR 42 452 453 56
|
||||
455: 406(ptr) AccessChain 35(data) 449 405 37
|
||||
456: 27(int64_t) CompositeExtract 454 0
|
||||
Store 455 456
|
||||
457: 406(ptr) AccessChain 35(data) 449 405 56
|
||||
458: 27(int64_t) CompositeExtract 454 1
|
||||
Store 457 458
|
||||
459: 6(int) Load 8(delta)
|
||||
460: 414(ptr) AccessChain 35(data) 60 405
|
||||
461: 28(i64vec4) Load 460
|
||||
462:425(i64vec3) VectorShuffle 461 461 0 1 2
|
||||
463: 6(int) Load 8(delta)
|
||||
464:425(i64vec3) GroupNonUniformRotateKHR 42 462 463 56
|
||||
465: 406(ptr) AccessChain 35(data) 459 405 37
|
||||
466: 27(int64_t) CompositeExtract 464 0
|
||||
Store 465 466
|
||||
467: 406(ptr) AccessChain 35(data) 459 405 56
|
||||
468: 27(int64_t) CompositeExtract 464 1
|
||||
Store 467 468
|
||||
469: 406(ptr) AccessChain 35(data) 459 405 71
|
||||
470: 27(int64_t) CompositeExtract 464 2
|
||||
Store 469 470
|
||||
471: 6(int) Load 8(delta)
|
||||
472: 414(ptr) AccessChain 35(data) 75 405
|
||||
473: 28(i64vec4) Load 472
|
||||
474: 6(int) Load 8(delta)
|
||||
475: 28(i64vec4) GroupNonUniformRotateKHR 42 473 474 56
|
||||
476: 414(ptr) AccessChain 35(data) 471 405
|
||||
Store 476 475
|
||||
477: 6(int) Load 8(delta)
|
||||
480: 479(ptr) AccessChain 35(data) 13 478 37
|
||||
481:29(float16_t) Load 480
|
||||
482: 6(int) Load 8(delta)
|
||||
483:29(float16_t) GroupNonUniformRotateKHR 42 481 482
|
||||
484: 479(ptr) AccessChain 35(data) 477 478 37
|
||||
Store 484 483
|
||||
485: 6(int) Load 8(delta)
|
||||
488: 487(ptr) AccessChain 35(data) 46 478
|
||||
489: 30(f16vec4) Load 488
|
||||
490:486(f16vec2) VectorShuffle 489 489 0 1
|
||||
491: 6(int) Load 8(delta)
|
||||
492:486(f16vec2) GroupNonUniformRotateKHR 42 490 491
|
||||
493: 479(ptr) AccessChain 35(data) 485 478 37
|
||||
494:29(float16_t) CompositeExtract 492 0
|
||||
Store 493 494
|
||||
495: 479(ptr) AccessChain 35(data) 485 478 56
|
||||
496:29(float16_t) CompositeExtract 492 1
|
||||
Store 495 496
|
||||
497: 6(int) Load 8(delta)
|
||||
499: 487(ptr) AccessChain 35(data) 60 478
|
||||
500: 30(f16vec4) Load 499
|
||||
501:498(f16vec3) VectorShuffle 500 500 0 1 2
|
||||
502: 6(int) Load 8(delta)
|
||||
503:498(f16vec3) GroupNonUniformRotateKHR 42 501 502
|
||||
504: 479(ptr) AccessChain 35(data) 497 478 37
|
||||
505:29(float16_t) CompositeExtract 503 0
|
||||
Store 504 505
|
||||
506: 479(ptr) AccessChain 35(data) 497 478 56
|
||||
507:29(float16_t) CompositeExtract 503 1
|
||||
Store 506 507
|
||||
508: 479(ptr) AccessChain 35(data) 497 478 71
|
||||
509:29(float16_t) CompositeExtract 503 2
|
||||
Store 508 509
|
||||
510: 6(int) Load 8(delta)
|
||||
511: 487(ptr) AccessChain 35(data) 75 478
|
||||
512: 30(f16vec4) Load 511
|
||||
513: 6(int) Load 8(delta)
|
||||
514: 30(f16vec4) GroupNonUniformRotateKHR 42 512 513
|
||||
515: 487(ptr) AccessChain 35(data) 510 478
|
||||
Store 515 514
|
||||
516: 6(int) Load 8(delta)
|
||||
517: 479(ptr) AccessChain 35(data) 13 478 37
|
||||
518:29(float16_t) Load 517
|
||||
519: 6(int) Load 8(delta)
|
||||
520:29(float16_t) GroupNonUniformRotateKHR 42 518 519 56
|
||||
521: 479(ptr) AccessChain 35(data) 516 478 37
|
||||
Store 521 520
|
||||
522: 6(int) Load 8(delta)
|
||||
523: 487(ptr) AccessChain 35(data) 46 478
|
||||
524: 30(f16vec4) Load 523
|
||||
525:486(f16vec2) VectorShuffle 524 524 0 1
|
||||
526: 6(int) Load 8(delta)
|
||||
527:486(f16vec2) GroupNonUniformRotateKHR 42 525 526 56
|
||||
528: 479(ptr) AccessChain 35(data) 522 478 37
|
||||
529:29(float16_t) CompositeExtract 527 0
|
||||
Store 528 529
|
||||
530: 479(ptr) AccessChain 35(data) 522 478 56
|
||||
531:29(float16_t) CompositeExtract 527 1
|
||||
Store 530 531
|
||||
532: 6(int) Load 8(delta)
|
||||
533: 487(ptr) AccessChain 35(data) 60 478
|
||||
534: 30(f16vec4) Load 533
|
||||
535:498(f16vec3) VectorShuffle 534 534 0 1 2
|
||||
536: 6(int) Load 8(delta)
|
||||
537:498(f16vec3) GroupNonUniformRotateKHR 42 535 536 56
|
||||
538: 479(ptr) AccessChain 35(data) 532 478 37
|
||||
539:29(float16_t) CompositeExtract 537 0
|
||||
Store 538 539
|
||||
540: 479(ptr) AccessChain 35(data) 532 478 56
|
||||
541:29(float16_t) CompositeExtract 537 1
|
||||
Store 540 541
|
||||
542: 479(ptr) AccessChain 35(data) 532 478 71
|
||||
543:29(float16_t) CompositeExtract 537 2
|
||||
Store 542 543
|
||||
544: 6(int) Load 8(delta)
|
||||
545: 487(ptr) AccessChain 35(data) 75 478
|
||||
546: 30(f16vec4) Load 545
|
||||
547: 6(int) Load 8(delta)
|
||||
548: 30(f16vec4) GroupNonUniformRotateKHR 42 546 547 56
|
||||
549: 487(ptr) AccessChain 35(data) 544 478
|
||||
Store 549 548
|
||||
Return
|
||||
FunctionEnd
|
61
Test/baseResults/spv.subgroupExtendedTypesRotateNeg.comp.out
Normal file
61
Test/baseResults/spv.subgroupExtendedTypesRotateNeg.comp.out
Normal file
@ -0,0 +1,61 @@
|
||||
spv.subgroupExtendedTypesRotateNeg.comp
|
||||
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 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 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 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 int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||
ERROR: 0:57: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||
ERROR: 0:58: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||
ERROR: 0:59: 'layout( column_major std430) buffer 4-component vector of int16_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 uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||
ERROR: 0:67: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||
ERROR: 0:68: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||
ERROR: 0:69: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
|
||||
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 int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||
ERROR: 0:77: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||
ERROR: 0:78: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||
ERROR: 0:79: 'layout( column_major std430) buffer 4-component vector of int64_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 uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||
ERROR: 0:87: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||
ERROR: 0:88: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||
ERROR: 0:89: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
|
||||
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: 0:96: ' temp highp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||
ERROR: 0:97: ' temp highp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||
ERROR: 0:98: ' temp highp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
|
||||
ERROR: 0:99: '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
|
528
Test/baseResults/spv.subgroupRotate.comp.out
Normal file
528
Test/baseResults/spv.subgroupRotate.comp.out
Normal file
@ -0,0 +1,528 @@
|
||||
spv.subgroupRotate.comp
|
||||
// Module Version 10300
|
||||
// Generated by (magic number): 8000b
|
||||
// Id's are bound by 418
|
||||
|
||||
Capability Shader
|
||||
Capability Float64
|
||||
Capability CapabilityGroupNonUniformRotateKHR
|
||||
Extension "SPV_KHR_subgroup_rotate"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint GLCompute 4 "main"
|
||||
ExecutionMode 4 LocalSize 8 8 1
|
||||
Source GLSL 450
|
||||
SourceExtension "GL_KHR_shader_subgroup_rotate"
|
||||
Name 4 "main"
|
||||
Name 8 "delta"
|
||||
Name 9 "roblock"
|
||||
MemberName 9(roblock) 0 "delta"
|
||||
Name 11 "ro"
|
||||
Name 23 "Buffers"
|
||||
MemberName 23(Buffers) 0 "f4"
|
||||
MemberName 23(Buffers) 1 "i4"
|
||||
MemberName 23(Buffers) 2 "u4"
|
||||
MemberName 23(Buffers) 3 "d4"
|
||||
Name 27 "data"
|
||||
MemberDecorate 9(roblock) 0 NonWritable
|
||||
MemberDecorate 9(roblock) 0 Offset 0
|
||||
Decorate 9(roblock) Block
|
||||
Decorate 11(ro) DescriptorSet 0
|
||||
Decorate 11(ro) Binding 1
|
||||
MemberDecorate 23(Buffers) 0 Offset 0
|
||||
MemberDecorate 23(Buffers) 1 Offset 16
|
||||
MemberDecorate 23(Buffers) 2 Offset 32
|
||||
MemberDecorate 23(Buffers) 3 Offset 64
|
||||
Decorate 23(Buffers) Block
|
||||
Decorate 27(data) DescriptorSet 0
|
||||
Decorate 27(data) Binding 0
|
||||
Decorate 417 BuiltIn WorkgroupSize
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 0
|
||||
7: TypePointer Function 6(int)
|
||||
9(roblock): TypeStruct 6(int)
|
||||
10: TypePointer StorageBuffer 9(roblock)
|
||||
11(ro): 10(ptr) Variable StorageBuffer
|
||||
12: TypeInt 32 1
|
||||
13: 12(int) Constant 0
|
||||
14: TypePointer StorageBuffer 6(int)
|
||||
17: TypeFloat 32
|
||||
18: TypeVector 17(float) 4
|
||||
19: TypeVector 12(int) 4
|
||||
20: TypeVector 6(int) 4
|
||||
21: TypeFloat 64
|
||||
22: TypeVector 21(float64_t) 4
|
||||
23(Buffers): TypeStruct 18(fvec4) 19(ivec4) 20(ivec4) 22(f64vec4)
|
||||
24: 6(int) Constant 4
|
||||
25: TypeArray 23(Buffers) 24
|
||||
26: TypePointer StorageBuffer 25
|
||||
27(data): 26(ptr) Variable StorageBuffer
|
||||
29: 6(int) Constant 0
|
||||
30: TypePointer StorageBuffer 17(float)
|
||||
34: 6(int) Constant 3
|
||||
38: 12(int) Constant 1
|
||||
39: TypeVector 17(float) 2
|
||||
40: TypePointer StorageBuffer 18(fvec4)
|
||||
48: 6(int) Constant 1
|
||||
52: 12(int) Constant 2
|
||||
53: TypeVector 17(float) 3
|
||||
63: 6(int) Constant 2
|
||||
67: 12(int) Constant 3
|
||||
74: TypePointer StorageBuffer 12(int)
|
||||
81: TypeVector 12(int) 2
|
||||
82: TypePointer StorageBuffer 19(ivec4)
|
||||
93: TypeVector 12(int) 3
|
||||
118: TypeVector 6(int) 2
|
||||
119: TypePointer StorageBuffer 20(ivec4)
|
||||
130: TypeVector 6(int) 3
|
||||
149: TypePointer StorageBuffer 21(float64_t)
|
||||
156: TypeVector 21(float64_t) 2
|
||||
157: TypePointer StorageBuffer 22(f64vec4)
|
||||
168: TypeVector 21(float64_t) 3
|
||||
189: TypeBool
|
||||
199: 81(ivec2) ConstantComposite 13 13
|
||||
200: TypeVector 189(bool) 2
|
||||
204: 81(ivec2) ConstantComposite 38 38
|
||||
214: 93(ivec3) ConstantComposite 13 13 13
|
||||
215: TypeVector 189(bool) 3
|
||||
219: 93(ivec3) ConstantComposite 38 38 38
|
||||
230: 19(ivec4) ConstantComposite 13 13 13 13
|
||||
231: TypeVector 189(bool) 4
|
||||
235: 19(ivec4) ConstantComposite 38 38 38 38
|
||||
416: 6(int) Constant 8
|
||||
417: 130(ivec3) ConstantComposite 416 416 48
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
8(delta): 7(ptr) Variable Function
|
||||
15: 14(ptr) AccessChain 11(ro) 13
|
||||
16: 6(int) Load 15
|
||||
Store 8(delta) 16
|
||||
28: 6(int) Load 8(delta)
|
||||
31: 30(ptr) AccessChain 27(data) 13 13 29
|
||||
32: 17(float) Load 31
|
||||
33: 6(int) Load 8(delta)
|
||||
35: 17(float) GroupNonUniformRotateKHR 34 32 33
|
||||
36: 30(ptr) AccessChain 27(data) 28 13 29
|
||||
Store 36 35
|
||||
37: 6(int) Load 8(delta)
|
||||
41: 40(ptr) AccessChain 27(data) 38 13
|
||||
42: 18(fvec4) Load 41
|
||||
43: 39(fvec2) VectorShuffle 42 42 0 1
|
||||
44: 6(int) Load 8(delta)
|
||||
45: 39(fvec2) GroupNonUniformRotateKHR 34 43 44
|
||||
46: 30(ptr) AccessChain 27(data) 37 13 29
|
||||
47: 17(float) CompositeExtract 45 0
|
||||
Store 46 47
|
||||
49: 30(ptr) AccessChain 27(data) 37 13 48
|
||||
50: 17(float) CompositeExtract 45 1
|
||||
Store 49 50
|
||||
51: 6(int) Load 8(delta)
|
||||
54: 40(ptr) AccessChain 27(data) 52 13
|
||||
55: 18(fvec4) Load 54
|
||||
56: 53(fvec3) VectorShuffle 55 55 0 1 2
|
||||
57: 6(int) Load 8(delta)
|
||||
58: 53(fvec3) GroupNonUniformRotateKHR 34 56 57
|
||||
59: 30(ptr) AccessChain 27(data) 51 13 29
|
||||
60: 17(float) CompositeExtract 58 0
|
||||
Store 59 60
|
||||
61: 30(ptr) AccessChain 27(data) 51 13 48
|
||||
62: 17(float) CompositeExtract 58 1
|
||||
Store 61 62
|
||||
64: 30(ptr) AccessChain 27(data) 51 13 63
|
||||
65: 17(float) CompositeExtract 58 2
|
||||
Store 64 65
|
||||
66: 6(int) Load 8(delta)
|
||||
68: 40(ptr) AccessChain 27(data) 67 13
|
||||
69: 18(fvec4) Load 68
|
||||
70: 6(int) Load 8(delta)
|
||||
71: 18(fvec4) GroupNonUniformRotateKHR 34 69 70
|
||||
72: 40(ptr) AccessChain 27(data) 66 13
|
||||
Store 72 71
|
||||
73: 6(int) Load 8(delta)
|
||||
75: 74(ptr) AccessChain 27(data) 13 38 29
|
||||
76: 12(int) Load 75
|
||||
77: 6(int) Load 8(delta)
|
||||
78: 12(int) GroupNonUniformRotateKHR 34 76 77
|
||||
79: 74(ptr) AccessChain 27(data) 73 38 29
|
||||
Store 79 78
|
||||
80: 6(int) Load 8(delta)
|
||||
83: 82(ptr) AccessChain 27(data) 38 38
|
||||
84: 19(ivec4) Load 83
|
||||
85: 81(ivec2) VectorShuffle 84 84 0 1
|
||||
86: 6(int) Load 8(delta)
|
||||
87: 81(ivec2) GroupNonUniformRotateKHR 34 85 86
|
||||
88: 74(ptr) AccessChain 27(data) 80 38 29
|
||||
89: 12(int) CompositeExtract 87 0
|
||||
Store 88 89
|
||||
90: 74(ptr) AccessChain 27(data) 80 38 48
|
||||
91: 12(int) CompositeExtract 87 1
|
||||
Store 90 91
|
||||
92: 6(int) Load 8(delta)
|
||||
94: 82(ptr) AccessChain 27(data) 52 38
|
||||
95: 19(ivec4) Load 94
|
||||
96: 93(ivec3) VectorShuffle 95 95 0 1 2
|
||||
97: 6(int) Load 8(delta)
|
||||
98: 93(ivec3) GroupNonUniformRotateKHR 34 96 97
|
||||
99: 74(ptr) AccessChain 27(data) 92 38 29
|
||||
100: 12(int) CompositeExtract 98 0
|
||||
Store 99 100
|
||||
101: 74(ptr) AccessChain 27(data) 92 38 48
|
||||
102: 12(int) CompositeExtract 98 1
|
||||
Store 101 102
|
||||
103: 74(ptr) AccessChain 27(data) 92 38 63
|
||||
104: 12(int) CompositeExtract 98 2
|
||||
Store 103 104
|
||||
105: 6(int) Load 8(delta)
|
||||
106: 82(ptr) AccessChain 27(data) 67 38
|
||||
107: 19(ivec4) Load 106
|
||||
108: 6(int) Load 8(delta)
|
||||
109: 19(ivec4) GroupNonUniformRotateKHR 34 107 108
|
||||
110: 82(ptr) AccessChain 27(data) 105 38
|
||||
Store 110 109
|
||||
111: 6(int) Load 8(delta)
|
||||
112: 14(ptr) AccessChain 27(data) 13 52 29
|
||||
113: 6(int) Load 112
|
||||
114: 6(int) Load 8(delta)
|
||||
115: 6(int) GroupNonUniformRotateKHR 34 113 114
|
||||
116: 14(ptr) AccessChain 27(data) 111 52 29
|
||||
Store 116 115
|
||||
117: 6(int) Load 8(delta)
|
||||
120: 119(ptr) AccessChain 27(data) 38 52
|
||||
121: 20(ivec4) Load 120
|
||||
122: 118(ivec2) VectorShuffle 121 121 0 1
|
||||
123: 6(int) Load 8(delta)
|
||||
124: 118(ivec2) GroupNonUniformRotateKHR 34 122 123
|
||||
125: 14(ptr) AccessChain 27(data) 117 52 29
|
||||
126: 6(int) CompositeExtract 124 0
|
||||
Store 125 126
|
||||
127: 14(ptr) AccessChain 27(data) 117 52 48
|
||||
128: 6(int) CompositeExtract 124 1
|
||||
Store 127 128
|
||||
129: 6(int) Load 8(delta)
|
||||
131: 119(ptr) AccessChain 27(data) 52 52
|
||||
132: 20(ivec4) Load 131
|
||||
133: 130(ivec3) VectorShuffle 132 132 0 1 2
|
||||
134: 6(int) Load 8(delta)
|
||||
135: 130(ivec3) GroupNonUniformRotateKHR 34 133 134
|
||||
136: 14(ptr) AccessChain 27(data) 129 52 29
|
||||
137: 6(int) CompositeExtract 135 0
|
||||
Store 136 137
|
||||
138: 14(ptr) AccessChain 27(data) 129 52 48
|
||||
139: 6(int) CompositeExtract 135 1
|
||||
Store 138 139
|
||||
140: 14(ptr) AccessChain 27(data) 129 52 63
|
||||
141: 6(int) CompositeExtract 135 2
|
||||
Store 140 141
|
||||
142: 6(int) Load 8(delta)
|
||||
143: 119(ptr) AccessChain 27(data) 67 52
|
||||
144: 20(ivec4) Load 143
|
||||
145: 6(int) Load 8(delta)
|
||||
146: 20(ivec4) GroupNonUniformRotateKHR 34 144 145
|
||||
147: 119(ptr) AccessChain 27(data) 142 52
|
||||
Store 147 146
|
||||
148: 6(int) Load 8(delta)
|
||||
150: 149(ptr) AccessChain 27(data) 13 67 29
|
||||
151:21(float64_t) Load 150
|
||||
152: 6(int) Load 8(delta)
|
||||
153:21(float64_t) GroupNonUniformRotateKHR 34 151 152
|
||||
154: 149(ptr) AccessChain 27(data) 148 67 29
|
||||
Store 154 153
|
||||
155: 6(int) Load 8(delta)
|
||||
158: 157(ptr) AccessChain 27(data) 38 67
|
||||
159: 22(f64vec4) Load 158
|
||||
160:156(f64vec2) VectorShuffle 159 159 0 1
|
||||
161: 6(int) Load 8(delta)
|
||||
162:156(f64vec2) GroupNonUniformRotateKHR 34 160 161
|
||||
163: 149(ptr) AccessChain 27(data) 155 67 29
|
||||
164:21(float64_t) CompositeExtract 162 0
|
||||
Store 163 164
|
||||
165: 149(ptr) AccessChain 27(data) 155 67 48
|
||||
166:21(float64_t) CompositeExtract 162 1
|
||||
Store 165 166
|
||||
167: 6(int) Load 8(delta)
|
||||
169: 157(ptr) AccessChain 27(data) 52 67
|
||||
170: 22(f64vec4) Load 169
|
||||
171:168(f64vec3) VectorShuffle 170 170 0 1 2
|
||||
172: 6(int) Load 8(delta)
|
||||
173:168(f64vec3) GroupNonUniformRotateKHR 34 171 172
|
||||
174: 149(ptr) AccessChain 27(data) 167 67 29
|
||||
175:21(float64_t) CompositeExtract 173 0
|
||||
Store 174 175
|
||||
176: 149(ptr) AccessChain 27(data) 167 67 48
|
||||
177:21(float64_t) CompositeExtract 173 1
|
||||
Store 176 177
|
||||
178: 149(ptr) AccessChain 27(data) 167 67 63
|
||||
179:21(float64_t) CompositeExtract 173 2
|
||||
Store 178 179
|
||||
180: 6(int) Load 8(delta)
|
||||
181: 157(ptr) AccessChain 27(data) 67 67
|
||||
182: 22(f64vec4) Load 181
|
||||
183: 6(int) Load 8(delta)
|
||||
184: 22(f64vec4) GroupNonUniformRotateKHR 34 182 183
|
||||
185: 157(ptr) AccessChain 27(data) 180 67
|
||||
Store 185 184
|
||||
186: 6(int) Load 8(delta)
|
||||
187: 74(ptr) AccessChain 27(data) 13 38 29
|
||||
188: 12(int) Load 187
|
||||
190: 189(bool) SLessThan 188 13
|
||||
191: 6(int) Load 8(delta)
|
||||
192: 189(bool) GroupNonUniformRotateKHR 34 190 191
|
||||
193: 12(int) Select 192 38 13
|
||||
194: 74(ptr) AccessChain 27(data) 186 38 29
|
||||
Store 194 193
|
||||
195: 6(int) Load 8(delta)
|
||||
196: 82(ptr) AccessChain 27(data) 38 38
|
||||
197: 19(ivec4) Load 196
|
||||
198: 81(ivec2) VectorShuffle 197 197 0 1
|
||||
201: 200(bvec2) SLessThan 198 199
|
||||
202: 6(int) Load 8(delta)
|
||||
203: 200(bvec2) GroupNonUniformRotateKHR 34 201 202
|
||||
205: 81(ivec2) Select 203 204 199
|
||||
206: 74(ptr) AccessChain 27(data) 195 38 29
|
||||
207: 12(int) CompositeExtract 205 0
|
||||
Store 206 207
|
||||
208: 74(ptr) AccessChain 27(data) 195 38 48
|
||||
209: 12(int) CompositeExtract 205 1
|
||||
Store 208 209
|
||||
210: 6(int) Load 8(delta)
|
||||
211: 82(ptr) AccessChain 27(data) 38 38
|
||||
212: 19(ivec4) Load 211
|
||||
213: 93(ivec3) VectorShuffle 212 212 0 1 2
|
||||
216: 215(bvec3) SLessThan 213 214
|
||||
217: 6(int) Load 8(delta)
|
||||
218: 215(bvec3) GroupNonUniformRotateKHR 34 216 217
|
||||
220: 93(ivec3) Select 218 219 214
|
||||
221: 74(ptr) AccessChain 27(data) 210 38 29
|
||||
222: 12(int) CompositeExtract 220 0
|
||||
Store 221 222
|
||||
223: 74(ptr) AccessChain 27(data) 210 38 48
|
||||
224: 12(int) CompositeExtract 220 1
|
||||
Store 223 224
|
||||
225: 74(ptr) AccessChain 27(data) 210 38 63
|
||||
226: 12(int) CompositeExtract 220 2
|
||||
Store 225 226
|
||||
227: 6(int) Load 8(delta)
|
||||
228: 82(ptr) AccessChain 27(data) 38 38
|
||||
229: 19(ivec4) Load 228
|
||||
232: 231(bvec4) SLessThan 229 230
|
||||
233: 6(int) Load 8(delta)
|
||||
234: 231(bvec4) GroupNonUniformRotateKHR 34 232 233
|
||||
236: 19(ivec4) Select 234 235 230
|
||||
237: 82(ptr) AccessChain 27(data) 227 38
|
||||
Store 237 236
|
||||
238: 6(int) Load 8(delta)
|
||||
239: 30(ptr) AccessChain 27(data) 13 13 29
|
||||
240: 17(float) Load 239
|
||||
241: 6(int) Load 8(delta)
|
||||
242: 17(float) GroupNonUniformRotateKHR 34 240 241 48
|
||||
243: 30(ptr) AccessChain 27(data) 238 13 29
|
||||
Store 243 242
|
||||
244: 6(int) Load 8(delta)
|
||||
245: 40(ptr) AccessChain 27(data) 38 13
|
||||
246: 18(fvec4) Load 245
|
||||
247: 39(fvec2) VectorShuffle 246 246 0 1
|
||||
248: 6(int) Load 8(delta)
|
||||
249: 39(fvec2) GroupNonUniformRotateKHR 34 247 248 48
|
||||
250: 30(ptr) AccessChain 27(data) 244 13 29
|
||||
251: 17(float) CompositeExtract 249 0
|
||||
Store 250 251
|
||||
252: 30(ptr) AccessChain 27(data) 244 13 48
|
||||
253: 17(float) CompositeExtract 249 1
|
||||
Store 252 253
|
||||
254: 6(int) Load 8(delta)
|
||||
255: 40(ptr) AccessChain 27(data) 52 13
|
||||
256: 18(fvec4) Load 255
|
||||
257: 53(fvec3) VectorShuffle 256 256 0 1 2
|
||||
258: 6(int) Load 8(delta)
|
||||
259: 53(fvec3) GroupNonUniformRotateKHR 34 257 258 48
|
||||
260: 30(ptr) AccessChain 27(data) 254 13 29
|
||||
261: 17(float) CompositeExtract 259 0
|
||||
Store 260 261
|
||||
262: 30(ptr) AccessChain 27(data) 254 13 48
|
||||
263: 17(float) CompositeExtract 259 1
|
||||
Store 262 263
|
||||
264: 30(ptr) AccessChain 27(data) 254 13 63
|
||||
265: 17(float) CompositeExtract 259 2
|
||||
Store 264 265
|
||||
266: 6(int) Load 8(delta)
|
||||
267: 40(ptr) AccessChain 27(data) 67 13
|
||||
268: 18(fvec4) Load 267
|
||||
269: 6(int) Load 8(delta)
|
||||
270: 18(fvec4) GroupNonUniformRotateKHR 34 268 269 48
|
||||
271: 40(ptr) AccessChain 27(data) 266 13
|
||||
Store 271 270
|
||||
272: 6(int) Load 8(delta)
|
||||
273: 74(ptr) AccessChain 27(data) 13 38 29
|
||||
274: 12(int) Load 273
|
||||
275: 6(int) Load 8(delta)
|
||||
276: 12(int) GroupNonUniformRotateKHR 34 274 275 48
|
||||
277: 74(ptr) AccessChain 27(data) 272 38 29
|
||||
Store 277 276
|
||||
278: 6(int) Load 8(delta)
|
||||
279: 82(ptr) AccessChain 27(data) 38 38
|
||||
280: 19(ivec4) Load 279
|
||||
281: 81(ivec2) VectorShuffle 280 280 0 1
|
||||
282: 6(int) Load 8(delta)
|
||||
283: 81(ivec2) GroupNonUniformRotateKHR 34 281 282 48
|
||||
284: 74(ptr) AccessChain 27(data) 278 38 29
|
||||
285: 12(int) CompositeExtract 283 0
|
||||
Store 284 285
|
||||
286: 74(ptr) AccessChain 27(data) 278 38 48
|
||||
287: 12(int) CompositeExtract 283 1
|
||||
Store 286 287
|
||||
288: 6(int) Load 8(delta)
|
||||
289: 82(ptr) AccessChain 27(data) 52 38
|
||||
290: 19(ivec4) Load 289
|
||||
291: 93(ivec3) VectorShuffle 290 290 0 1 2
|
||||
292: 6(int) Load 8(delta)
|
||||
293: 93(ivec3) GroupNonUniformRotateKHR 34 291 292 48
|
||||
294: 74(ptr) AccessChain 27(data) 288 38 29
|
||||
295: 12(int) CompositeExtract 293 0
|
||||
Store 294 295
|
||||
296: 74(ptr) AccessChain 27(data) 288 38 48
|
||||
297: 12(int) CompositeExtract 293 1
|
||||
Store 296 297
|
||||
298: 74(ptr) AccessChain 27(data) 288 38 63
|
||||
299: 12(int) CompositeExtract 293 2
|
||||
Store 298 299
|
||||
300: 6(int) Load 8(delta)
|
||||
301: 82(ptr) AccessChain 27(data) 67 38
|
||||
302: 19(ivec4) Load 301
|
||||
303: 6(int) Load 8(delta)
|
||||
304: 19(ivec4) GroupNonUniformRotateKHR 34 302 303 48
|
||||
305: 82(ptr) AccessChain 27(data) 300 38
|
||||
Store 305 304
|
||||
306: 6(int) Load 8(delta)
|
||||
307: 14(ptr) AccessChain 27(data) 13 52 29
|
||||
308: 6(int) Load 307
|
||||
309: 6(int) Load 8(delta)
|
||||
310: 6(int) GroupNonUniformRotateKHR 34 308 309 48
|
||||
311: 14(ptr) AccessChain 27(data) 306 52 29
|
||||
Store 311 310
|
||||
312: 6(int) Load 8(delta)
|
||||
313: 119(ptr) AccessChain 27(data) 38 52
|
||||
314: 20(ivec4) Load 313
|
||||
315: 118(ivec2) VectorShuffle 314 314 0 1
|
||||
316: 6(int) Load 8(delta)
|
||||
317: 118(ivec2) GroupNonUniformRotateKHR 34 315 316 48
|
||||
318: 14(ptr) AccessChain 27(data) 312 52 29
|
||||
319: 6(int) CompositeExtract 317 0
|
||||
Store 318 319
|
||||
320: 14(ptr) AccessChain 27(data) 312 52 48
|
||||
321: 6(int) CompositeExtract 317 1
|
||||
Store 320 321
|
||||
322: 6(int) Load 8(delta)
|
||||
323: 119(ptr) AccessChain 27(data) 52 52
|
||||
324: 20(ivec4) Load 323
|
||||
325: 130(ivec3) VectorShuffle 324 324 0 1 2
|
||||
326: 6(int) Load 8(delta)
|
||||
327: 130(ivec3) GroupNonUniformRotateKHR 34 325 326 48
|
||||
328: 14(ptr) AccessChain 27(data) 322 52 29
|
||||
329: 6(int) CompositeExtract 327 0
|
||||
Store 328 329
|
||||
330: 14(ptr) AccessChain 27(data) 322 52 48
|
||||
331: 6(int) CompositeExtract 327 1
|
||||
Store 330 331
|
||||
332: 14(ptr) AccessChain 27(data) 322 52 63
|
||||
333: 6(int) CompositeExtract 327 2
|
||||
Store 332 333
|
||||
334: 6(int) Load 8(delta)
|
||||
335: 119(ptr) AccessChain 27(data) 67 52
|
||||
336: 20(ivec4) Load 335
|
||||
337: 6(int) Load 8(delta)
|
||||
338: 20(ivec4) GroupNonUniformRotateKHR 34 336 337 48
|
||||
339: 119(ptr) AccessChain 27(data) 334 52
|
||||
Store 339 338
|
||||
340: 6(int) Load 8(delta)
|
||||
341: 149(ptr) AccessChain 27(data) 13 67 29
|
||||
342:21(float64_t) Load 341
|
||||
343: 6(int) Load 8(delta)
|
||||
344:21(float64_t) GroupNonUniformRotateKHR 34 342 343 48
|
||||
345: 149(ptr) AccessChain 27(data) 340 67 29
|
||||
Store 345 344
|
||||
346: 6(int) Load 8(delta)
|
||||
347: 157(ptr) AccessChain 27(data) 38 67
|
||||
348: 22(f64vec4) Load 347
|
||||
349:156(f64vec2) VectorShuffle 348 348 0 1
|
||||
350: 6(int) Load 8(delta)
|
||||
351:156(f64vec2) GroupNonUniformRotateKHR 34 349 350 48
|
||||
352: 149(ptr) AccessChain 27(data) 346 67 29
|
||||
353:21(float64_t) CompositeExtract 351 0
|
||||
Store 352 353
|
||||
354: 149(ptr) AccessChain 27(data) 346 67 48
|
||||
355:21(float64_t) CompositeExtract 351 1
|
||||
Store 354 355
|
||||
356: 6(int) Load 8(delta)
|
||||
357: 157(ptr) AccessChain 27(data) 52 67
|
||||
358: 22(f64vec4) Load 357
|
||||
359:168(f64vec3) VectorShuffle 358 358 0 1 2
|
||||
360: 6(int) Load 8(delta)
|
||||
361:168(f64vec3) GroupNonUniformRotateKHR 34 359 360 48
|
||||
362: 149(ptr) AccessChain 27(data) 356 67 29
|
||||
363:21(float64_t) CompositeExtract 361 0
|
||||
Store 362 363
|
||||
364: 149(ptr) AccessChain 27(data) 356 67 48
|
||||
365:21(float64_t) CompositeExtract 361 1
|
||||
Store 364 365
|
||||
366: 149(ptr) AccessChain 27(data) 356 67 63
|
||||
367:21(float64_t) CompositeExtract 361 2
|
||||
Store 366 367
|
||||
368: 6(int) Load 8(delta)
|
||||
369: 157(ptr) AccessChain 27(data) 67 67
|
||||
370: 22(f64vec4) Load 369
|
||||
371: 6(int) Load 8(delta)
|
||||
372: 22(f64vec4) GroupNonUniformRotateKHR 34 370 371 48
|
||||
373: 157(ptr) AccessChain 27(data) 368 67
|
||||
Store 373 372
|
||||
374: 6(int) Load 8(delta)
|
||||
375: 74(ptr) AccessChain 27(data) 13 38 29
|
||||
376: 12(int) Load 375
|
||||
377: 189(bool) SLessThan 376 13
|
||||
378: 6(int) Load 8(delta)
|
||||
379: 189(bool) GroupNonUniformRotateKHR 34 377 378 48
|
||||
380: 12(int) Select 379 38 13
|
||||
381: 74(ptr) AccessChain 27(data) 374 38 29
|
||||
Store 381 380
|
||||
382: 6(int) Load 8(delta)
|
||||
383: 82(ptr) AccessChain 27(data) 38 38
|
||||
384: 19(ivec4) Load 383
|
||||
385: 81(ivec2) VectorShuffle 384 384 0 1
|
||||
386: 200(bvec2) SLessThan 385 199
|
||||
387: 6(int) Load 8(delta)
|
||||
388: 200(bvec2) GroupNonUniformRotateKHR 34 386 387 48
|
||||
389: 81(ivec2) Select 388 204 199
|
||||
390: 74(ptr) AccessChain 27(data) 382 38 29
|
||||
391: 12(int) CompositeExtract 389 0
|
||||
Store 390 391
|
||||
392: 74(ptr) AccessChain 27(data) 382 38 48
|
||||
393: 12(int) CompositeExtract 389 1
|
||||
Store 392 393
|
||||
394: 6(int) Load 8(delta)
|
||||
395: 82(ptr) AccessChain 27(data) 38 38
|
||||
396: 19(ivec4) Load 395
|
||||
397: 93(ivec3) VectorShuffle 396 396 0 1 2
|
||||
398: 215(bvec3) SLessThan 397 214
|
||||
399: 6(int) Load 8(delta)
|
||||
400: 215(bvec3) GroupNonUniformRotateKHR 34 398 399 48
|
||||
401: 93(ivec3) Select 400 219 214
|
||||
402: 74(ptr) AccessChain 27(data) 394 38 29
|
||||
403: 12(int) CompositeExtract 401 0
|
||||
Store 402 403
|
||||
404: 74(ptr) AccessChain 27(data) 394 38 48
|
||||
405: 12(int) CompositeExtract 401 1
|
||||
Store 404 405
|
||||
406: 74(ptr) AccessChain 27(data) 394 38 63
|
||||
407: 12(int) CompositeExtract 401 2
|
||||
Store 406 407
|
||||
408: 6(int) Load 8(delta)
|
||||
409: 82(ptr) AccessChain 27(data) 38 38
|
||||
410: 19(ivec4) Load 409
|
||||
411: 231(bvec4) SLessThan 410 230
|
||||
412: 6(int) Load 8(delta)
|
||||
413: 231(bvec4) GroupNonUniformRotateKHR 34 411 412 48
|
||||
414: 19(ivec4) Select 413 235 230
|
||||
415: 82(ptr) AccessChain 27(data) 408 38
|
||||
Store 415 414
|
||||
Return
|
||||
FunctionEnd
|
73
Test/glsl.450.subgroupRotate.comp
Normal file
73
Test/glsl.450.subgroupRotate.comp
Normal file
@ -0,0 +1,73 @@
|
||||
#version 450
|
||||
|
||||
#extension GL_KHR_shader_subgroup_rotate: enable
|
||||
|
||||
layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in;
|
||||
|
||||
readonly buffer roblock
|
||||
{
|
||||
uint delta;
|
||||
} ro;
|
||||
|
||||
layout(binding = 0) buffer Buffers
|
||||
{
|
||||
vec4 f4;
|
||||
ivec4 i4;
|
||||
uvec4 u4;
|
||||
dvec4 d4;
|
||||
} data[4];
|
||||
|
||||
void main()
|
||||
{
|
||||
uint delta = ro.delta;
|
||||
|
||||
data[delta].f4.x = subgroupRotate(data[0].f4.x, delta);
|
||||
data[delta].f4.xy = subgroupRotate(data[1].f4.xy, delta);
|
||||
data[delta].f4.xyz = subgroupRotate(data[2].f4.xyz, delta);
|
||||
data[delta].f4 = subgroupRotate(data[3].f4, delta);
|
||||
|
||||
data[delta].i4.x = subgroupRotate(data[0].i4.x, delta);
|
||||
data[delta].i4.xy = subgroupRotate(data[1].i4.xy, delta);
|
||||
data[delta].i4.xyz = subgroupRotate(data[2].i4.xyz, delta);
|
||||
data[delta].i4 = subgroupRotate(data[3].i4, delta);
|
||||
|
||||
data[delta].u4.x = subgroupRotate(data[0].u4.x, delta);
|
||||
data[delta].u4.xy = subgroupRotate(data[1].u4.xy, delta);
|
||||
data[delta].u4.xyz = subgroupRotate(data[2].u4.xyz, delta);
|
||||
data[delta].u4 = subgroupRotate(data[3].u4, delta);
|
||||
|
||||
data[delta].d4.x = subgroupRotate(data[0].d4.x, delta);
|
||||
data[delta].d4.xy = subgroupRotate(data[1].d4.xy, delta);
|
||||
data[delta].d4.xyz = subgroupRotate(data[2].d4.xyz, delta);
|
||||
data[delta].d4 = subgroupRotate(data[3].d4, delta);
|
||||
|
||||
data[delta].i4.x = int(subgroupRotate(data[0].i4.x < 0, delta));
|
||||
data[delta].i4.xy = ivec2(subgroupRotate(lessThan(data[1].i4.xy, ivec2(0)), delta));
|
||||
data[delta].i4.xyz = ivec3(subgroupRotate(lessThan(data[1].i4.xyz, ivec3(0)), delta));
|
||||
data[delta].i4 = ivec4(subgroupRotate(lessThan(data[1].i4, ivec4(0)), delta));
|
||||
|
||||
data[delta].f4.x = subgroupClusteredRotate(data[0].f4.x, delta, 1);
|
||||
data[delta].f4.xy = subgroupClusteredRotate(data[1].f4.xy, delta, 1);
|
||||
data[delta].f4.xyz = subgroupClusteredRotate(data[2].f4.xyz, delta, 1);
|
||||
data[delta].f4 = subgroupClusteredRotate(data[3].f4, delta, 1);
|
||||
|
||||
data[delta].i4.x = subgroupClusteredRotate(data[0].i4.x, delta, 1);
|
||||
data[delta].i4.xy = subgroupClusteredRotate(data[1].i4.xy, delta, 1);
|
||||
data[delta].i4.xyz = subgroupClusteredRotate(data[2].i4.xyz, delta, 1);
|
||||
data[delta].i4 = subgroupClusteredRotate(data[3].i4, delta, 1);
|
||||
|
||||
data[delta].u4.x = subgroupClusteredRotate(data[0].u4.x, delta, 1);
|
||||
data[delta].u4.xy = subgroupClusteredRotate(data[1].u4.xy, delta, 1);
|
||||
data[delta].u4.xyz = subgroupClusteredRotate(data[2].u4.xyz, delta, 1);
|
||||
data[delta].u4 = subgroupClusteredRotate(data[3].u4, delta, 1);
|
||||
|
||||
data[delta].d4.x = subgroupClusteredRotate(data[0].d4.x, delta, 1);
|
||||
data[delta].d4.xy = subgroupClusteredRotate(data[1].d4.xy, delta, 1);
|
||||
data[delta].d4.xyz = subgroupClusteredRotate(data[2].d4.xyz, delta, 1);
|
||||
data[delta].d4 = subgroupClusteredRotate(data[3].d4, delta, 1);
|
||||
|
||||
data[delta].i4.x = int(subgroupClusteredRotate(data[0].i4.x < 0, delta, 1));
|
||||
data[delta].i4.xy = ivec2(subgroupClusteredRotate(lessThan(data[1].i4.xy, ivec2(0)), delta, 1));
|
||||
data[delta].i4.xyz = ivec3(subgroupClusteredRotate(lessThan(data[1].i4.xyz, ivec3(0)), delta, 1));
|
||||
data[delta].i4 = ivec4(subgroupClusteredRotate(lessThan(data[1].i4, ivec4(0)), delta, 1));
|
||||
}
|
62
Test/glsl.es320.subgroupRotate.comp
Normal file
62
Test/glsl.es320.subgroupRotate.comp
Normal file
@ -0,0 +1,62 @@
|
||||
#version 320 es
|
||||
|
||||
#extension GL_KHR_shader_subgroup_rotate: enable
|
||||
|
||||
layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in;
|
||||
|
||||
readonly buffer roblock
|
||||
{
|
||||
uint delta;
|
||||
} ro;
|
||||
|
||||
layout(binding = 0) buffer Buffers
|
||||
{
|
||||
vec4 f4;
|
||||
ivec4 i4;
|
||||
uvec4 u4;
|
||||
} data[4];
|
||||
|
||||
void main()
|
||||
{
|
||||
uint delta = ro.delta;
|
||||
|
||||
data[0].f4.x = subgroupRotate(data[0].f4.x, delta);
|
||||
data[0].f4.xy = subgroupRotate(data[1].f4.xy, delta);
|
||||
data[0].f4.xyz = subgroupRotate(data[2].f4.xyz, delta);
|
||||
data[0].f4 = subgroupRotate(data[3].f4, delta);
|
||||
|
||||
data[0].i4.x = subgroupRotate(data[0].i4.x, delta);
|
||||
data[0].i4.xy = subgroupRotate(data[1].i4.xy, delta);
|
||||
data[0].i4.xyz = subgroupRotate(data[2].i4.xyz, delta);
|
||||
data[0].i4 = subgroupRotate(data[3].i4, delta);
|
||||
|
||||
data[1].u4.x = subgroupRotate(data[0].u4.x, delta);
|
||||
data[1].u4.xy = subgroupRotate(data[1].u4.xy, delta);
|
||||
data[1].u4.xyz = subgroupRotate(data[2].u4.xyz, delta);
|
||||
data[1].u4 = subgroupRotate(data[3].u4, delta);
|
||||
|
||||
data[1].i4.x = int(subgroupRotate(data[0].i4.x < 0, delta));
|
||||
data[1].i4.xy = ivec2(subgroupRotate(lessThan(data[1].i4.xy, ivec2(0)), delta));
|
||||
data[1].i4.xyz = ivec3(subgroupRotate(lessThan(data[1].i4.xyz, ivec3(0)), delta));
|
||||
data[1].i4 = ivec4(subgroupRotate(lessThan(data[1].i4, ivec4(0)), delta));
|
||||
|
||||
data[2].f4.x = subgroupClusteredRotate(data[0].f4.x, delta, 1u);
|
||||
data[2].f4.xy = subgroupClusteredRotate(data[1].f4.xy, delta, 1u);
|
||||
data[2].f4.xyz = subgroupClusteredRotate(data[2].f4.xyz, delta, 1u);
|
||||
data[2].f4 = subgroupClusteredRotate(data[3].f4, delta, 1u);
|
||||
|
||||
data[2].i4.x = subgroupClusteredRotate(data[0].i4.x, delta, 1u);
|
||||
data[2].i4.xy = subgroupClusteredRotate(data[1].i4.xy, delta, 1u);
|
||||
data[2].i4.xyz = subgroupClusteredRotate(data[2].i4.xyz, delta, 1u);
|
||||
data[2].i4 = subgroupClusteredRotate(data[3].i4, delta, 1u);
|
||||
|
||||
data[3].u4.x = subgroupClusteredRotate(data[0].u4.x, delta, 1u);
|
||||
data[3].u4.xy = subgroupClusteredRotate(data[1].u4.xy, delta, 1u);
|
||||
data[3].u4.xyz = subgroupClusteredRotate(data[2].u4.xyz, delta, 1u);
|
||||
data[3].u4 = subgroupClusteredRotate(data[3].u4, delta, 1u);
|
||||
|
||||
data[3].i4.x = int(subgroupClusteredRotate(data[0].i4.x < 0, delta, 1u));
|
||||
data[3].i4.xy = ivec2(subgroupClusteredRotate(lessThan(data[1].i4.xy, ivec2(0)), delta, 1u));
|
||||
data[3].i4.xyz = ivec3(subgroupClusteredRotate(lessThan(data[1].i4.xyz, ivec3(0)), delta, 1u));
|
||||
data[3].i4 = ivec4(subgroupClusteredRotate(lessThan(data[1].i4, ivec4(0)), delta, 1u));
|
||||
}
|
100
Test/spv.subgroupExtendedTypesRotate.comp
Normal file
100
Test/spv.subgroupExtendedTypesRotate.comp
Normal file
@ -0,0 +1,100 @@
|
||||
#version 450
|
||||
|
||||
#extension GL_KHR_shader_subgroup_rotate: 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;
|
||||
|
||||
readonly buffer roblock
|
||||
{
|
||||
uint delta;
|
||||
} ro;
|
||||
|
||||
layout(binding = 0) buffer Buffers
|
||||
{
|
||||
i8vec4 i8;
|
||||
u8vec4 u8;
|
||||
i16vec4 i16;
|
||||
u16vec4 u16;
|
||||
i64vec4 i64;
|
||||
u64vec4 u64;
|
||||
f16vec4 f16;
|
||||
} data[4];
|
||||
|
||||
void main()
|
||||
{
|
||||
uint delta = ro.delta;
|
||||
|
||||
data[delta].i8.x = subgroupRotate(data[0].i8.x, delta);
|
||||
data[delta].i8.xy = subgroupRotate(data[1].i8.xy, delta);
|
||||
data[delta].i8.xyz = subgroupRotate(data[2].i8.xyz, delta);
|
||||
data[delta].i8 = subgroupRotate(data[3].i8, delta);
|
||||
|
||||
data[delta].i8.x = subgroupClusteredRotate(data[0].i8.x, delta, 1);
|
||||
data[delta].i8.xy = subgroupClusteredRotate(data[1].i8.xy, delta, 1);
|
||||
data[delta].i8.xyz = subgroupClusteredRotate(data[2].i8.xyz, delta, 1);
|
||||
data[delta].i8 = subgroupClusteredRotate(data[3].i8, delta, 1);
|
||||
|
||||
data[delta].u8.x = subgroupRotate(data[0].u8.x, delta);
|
||||
data[delta].u8.xy = subgroupRotate(data[1].u8.xy, delta);
|
||||
data[delta].u8.xyz = subgroupRotate(data[2].u8.xyz, delta);
|
||||
data[delta].u8 = subgroupRotate(data[3].u8, delta);
|
||||
|
||||
data[delta].u8.x = subgroupClusteredRotate(data[0].u8.x, delta, 1);
|
||||
data[delta].u8.xy = subgroupClusteredRotate(data[1].u8.xy, delta, 1);
|
||||
data[delta].u8.xyz = subgroupClusteredRotate(data[2].u8.xyz, delta, 1);
|
||||
data[delta].u8 = subgroupClusteredRotate(data[3].u8, delta, 1);
|
||||
|
||||
data[delta].i16.x = subgroupRotate(data[0].i16.x, delta);
|
||||
data[delta].i16.xy = subgroupRotate(data[1].i16.xy, delta);
|
||||
data[delta].i16.xyz = subgroupRotate(data[2].i16.xyz, delta);
|
||||
data[delta].i16 = subgroupRotate(data[3].i16, delta);
|
||||
|
||||
data[delta].i16.x = subgroupClusteredRotate(data[0].i16.x, delta, 1);
|
||||
data[delta].i16.xy = subgroupClusteredRotate(data[1].i16.xy, delta, 1);
|
||||
data[delta].i16.xyz = subgroupClusteredRotate(data[2].i16.xyz, delta, 1);
|
||||
data[delta].i16 = subgroupClusteredRotate(data[3].i16, delta, 1);
|
||||
|
||||
data[delta].u16.x = subgroupRotate(data[0].u16.x, delta);
|
||||
data[delta].u16.xy = subgroupRotate(data[1].u16.xy, delta);
|
||||
data[delta].u16.xyz = subgroupRotate(data[2].u16.xyz, delta);
|
||||
data[delta].u16 = subgroupRotate(data[3].u16, delta);
|
||||
|
||||
data[delta].u16.x = subgroupClusteredRotate(data[0].u16.x, delta, 1);
|
||||
data[delta].u16.xy = subgroupClusteredRotate(data[1].u16.xy, delta, 1);
|
||||
data[delta].u16.xyz = subgroupClusteredRotate(data[2].u16.xyz, delta, 1);
|
||||
data[delta].u16 = subgroupClusteredRotate(data[3].u16, delta, 1);
|
||||
|
||||
data[delta].i64.x = subgroupRotate(data[0].i64.x, delta);
|
||||
data[delta].i64.xy = subgroupRotate(data[1].i64.xy, delta);
|
||||
data[delta].i64.xyz = subgroupRotate(data[2].i64.xyz, delta);
|
||||
data[delta].i64 = subgroupRotate(data[3].i64, delta);
|
||||
|
||||
data[delta].i64.x = subgroupClusteredRotate(data[0].i64.x, delta, 1);
|
||||
data[delta].i64.xy = subgroupClusteredRotate(data[1].i64.xy, delta, 1);
|
||||
data[delta].i64.xyz = subgroupClusteredRotate(data[2].i64.xyz, delta, 1);
|
||||
data[delta].i64 = subgroupClusteredRotate(data[3].i64, delta, 1);
|
||||
|
||||
data[delta].u64.x = subgroupRotate(data[0].u64.x, delta);
|
||||
data[delta].u64.xy = subgroupRotate(data[1].u64.xy, delta);
|
||||
data[delta].u64.xyz = subgroupRotate(data[2].u64.xyz, delta);
|
||||
data[delta].u64 = subgroupRotate(data[3].u64, delta);
|
||||
|
||||
data[delta].u64.x = subgroupClusteredRotate(data[0].u64.x, delta, 1);
|
||||
data[delta].u64.xy = subgroupClusteredRotate(data[1].u64.xy, delta, 1);
|
||||
data[delta].u64.xyz = subgroupClusteredRotate(data[2].u64.xyz, delta, 1);
|
||||
data[delta].u64 = subgroupClusteredRotate(data[3].u64, delta, 1);
|
||||
|
||||
data[delta].f16.x = subgroupRotate(data[0].f16.x, delta);
|
||||
data[delta].f16.xy = subgroupRotate(data[1].f16.xy, delta);
|
||||
data[delta].f16.xyz = subgroupRotate(data[2].f16.xyz, delta);
|
||||
data[delta].f16 = subgroupRotate(data[3].f16, delta);
|
||||
|
||||
data[delta].f16.x = subgroupClusteredRotate(data[0].f16.x, delta, 1);
|
||||
data[delta].f16.xy = subgroupClusteredRotate(data[1].f16.xy, delta, 1);
|
||||
data[delta].f16.xyz = subgroupClusteredRotate(data[2].f16.xyz, delta, 1);
|
||||
data[delta].f16 = subgroupClusteredRotate(data[3].f16, delta, 1);
|
||||
}
|
100
Test/spv.subgroupExtendedTypesRotateNeg.comp
Normal file
100
Test/spv.subgroupExtendedTypesRotateNeg.comp
Normal file
@ -0,0 +1,100 @@
|
||||
#version 450
|
||||
|
||||
#extension GL_KHR_shader_subgroup_rotate: 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;
|
||||
|
||||
readonly buffer roblock
|
||||
{
|
||||
uint delta;
|
||||
} ro;
|
||||
|
||||
layout(binding = 0) buffer Buffers
|
||||
{
|
||||
i8vec4 i8;
|
||||
u8vec4 u8;
|
||||
i16vec4 i16;
|
||||
u16vec4 u16;
|
||||
i64vec4 i64;
|
||||
u64vec4 u64;
|
||||
f16vec4 f16;
|
||||
} data[4];
|
||||
|
||||
void main()
|
||||
{
|
||||
uint delta = ro.delta;
|
||||
|
||||
data[delta].i8.x = subgroupRotate(data[0].i8.x, delta);
|
||||
data[delta].i8.xy = subgroupRotate(data[1].i8.xy, delta);
|
||||
data[delta].i8.xyz = subgroupRotate(data[2].i8.xyz, delta);
|
||||
data[delta].i8 = subgroupRotate(data[3].i8, delta);
|
||||
|
||||
data[delta].i8.x = subgroupClusteredRotate(data[0].i8.x, delta, 1);
|
||||
data[delta].i8.xy = subgroupClusteredRotate(data[1].i8.xy, delta, 1);
|
||||
data[delta].i8.xyz = subgroupClusteredRotate(data[2].i8.xyz, delta, 1);
|
||||
data[delta].i8 = subgroupClusteredRotate(data[3].i8, delta, 1);
|
||||
|
||||
data[delta].u8.x = subgroupRotate(data[0].u8.x, delta);
|
||||
data[delta].u8.xy = subgroupRotate(data[1].u8.xy, delta);
|
||||
data[delta].u8.xyz = subgroupRotate(data[2].u8.xyz, delta);
|
||||
data[delta].u8 = subgroupRotate(data[3].u8, delta);
|
||||
|
||||
data[delta].u8.x = subgroupClusteredRotate(data[0].u8.x, delta, 1);
|
||||
data[delta].u8.xy = subgroupClusteredRotate(data[1].u8.xy, delta, 1);
|
||||
data[delta].u8.xyz = subgroupClusteredRotate(data[2].u8.xyz, delta, 1);
|
||||
data[delta].u8 = subgroupClusteredRotate(data[3].u8, delta, 1);
|
||||
|
||||
data[delta].i16.x = subgroupRotate(data[0].i16.x, delta);
|
||||
data[delta].i16.xy = subgroupRotate(data[1].i16.xy, delta);
|
||||
data[delta].i16.xyz = subgroupRotate(data[2].i16.xyz, delta);
|
||||
data[delta].i16 = subgroupRotate(data[3].i16, delta);
|
||||
|
||||
data[delta].i16.x = subgroupClusteredRotate(data[0].i16.x, delta, 1);
|
||||
data[delta].i16.xy = subgroupClusteredRotate(data[1].i16.xy, delta, 1);
|
||||
data[delta].i16.xyz = subgroupClusteredRotate(data[2].i16.xyz, delta, 1);
|
||||
data[delta].i16 = subgroupClusteredRotate(data[3].i16, delta, 1);
|
||||
|
||||
data[delta].u16.x = subgroupRotate(data[0].u16.x, delta);
|
||||
data[delta].u16.xy = subgroupRotate(data[1].u16.xy, delta);
|
||||
data[delta].u16.xyz = subgroupRotate(data[2].u16.xyz, delta);
|
||||
data[delta].u16 = subgroupRotate(data[3].u16, delta);
|
||||
|
||||
data[delta].u16.x = subgroupClusteredRotate(data[0].u16.x, delta, 1);
|
||||
data[delta].u16.xy = subgroupClusteredRotate(data[1].u16.xy, delta, 1);
|
||||
data[delta].u16.xyz = subgroupClusteredRotate(data[2].u16.xyz, delta, 1);
|
||||
data[delta].u16 = subgroupClusteredRotate(data[3].u16, delta, 1);
|
||||
|
||||
data[delta].i64.x = subgroupRotate(data[0].i64.x, delta);
|
||||
data[delta].i64.xy = subgroupRotate(data[1].i64.xy, delta);
|
||||
data[delta].i64.xyz = subgroupRotate(data[2].i64.xyz, delta);
|
||||
data[delta].i64 = subgroupRotate(data[3].i64, delta);
|
||||
|
||||
data[delta].i64.x = subgroupClusteredRotate(data[0].i64.x, delta, 1);
|
||||
data[delta].i64.xy = subgroupClusteredRotate(data[1].i64.xy, delta, 1);
|
||||
data[delta].i64.xyz = subgroupClusteredRotate(data[2].i64.xyz, delta, 1);
|
||||
data[delta].i64 = subgroupClusteredRotate(data[3].i64, delta, 1);
|
||||
|
||||
data[delta].u64.x = subgroupRotate(data[0].u64.x, delta);
|
||||
data[delta].u64.xy = subgroupRotate(data[1].u64.xy, delta);
|
||||
data[delta].u64.xyz = subgroupRotate(data[2].u64.xyz, delta);
|
||||
data[delta].u64 = subgroupRotate(data[3].u64, delta);
|
||||
|
||||
data[delta].u64.x = subgroupClusteredRotate(data[0].u64.x, delta, 1);
|
||||
data[delta].u64.xy = subgroupClusteredRotate(data[1].u64.xy, delta, 1);
|
||||
data[delta].u64.xyz = subgroupClusteredRotate(data[2].u64.xyz, delta, 1);
|
||||
data[delta].u64 = subgroupClusteredRotate(data[3].u64, delta, 1);
|
||||
|
||||
data[delta].f16.x = subgroupRotate(data[0].f16.x, delta);
|
||||
data[delta].f16.xy = subgroupRotate(data[1].f16.xy, delta);
|
||||
data[delta].f16.xyz = subgroupRotate(data[2].f16.xyz, delta);
|
||||
data[delta].f16 = subgroupRotate(data[3].f16, delta);
|
||||
|
||||
data[delta].f16.x = subgroupClusteredRotate(data[0].f16.x, delta, 1);
|
||||
data[delta].f16.xy = subgroupClusteredRotate(data[1].f16.xy, delta, 1);
|
||||
data[delta].f16.xyz = subgroupClusteredRotate(data[2].f16.xyz, delta, 1);
|
||||
data[delta].f16 = subgroupClusteredRotate(data[3].f16, delta, 1);
|
||||
}
|
73
Test/spv.subgroupRotate.comp
Normal file
73
Test/spv.subgroupRotate.comp
Normal file
@ -0,0 +1,73 @@
|
||||
#version 450
|
||||
|
||||
#extension GL_KHR_shader_subgroup_rotate: enable
|
||||
|
||||
layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in;
|
||||
|
||||
readonly buffer roblock
|
||||
{
|
||||
uint delta;
|
||||
} ro;
|
||||
|
||||
layout(binding = 0) buffer Buffers
|
||||
{
|
||||
vec4 f4;
|
||||
ivec4 i4;
|
||||
uvec4 u4;
|
||||
dvec4 d4;
|
||||
} data[4];
|
||||
|
||||
void main()
|
||||
{
|
||||
uint delta = ro.delta;
|
||||
|
||||
data[delta].f4.x = subgroupRotate(data[0].f4.x, delta);
|
||||
data[delta].f4.xy = subgroupRotate(data[1].f4.xy, delta);
|
||||
data[delta].f4.xyz = subgroupRotate(data[2].f4.xyz, delta);
|
||||
data[delta].f4 = subgroupRotate(data[3].f4, delta);
|
||||
|
||||
data[delta].i4.x = subgroupRotate(data[0].i4.x, delta);
|
||||
data[delta].i4.xy = subgroupRotate(data[1].i4.xy, delta);
|
||||
data[delta].i4.xyz = subgroupRotate(data[2].i4.xyz, delta);
|
||||
data[delta].i4 = subgroupRotate(data[3].i4, delta);
|
||||
|
||||
data[delta].u4.x = subgroupRotate(data[0].u4.x, delta);
|
||||
data[delta].u4.xy = subgroupRotate(data[1].u4.xy, delta);
|
||||
data[delta].u4.xyz = subgroupRotate(data[2].u4.xyz, delta);
|
||||
data[delta].u4 = subgroupRotate(data[3].u4, delta);
|
||||
|
||||
data[delta].d4.x = subgroupRotate(data[0].d4.x, delta);
|
||||
data[delta].d4.xy = subgroupRotate(data[1].d4.xy, delta);
|
||||
data[delta].d4.xyz = subgroupRotate(data[2].d4.xyz, delta);
|
||||
data[delta].d4 = subgroupRotate(data[3].d4, delta);
|
||||
|
||||
data[delta].i4.x = int(subgroupRotate(data[0].i4.x < 0, delta));
|
||||
data[delta].i4.xy = ivec2(subgroupRotate(lessThan(data[1].i4.xy, ivec2(0)), delta));
|
||||
data[delta].i4.xyz = ivec3(subgroupRotate(lessThan(data[1].i4.xyz, ivec3(0)), delta));
|
||||
data[delta].i4 = ivec4(subgroupRotate(lessThan(data[1].i4, ivec4(0)), delta));
|
||||
|
||||
data[delta].f4.x = subgroupClusteredRotate(data[0].f4.x, delta, 1);
|
||||
data[delta].f4.xy = subgroupClusteredRotate(data[1].f4.xy, delta, 1);
|
||||
data[delta].f4.xyz = subgroupClusteredRotate(data[2].f4.xyz, delta, 1);
|
||||
data[delta].f4 = subgroupClusteredRotate(data[3].f4, delta, 1);
|
||||
|
||||
data[delta].i4.x = subgroupClusteredRotate(data[0].i4.x, delta, 1);
|
||||
data[delta].i4.xy = subgroupClusteredRotate(data[1].i4.xy, delta, 1);
|
||||
data[delta].i4.xyz = subgroupClusteredRotate(data[2].i4.xyz, delta, 1);
|
||||
data[delta].i4 = subgroupClusteredRotate(data[3].i4, delta, 1);
|
||||
|
||||
data[delta].u4.x = subgroupClusteredRotate(data[0].u4.x, delta, 1);
|
||||
data[delta].u4.xy = subgroupClusteredRotate(data[1].u4.xy, delta, 1);
|
||||
data[delta].u4.xyz = subgroupClusteredRotate(data[2].u4.xyz, delta, 1);
|
||||
data[delta].u4 = subgroupClusteredRotate(data[3].u4, delta, 1);
|
||||
|
||||
data[delta].d4.x = subgroupClusteredRotate(data[0].d4.x, delta, 1);
|
||||
data[delta].d4.xy = subgroupClusteredRotate(data[1].d4.xy, delta, 1);
|
||||
data[delta].d4.xyz = subgroupClusteredRotate(data[2].d4.xyz, delta, 1);
|
||||
data[delta].d4 = subgroupClusteredRotate(data[3].d4, delta, 1);
|
||||
|
||||
data[delta].i4.x = int(subgroupClusteredRotate(data[0].i4.x < 0, delta, 1));
|
||||
data[delta].i4.xy = ivec2(subgroupClusteredRotate(lessThan(data[1].i4.xy, ivec2(0)), delta, 1));
|
||||
data[delta].i4.xyz = ivec3(subgroupClusteredRotate(lessThan(data[1].i4.xyz, ivec3(0)), delta, 1));
|
||||
data[delta].i4 = ivec4(subgroupClusteredRotate(lessThan(data[1].i4, ivec4(0)), delta, 1));
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
//
|
||||
// Copyright (C) 2002-2005 3Dlabs Inc. Ltd.
|
||||
// Copyright (C) 2012-2016 LunarG, Inc.
|
||||
// Copyright (C) 2017 ARM Limited.
|
||||
// Copyright (C) 2017, 2022-2024 Arm Limited.
|
||||
// Modifications Copyright (C) 2020 Advanced Micro Devices, Inc. All rights reserved.
|
||||
//
|
||||
// All rights reserved.
|
||||
@ -506,6 +506,8 @@ enum TOperator {
|
||||
EOpSubgroupShuffleXor,
|
||||
EOpSubgroupShuffleUp,
|
||||
EOpSubgroupShuffleDown,
|
||||
EOpSubgroupRotate,
|
||||
EOpSubgroupClusteredRotate,
|
||||
EOpSubgroupAdd,
|
||||
EOpSubgroupMul,
|
||||
EOpSubgroupMin,
|
||||
|
@ -2,7 +2,7 @@
|
||||
// Copyright (C) 2002-2005 3Dlabs Inc. Ltd.
|
||||
// Copyright (C) 2012-2016 LunarG, Inc.
|
||||
// Copyright (C) 2015-2020 Google, Inc.
|
||||
// Copyright (C) 2017 ARM Limited.
|
||||
// Copyright (C) 2017, 2022-2024 Arm Limited.
|
||||
// Modifications Copyright (C) 2020-2021 Advanced Micro Devices, Inc. All rights reserved.
|
||||
//
|
||||
// All rights reserved.
|
||||
@ -2099,6 +2099,8 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
||||
"%s subgroupShuffleXor(%s, uint);\n",
|
||||
"%s subgroupShuffleUp(%s, uint delta);\n",
|
||||
"%s subgroupShuffleDown(%s, uint delta);\n",
|
||||
"%s subgroupRotate(%s, uint);\n",
|
||||
"%s subgroupClusteredRotate(%s, uint, uint);\n",
|
||||
"%s subgroupAdd(%s);\n",
|
||||
"%s subgroupMul(%s);\n",
|
||||
"%s subgroupMin(%s);\n",
|
||||
@ -8670,6 +8672,8 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
|
||||
symbolTable.setFunctionExtensions("subgroupShuffleXor", 1, &E_GL_KHR_shader_subgroup_shuffle);
|
||||
symbolTable.setFunctionExtensions("subgroupShuffleUp", 1, &E_GL_KHR_shader_subgroup_shuffle_relative);
|
||||
symbolTable.setFunctionExtensions("subgroupShuffleDown", 1, &E_GL_KHR_shader_subgroup_shuffle_relative);
|
||||
symbolTable.setFunctionExtensions("subgroupRotate", 1, &E_GL_KHR_shader_subgroup_rotate);
|
||||
symbolTable.setFunctionExtensions("subgroupClusteredRotate", 1, &E_GL_KHR_shader_subgroup_rotate);
|
||||
symbolTable.setFunctionExtensions("subgroupAdd", 1, &E_GL_KHR_shader_subgroup_arithmetic);
|
||||
symbolTable.setFunctionExtensions("subgroupMul", 1, &E_GL_KHR_shader_subgroup_arithmetic);
|
||||
symbolTable.setFunctionExtensions("subgroupMin", 1, &E_GL_KHR_shader_subgroup_arithmetic);
|
||||
@ -9931,6 +9935,8 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
|
||||
symbolTable.relateToOperator("subgroupShuffleXor", EOpSubgroupShuffleXor);
|
||||
symbolTable.relateToOperator("subgroupShuffleUp", EOpSubgroupShuffleUp);
|
||||
symbolTable.relateToOperator("subgroupShuffleDown", EOpSubgroupShuffleDown);
|
||||
symbolTable.relateToOperator("subgroupRotate", EOpSubgroupRotate);
|
||||
symbolTable.relateToOperator("subgroupClusteredRotate", EOpSubgroupClusteredRotate);
|
||||
symbolTable.relateToOperator("subgroupAdd", EOpSubgroupAdd);
|
||||
symbolTable.relateToOperator("subgroupMul", EOpSubgroupMul);
|
||||
symbolTable.relateToOperator("subgroupMin", EOpSubgroupMin);
|
||||
|
@ -1,7 +1,7 @@
|
||||
//
|
||||
// Copyright (C) 2002-2005 3Dlabs Inc. Ltd.
|
||||
// Copyright (C) 2012-2013 LunarG, Inc.
|
||||
// Copyright (C) 2017 ARM Limited.
|
||||
// Copyright (C) 2017, 2022-2024 Arm Limited.
|
||||
// Copyright (C) 2015-2020 Google, Inc.
|
||||
// Modifications Copyright (C) 2020 Advanced Micro Devices, Inc. All rights reserved.
|
||||
//
|
||||
@ -235,6 +235,7 @@ void TParseVersions::initializeExtensionBehavior()
|
||||
extensionBehavior[E_GL_KHR_shader_subgroup_ballot] = EBhDisable;
|
||||
extensionBehavior[E_GL_KHR_shader_subgroup_shuffle] = EBhDisable;
|
||||
extensionBehavior[E_GL_KHR_shader_subgroup_shuffle_relative] = EBhDisable;
|
||||
extensionBehavior[E_GL_KHR_shader_subgroup_rotate] = EBhDisable;
|
||||
extensionBehavior[E_GL_KHR_shader_subgroup_clustered] = EBhDisable;
|
||||
extensionBehavior[E_GL_KHR_shader_subgroup_quad] = EBhDisable;
|
||||
extensionBehavior[E_GL_KHR_memory_scope_semantics] = EBhDisable;
|
||||
|
@ -1,7 +1,7 @@
|
||||
//
|
||||
// Copyright (C) 2002-2005 3Dlabs Inc. Ltd.
|
||||
// Copyright (C) 2012-2013 LunarG, Inc.
|
||||
// Copyright (C) 2017 ARM Limited.
|
||||
// Copyright (C) 2017, 2022-2024 Arm Limited.
|
||||
// Copyright (C) 2015-2018 Google, Inc.
|
||||
// Modifications Copyright (C) 2020 Advanced Micro Devices, Inc. All rights reserved.
|
||||
//
|
||||
@ -171,6 +171,7 @@ const char* const E_GL_KHR_shader_subgroup_arithmetic = "GL_KHR_shader_sub
|
||||
const char* const E_GL_KHR_shader_subgroup_ballot = "GL_KHR_shader_subgroup_ballot";
|
||||
const char* const E_GL_KHR_shader_subgroup_shuffle = "GL_KHR_shader_subgroup_shuffle";
|
||||
const char* const E_GL_KHR_shader_subgroup_shuffle_relative = "GL_KHR_shader_subgroup_shuffle_relative";
|
||||
const char* const E_GL_KHR_shader_subgroup_rotate = "GL_KHR_shader_subgroup_rotate";
|
||||
const char* const E_GL_KHR_shader_subgroup_clustered = "GL_KHR_shader_subgroup_clustered";
|
||||
const char* const E_GL_KHR_shader_subgroup_quad = "GL_KHR_shader_subgroup_quad";
|
||||
const char* const E_GL_KHR_memory_scope_semantics = "GL_KHR_memory_scope_semantics";
|
||||
|
@ -1,7 +1,7 @@
|
||||
//
|
||||
// Copyright (C) 2002-2005 3Dlabs Inc. Ltd.
|
||||
// Copyright (C) 2012-2016 LunarG, Inc.
|
||||
// Copyright (C) 2017 ARM Limited.
|
||||
// Copyright (C) 2017, 2022-2024 Arm Limited.
|
||||
// Modifications Copyright (C) 2020 Advanced Micro Devices, Inc. All rights reserved.
|
||||
//
|
||||
// All rights reserved.
|
||||
@ -565,6 +565,8 @@ bool TOutputTraverser::visitUnary(TVisit /* visit */, TIntermUnary* node)
|
||||
case EOpSubgroupShuffleXor: out.debug << "subgroupShuffleXor"; break;
|
||||
case EOpSubgroupShuffleUp: out.debug << "subgroupShuffleUp"; break;
|
||||
case EOpSubgroupShuffleDown: out.debug << "subgroupShuffleDown"; break;
|
||||
case EOpSubgroupRotate: out.debug << "subgroupRotate"; break;
|
||||
case EOpSubgroupClusteredRotate: out.debug << "subgroupClusteredRotate"; break;
|
||||
case EOpSubgroupAdd: out.debug << "subgroupAdd"; break;
|
||||
case EOpSubgroupMul: out.debug << "subgroupMul"; break;
|
||||
case EOpSubgroupMin: out.debug << "subgroupMin"; break;
|
||||
@ -1002,6 +1004,8 @@ bool TOutputTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* node
|
||||
case EOpSubgroupShuffleXor: out.debug << "subgroupShuffleXor"; break;
|
||||
case EOpSubgroupShuffleUp: out.debug << "subgroupShuffleUp"; break;
|
||||
case EOpSubgroupShuffleDown: out.debug << "subgroupShuffleDown"; break;
|
||||
case EOpSubgroupRotate: out.debug << "subgroupRotate"; break;
|
||||
case EOpSubgroupClusteredRotate: out.debug << "subgroupClusteredRotate"; break;
|
||||
case EOpSubgroupAdd: out.debug << "subgroupAdd"; break;
|
||||
case EOpSubgroupMul: out.debug << "subgroupMul"; break;
|
||||
case EOpSubgroupMin: out.debug << "subgroupMin"; break;
|
||||
|
@ -1,5 +1,6 @@
|
||||
//
|
||||
// Copyright (C) 2016 Google, Inc.
|
||||
// Copyright (C) 2022-2024 Arm Limited.
|
||||
//
|
||||
// All rights reserved.
|
||||
//
|
||||
@ -252,6 +253,7 @@ INSTANTIATE_TEST_SUITE_P(
|
||||
"glsl.450.subgroupClustered.comp",
|
||||
"glsl.450.subgroupClusteredNeg.comp",
|
||||
"glsl.450.subgroupPartitioned.comp",
|
||||
"glsl.450.subgroupRotate.comp",
|
||||
"glsl.450.subgroupShuffle.comp",
|
||||
"glsl.450.subgroupShuffleRelative.comp",
|
||||
"glsl.450.subgroupQuad.comp",
|
||||
@ -277,6 +279,7 @@ INSTANTIATE_TEST_SUITE_P(
|
||||
"glsl.es320.subgroupClustered.comp",
|
||||
"glsl.es320.subgroupClusteredNeg.comp",
|
||||
"glsl.es320.subgroupPartitioned.comp",
|
||||
"glsl.es320.subgroupRotate.comp",
|
||||
"glsl.es320.subgroupShuffle.comp",
|
||||
"glsl.es320.subgroupShuffleRelative.comp",
|
||||
"glsl.es320.subgroupQuad.comp",
|
||||
|
@ -1,6 +1,6 @@
|
||||
//
|
||||
// Copyright (C) 2016 Google, Inc.
|
||||
// Copyright (C) 2019 ARM Limited.
|
||||
// Copyright (C) 2019, 2022-2024 Arm Limited.
|
||||
// Modifications Copyright (C) 2020 Advanced Micro Devices, Inc. All rights reserved.
|
||||
//
|
||||
// All rights reserved.
|
||||
@ -616,6 +616,7 @@ INSTANTIATE_TEST_SUITE_P(
|
||||
"spv.subgroupClustered.comp",
|
||||
"spv.subgroupClusteredNeg.comp",
|
||||
"spv.subgroupPartitioned.comp",
|
||||
"spv.subgroupRotate.comp",
|
||||
"spv.subgroupShuffle.comp",
|
||||
"spv.subgroupShuffleRelative.comp",
|
||||
"spv.subgroupQuad.comp",
|
||||
@ -628,6 +629,8 @@ INSTANTIATE_TEST_SUITE_P(
|
||||
"spv.subgroupExtendedTypesClusteredNeg.comp",
|
||||
"spv.subgroupExtendedTypesPartitioned.comp",
|
||||
"spv.subgroupExtendedTypesPartitionedNeg.comp",
|
||||
"spv.subgroupExtendedTypesRotate.comp",
|
||||
"spv.subgroupExtendedTypesRotateNeg.comp",
|
||||
"spv.subgroupExtendedTypesShuffle.comp",
|
||||
"spv.subgroupExtendedTypesShuffleNeg.comp",
|
||||
"spv.subgroupExtendedTypesShuffleRelative.comp",
|
||||
|
Loading…
Reference in New Issue
Block a user