mirror of
https://github.com/gfx-rs/wgpu.git
synced 2024-11-28 17:53:40 +00:00
204 lines
4.7 KiB
Plaintext
204 lines
4.7 KiB
Plaintext
; SPIR-V
|
|
; Version: 1.1
|
|
; Generator: rspirv
|
|
; Bound: 124
|
|
OpCapability Shader
|
|
OpExtension "SPV_KHR_storage_buffer_storage_class"
|
|
%1 = OpExtInstImport "GLSL.std.450"
|
|
OpMemoryModel Logical GLSL450
|
|
OpEntryPoint GLCompute %18 "test_atomic_compare_exchange_i32"
|
|
OpEntryPoint GLCompute %77 "test_atomic_compare_exchange_u32"
|
|
OpExecutionMode %18 LocalSize 1 1 1
|
|
OpExecutionMode %77 LocalSize 1 1 1
|
|
OpDecorate %5 ArrayStride 4
|
|
OpDecorate %7 ArrayStride 4
|
|
OpMemberDecorate %9 0 Offset 0
|
|
OpMemberDecorate %9 1 Offset 4
|
|
OpMemberDecorate %10 0 Offset 0
|
|
OpMemberDecorate %10 1 Offset 4
|
|
OpDecorate %11 DescriptorSet 0
|
|
OpDecorate %11 Binding 0
|
|
OpDecorate %12 Block
|
|
OpMemberDecorate %12 0 Offset 0
|
|
OpDecorate %14 DescriptorSet 0
|
|
OpDecorate %14 Binding 1
|
|
OpDecorate %15 Block
|
|
OpMemberDecorate %15 0 Offset 0
|
|
%2 = OpTypeVoid
|
|
%3 = OpTypeInt 32 0
|
|
%4 = OpTypeInt 32 1
|
|
%6 = OpConstant %3 128
|
|
%5 = OpTypeArray %4 %6
|
|
%7 = OpTypeArray %3 %6
|
|
%8 = OpTypeBool
|
|
%9 = OpTypeStruct %4 %8
|
|
%10 = OpTypeStruct %3 %8
|
|
%12 = OpTypeStruct %5
|
|
%13 = OpTypePointer StorageBuffer %12
|
|
%11 = OpVariable %13 StorageBuffer
|
|
%15 = OpTypeStruct %7
|
|
%16 = OpTypePointer StorageBuffer %15
|
|
%14 = OpVariable %16 StorageBuffer
|
|
%19 = OpTypeFunction %2
|
|
%20 = OpTypePointer StorageBuffer %5
|
|
%21 = OpConstant %3 0
|
|
%23 = OpConstantFalse %8
|
|
%24 = OpTypeFloat 32
|
|
%25 = OpConstant %24 1.0
|
|
%26 = OpConstant %3 1
|
|
%28 = OpTypePointer Function %3
|
|
%30 = OpTypePointer Function %4
|
|
%31 = OpConstantNull %4
|
|
%33 = OpTypePointer Function %8
|
|
%34 = OpConstantNull %8
|
|
%47 = OpTypePointer StorageBuffer %4
|
|
%50 = OpConstant %4 1
|
|
%51 = OpConstant %3 64
|
|
%78 = OpTypePointer StorageBuffer %7
|
|
%82 = OpConstantNull %3
|
|
%84 = OpConstantNull %8
|
|
%97 = OpTypePointer StorageBuffer %3
|
|
%18 = OpFunction %2 None %19
|
|
%17 = OpLabel
|
|
%27 = OpVariable %28 Function %21
|
|
%29 = OpVariable %30 Function %31
|
|
%32 = OpVariable %33 Function %34
|
|
%22 = OpAccessChain %20 %11 %21
|
|
OpBranch %35
|
|
%35 = OpLabel
|
|
OpBranch %36
|
|
%36 = OpLabel
|
|
OpLoopMerge %37 %39 None
|
|
OpBranch %38
|
|
%38 = OpLabel
|
|
%40 = OpLoad %3 %27
|
|
%41 = OpULessThan %8 %40 %6
|
|
OpSelectionMerge %42 None
|
|
OpBranchConditional %41 %42 %43
|
|
%43 = OpLabel
|
|
OpBranch %37
|
|
%42 = OpLabel
|
|
OpBranch %44
|
|
%44 = OpLabel
|
|
%46 = OpLoad %3 %27
|
|
%48 = OpAccessChain %47 %22 %46
|
|
%49 = OpAtomicLoad %4 %48 %50 %51
|
|
OpStore %29 %49
|
|
OpStore %32 %23
|
|
OpBranch %52
|
|
%52 = OpLabel
|
|
OpLoopMerge %53 %55 None
|
|
OpBranch %54
|
|
%54 = OpLabel
|
|
%56 = OpLoad %8 %32
|
|
%57 = OpLogicalNot %8 %56
|
|
OpSelectionMerge %58 None
|
|
OpBranchConditional %57 %58 %59
|
|
%59 = OpLabel
|
|
OpBranch %53
|
|
%58 = OpLabel
|
|
OpBranch %60
|
|
%60 = OpLabel
|
|
%62 = OpLoad %4 %29
|
|
%63 = OpBitcast %24 %62
|
|
%64 = OpFAdd %24 %63 %25
|
|
%65 = OpBitcast %4 %64
|
|
%66 = OpLoad %3 %27
|
|
%67 = OpLoad %4 %29
|
|
%69 = OpAccessChain %47 %22 %66
|
|
%70 = OpAtomicCompareExchange %4 %69 %50 %51 %51 %65 %67
|
|
%71 = OpIEqual %8 %70 %67
|
|
%68 = OpCompositeConstruct %9 %70 %71
|
|
%72 = OpCompositeExtract %4 %68 0
|
|
OpStore %29 %72
|
|
%73 = OpCompositeExtract %8 %68 1
|
|
OpStore %32 %73
|
|
OpBranch %61
|
|
%61 = OpLabel
|
|
OpBranch %55
|
|
%55 = OpLabel
|
|
OpBranch %52
|
|
%53 = OpLabel
|
|
OpBranch %45
|
|
%45 = OpLabel
|
|
OpBranch %39
|
|
%39 = OpLabel
|
|
%74 = OpLoad %3 %27
|
|
%75 = OpIAdd %3 %74 %26
|
|
OpStore %27 %75
|
|
OpBranch %36
|
|
%37 = OpLabel
|
|
OpReturn
|
|
OpFunctionEnd
|
|
%77 = OpFunction %2 None %19
|
|
%76 = OpLabel
|
|
%80 = OpVariable %28 Function %21
|
|
%81 = OpVariable %28 Function %82
|
|
%83 = OpVariable %33 Function %84
|
|
%79 = OpAccessChain %78 %14 %21
|
|
OpBranch %85
|
|
%85 = OpLabel
|
|
OpBranch %86
|
|
%86 = OpLabel
|
|
OpLoopMerge %87 %89 None
|
|
OpBranch %88
|
|
%88 = OpLabel
|
|
%90 = OpLoad %3 %80
|
|
%91 = OpULessThan %8 %90 %6
|
|
OpSelectionMerge %92 None
|
|
OpBranchConditional %91 %92 %93
|
|
%93 = OpLabel
|
|
OpBranch %87
|
|
%92 = OpLabel
|
|
OpBranch %94
|
|
%94 = OpLabel
|
|
%96 = OpLoad %3 %80
|
|
%98 = OpAccessChain %97 %79 %96
|
|
%99 = OpAtomicLoad %3 %98 %50 %51
|
|
OpStore %81 %99
|
|
OpStore %83 %23
|
|
OpBranch %100
|
|
%100 = OpLabel
|
|
OpLoopMerge %101 %103 None
|
|
OpBranch %102
|
|
%102 = OpLabel
|
|
%104 = OpLoad %8 %83
|
|
%105 = OpLogicalNot %8 %104
|
|
OpSelectionMerge %106 None
|
|
OpBranchConditional %105 %106 %107
|
|
%107 = OpLabel
|
|
OpBranch %101
|
|
%106 = OpLabel
|
|
OpBranch %108
|
|
%108 = OpLabel
|
|
%110 = OpLoad %3 %81
|
|
%111 = OpBitcast %24 %110
|
|
%112 = OpFAdd %24 %111 %25
|
|
%113 = OpBitcast %3 %112
|
|
%114 = OpLoad %3 %80
|
|
%115 = OpLoad %3 %81
|
|
%117 = OpAccessChain %97 %79 %114
|
|
%118 = OpAtomicCompareExchange %3 %117 %50 %51 %51 %113 %115
|
|
%119 = OpIEqual %8 %118 %115
|
|
%116 = OpCompositeConstruct %10 %118 %119
|
|
%120 = OpCompositeExtract %3 %116 0
|
|
OpStore %81 %120
|
|
%121 = OpCompositeExtract %8 %116 1
|
|
OpStore %83 %121
|
|
OpBranch %109
|
|
%109 = OpLabel
|
|
OpBranch %103
|
|
%103 = OpLabel
|
|
OpBranch %100
|
|
%101 = OpLabel
|
|
OpBranch %95
|
|
%95 = OpLabel
|
|
OpBranch %89
|
|
%89 = OpLabel
|
|
%122 = OpLoad %3 %80
|
|
%123 = OpIAdd %3 %122 %26
|
|
OpStore %80 %123
|
|
OpBranch %86
|
|
%87 = OpLabel
|
|
OpReturn
|
|
OpFunctionEnd |