1270 lines
43 KiB
Plaintext
1270 lines
43 KiB
Plaintext
#!amber
|
|
# Copyright (c) 2024 The Khronos Group Inc.
|
|
# Copyright (c) 2024 AMD
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
#
|
|
# Immediate/inline arguments to packed 16-bit operations might handled
|
|
# incorrectly in the compiler backend.
|
|
|
|
DEVICE_FEATURE Storage16BitFeatures.storageBuffer16BitAccess
|
|
DEVICE_FEATURE Float16Int8Features.shaderFloat16
|
|
DEVICE_FEATURE shaderInt16
|
|
DEVICE_PROPERTY FloatControlsProperties.shaderDenormPreserveFloat16
|
|
|
|
# SPIR-V code below generated from following GLSL source and extended with
|
|
# OpCapability DenormPreserve
|
|
# OpExtension "SPV_KHR_float_controls"
|
|
# OpExecutionMode %4 DenormPreserve 16
|
|
#
|
|
# #version 460
|
|
# #extension GL_EXT_shader_16bit_storage : require
|
|
# #extension GL_EXT_shader_explicit_arithmetic_types : require
|
|
#
|
|
# layout(local_size_x = 8, local_size_y = 8, local_size_z = 1) in;
|
|
#
|
|
# layout(set = 0, binding = 0) buffer Result1 {
|
|
# f16vec2 fp16[];
|
|
# };
|
|
#
|
|
# layout(set = 0, binding = 1) buffer Result2 {
|
|
# i16vec2 i16[];
|
|
# };
|
|
#
|
|
# layout(set = 0, binding = 2) uniform Constants {
|
|
# uvec3 bound;
|
|
# } consts;
|
|
#
|
|
# void main() {
|
|
# if (any(greaterThanEqual(gl_GlobalInvocationID, consts.bound)))
|
|
# return;
|
|
#
|
|
# ivec2 id32 = ivec2(gl_GlobalInvocationID.xy);
|
|
# int idx = id32.y * 8 + id32.x;
|
|
#
|
|
# fp16[idx + 0] += f16vec2(1.0, 1.0);
|
|
# fp16[idx + 1] += f16vec2(-1.0, -1.0);
|
|
# fp16[idx + 2] += f16vec2(0.5, 0.5);
|
|
# fp16[idx + 3] += f16vec2(-0.5, -0.5);
|
|
# fp16[idx + 4] += f16vec2(2.0, 2.0);
|
|
# fp16[idx + 5] += f16vec2(-2.0, -2.0);
|
|
# fp16[idx + 6] += f16vec2(4.0, 4.0);
|
|
# fp16[idx + 7] += f16vec2(-4.0, -4.0);
|
|
# fp16[idx + 8] += int16BitsToHalf(i16vec2(0x3118, 0x3118)); // 1/2pi
|
|
#
|
|
# fp16[idx + 9] += f16vec2(1.0, 0.0);
|
|
# fp16[idx + 10] += f16vec2(0.0, 1.0);
|
|
# fp16[idx + 11] += f16vec2(1.0, -1.0);
|
|
# fp16[idx + 12] += f16vec2(-1.0, 1.0);
|
|
#
|
|
# float16_t int1 = int16BitsToHalf(1s);
|
|
# float16_t int17 = int16BitsToHalf(17s);
|
|
# float16_t int64 = int16BitsToHalf(64s);
|
|
# fp16[idx + 13] += f16vec2(int1, 0);
|
|
# fp16[idx + 14] += f16vec2(int1, int1);
|
|
# fp16[idx + 15] += f16vec2(0, int1);
|
|
# fp16[idx + 16] += f16vec2(int17, 0);
|
|
# fp16[idx + 17] += f16vec2(int17, int17);
|
|
# fp16[idx + 18] += f16vec2(0, int17);
|
|
# fp16[idx + 19] += f16vec2(int64, 0);
|
|
# fp16[idx + 20] += f16vec2(int64, int64);
|
|
# fp16[idx + 21] += f16vec2(0, int64);
|
|
#
|
|
# fp16[idx + 22] -= f16vec2(1.0, 1.0);
|
|
# fp16[idx + 23] -= f16vec2(0.0, 1.0);
|
|
# fp16[idx + 24] -= f16vec2(1.0, 0.0);
|
|
#
|
|
# f16vec2 a = fp16[idx + 29];
|
|
# fp16[idx + 25] = fma(f16vec2(2.0, 2.0), a, fp16[idx + 25]);
|
|
# fp16[idx + 26] = fma(f16vec2(0.0, 2.0), a, fp16[idx + 26]);
|
|
# fp16[idx + 27] = fma(f16vec2(2.0, 0.0), a, fp16[idx + 27]);
|
|
# fp16[idx + 28] = fma(f16vec2(2.0, 1.0), a, fp16[idx + 28]);
|
|
#
|
|
# fp16[idx + 29] *= f16vec2(2.0, 2.0);
|
|
# fp16[idx + 30] *= f16vec2(0.0, 2.0);
|
|
# fp16[idx + 31] *= f16vec2(2.0, 0.0);
|
|
# fp16[idx + 32] *= f16vec2(2.0, 1.0);
|
|
#
|
|
# i16[idx + 33] += i16vec2(1, 1);
|
|
# i16[idx + 34] += i16vec2(1, 0);
|
|
# i16[idx + 35] += i16vec2(0, 1);
|
|
# i16[idx + 36] += i16vec2(64, 64);
|
|
# i16[idx + 37] += i16vec2(-16, -16);
|
|
#
|
|
# i16[idx + 38] += i16vec2(0x3800, 0); // fp16 0.5
|
|
# i16[idx + 39] += i16vec2(0, 0x3800); // fp16 0.5
|
|
# i16[idx + 40] += i16vec2(0x3800, 0x3800); // fp16 0.5
|
|
# i16[idx + 41] += i16vec2(0, 0x3f00); // fp32 0.5
|
|
# i16[idx + 42] += i16vec2(0x3f00, 0); // fp32 0.5
|
|
# i16[idx + 43] += i16vec2(0x3f00, 0x3f00); // fp32 0.5
|
|
# i16[idx + 44] += i16vec2(0xb800, 0); // fp16 -0.5
|
|
# i16[idx + 45] += i16vec2(0, 0xbf00); // fp32 -0.5
|
|
# i16[idx + 46] += i16vec2(0x3c00, 0); // fp16 1.0
|
|
# i16[idx + 47] += i16vec2(0, 0x3f80); // fp32 1.0
|
|
# i16[idx + 48] += i16vec2(0xbc00, 0); // fp16 -1.0
|
|
# i16[idx + 49] += i16vec2(0, 0xbf80); // fp32 -1.0
|
|
# i16[idx + 50] += i16vec2(0x4000, 0); // fp16 2.0
|
|
# i16[idx + 51] += i16vec2(0, 0x4000); // fp32 2.0
|
|
# i16[idx + 52] += i16vec2(0xc000, 0); // fp16 -2.0
|
|
# i16[idx + 53] += i16vec2(0, 0xc000); // fp32 -2.0
|
|
# i16[idx + 54] += i16vec2(0x4400, 0); // fp16 4.0
|
|
# i16[idx + 55] += i16vec2(0, 0x4080); // fp32 4.0
|
|
# i16[idx + 56] += i16vec2(0xc400, 0); // fp16 -4.0
|
|
# i16[idx + 57] += i16vec2(0, 0xc080); // fp32 -4.0
|
|
# i16[idx + 58] += i16vec2(0x3118, 0); // fp16 1/2pi
|
|
# i16[idx + 59] += i16vec2(0, 0x3118); // fp16 1/2pi
|
|
# i16[idx + 60] += i16vec2(0x3118, 0x3118); // fp16 1/2pi
|
|
# i16[idx + 61] += i16vec2(0xf983, 0x3e22); // fp32 1/2pi
|
|
# i16[idx + 62] += i16vec2(0x3e22, 0xf983);
|
|
# i16[idx + 63] += i16vec2(0x3e22, 0x3e22);
|
|
# i16[idx + 64] += i16vec2(0xf983, 0xf983);
|
|
# i16[idx + 65] += i16vec2(0x3e22, 0);
|
|
# i16[idx + 66] += i16vec2(0xf983, 0);
|
|
# i16[idx + 67] += i16vec2(-2, -1);
|
|
# i16[idx + 68] += i16vec2(-1, -2);
|
|
# i16[idx + 69] += i16vec2(12, 20);
|
|
#
|
|
# i16[idx + 70] -= i16vec2(0x3800, 0); // fp16 0.5
|
|
# i16[idx + 71] -= i16vec2(0, 0x3800); // fp16 0.5
|
|
# i16[idx + 72] -= i16vec2(0x3800, 0x3800); // fp16 0.5
|
|
# i16[idx + 73] -= i16vec2(0, 0x3f00); // fp32 0.5
|
|
# i16[idx + 74] -= i16vec2(0x3f00, 0); // fp32 0.5
|
|
# i16[idx + 75] -= i16vec2(0x3f00, 0x3f00); // fp32 0.5
|
|
# i16[idx + 76] -= i16vec2(0xb800, 0); // fp16 -0.5
|
|
# i16[idx + 77] -= i16vec2(0, 0xbf00); // fp32 -0.5
|
|
# i16[idx + 78] -= i16vec2(0x3c00, 0); // fp16 1.0
|
|
# i16[idx + 79] -= i16vec2(0, 0x3f80); // fp32 1.0
|
|
# i16[idx + 80] -= i16vec2(0xbc00, 0); // fp16 -1.0
|
|
# i16[idx + 81] -= i16vec2(0, 0xbf80); // fp32 -1.0
|
|
# i16[idx + 82] -= i16vec2(0x4000, 0); // fp16 2.0
|
|
# i16[idx + 83] -= i16vec2(0, 0x4000); // fp32 2.0
|
|
# i16[idx + 84] -= i16vec2(0xc000, 0); // fp16 -2.0
|
|
# i16[idx + 85] -= i16vec2(0, 0xc000); // fp32 -2.0
|
|
# i16[idx + 86] -= i16vec2(0x4400, 0); // fp16 4.0
|
|
# i16[idx + 87] -= i16vec2(0, 0x4080); // fp32 4.0
|
|
# i16[idx + 88] -= i16vec2(0xc400, 0); // fp16 -4.0
|
|
# i16[idx + 89] -= i16vec2(0, 0xc080); // fp32 -4.0
|
|
# i16[idx + 90] -= i16vec2(0x3118, 0); // fp16 1/2pi
|
|
# i16[idx + 91] -= i16vec2(0, 0x3118); // fp16 1/2pi
|
|
# i16[idx + 92] -= i16vec2(0x3118, 0x3118); // fp16 1/2pi
|
|
# i16[idx + 93] -= i16vec2(0xf983, 0x3e22); // fp32 1/2pi
|
|
# i16[idx + 94] -= i16vec2(0x3e22, 0xf983);
|
|
# i16[idx + 95] -= i16vec2(0x3e22, 0x3e22);
|
|
# i16[idx + 96] -= i16vec2(0xf983, 0xf983);
|
|
# i16[idx + 97] -= i16vec2(0x3e22, 0);
|
|
# i16[idx + 98] -= i16vec2(0xf983, 0);
|
|
# i16[idx + 99] -= i16vec2(-2, -1);
|
|
# i16[idx + 100] -= i16vec2(-1, -2);
|
|
# i16[idx + 101] -= i16vec2(12, 20);
|
|
#
|
|
# i16[idx + 102] -= i16vec2(-1, -1);
|
|
# }
|
|
|
|
SHADER compute compute_shader SPIRV-ASM
|
|
OpCapability Shader
|
|
OpCapability Float16
|
|
OpCapability Int16
|
|
OpCapability StorageBuffer16BitAccess
|
|
OpCapability DenormPreserve
|
|
OpExtension "SPV_KHR_float_controls"
|
|
OpExtension "SPV_KHR_16bit_storage"
|
|
%1 = OpExtInstImport "GLSL.std.450"
|
|
OpMemoryModel Logical GLSL450
|
|
OpEntryPoint GLCompute %4 "main" %9
|
|
OpExecutionMode %4 DenormPreserve 16
|
|
OpExecutionMode %4 LocalSize 8 8 1
|
|
OpDecorate %9 BuiltIn GlobalInvocationId
|
|
OpMemberDecorate %11 0 Offset 0
|
|
OpDecorate %11 Block
|
|
OpDecorate %13 DescriptorSet 0
|
|
OpDecorate %13 Binding 2
|
|
OpDecorate %46 ArrayStride 4
|
|
OpMemberDecorate %47 0 Offset 0
|
|
OpDecorate %47 BufferBlock
|
|
OpDecorate %49 DescriptorSet 0
|
|
OpDecorate %49 Binding 0
|
|
OpDecorate %358 ArrayStride 4
|
|
OpMemberDecorate %359 0 Offset 0
|
|
OpDecorate %359 BufferBlock
|
|
OpDecorate %361 DescriptorSet 0
|
|
OpDecorate %361 Binding 1
|
|
OpDecorate %913 BuiltIn WorkgroupSize
|
|
%2 = OpTypeVoid
|
|
%3 = OpTypeFunction %2
|
|
%6 = OpTypeInt 32 0
|
|
%7 = OpTypeVector %6 3
|
|
%8 = OpTypePointer Input %7
|
|
%9 = OpVariable %8 Input
|
|
%11 = OpTypeStruct %7
|
|
%12 = OpTypePointer Uniform %11
|
|
%13 = OpVariable %12 Uniform
|
|
%14 = OpTypeInt 32 1
|
|
%15 = OpConstant %14 0
|
|
%16 = OpTypePointer Uniform %7
|
|
%19 = OpTypeBool
|
|
%20 = OpTypeVector %19 3
|
|
%26 = OpTypeVector %14 2
|
|
%27 = OpTypePointer Function %26
|
|
%29 = OpTypeVector %6 2
|
|
%33 = OpTypePointer Function %14
|
|
%35 = OpConstant %6 1
|
|
%38 = OpConstant %14 8
|
|
%40 = OpConstant %6 0
|
|
%44 = OpTypeFloat 16
|
|
%45 = OpTypeVector %44 2
|
|
%46 = OpTypeRuntimeArray %45
|
|
%47 = OpTypeStruct %46
|
|
%48 = OpTypePointer Uniform %47
|
|
%49 = OpVariable %48 Uniform
|
|
%52 = OpConstant %44 0x1p+0
|
|
%53 = OpConstantComposite %45 %52 %52
|
|
%54 = OpTypePointer Uniform %45
|
|
%60 = OpConstant %14 1
|
|
%62 = OpConstant %44 -0x1p+0
|
|
%63 = OpConstantComposite %45 %62 %62
|
|
%69 = OpConstant %14 2
|
|
%71 = OpConstant %44 0x1p-1
|
|
%72 = OpConstantComposite %45 %71 %71
|
|
%78 = OpConstant %14 3
|
|
%80 = OpConstant %44 -0x1p-1
|
|
%81 = OpConstantComposite %45 %80 %80
|
|
%87 = OpConstant %14 4
|
|
%89 = OpConstant %44 0x1p+1
|
|
%90 = OpConstantComposite %45 %89 %89
|
|
%96 = OpConstant %14 5
|
|
%98 = OpConstant %44 -0x1p+1
|
|
%99 = OpConstantComposite %45 %98 %98
|
|
%105 = OpConstant %14 6
|
|
%107 = OpConstant %44 0x1p+2
|
|
%108 = OpConstantComposite %45 %107 %107
|
|
%114 = OpConstant %14 7
|
|
%116 = OpConstant %44 -0x1p+2
|
|
%117 = OpConstantComposite %45 %116 %116
|
|
%124 = OpTypeInt 16 1
|
|
%125 = OpTypeVector %124 2
|
|
%126 = OpConstant %124 12568
|
|
%127 = OpConstantComposite %125 %126 %126
|
|
%134 = OpConstant %14 9
|
|
%136 = OpConstant %44 0x0p+0
|
|
%137 = OpConstantComposite %45 %52 %136
|
|
%143 = OpConstant %14 10
|
|
%145 = OpConstantComposite %45 %136 %52
|
|
%151 = OpConstant %14 11
|
|
%153 = OpConstantComposite %45 %52 %62
|
|
%159 = OpConstant %14 12
|
|
%161 = OpConstantComposite %45 %62 %52
|
|
%166 = OpTypePointer Function %44
|
|
%168 = OpConstant %124 1
|
|
%171 = OpConstant %124 17
|
|
%174 = OpConstant %124 64
|
|
%177 = OpConstant %14 13
|
|
%186 = OpConstant %14 14
|
|
%196 = OpConstant %14 15
|
|
%205 = OpConstant %14 16
|
|
%214 = OpConstant %14 17
|
|
%224 = OpConstant %14 18
|
|
%233 = OpConstant %14 19
|
|
%242 = OpConstant %14 20
|
|
%252 = OpConstant %14 21
|
|
%261 = OpConstant %14 22
|
|
%268 = OpConstant %14 23
|
|
%275 = OpConstant %14 24
|
|
%281 = OpTypePointer Function %45
|
|
%284 = OpConstant %14 29
|
|
%289 = OpConstant %14 25
|
|
%299 = OpConstant %14 26
|
|
%301 = OpConstantComposite %45 %136 %89
|
|
%310 = OpConstant %14 27
|
|
%312 = OpConstantComposite %45 %89 %136
|
|
%321 = OpConstant %14 28
|
|
%323 = OpConstantComposite %45 %89 %52
|
|
%338 = OpConstant %14 30
|
|
%345 = OpConstant %14 31
|
|
%352 = OpConstant %14 32
|
|
%358 = OpTypeRuntimeArray %125
|
|
%359 = OpTypeStruct %358
|
|
%360 = OpTypePointer Uniform %359
|
|
%361 = OpVariable %360 Uniform
|
|
%363 = OpConstant %14 33
|
|
%365 = OpConstantComposite %125 %168 %168
|
|
%366 = OpTypePointer Uniform %125
|
|
%372 = OpConstant %14 34
|
|
%374 = OpConstant %124 0
|
|
%375 = OpConstantComposite %125 %168 %374
|
|
%381 = OpConstant %14 35
|
|
%383 = OpConstantComposite %125 %374 %168
|
|
%389 = OpConstant %14 36
|
|
%391 = OpConstantComposite %125 %174 %174
|
|
%397 = OpConstant %14 37
|
|
%399 = OpConstant %124 -16
|
|
%400 = OpConstantComposite %125 %399 %399
|
|
%406 = OpConstant %14 38
|
|
%408 = OpConstant %124 14336
|
|
%409 = OpConstantComposite %125 %408 %374
|
|
%415 = OpConstant %14 39
|
|
%417 = OpConstantComposite %125 %374 %408
|
|
%423 = OpConstant %14 40
|
|
%425 = OpConstantComposite %125 %408 %408
|
|
%431 = OpConstant %14 41
|
|
%433 = OpConstant %124 16128
|
|
%434 = OpConstantComposite %125 %374 %433
|
|
%440 = OpConstant %14 42
|
|
%442 = OpConstantComposite %125 %433 %374
|
|
%448 = OpConstant %14 43
|
|
%450 = OpConstantComposite %125 %433 %433
|
|
%456 = OpConstant %14 44
|
|
%458 = OpConstant %124 -18432
|
|
%459 = OpConstantComposite %125 %458 %374
|
|
%465 = OpConstant %14 45
|
|
%467 = OpConstant %124 -16640
|
|
%468 = OpConstantComposite %125 %374 %467
|
|
%474 = OpConstant %14 46
|
|
%476 = OpConstant %124 15360
|
|
%477 = OpConstantComposite %125 %476 %374
|
|
%483 = OpConstant %14 47
|
|
%485 = OpConstant %124 16256
|
|
%486 = OpConstantComposite %125 %374 %485
|
|
%492 = OpConstant %14 48
|
|
%494 = OpConstant %124 -17408
|
|
%495 = OpConstantComposite %125 %494 %374
|
|
%501 = OpConstant %14 49
|
|
%503 = OpConstant %124 -16512
|
|
%504 = OpConstantComposite %125 %374 %503
|
|
%510 = OpConstant %14 50
|
|
%512 = OpConstant %124 16384
|
|
%513 = OpConstantComposite %125 %512 %374
|
|
%519 = OpConstant %14 51
|
|
%521 = OpConstantComposite %125 %374 %512
|
|
%527 = OpConstant %14 52
|
|
%529 = OpConstant %124 -16384
|
|
%530 = OpConstantComposite %125 %529 %374
|
|
%536 = OpConstant %14 53
|
|
%538 = OpConstantComposite %125 %374 %529
|
|
%544 = OpConstant %14 54
|
|
%546 = OpConstant %124 17408
|
|
%547 = OpConstantComposite %125 %546 %374
|
|
%553 = OpConstant %14 55
|
|
%555 = OpConstant %124 16512
|
|
%556 = OpConstantComposite %125 %374 %555
|
|
%562 = OpConstant %14 56
|
|
%564 = OpConstant %124 -15360
|
|
%565 = OpConstantComposite %125 %564 %374
|
|
%571 = OpConstant %14 57
|
|
%573 = OpConstant %124 -16256
|
|
%574 = OpConstantComposite %125 %374 %573
|
|
%580 = OpConstant %14 58
|
|
%582 = OpConstantComposite %125 %126 %374
|
|
%588 = OpConstant %14 59
|
|
%590 = OpConstantComposite %125 %374 %126
|
|
%596 = OpConstant %14 60
|
|
%603 = OpConstant %14 61
|
|
%605 = OpConstant %124 -1661
|
|
%606 = OpConstant %124 15906
|
|
%607 = OpConstantComposite %125 %605 %606
|
|
%613 = OpConstant %14 62
|
|
%615 = OpConstantComposite %125 %606 %605
|
|
%621 = OpConstant %14 63
|
|
%623 = OpConstantComposite %125 %606 %606
|
|
%629 = OpConstant %14 64
|
|
%631 = OpConstantComposite %125 %605 %605
|
|
%637 = OpConstant %14 65
|
|
%639 = OpConstantComposite %125 %606 %374
|
|
%645 = OpConstant %14 66
|
|
%647 = OpConstantComposite %125 %605 %374
|
|
%653 = OpConstant %14 67
|
|
%655 = OpConstant %124 -2
|
|
%656 = OpConstant %124 -1
|
|
%657 = OpConstantComposite %125 %655 %656
|
|
%663 = OpConstant %14 68
|
|
%665 = OpConstantComposite %125 %656 %655
|
|
%671 = OpConstant %14 69
|
|
%673 = OpConstant %124 12
|
|
%674 = OpConstant %124 20
|
|
%675 = OpConstantComposite %125 %673 %674
|
|
%681 = OpConstant %14 70
|
|
%688 = OpConstant %14 71
|
|
%695 = OpConstant %14 72
|
|
%702 = OpConstant %14 73
|
|
%709 = OpConstant %14 74
|
|
%716 = OpConstant %14 75
|
|
%723 = OpConstant %14 76
|
|
%730 = OpConstant %14 77
|
|
%737 = OpConstant %14 78
|
|
%744 = OpConstant %14 79
|
|
%751 = OpConstant %14 80
|
|
%758 = OpConstant %14 81
|
|
%765 = OpConstant %14 82
|
|
%772 = OpConstant %14 83
|
|
%779 = OpConstant %14 84
|
|
%786 = OpConstant %14 85
|
|
%793 = OpConstant %14 86
|
|
%800 = OpConstant %14 87
|
|
%807 = OpConstant %14 88
|
|
%814 = OpConstant %14 89
|
|
%821 = OpConstant %14 90
|
|
%828 = OpConstant %14 91
|
|
%835 = OpConstant %14 92
|
|
%842 = OpConstant %14 93
|
|
%849 = OpConstant %14 94
|
|
%856 = OpConstant %14 95
|
|
%863 = OpConstant %14 96
|
|
%870 = OpConstant %14 97
|
|
%877 = OpConstant %14 98
|
|
%884 = OpConstant %14 99
|
|
%891 = OpConstant %14 100
|
|
%898 = OpConstant %14 101
|
|
%905 = OpConstant %14 102
|
|
%907 = OpConstantComposite %125 %656 %656
|
|
%912 = OpConstant %6 8
|
|
%913 = OpConstantComposite %7 %912 %912 %35
|
|
%4 = OpFunction %2 None %3
|
|
%5 = OpLabel
|
|
%28 = OpVariable %27 Function
|
|
%34 = OpVariable %33 Function
|
|
%167 = OpVariable %166 Function
|
|
%170 = OpVariable %166 Function
|
|
%173 = OpVariable %166 Function
|
|
%282 = OpVariable %281 Function
|
|
%10 = OpLoad %7 %9
|
|
%17 = OpAccessChain %16 %13 %15
|
|
%18 = OpLoad %7 %17
|
|
%21 = OpUGreaterThanEqual %20 %10 %18
|
|
%22 = OpAny %19 %21
|
|
OpSelectionMerge %24 None
|
|
OpBranchConditional %22 %23 %24
|
|
%23 = OpLabel
|
|
OpReturn
|
|
%24 = OpLabel
|
|
%30 = OpLoad %7 %9
|
|
%31 = OpVectorShuffle %29 %30 %30 0 1
|
|
%32 = OpBitcast %26 %31
|
|
OpStore %28 %32
|
|
%36 = OpAccessChain %33 %28 %35
|
|
%37 = OpLoad %14 %36
|
|
%39 = OpIMul %14 %37 %38
|
|
%41 = OpAccessChain %33 %28 %40
|
|
%42 = OpLoad %14 %41
|
|
%43 = OpIAdd %14 %39 %42
|
|
OpStore %34 %43
|
|
%50 = OpLoad %14 %34
|
|
%51 = OpIAdd %14 %50 %15
|
|
%55 = OpAccessChain %54 %49 %15 %51
|
|
%56 = OpLoad %45 %55
|
|
%57 = OpFAdd %45 %56 %53
|
|
%58 = OpAccessChain %54 %49 %15 %51
|
|
OpStore %58 %57
|
|
%59 = OpLoad %14 %34
|
|
%61 = OpIAdd %14 %59 %60
|
|
%64 = OpAccessChain %54 %49 %15 %61
|
|
%65 = OpLoad %45 %64
|
|
%66 = OpFAdd %45 %65 %63
|
|
%67 = OpAccessChain %54 %49 %15 %61
|
|
OpStore %67 %66
|
|
%68 = OpLoad %14 %34
|
|
%70 = OpIAdd %14 %68 %69
|
|
%73 = OpAccessChain %54 %49 %15 %70
|
|
%74 = OpLoad %45 %73
|
|
%75 = OpFAdd %45 %74 %72
|
|
%76 = OpAccessChain %54 %49 %15 %70
|
|
OpStore %76 %75
|
|
%77 = OpLoad %14 %34
|
|
%79 = OpIAdd %14 %77 %78
|
|
%82 = OpAccessChain %54 %49 %15 %79
|
|
%83 = OpLoad %45 %82
|
|
%84 = OpFAdd %45 %83 %81
|
|
%85 = OpAccessChain %54 %49 %15 %79
|
|
OpStore %85 %84
|
|
%86 = OpLoad %14 %34
|
|
%88 = OpIAdd %14 %86 %87
|
|
%91 = OpAccessChain %54 %49 %15 %88
|
|
%92 = OpLoad %45 %91
|
|
%93 = OpFAdd %45 %92 %90
|
|
%94 = OpAccessChain %54 %49 %15 %88
|
|
OpStore %94 %93
|
|
%95 = OpLoad %14 %34
|
|
%97 = OpIAdd %14 %95 %96
|
|
%100 = OpAccessChain %54 %49 %15 %97
|
|
%101 = OpLoad %45 %100
|
|
%102 = OpFAdd %45 %101 %99
|
|
%103 = OpAccessChain %54 %49 %15 %97
|
|
OpStore %103 %102
|
|
%104 = OpLoad %14 %34
|
|
%106 = OpIAdd %14 %104 %105
|
|
%109 = OpAccessChain %54 %49 %15 %106
|
|
%110 = OpLoad %45 %109
|
|
%111 = OpFAdd %45 %110 %108
|
|
%112 = OpAccessChain %54 %49 %15 %106
|
|
OpStore %112 %111
|
|
%113 = OpLoad %14 %34
|
|
%115 = OpIAdd %14 %113 %114
|
|
%118 = OpAccessChain %54 %49 %15 %115
|
|
%119 = OpLoad %45 %118
|
|
%120 = OpFAdd %45 %119 %117
|
|
%121 = OpAccessChain %54 %49 %15 %115
|
|
OpStore %121 %120
|
|
%122 = OpLoad %14 %34
|
|
%123 = OpIAdd %14 %122 %38
|
|
%128 = OpBitcast %45 %127
|
|
%129 = OpAccessChain %54 %49 %15 %123
|
|
%130 = OpLoad %45 %129
|
|
%131 = OpFAdd %45 %130 %128
|
|
%132 = OpAccessChain %54 %49 %15 %123
|
|
OpStore %132 %131
|
|
%133 = OpLoad %14 %34
|
|
%135 = OpIAdd %14 %133 %134
|
|
%138 = OpAccessChain %54 %49 %15 %135
|
|
%139 = OpLoad %45 %138
|
|
%140 = OpFAdd %45 %139 %137
|
|
%141 = OpAccessChain %54 %49 %15 %135
|
|
OpStore %141 %140
|
|
%142 = OpLoad %14 %34
|
|
%144 = OpIAdd %14 %142 %143
|
|
%146 = OpAccessChain %54 %49 %15 %144
|
|
%147 = OpLoad %45 %146
|
|
%148 = OpFAdd %45 %147 %145
|
|
%149 = OpAccessChain %54 %49 %15 %144
|
|
OpStore %149 %148
|
|
%150 = OpLoad %14 %34
|
|
%152 = OpIAdd %14 %150 %151
|
|
%154 = OpAccessChain %54 %49 %15 %152
|
|
%155 = OpLoad %45 %154
|
|
%156 = OpFAdd %45 %155 %153
|
|
%157 = OpAccessChain %54 %49 %15 %152
|
|
OpStore %157 %156
|
|
%158 = OpLoad %14 %34
|
|
%160 = OpIAdd %14 %158 %159
|
|
%162 = OpAccessChain %54 %49 %15 %160
|
|
%163 = OpLoad %45 %162
|
|
%164 = OpFAdd %45 %163 %161
|
|
%165 = OpAccessChain %54 %49 %15 %160
|
|
OpStore %165 %164
|
|
%169 = OpBitcast %44 %168
|
|
OpStore %167 %169
|
|
%172 = OpBitcast %44 %171
|
|
OpStore %170 %172
|
|
%175 = OpBitcast %44 %174
|
|
OpStore %173 %175
|
|
%176 = OpLoad %14 %34
|
|
%178 = OpIAdd %14 %176 %177
|
|
%179 = OpLoad %44 %167
|
|
%180 = OpCompositeConstruct %45 %179 %136
|
|
%181 = OpAccessChain %54 %49 %15 %178
|
|
%182 = OpLoad %45 %181
|
|
%183 = OpFAdd %45 %182 %180
|
|
%184 = OpAccessChain %54 %49 %15 %178
|
|
OpStore %184 %183
|
|
%185 = OpLoad %14 %34
|
|
%187 = OpIAdd %14 %185 %186
|
|
%188 = OpLoad %44 %167
|
|
%189 = OpLoad %44 %167
|
|
%190 = OpCompositeConstruct %45 %188 %189
|
|
%191 = OpAccessChain %54 %49 %15 %187
|
|
%192 = OpLoad %45 %191
|
|
%193 = OpFAdd %45 %192 %190
|
|
%194 = OpAccessChain %54 %49 %15 %187
|
|
OpStore %194 %193
|
|
%195 = OpLoad %14 %34
|
|
%197 = OpIAdd %14 %195 %196
|
|
%198 = OpLoad %44 %167
|
|
%199 = OpCompositeConstruct %45 %136 %198
|
|
%200 = OpAccessChain %54 %49 %15 %197
|
|
%201 = OpLoad %45 %200
|
|
%202 = OpFAdd %45 %201 %199
|
|
%203 = OpAccessChain %54 %49 %15 %197
|
|
OpStore %203 %202
|
|
%204 = OpLoad %14 %34
|
|
%206 = OpIAdd %14 %204 %205
|
|
%207 = OpLoad %44 %170
|
|
%208 = OpCompositeConstruct %45 %207 %136
|
|
%209 = OpAccessChain %54 %49 %15 %206
|
|
%210 = OpLoad %45 %209
|
|
%211 = OpFAdd %45 %210 %208
|
|
%212 = OpAccessChain %54 %49 %15 %206
|
|
OpStore %212 %211
|
|
%213 = OpLoad %14 %34
|
|
%215 = OpIAdd %14 %213 %214
|
|
%216 = OpLoad %44 %170
|
|
%217 = OpLoad %44 %170
|
|
%218 = OpCompositeConstruct %45 %216 %217
|
|
%219 = OpAccessChain %54 %49 %15 %215
|
|
%220 = OpLoad %45 %219
|
|
%221 = OpFAdd %45 %220 %218
|
|
%222 = OpAccessChain %54 %49 %15 %215
|
|
OpStore %222 %221
|
|
%223 = OpLoad %14 %34
|
|
%225 = OpIAdd %14 %223 %224
|
|
%226 = OpLoad %44 %170
|
|
%227 = OpCompositeConstruct %45 %136 %226
|
|
%228 = OpAccessChain %54 %49 %15 %225
|
|
%229 = OpLoad %45 %228
|
|
%230 = OpFAdd %45 %229 %227
|
|
%231 = OpAccessChain %54 %49 %15 %225
|
|
OpStore %231 %230
|
|
%232 = OpLoad %14 %34
|
|
%234 = OpIAdd %14 %232 %233
|
|
%235 = OpLoad %44 %173
|
|
%236 = OpCompositeConstruct %45 %235 %136
|
|
%237 = OpAccessChain %54 %49 %15 %234
|
|
%238 = OpLoad %45 %237
|
|
%239 = OpFAdd %45 %238 %236
|
|
%240 = OpAccessChain %54 %49 %15 %234
|
|
OpStore %240 %239
|
|
%241 = OpLoad %14 %34
|
|
%243 = OpIAdd %14 %241 %242
|
|
%244 = OpLoad %44 %173
|
|
%245 = OpLoad %44 %173
|
|
%246 = OpCompositeConstruct %45 %244 %245
|
|
%247 = OpAccessChain %54 %49 %15 %243
|
|
%248 = OpLoad %45 %247
|
|
%249 = OpFAdd %45 %248 %246
|
|
%250 = OpAccessChain %54 %49 %15 %243
|
|
OpStore %250 %249
|
|
%251 = OpLoad %14 %34
|
|
%253 = OpIAdd %14 %251 %252
|
|
%254 = OpLoad %44 %173
|
|
%255 = OpCompositeConstruct %45 %136 %254
|
|
%256 = OpAccessChain %54 %49 %15 %253
|
|
%257 = OpLoad %45 %256
|
|
%258 = OpFAdd %45 %257 %255
|
|
%259 = OpAccessChain %54 %49 %15 %253
|
|
OpStore %259 %258
|
|
%260 = OpLoad %14 %34
|
|
%262 = OpIAdd %14 %260 %261
|
|
%263 = OpAccessChain %54 %49 %15 %262
|
|
%264 = OpLoad %45 %263
|
|
%265 = OpFSub %45 %264 %53
|
|
%266 = OpAccessChain %54 %49 %15 %262
|
|
OpStore %266 %265
|
|
%267 = OpLoad %14 %34
|
|
%269 = OpIAdd %14 %267 %268
|
|
%270 = OpAccessChain %54 %49 %15 %269
|
|
%271 = OpLoad %45 %270
|
|
%272 = OpFSub %45 %271 %145
|
|
%273 = OpAccessChain %54 %49 %15 %269
|
|
OpStore %273 %272
|
|
%274 = OpLoad %14 %34
|
|
%276 = OpIAdd %14 %274 %275
|
|
%277 = OpAccessChain %54 %49 %15 %276
|
|
%278 = OpLoad %45 %277
|
|
%279 = OpFSub %45 %278 %137
|
|
%280 = OpAccessChain %54 %49 %15 %276
|
|
OpStore %280 %279
|
|
%283 = OpLoad %14 %34
|
|
%285 = OpIAdd %14 %283 %284
|
|
%286 = OpAccessChain %54 %49 %15 %285
|
|
%287 = OpLoad %45 %286
|
|
OpStore %282 %287
|
|
%288 = OpLoad %14 %34
|
|
%290 = OpIAdd %14 %288 %289
|
|
%291 = OpLoad %45 %282
|
|
%292 = OpLoad %14 %34
|
|
%293 = OpIAdd %14 %292 %289
|
|
%294 = OpAccessChain %54 %49 %15 %293
|
|
%295 = OpLoad %45 %294
|
|
%296 = OpExtInst %45 %1 Fma %90 %291 %295
|
|
%297 = OpAccessChain %54 %49 %15 %290
|
|
OpStore %297 %296
|
|
%298 = OpLoad %14 %34
|
|
%300 = OpIAdd %14 %298 %299
|
|
%302 = OpLoad %45 %282
|
|
%303 = OpLoad %14 %34
|
|
%304 = OpIAdd %14 %303 %299
|
|
%305 = OpAccessChain %54 %49 %15 %304
|
|
%306 = OpLoad %45 %305
|
|
%307 = OpExtInst %45 %1 Fma %301 %302 %306
|
|
%308 = OpAccessChain %54 %49 %15 %300
|
|
OpStore %308 %307
|
|
%309 = OpLoad %14 %34
|
|
%311 = OpIAdd %14 %309 %310
|
|
%313 = OpLoad %45 %282
|
|
%314 = OpLoad %14 %34
|
|
%315 = OpIAdd %14 %314 %310
|
|
%316 = OpAccessChain %54 %49 %15 %315
|
|
%317 = OpLoad %45 %316
|
|
%318 = OpExtInst %45 %1 Fma %312 %313 %317
|
|
%319 = OpAccessChain %54 %49 %15 %311
|
|
OpStore %319 %318
|
|
%320 = OpLoad %14 %34
|
|
%322 = OpIAdd %14 %320 %321
|
|
%324 = OpLoad %45 %282
|
|
%325 = OpLoad %14 %34
|
|
%326 = OpIAdd %14 %325 %321
|
|
%327 = OpAccessChain %54 %49 %15 %326
|
|
%328 = OpLoad %45 %327
|
|
%329 = OpExtInst %45 %1 Fma %323 %324 %328
|
|
%330 = OpAccessChain %54 %49 %15 %322
|
|
OpStore %330 %329
|
|
%331 = OpLoad %14 %34
|
|
%332 = OpIAdd %14 %331 %284
|
|
%333 = OpAccessChain %54 %49 %15 %332
|
|
%334 = OpLoad %45 %333
|
|
%335 = OpFMul %45 %334 %90
|
|
%336 = OpAccessChain %54 %49 %15 %332
|
|
OpStore %336 %335
|
|
%337 = OpLoad %14 %34
|
|
%339 = OpIAdd %14 %337 %338
|
|
%340 = OpAccessChain %54 %49 %15 %339
|
|
%341 = OpLoad %45 %340
|
|
%342 = OpFMul %45 %341 %301
|
|
%343 = OpAccessChain %54 %49 %15 %339
|
|
OpStore %343 %342
|
|
%344 = OpLoad %14 %34
|
|
%346 = OpIAdd %14 %344 %345
|
|
%347 = OpAccessChain %54 %49 %15 %346
|
|
%348 = OpLoad %45 %347
|
|
%349 = OpFMul %45 %348 %312
|
|
%350 = OpAccessChain %54 %49 %15 %346
|
|
OpStore %350 %349
|
|
%351 = OpLoad %14 %34
|
|
%353 = OpIAdd %14 %351 %352
|
|
%354 = OpAccessChain %54 %49 %15 %353
|
|
%355 = OpLoad %45 %354
|
|
%356 = OpFMul %45 %355 %323
|
|
%357 = OpAccessChain %54 %49 %15 %353
|
|
OpStore %357 %356
|
|
%362 = OpLoad %14 %34
|
|
%364 = OpIAdd %14 %362 %363
|
|
%367 = OpAccessChain %366 %361 %15 %364
|
|
%368 = OpLoad %125 %367
|
|
%369 = OpIAdd %125 %368 %365
|
|
%370 = OpAccessChain %366 %361 %15 %364
|
|
OpStore %370 %369
|
|
%371 = OpLoad %14 %34
|
|
%373 = OpIAdd %14 %371 %372
|
|
%376 = OpAccessChain %366 %361 %15 %373
|
|
%377 = OpLoad %125 %376
|
|
%378 = OpIAdd %125 %377 %375
|
|
%379 = OpAccessChain %366 %361 %15 %373
|
|
OpStore %379 %378
|
|
%380 = OpLoad %14 %34
|
|
%382 = OpIAdd %14 %380 %381
|
|
%384 = OpAccessChain %366 %361 %15 %382
|
|
%385 = OpLoad %125 %384
|
|
%386 = OpIAdd %125 %385 %383
|
|
%387 = OpAccessChain %366 %361 %15 %382
|
|
OpStore %387 %386
|
|
%388 = OpLoad %14 %34
|
|
%390 = OpIAdd %14 %388 %389
|
|
%392 = OpAccessChain %366 %361 %15 %390
|
|
%393 = OpLoad %125 %392
|
|
%394 = OpIAdd %125 %393 %391
|
|
%395 = OpAccessChain %366 %361 %15 %390
|
|
OpStore %395 %394
|
|
%396 = OpLoad %14 %34
|
|
%398 = OpIAdd %14 %396 %397
|
|
%401 = OpAccessChain %366 %361 %15 %398
|
|
%402 = OpLoad %125 %401
|
|
%403 = OpIAdd %125 %402 %400
|
|
%404 = OpAccessChain %366 %361 %15 %398
|
|
OpStore %404 %403
|
|
%405 = OpLoad %14 %34
|
|
%407 = OpIAdd %14 %405 %406
|
|
%410 = OpAccessChain %366 %361 %15 %407
|
|
%411 = OpLoad %125 %410
|
|
%412 = OpIAdd %125 %411 %409
|
|
%413 = OpAccessChain %366 %361 %15 %407
|
|
OpStore %413 %412
|
|
%414 = OpLoad %14 %34
|
|
%416 = OpIAdd %14 %414 %415
|
|
%418 = OpAccessChain %366 %361 %15 %416
|
|
%419 = OpLoad %125 %418
|
|
%420 = OpIAdd %125 %419 %417
|
|
%421 = OpAccessChain %366 %361 %15 %416
|
|
OpStore %421 %420
|
|
%422 = OpLoad %14 %34
|
|
%424 = OpIAdd %14 %422 %423
|
|
%426 = OpAccessChain %366 %361 %15 %424
|
|
%427 = OpLoad %125 %426
|
|
%428 = OpIAdd %125 %427 %425
|
|
%429 = OpAccessChain %366 %361 %15 %424
|
|
OpStore %429 %428
|
|
%430 = OpLoad %14 %34
|
|
%432 = OpIAdd %14 %430 %431
|
|
%435 = OpAccessChain %366 %361 %15 %432
|
|
%436 = OpLoad %125 %435
|
|
%437 = OpIAdd %125 %436 %434
|
|
%438 = OpAccessChain %366 %361 %15 %432
|
|
OpStore %438 %437
|
|
%439 = OpLoad %14 %34
|
|
%441 = OpIAdd %14 %439 %440
|
|
%443 = OpAccessChain %366 %361 %15 %441
|
|
%444 = OpLoad %125 %443
|
|
%445 = OpIAdd %125 %444 %442
|
|
%446 = OpAccessChain %366 %361 %15 %441
|
|
OpStore %446 %445
|
|
%447 = OpLoad %14 %34
|
|
%449 = OpIAdd %14 %447 %448
|
|
%451 = OpAccessChain %366 %361 %15 %449
|
|
%452 = OpLoad %125 %451
|
|
%453 = OpIAdd %125 %452 %450
|
|
%454 = OpAccessChain %366 %361 %15 %449
|
|
OpStore %454 %453
|
|
%455 = OpLoad %14 %34
|
|
%457 = OpIAdd %14 %455 %456
|
|
%460 = OpAccessChain %366 %361 %15 %457
|
|
%461 = OpLoad %125 %460
|
|
%462 = OpIAdd %125 %461 %459
|
|
%463 = OpAccessChain %366 %361 %15 %457
|
|
OpStore %463 %462
|
|
%464 = OpLoad %14 %34
|
|
%466 = OpIAdd %14 %464 %465
|
|
%469 = OpAccessChain %366 %361 %15 %466
|
|
%470 = OpLoad %125 %469
|
|
%471 = OpIAdd %125 %470 %468
|
|
%472 = OpAccessChain %366 %361 %15 %466
|
|
OpStore %472 %471
|
|
%473 = OpLoad %14 %34
|
|
%475 = OpIAdd %14 %473 %474
|
|
%478 = OpAccessChain %366 %361 %15 %475
|
|
%479 = OpLoad %125 %478
|
|
%480 = OpIAdd %125 %479 %477
|
|
%481 = OpAccessChain %366 %361 %15 %475
|
|
OpStore %481 %480
|
|
%482 = OpLoad %14 %34
|
|
%484 = OpIAdd %14 %482 %483
|
|
%487 = OpAccessChain %366 %361 %15 %484
|
|
%488 = OpLoad %125 %487
|
|
%489 = OpIAdd %125 %488 %486
|
|
%490 = OpAccessChain %366 %361 %15 %484
|
|
OpStore %490 %489
|
|
%491 = OpLoad %14 %34
|
|
%493 = OpIAdd %14 %491 %492
|
|
%496 = OpAccessChain %366 %361 %15 %493
|
|
%497 = OpLoad %125 %496
|
|
%498 = OpIAdd %125 %497 %495
|
|
%499 = OpAccessChain %366 %361 %15 %493
|
|
OpStore %499 %498
|
|
%500 = OpLoad %14 %34
|
|
%502 = OpIAdd %14 %500 %501
|
|
%505 = OpAccessChain %366 %361 %15 %502
|
|
%506 = OpLoad %125 %505
|
|
%507 = OpIAdd %125 %506 %504
|
|
%508 = OpAccessChain %366 %361 %15 %502
|
|
OpStore %508 %507
|
|
%509 = OpLoad %14 %34
|
|
%511 = OpIAdd %14 %509 %510
|
|
%514 = OpAccessChain %366 %361 %15 %511
|
|
%515 = OpLoad %125 %514
|
|
%516 = OpIAdd %125 %515 %513
|
|
%517 = OpAccessChain %366 %361 %15 %511
|
|
OpStore %517 %516
|
|
%518 = OpLoad %14 %34
|
|
%520 = OpIAdd %14 %518 %519
|
|
%522 = OpAccessChain %366 %361 %15 %520
|
|
%523 = OpLoad %125 %522
|
|
%524 = OpIAdd %125 %523 %521
|
|
%525 = OpAccessChain %366 %361 %15 %520
|
|
OpStore %525 %524
|
|
%526 = OpLoad %14 %34
|
|
%528 = OpIAdd %14 %526 %527
|
|
%531 = OpAccessChain %366 %361 %15 %528
|
|
%532 = OpLoad %125 %531
|
|
%533 = OpIAdd %125 %532 %530
|
|
%534 = OpAccessChain %366 %361 %15 %528
|
|
OpStore %534 %533
|
|
%535 = OpLoad %14 %34
|
|
%537 = OpIAdd %14 %535 %536
|
|
%539 = OpAccessChain %366 %361 %15 %537
|
|
%540 = OpLoad %125 %539
|
|
%541 = OpIAdd %125 %540 %538
|
|
%542 = OpAccessChain %366 %361 %15 %537
|
|
OpStore %542 %541
|
|
%543 = OpLoad %14 %34
|
|
%545 = OpIAdd %14 %543 %544
|
|
%548 = OpAccessChain %366 %361 %15 %545
|
|
%549 = OpLoad %125 %548
|
|
%550 = OpIAdd %125 %549 %547
|
|
%551 = OpAccessChain %366 %361 %15 %545
|
|
OpStore %551 %550
|
|
%552 = OpLoad %14 %34
|
|
%554 = OpIAdd %14 %552 %553
|
|
%557 = OpAccessChain %366 %361 %15 %554
|
|
%558 = OpLoad %125 %557
|
|
%559 = OpIAdd %125 %558 %556
|
|
%560 = OpAccessChain %366 %361 %15 %554
|
|
OpStore %560 %559
|
|
%561 = OpLoad %14 %34
|
|
%563 = OpIAdd %14 %561 %562
|
|
%566 = OpAccessChain %366 %361 %15 %563
|
|
%567 = OpLoad %125 %566
|
|
%568 = OpIAdd %125 %567 %565
|
|
%569 = OpAccessChain %366 %361 %15 %563
|
|
OpStore %569 %568
|
|
%570 = OpLoad %14 %34
|
|
%572 = OpIAdd %14 %570 %571
|
|
%575 = OpAccessChain %366 %361 %15 %572
|
|
%576 = OpLoad %125 %575
|
|
%577 = OpIAdd %125 %576 %574
|
|
%578 = OpAccessChain %366 %361 %15 %572
|
|
OpStore %578 %577
|
|
%579 = OpLoad %14 %34
|
|
%581 = OpIAdd %14 %579 %580
|
|
%583 = OpAccessChain %366 %361 %15 %581
|
|
%584 = OpLoad %125 %583
|
|
%585 = OpIAdd %125 %584 %582
|
|
%586 = OpAccessChain %366 %361 %15 %581
|
|
OpStore %586 %585
|
|
%587 = OpLoad %14 %34
|
|
%589 = OpIAdd %14 %587 %588
|
|
%591 = OpAccessChain %366 %361 %15 %589
|
|
%592 = OpLoad %125 %591
|
|
%593 = OpIAdd %125 %592 %590
|
|
%594 = OpAccessChain %366 %361 %15 %589
|
|
OpStore %594 %593
|
|
%595 = OpLoad %14 %34
|
|
%597 = OpIAdd %14 %595 %596
|
|
%598 = OpAccessChain %366 %361 %15 %597
|
|
%599 = OpLoad %125 %598
|
|
%600 = OpIAdd %125 %599 %127
|
|
%601 = OpAccessChain %366 %361 %15 %597
|
|
OpStore %601 %600
|
|
%602 = OpLoad %14 %34
|
|
%604 = OpIAdd %14 %602 %603
|
|
%608 = OpAccessChain %366 %361 %15 %604
|
|
%609 = OpLoad %125 %608
|
|
%610 = OpIAdd %125 %609 %607
|
|
%611 = OpAccessChain %366 %361 %15 %604
|
|
OpStore %611 %610
|
|
%612 = OpLoad %14 %34
|
|
%614 = OpIAdd %14 %612 %613
|
|
%616 = OpAccessChain %366 %361 %15 %614
|
|
%617 = OpLoad %125 %616
|
|
%618 = OpIAdd %125 %617 %615
|
|
%619 = OpAccessChain %366 %361 %15 %614
|
|
OpStore %619 %618
|
|
%620 = OpLoad %14 %34
|
|
%622 = OpIAdd %14 %620 %621
|
|
%624 = OpAccessChain %366 %361 %15 %622
|
|
%625 = OpLoad %125 %624
|
|
%626 = OpIAdd %125 %625 %623
|
|
%627 = OpAccessChain %366 %361 %15 %622
|
|
OpStore %627 %626
|
|
%628 = OpLoad %14 %34
|
|
%630 = OpIAdd %14 %628 %629
|
|
%632 = OpAccessChain %366 %361 %15 %630
|
|
%633 = OpLoad %125 %632
|
|
%634 = OpIAdd %125 %633 %631
|
|
%635 = OpAccessChain %366 %361 %15 %630
|
|
OpStore %635 %634
|
|
%636 = OpLoad %14 %34
|
|
%638 = OpIAdd %14 %636 %637
|
|
%640 = OpAccessChain %366 %361 %15 %638
|
|
%641 = OpLoad %125 %640
|
|
%642 = OpIAdd %125 %641 %639
|
|
%643 = OpAccessChain %366 %361 %15 %638
|
|
OpStore %643 %642
|
|
%644 = OpLoad %14 %34
|
|
%646 = OpIAdd %14 %644 %645
|
|
%648 = OpAccessChain %366 %361 %15 %646
|
|
%649 = OpLoad %125 %648
|
|
%650 = OpIAdd %125 %649 %647
|
|
%651 = OpAccessChain %366 %361 %15 %646
|
|
OpStore %651 %650
|
|
%652 = OpLoad %14 %34
|
|
%654 = OpIAdd %14 %652 %653
|
|
%658 = OpAccessChain %366 %361 %15 %654
|
|
%659 = OpLoad %125 %658
|
|
%660 = OpIAdd %125 %659 %657
|
|
%661 = OpAccessChain %366 %361 %15 %654
|
|
OpStore %661 %660
|
|
%662 = OpLoad %14 %34
|
|
%664 = OpIAdd %14 %662 %663
|
|
%666 = OpAccessChain %366 %361 %15 %664
|
|
%667 = OpLoad %125 %666
|
|
%668 = OpIAdd %125 %667 %665
|
|
%669 = OpAccessChain %366 %361 %15 %664
|
|
OpStore %669 %668
|
|
%670 = OpLoad %14 %34
|
|
%672 = OpIAdd %14 %670 %671
|
|
%676 = OpAccessChain %366 %361 %15 %672
|
|
%677 = OpLoad %125 %676
|
|
%678 = OpIAdd %125 %677 %675
|
|
%679 = OpAccessChain %366 %361 %15 %672
|
|
OpStore %679 %678
|
|
%680 = OpLoad %14 %34
|
|
%682 = OpIAdd %14 %680 %681
|
|
%683 = OpAccessChain %366 %361 %15 %682
|
|
%684 = OpLoad %125 %683
|
|
%685 = OpISub %125 %684 %409
|
|
%686 = OpAccessChain %366 %361 %15 %682
|
|
OpStore %686 %685
|
|
%687 = OpLoad %14 %34
|
|
%689 = OpIAdd %14 %687 %688
|
|
%690 = OpAccessChain %366 %361 %15 %689
|
|
%691 = OpLoad %125 %690
|
|
%692 = OpISub %125 %691 %417
|
|
%693 = OpAccessChain %366 %361 %15 %689
|
|
OpStore %693 %692
|
|
%694 = OpLoad %14 %34
|
|
%696 = OpIAdd %14 %694 %695
|
|
%697 = OpAccessChain %366 %361 %15 %696
|
|
%698 = OpLoad %125 %697
|
|
%699 = OpISub %125 %698 %425
|
|
%700 = OpAccessChain %366 %361 %15 %696
|
|
OpStore %700 %699
|
|
%701 = OpLoad %14 %34
|
|
%703 = OpIAdd %14 %701 %702
|
|
%704 = OpAccessChain %366 %361 %15 %703
|
|
%705 = OpLoad %125 %704
|
|
%706 = OpISub %125 %705 %434
|
|
%707 = OpAccessChain %366 %361 %15 %703
|
|
OpStore %707 %706
|
|
%708 = OpLoad %14 %34
|
|
%710 = OpIAdd %14 %708 %709
|
|
%711 = OpAccessChain %366 %361 %15 %710
|
|
%712 = OpLoad %125 %711
|
|
%713 = OpISub %125 %712 %442
|
|
%714 = OpAccessChain %366 %361 %15 %710
|
|
OpStore %714 %713
|
|
%715 = OpLoad %14 %34
|
|
%717 = OpIAdd %14 %715 %716
|
|
%718 = OpAccessChain %366 %361 %15 %717
|
|
%719 = OpLoad %125 %718
|
|
%720 = OpISub %125 %719 %450
|
|
%721 = OpAccessChain %366 %361 %15 %717
|
|
OpStore %721 %720
|
|
%722 = OpLoad %14 %34
|
|
%724 = OpIAdd %14 %722 %723
|
|
%725 = OpAccessChain %366 %361 %15 %724
|
|
%726 = OpLoad %125 %725
|
|
%727 = OpISub %125 %726 %459
|
|
%728 = OpAccessChain %366 %361 %15 %724
|
|
OpStore %728 %727
|
|
%729 = OpLoad %14 %34
|
|
%731 = OpIAdd %14 %729 %730
|
|
%732 = OpAccessChain %366 %361 %15 %731
|
|
%733 = OpLoad %125 %732
|
|
%734 = OpISub %125 %733 %468
|
|
%735 = OpAccessChain %366 %361 %15 %731
|
|
OpStore %735 %734
|
|
%736 = OpLoad %14 %34
|
|
%738 = OpIAdd %14 %736 %737
|
|
%739 = OpAccessChain %366 %361 %15 %738
|
|
%740 = OpLoad %125 %739
|
|
%741 = OpISub %125 %740 %477
|
|
%742 = OpAccessChain %366 %361 %15 %738
|
|
OpStore %742 %741
|
|
%743 = OpLoad %14 %34
|
|
%745 = OpIAdd %14 %743 %744
|
|
%746 = OpAccessChain %366 %361 %15 %745
|
|
%747 = OpLoad %125 %746
|
|
%748 = OpISub %125 %747 %486
|
|
%749 = OpAccessChain %366 %361 %15 %745
|
|
OpStore %749 %748
|
|
%750 = OpLoad %14 %34
|
|
%752 = OpIAdd %14 %750 %751
|
|
%753 = OpAccessChain %366 %361 %15 %752
|
|
%754 = OpLoad %125 %753
|
|
%755 = OpISub %125 %754 %495
|
|
%756 = OpAccessChain %366 %361 %15 %752
|
|
OpStore %756 %755
|
|
%757 = OpLoad %14 %34
|
|
%759 = OpIAdd %14 %757 %758
|
|
%760 = OpAccessChain %366 %361 %15 %759
|
|
%761 = OpLoad %125 %760
|
|
%762 = OpISub %125 %761 %504
|
|
%763 = OpAccessChain %366 %361 %15 %759
|
|
OpStore %763 %762
|
|
%764 = OpLoad %14 %34
|
|
%766 = OpIAdd %14 %764 %765
|
|
%767 = OpAccessChain %366 %361 %15 %766
|
|
%768 = OpLoad %125 %767
|
|
%769 = OpISub %125 %768 %513
|
|
%770 = OpAccessChain %366 %361 %15 %766
|
|
OpStore %770 %769
|
|
%771 = OpLoad %14 %34
|
|
%773 = OpIAdd %14 %771 %772
|
|
%774 = OpAccessChain %366 %361 %15 %773
|
|
%775 = OpLoad %125 %774
|
|
%776 = OpISub %125 %775 %521
|
|
%777 = OpAccessChain %366 %361 %15 %773
|
|
OpStore %777 %776
|
|
%778 = OpLoad %14 %34
|
|
%780 = OpIAdd %14 %778 %779
|
|
%781 = OpAccessChain %366 %361 %15 %780
|
|
%782 = OpLoad %125 %781
|
|
%783 = OpISub %125 %782 %530
|
|
%784 = OpAccessChain %366 %361 %15 %780
|
|
OpStore %784 %783
|
|
%785 = OpLoad %14 %34
|
|
%787 = OpIAdd %14 %785 %786
|
|
%788 = OpAccessChain %366 %361 %15 %787
|
|
%789 = OpLoad %125 %788
|
|
%790 = OpISub %125 %789 %538
|
|
%791 = OpAccessChain %366 %361 %15 %787
|
|
OpStore %791 %790
|
|
%792 = OpLoad %14 %34
|
|
%794 = OpIAdd %14 %792 %793
|
|
%795 = OpAccessChain %366 %361 %15 %794
|
|
%796 = OpLoad %125 %795
|
|
%797 = OpISub %125 %796 %547
|
|
%798 = OpAccessChain %366 %361 %15 %794
|
|
OpStore %798 %797
|
|
%799 = OpLoad %14 %34
|
|
%801 = OpIAdd %14 %799 %800
|
|
%802 = OpAccessChain %366 %361 %15 %801
|
|
%803 = OpLoad %125 %802
|
|
%804 = OpISub %125 %803 %556
|
|
%805 = OpAccessChain %366 %361 %15 %801
|
|
OpStore %805 %804
|
|
%806 = OpLoad %14 %34
|
|
%808 = OpIAdd %14 %806 %807
|
|
%809 = OpAccessChain %366 %361 %15 %808
|
|
%810 = OpLoad %125 %809
|
|
%811 = OpISub %125 %810 %565
|
|
%812 = OpAccessChain %366 %361 %15 %808
|
|
OpStore %812 %811
|
|
%813 = OpLoad %14 %34
|
|
%815 = OpIAdd %14 %813 %814
|
|
%816 = OpAccessChain %366 %361 %15 %815
|
|
%817 = OpLoad %125 %816
|
|
%818 = OpISub %125 %817 %574
|
|
%819 = OpAccessChain %366 %361 %15 %815
|
|
OpStore %819 %818
|
|
%820 = OpLoad %14 %34
|
|
%822 = OpIAdd %14 %820 %821
|
|
%823 = OpAccessChain %366 %361 %15 %822
|
|
%824 = OpLoad %125 %823
|
|
%825 = OpISub %125 %824 %582
|
|
%826 = OpAccessChain %366 %361 %15 %822
|
|
OpStore %826 %825
|
|
%827 = OpLoad %14 %34
|
|
%829 = OpIAdd %14 %827 %828
|
|
%830 = OpAccessChain %366 %361 %15 %829
|
|
%831 = OpLoad %125 %830
|
|
%832 = OpISub %125 %831 %590
|
|
%833 = OpAccessChain %366 %361 %15 %829
|
|
OpStore %833 %832
|
|
%834 = OpLoad %14 %34
|
|
%836 = OpIAdd %14 %834 %835
|
|
%837 = OpAccessChain %366 %361 %15 %836
|
|
%838 = OpLoad %125 %837
|
|
%839 = OpISub %125 %838 %127
|
|
%840 = OpAccessChain %366 %361 %15 %836
|
|
OpStore %840 %839
|
|
%841 = OpLoad %14 %34
|
|
%843 = OpIAdd %14 %841 %842
|
|
%844 = OpAccessChain %366 %361 %15 %843
|
|
%845 = OpLoad %125 %844
|
|
%846 = OpISub %125 %845 %607
|
|
%847 = OpAccessChain %366 %361 %15 %843
|
|
OpStore %847 %846
|
|
%848 = OpLoad %14 %34
|
|
%850 = OpIAdd %14 %848 %849
|
|
%851 = OpAccessChain %366 %361 %15 %850
|
|
%852 = OpLoad %125 %851
|
|
%853 = OpISub %125 %852 %615
|
|
%854 = OpAccessChain %366 %361 %15 %850
|
|
OpStore %854 %853
|
|
%855 = OpLoad %14 %34
|
|
%857 = OpIAdd %14 %855 %856
|
|
%858 = OpAccessChain %366 %361 %15 %857
|
|
%859 = OpLoad %125 %858
|
|
%860 = OpISub %125 %859 %623
|
|
%861 = OpAccessChain %366 %361 %15 %857
|
|
OpStore %861 %860
|
|
%862 = OpLoad %14 %34
|
|
%864 = OpIAdd %14 %862 %863
|
|
%865 = OpAccessChain %366 %361 %15 %864
|
|
%866 = OpLoad %125 %865
|
|
%867 = OpISub %125 %866 %631
|
|
%868 = OpAccessChain %366 %361 %15 %864
|
|
OpStore %868 %867
|
|
%869 = OpLoad %14 %34
|
|
%871 = OpIAdd %14 %869 %870
|
|
%872 = OpAccessChain %366 %361 %15 %871
|
|
%873 = OpLoad %125 %872
|
|
%874 = OpISub %125 %873 %639
|
|
%875 = OpAccessChain %366 %361 %15 %871
|
|
OpStore %875 %874
|
|
%876 = OpLoad %14 %34
|
|
%878 = OpIAdd %14 %876 %877
|
|
%879 = OpAccessChain %366 %361 %15 %878
|
|
%880 = OpLoad %125 %879
|
|
%881 = OpISub %125 %880 %647
|
|
%882 = OpAccessChain %366 %361 %15 %878
|
|
OpStore %882 %881
|
|
%883 = OpLoad %14 %34
|
|
%885 = OpIAdd %14 %883 %884
|
|
%886 = OpAccessChain %366 %361 %15 %885
|
|
%887 = OpLoad %125 %886
|
|
%888 = OpISub %125 %887 %657
|
|
%889 = OpAccessChain %366 %361 %15 %885
|
|
OpStore %889 %888
|
|
%890 = OpLoad %14 %34
|
|
%892 = OpIAdd %14 %890 %891
|
|
%893 = OpAccessChain %366 %361 %15 %892
|
|
%894 = OpLoad %125 %893
|
|
%895 = OpISub %125 %894 %665
|
|
%896 = OpAccessChain %366 %361 %15 %892
|
|
OpStore %896 %895
|
|
%897 = OpLoad %14 %34
|
|
%899 = OpIAdd %14 %897 %898
|
|
%900 = OpAccessChain %366 %361 %15 %899
|
|
%901 = OpLoad %125 %900
|
|
%902 = OpISub %125 %901 %675
|
|
%903 = OpAccessChain %366 %361 %15 %899
|
|
OpStore %903 %902
|
|
%904 = OpLoad %14 %34
|
|
%906 = OpIAdd %14 %904 %905
|
|
%908 = OpAccessChain %366 %361 %15 %906
|
|
%909 = OpLoad %125 %908
|
|
%910 = OpISub %125 %909 %907
|
|
%911 = OpAccessChain %366 %361 %15 %906
|
|
OpStore %911 %910
|
|
OpReturn
|
|
OpFunctionEnd
|
|
END
|
|
|
|
BUFFER result DATA_TYPE uint32 DATA
|
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 # 0..15
|
|
0 0 0 0 0 0 0 0 0 0 0 0 0 # 16..28
|
|
0x3c003c00 0x3c003c00 0x3c003c00 0x3c003c00 # 29..32
|
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 # 33..47
|
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 # 48..63
|
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 # 64..79
|
|
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 # 80..95
|
|
0 0 0 0 0 0 0 # 96..102
|
|
END
|
|
|
|
BUFFER constants DATA_TYPE uint32 DATA
|
|
1 1 1
|
|
END
|
|
|
|
PIPELINE compute pipeline
|
|
ATTACH compute_shader
|
|
|
|
BIND BUFFER result AS storage DESCRIPTOR_SET 0 BINDING 0
|
|
BIND BUFFER result AS storage DESCRIPTOR_SET 0 BINDING 1
|
|
BIND BUFFER constants AS uniform DESCRIPTOR_SET 0 BINDING 2
|
|
END
|
|
|
|
RUN pipeline 1 1 1
|
|
|
|
# Amber bug and/or misleading behavior: index must be given in bytes
|
|
EXPECT result IDX 0 EQ 0x3c003c00 0xbc00bc00 0x38003800 0xb800b800 0x40004000 0xc000c000 0x44004400 0xc400c400 0x31183118
|
|
EXPECT result IDX 36 EQ 0x00003c00 0x3c000000 0xbc003c00 0x3c00bc00
|
|
EXPECT result IDX 52 EQ 0x00000001 0x00010001 0x00010000 0x00000011 0x00110011 0x00110000 0x00000040 0x00400040 0x00400000
|
|
EXPECT result IDX 88 EQ 0xbc00bc00 0xbc000000 0x0000bc00
|
|
EXPECT result IDX 100 EQ 0x40004000 0x40000000 0x00004000 0x3c004000
|
|
EXPECT result IDX 116 EQ 0x40004000 0x40000000 0x00004000 0x3c004000
|
|
EXPECT result IDX 132 EQ 0x00010001 0x00000001 0x00010000 0x00400040 0xfff0fff0
|
|
EXPECT result IDX 152 EQ 0x00003800 0x38000000 0x38003800 0x3f000000 0x00003f00 0x3f003f00 0x0000b800 0xbf000000
|
|
EXPECT result IDX 184 EQ 0x00003c00 0x3f800000 0x0000bc00 0xbf800000 0x00004000 0x40000000 0x0000c000 0xc0000000
|
|
EXPECT result IDX 216 EQ 0x00004400 0x40800000 0x0000c400 0xc0800000 0x00003118 0x31180000 0x31183118 0x3e22f983 0xf9833e22 0x3e223e22
|
|
EXPECT result IDX 256 EQ 0xf983f983 0x00003e22 0x0000f983 0xfffffffe 0xfffeffff 0x0014000c 0x0000c800 0xc8000000
|
|
EXPECT result IDX 288 EQ 0xc800c800 0xc1000000 0x0000c100 0xc100c100 0x00004800 0x41000000 0x0000c400 0xc0800000
|
|
EXPECT result IDX 320 EQ 0x00004400 0x40800000 0x0000c000 0xc0000000 0x00004000 0x40000000 0x0000bc00 0xbf800000
|
|
EXPECT result IDX 352 EQ 0x00003c00 0x3f800000 0x0000cee8 0xcee80000 0xcee8cee8 0xc1de067d 0x067dc1de 0xc1dec1de
|
|
EXPECT result IDX 384 EQ 0x067d067d 0x0000c1de 0x0000067d 0x00010002 0x00020001 0xffecfff4 0x00010001
|