11; SPIR-V
22; Version: 1.2
33; Generator: rspirv
4- ; Bound: 43
4+ ; Bound: 46
55OpCapability Shader
66OpCapability Linkage
77OpExtension "SPV_KHR_storage_buffer_storage_class"
88%1 = OpExtInstImport "GLSL.std.450"
99OpMemoryModel Logical GLSL450
1010%3 = OpString "pointers.wgsl"
1111OpSource Unknown 0 %3 "fn f() {
12- var v: vec2<i32 >;
13- let px = &v.x ;
14- *px = 10 ;
12+ var v: mat2x2<f32 >;
13+ let px = &v[0] ;
14+ *px = vec2<f32>(10.0) ;
1515}
1616
1717struct DynamicArray {
@@ -35,80 +35,84 @@ fn index_dynamic_array(i: i32, v: u32) {
3535 (*p)[i] = val + v;
3636}
3737"
38- OpMemberName %8 0 "arr"
39- OpName %8 "DynamicArray"
40- OpName %9 "dynamic_array"
41- OpName %12 "f"
42- OpName %15 "v"
43- OpName %23 "i"
44- OpName %24 "v"
45- OpName %25 "index_unsized"
46- OpName %35 "i"
47- OpName %36 "v"
48- OpName %37 "index_dynamic_array"
49- OpDecorate %7 ArrayStride 4
50- OpMemberDecorate %8 0 Offset 0
51- OpDecorate %8 Block
52- OpDecorate %9 DescriptorSet 0
53- OpDecorate %9 Binding 0
38+ OpMemberName %9 0 "arr"
39+ OpName %9 "DynamicArray"
40+ OpName %11 "dynamic_array"
41+ OpName %14 "f"
42+ OpName %18 "v"
43+ OpName %26 "i"
44+ OpName %27 "v"
45+ OpName %28 "index_unsized"
46+ OpName %38 "i"
47+ OpName %39 "v"
48+ OpName %40 "index_dynamic_array"
49+ OpDecorate %8 ArrayStride 4
50+ OpMemberDecorate %9 0 Offset 0
51+ OpDecorate %9 Block
52+ OpDecorate %11 DescriptorSet 0
53+ OpDecorate %11 Binding 0
5454%2 = OpTypeVoid
55- %4 = OpTypeInt 32 1
56- %5 = OpTypeVector %4 2
57- %6 = OpTypeInt 32 0
58- %7 = OpTypeRuntimeArray %6
59- %8 = OpTypeStruct %7
60- %10 = OpTypePointer StorageBuffer %8
61- %9 = OpVariable %10 StorageBuffer
62- %13 = OpTypeFunction %2
63- %14 = OpConstant %4 10
64- %16 = OpTypePointer Function %5
65- %17 = OpConstantNull %5
55+ %6 = OpTypeFloat 32
56+ %5 = OpTypeVector %6 2
57+ %4 = OpTypeMatrix %5 2
58+ %7 = OpTypeInt 32 0
59+ %8 = OpTypeRuntimeArray %7
60+ %9 = OpTypeStruct %8
61+ %10 = OpTypeInt 32 1
62+ %12 = OpTypePointer StorageBuffer %9
63+ %11 = OpVariable %12 StorageBuffer
64+ %15 = OpTypeFunction %2
65+ %16 = OpConstant %6 10.0
66+ %17 = OpConstantComposite %5 %16 %16
6667%19 = OpTypePointer Function %4
67- %20 = OpConstant %6 0
68- %26 = OpTypeFunction %2 %4 %6
69- %28 = OpTypePointer StorageBuffer %7
70- %29 = OpTypePointer StorageBuffer %6
71- %12 = OpFunction %2 None %13
72- %11 = OpLabel
73- %15 = OpVariable %16 Function %17
74- OpBranch %18
75- %18 = OpLabel
68+ %20 = OpConstantNull %4
69+ %22 = OpTypePointer Function %5
70+ %23 = OpConstant %7 0
71+ %29 = OpTypeFunction %2 %10 %7
72+ %31 = OpTypePointer StorageBuffer %8
73+ %32 = OpTypePointer StorageBuffer %7
74+ %14 = OpFunction %2 None %15
75+ %13 = OpLabel
76+ %18 = OpVariable %19 Function %20
77+ OpBranch %21
78+ %21 = OpLabel
7679OpLine %3 3 14
80+ OpLine %3 4 10
7781OpLine %3 4 4
78- %21 = OpAccessChain %19 %15 %20
79- OpStore %21 %14
82+ %24 = OpAccessChain %22 %18 %23
83+ OpStore %24 %17
8084OpReturn
8185OpFunctionEnd
82- %25 = OpFunction %2 None %26
83- %23 = OpFunctionParameter %4
84- %24 = OpFunctionParameter %6
85- %22 = OpLabel
86- OpBranch %27
87- %27 = OpLabel
86+ %28 = OpFunction %2 None %29
87+ %26 = OpFunctionParameter %10
88+ %27 = OpFunctionParameter %7
89+ %25 = OpLabel
90+ OpBranch %30
91+ %30 = OpLabel
8892OpLine %3 17 14
89- %30 = OpAccessChain %29 %9 %20 %23
90- %31 = OpLoad %6 %30
93+ %33 = OpAccessChain %32 %11 %23 %26
94+ %34 = OpLoad %7 %33
9195OpLine %3 18 4
92- %32 = OpIAdd %6 %31 %24
96+ %35 = OpIAdd %7 %34 %27
9397OpLine %3 18 4
94- %33 = OpAccessChain %29 %9 %20 %23
95- OpStore %33 %32
98+ %36 = OpAccessChain %32 %11 %23 %26
99+ OpStore %36 %35
96100OpReturn
97101OpFunctionEnd
98- %37 = OpFunction %2 None %26
99- %35 = OpFunctionParameter %4
100- %36 = OpFunctionParameter %6
101- %34 = OpLabel
102- OpBranch %38
103- %38 = OpLabel
102+ %40 = OpFunction %2 None %29
103+ %38 = OpFunctionParameter %10
104+ %39 = OpFunctionParameter %7
105+ %37 = OpLabel
106+ OpBranch %41
107+ %41 = OpLabel
104108OpLine %3 22 51
105109OpLine %3 24 14
106- %39 = OpAccessChain %29 %9 %20 %35
107- %40 = OpLoad %6 %39
110+ %42 = OpAccessChain %32 %11 %23 %38
111+ %43 = OpLoad %7 %42
108112OpLine %3 25 4
109- %41 = OpIAdd %6 %40 %36
113+ %44 = OpIAdd %7 %43 %39
110114OpLine %3 25 4
111- %42 = OpAccessChain %29 %9 %20 %35
112- OpStore %42 %41
115+ %45 = OpAccessChain %32 %11 %23 %38
116+ OpStore %45 %44
113117OpReturn
114118OpFunctionEnd
0 commit comments