1617a3babSopenharmony_cihlsl.structbuffer.coherent.frag 2617a3babSopenharmony_ciShader version: 500 3617a3babSopenharmony_cigl_FragCoord origin is upper left 4617a3babSopenharmony_ci0:? Sequence 5617a3babSopenharmony_ci0:12 Function Definition: @main(u1; ( temp 4-component vector of float) 6617a3babSopenharmony_ci0:12 Function Parameters: 7617a3babSopenharmony_ci0:12 'pos' ( in uint) 8617a3babSopenharmony_ci0:? Sequence 9617a3babSopenharmony_ci0:13 move second child to first child ( temp float) 10617a3babSopenharmony_ci0:13 indirect index (layout( row_major std430) buffer float) 11617a3babSopenharmony_ci0:13 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) 12617a3babSopenharmony_ci0:13 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) 13617a3babSopenharmony_ci0:13 Constant: 14617a3babSopenharmony_ci0:13 0 (const uint) 15617a3babSopenharmony_ci0:13 add ( temp uint) 16617a3babSopenharmony_ci0:13 'pos' ( in uint) 17617a3babSopenharmony_ci0:13 Constant: 18617a3babSopenharmony_ci0:13 1 (const uint) 19617a3babSopenharmony_ci0:13 Constant: 20617a3babSopenharmony_ci0:13 42.000000 21617a3babSopenharmony_ci0:17 Sequence 22617a3babSopenharmony_ci0:17 move second child to first child ( temp uint) 23617a3babSopenharmony_ci0:17 'size' ( temp uint) 24617a3babSopenharmony_ci0:17 array length ( temp uint) 25617a3babSopenharmony_ci0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) 26617a3babSopenharmony_ci0:17 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) 27617a3babSopenharmony_ci0:17 Constant: 28617a3babSopenharmony_ci0:17 0 (const uint) 29617a3babSopenharmony_ci0:17 move second child to first child ( temp uint) 30617a3babSopenharmony_ci0:17 'stride' ( temp uint) 31617a3babSopenharmony_ci0:17 Constant: 32617a3babSopenharmony_ci0:17 16 (const uint) 33617a3babSopenharmony_ci0:19 Test condition and select ( temp void) 34617a3babSopenharmony_ci0:19 Condition 35617a3babSopenharmony_ci0:19 test: direct index for structure ( temp bool) 36617a3babSopenharmony_ci0:19 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test}) 37617a3babSopenharmony_ci0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) 38617a3babSopenharmony_ci0:19 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) 39617a3babSopenharmony_ci0:19 Constant: 40617a3babSopenharmony_ci0:19 0 (const uint) 41617a3babSopenharmony_ci0:19 'pos' ( in uint) 42617a3babSopenharmony_ci0:19 Constant: 43617a3babSopenharmony_ci0:19 1 (const int) 44617a3babSopenharmony_ci0:19 true case 45617a3babSopenharmony_ci0:20 Branch: Return with expression 46617a3babSopenharmony_ci0:20 Construct vec4 ( temp 4-component vector of float) 47617a3babSopenharmony_ci0:20 add ( temp 3-component vector of float) 48617a3babSopenharmony_ci0:20 color: direct index for structure ( temp 3-component vector of float) 49617a3babSopenharmony_ci0:20 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test}) 50617a3babSopenharmony_ci0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) 51617a3babSopenharmony_ci0:20 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) 52617a3babSopenharmony_ci0:20 Constant: 53617a3babSopenharmony_ci0:20 0 (const uint) 54617a3babSopenharmony_ci0:20 'pos' ( in uint) 55617a3babSopenharmony_ci0:20 Constant: 56617a3babSopenharmony_ci0:20 0 (const int) 57617a3babSopenharmony_ci0:20 indirect index (layout( row_major std430) buffer float) 58617a3babSopenharmony_ci0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) 59617a3babSopenharmony_ci0:20 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) 60617a3babSopenharmony_ci0:20 Constant: 61617a3babSopenharmony_ci0:20 0 (const uint) 62617a3babSopenharmony_ci0:20 'pos' ( in uint) 63617a3babSopenharmony_ci0:20 Constant: 64617a3babSopenharmony_ci0:20 0.000000 65617a3babSopenharmony_ci0:19 false case 66617a3babSopenharmony_ci0:22 Branch: Return with expression 67617a3babSopenharmony_ci0:22 Construct vec4 ( temp 4-component vector of float) 68617a3babSopenharmony_ci0:22 Convert uint to float ( temp float) 69617a3babSopenharmony_ci0:22 add ( temp uint) 70617a3babSopenharmony_ci0:22 'size' ( temp uint) 71617a3babSopenharmony_ci0:22 'stride' ( temp uint) 72617a3babSopenharmony_ci0:12 Function Definition: main( ( temp void) 73617a3babSopenharmony_ci0:12 Function Parameters: 74617a3babSopenharmony_ci0:? Sequence 75617a3babSopenharmony_ci0:12 move second child to first child ( temp uint) 76617a3babSopenharmony_ci0:? 'pos' ( temp uint) 77617a3babSopenharmony_ci0:? 'pos' (layout( location=0) flat in uint) 78617a3babSopenharmony_ci0:12 move second child to first child ( temp 4-component vector of float) 79617a3babSopenharmony_ci0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 80617a3babSopenharmony_ci0:12 Function Call: @main(u1; ( temp 4-component vector of float) 81617a3babSopenharmony_ci0:? 'pos' ( temp uint) 82617a3babSopenharmony_ci0:? Linker Objects 83617a3babSopenharmony_ci0:? 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) 84617a3babSopenharmony_ci0:? 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) 85617a3babSopenharmony_ci0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 86617a3babSopenharmony_ci0:? 'pos' (layout( location=0) flat in uint) 87617a3babSopenharmony_ci 88617a3babSopenharmony_ci 89617a3babSopenharmony_ciLinked fragment stage: 90617a3babSopenharmony_ci 91617a3babSopenharmony_ci 92617a3babSopenharmony_ciShader version: 500 93617a3babSopenharmony_cigl_FragCoord origin is upper left 94617a3babSopenharmony_ci0:? Sequence 95617a3babSopenharmony_ci0:12 Function Definition: @main(u1; ( temp 4-component vector of float) 96617a3babSopenharmony_ci0:12 Function Parameters: 97617a3babSopenharmony_ci0:12 'pos' ( in uint) 98617a3babSopenharmony_ci0:? Sequence 99617a3babSopenharmony_ci0:13 move second child to first child ( temp float) 100617a3babSopenharmony_ci0:13 indirect index (layout( row_major std430) buffer float) 101617a3babSopenharmony_ci0:13 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) 102617a3babSopenharmony_ci0:13 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) 103617a3babSopenharmony_ci0:13 Constant: 104617a3babSopenharmony_ci0:13 0 (const uint) 105617a3babSopenharmony_ci0:13 add ( temp uint) 106617a3babSopenharmony_ci0:13 'pos' ( in uint) 107617a3babSopenharmony_ci0:13 Constant: 108617a3babSopenharmony_ci0:13 1 (const uint) 109617a3babSopenharmony_ci0:13 Constant: 110617a3babSopenharmony_ci0:13 42.000000 111617a3babSopenharmony_ci0:17 Sequence 112617a3babSopenharmony_ci0:17 move second child to first child ( temp uint) 113617a3babSopenharmony_ci0:17 'size' ( temp uint) 114617a3babSopenharmony_ci0:17 array length ( temp uint) 115617a3babSopenharmony_ci0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) 116617a3babSopenharmony_ci0:17 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) 117617a3babSopenharmony_ci0:17 Constant: 118617a3babSopenharmony_ci0:17 0 (const uint) 119617a3babSopenharmony_ci0:17 move second child to first child ( temp uint) 120617a3babSopenharmony_ci0:17 'stride' ( temp uint) 121617a3babSopenharmony_ci0:17 Constant: 122617a3babSopenharmony_ci0:17 16 (const uint) 123617a3babSopenharmony_ci0:19 Test condition and select ( temp void) 124617a3babSopenharmony_ci0:19 Condition 125617a3babSopenharmony_ci0:19 test: direct index for structure ( temp bool) 126617a3babSopenharmony_ci0:19 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test}) 127617a3babSopenharmony_ci0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) 128617a3babSopenharmony_ci0:19 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) 129617a3babSopenharmony_ci0:19 Constant: 130617a3babSopenharmony_ci0:19 0 (const uint) 131617a3babSopenharmony_ci0:19 'pos' ( in uint) 132617a3babSopenharmony_ci0:19 Constant: 133617a3babSopenharmony_ci0:19 1 (const int) 134617a3babSopenharmony_ci0:19 true case 135617a3babSopenharmony_ci0:20 Branch: Return with expression 136617a3babSopenharmony_ci0:20 Construct vec4 ( temp 4-component vector of float) 137617a3babSopenharmony_ci0:20 add ( temp 3-component vector of float) 138617a3babSopenharmony_ci0:20 color: direct index for structure ( temp 3-component vector of float) 139617a3babSopenharmony_ci0:20 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test}) 140617a3babSopenharmony_ci0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) 141617a3babSopenharmony_ci0:20 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) 142617a3babSopenharmony_ci0:20 Constant: 143617a3babSopenharmony_ci0:20 0 (const uint) 144617a3babSopenharmony_ci0:20 'pos' ( in uint) 145617a3babSopenharmony_ci0:20 Constant: 146617a3babSopenharmony_ci0:20 0 (const int) 147617a3babSopenharmony_ci0:20 indirect index (layout( row_major std430) buffer float) 148617a3babSopenharmony_ci0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) 149617a3babSopenharmony_ci0:20 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) 150617a3babSopenharmony_ci0:20 Constant: 151617a3babSopenharmony_ci0:20 0 (const uint) 152617a3babSopenharmony_ci0:20 'pos' ( in uint) 153617a3babSopenharmony_ci0:20 Constant: 154617a3babSopenharmony_ci0:20 0.000000 155617a3babSopenharmony_ci0:19 false case 156617a3babSopenharmony_ci0:22 Branch: Return with expression 157617a3babSopenharmony_ci0:22 Construct vec4 ( temp 4-component vector of float) 158617a3babSopenharmony_ci0:22 Convert uint to float ( temp float) 159617a3babSopenharmony_ci0:22 add ( temp uint) 160617a3babSopenharmony_ci0:22 'size' ( temp uint) 161617a3babSopenharmony_ci0:22 'stride' ( temp uint) 162617a3babSopenharmony_ci0:12 Function Definition: main( ( temp void) 163617a3babSopenharmony_ci0:12 Function Parameters: 164617a3babSopenharmony_ci0:? Sequence 165617a3babSopenharmony_ci0:12 move second child to first child ( temp uint) 166617a3babSopenharmony_ci0:? 'pos' ( temp uint) 167617a3babSopenharmony_ci0:? 'pos' (layout( location=0) flat in uint) 168617a3babSopenharmony_ci0:12 move second child to first child ( temp 4-component vector of float) 169617a3babSopenharmony_ci0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 170617a3babSopenharmony_ci0:12 Function Call: @main(u1; ( temp 4-component vector of float) 171617a3babSopenharmony_ci0:? 'pos' ( temp uint) 172617a3babSopenharmony_ci0:? Linker Objects 173617a3babSopenharmony_ci0:? 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) 174617a3babSopenharmony_ci0:? 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) 175617a3babSopenharmony_ci0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 176617a3babSopenharmony_ci0:? 'pos' (layout( location=0) flat in uint) 177617a3babSopenharmony_ci 178617a3babSopenharmony_ci// Module Version 10000 179617a3babSopenharmony_ci// Generated by (magic number): 8000b 180617a3babSopenharmony_ci// Id's are bound by 78 181617a3babSopenharmony_ci 182617a3babSopenharmony_ci Capability Shader 183617a3babSopenharmony_ci 1: ExtInstImport "GLSL.std.450" 184617a3babSopenharmony_ci MemoryModel Logical GLSL450 185617a3babSopenharmony_ci EntryPoint Fragment 4 "main" 71 74 186617a3babSopenharmony_ci ExecutionMode 4 OriginUpperLeft 187617a3babSopenharmony_ci Source HLSL 500 188617a3babSopenharmony_ci Name 4 "main" 189617a3babSopenharmony_ci Name 12 "@main(u1;" 190617a3babSopenharmony_ci Name 11 "pos" 191617a3babSopenharmony_ci Name 15 "sbuf2" 192617a3babSopenharmony_ci MemberName 15(sbuf2) 0 "@data" 193617a3babSopenharmony_ci Name 17 "sbuf2" 194617a3babSopenharmony_ci Name 26 "size" 195617a3babSopenharmony_ci Name 28 "sb_t" 196617a3babSopenharmony_ci MemberName 28(sb_t) 0 "color" 197617a3babSopenharmony_ci MemberName 28(sb_t) 1 "test" 198617a3babSopenharmony_ci Name 30 "sbuf" 199617a3babSopenharmony_ci MemberName 30(sbuf) 0 "@data" 200617a3babSopenharmony_ci Name 32 "sbuf" 201617a3babSopenharmony_ci Name 34 "stride" 202617a3babSopenharmony_ci Name 69 "pos" 203617a3babSopenharmony_ci Name 71 "pos" 204617a3babSopenharmony_ci Name 74 "@entryPointOutput" 205617a3babSopenharmony_ci Name 75 "param" 206617a3babSopenharmony_ci Decorate 14 ArrayStride 4 207617a3babSopenharmony_ci MemberDecorate 15(sbuf2) 0 Coherent 208617a3babSopenharmony_ci MemberDecorate 15(sbuf2) 0 Offset 0 209617a3babSopenharmony_ci Decorate 15(sbuf2) BufferBlock 210617a3babSopenharmony_ci Decorate 17(sbuf2) DescriptorSet 0 211617a3babSopenharmony_ci Decorate 17(sbuf2) Binding 1 212617a3babSopenharmony_ci MemberDecorate 28(sb_t) 0 Offset 0 213617a3babSopenharmony_ci MemberDecorate 28(sb_t) 1 Offset 12 214617a3babSopenharmony_ci Decorate 29 ArrayStride 16 215617a3babSopenharmony_ci MemberDecorate 30(sbuf) 0 Coherent 216617a3babSopenharmony_ci MemberDecorate 30(sbuf) 0 Offset 0 217617a3babSopenharmony_ci Decorate 30(sbuf) BufferBlock 218617a3babSopenharmony_ci Decorate 32(sbuf) DescriptorSet 0 219617a3babSopenharmony_ci Decorate 32(sbuf) Binding 0 220617a3babSopenharmony_ci Decorate 71(pos) Flat 221617a3babSopenharmony_ci Decorate 71(pos) Location 0 222617a3babSopenharmony_ci Decorate 74(@entryPointOutput) Location 0 223617a3babSopenharmony_ci 2: TypeVoid 224617a3babSopenharmony_ci 3: TypeFunction 2 225617a3babSopenharmony_ci 6: TypeInt 32 0 226617a3babSopenharmony_ci 7: TypePointer Function 6(int) 227617a3babSopenharmony_ci 8: TypeFloat 32 228617a3babSopenharmony_ci 9: TypeVector 8(float) 4 229617a3babSopenharmony_ci 10: TypeFunction 9(fvec4) 7(ptr) 230617a3babSopenharmony_ci 14: TypeRuntimeArray 8(float) 231617a3babSopenharmony_ci 15(sbuf2): TypeStruct 14 232617a3babSopenharmony_ci 16: TypePointer Uniform 15(sbuf2) 233617a3babSopenharmony_ci 17(sbuf2): 16(ptr) Variable Uniform 234617a3babSopenharmony_ci 18: TypeInt 32 1 235617a3babSopenharmony_ci 19: 18(int) Constant 0 236617a3babSopenharmony_ci 21: 6(int) Constant 1 237617a3babSopenharmony_ci 23: 8(float) Constant 1109917696 238617a3babSopenharmony_ci 24: TypePointer Uniform 8(float) 239617a3babSopenharmony_ci 27: TypeVector 8(float) 3 240617a3babSopenharmony_ci 28(sb_t): TypeStruct 27(fvec3) 6(int) 241617a3babSopenharmony_ci 29: TypeRuntimeArray 28(sb_t) 242617a3babSopenharmony_ci 30(sbuf): TypeStruct 29 243617a3babSopenharmony_ci 31: TypePointer Uniform 30(sbuf) 244617a3babSopenharmony_ci 32(sbuf): 31(ptr) Variable Uniform 245617a3babSopenharmony_ci 35: 6(int) Constant 16 246617a3babSopenharmony_ci 37: 18(int) Constant 1 247617a3babSopenharmony_ci 38: TypePointer Uniform 6(int) 248617a3babSopenharmony_ci 41: TypeBool 249617a3babSopenharmony_ci 42: 6(int) Constant 0 250617a3babSopenharmony_ci 47: TypePointer Uniform 27(fvec3) 251617a3babSopenharmony_ci 55: 8(float) Constant 0 252617a3babSopenharmony_ci 70: TypePointer Input 6(int) 253617a3babSopenharmony_ci 71(pos): 70(ptr) Variable Input 254617a3babSopenharmony_ci 73: TypePointer Output 9(fvec4) 255617a3babSopenharmony_ci74(@entryPointOutput): 73(ptr) Variable Output 256617a3babSopenharmony_ci 4(main): 2 Function None 3 257617a3babSopenharmony_ci 5: Label 258617a3babSopenharmony_ci 69(pos): 7(ptr) Variable Function 259617a3babSopenharmony_ci 75(param): 7(ptr) Variable Function 260617a3babSopenharmony_ci 72: 6(int) Load 71(pos) 261617a3babSopenharmony_ci Store 69(pos) 72 262617a3babSopenharmony_ci 76: 6(int) Load 69(pos) 263617a3babSopenharmony_ci Store 75(param) 76 264617a3babSopenharmony_ci 77: 9(fvec4) FunctionCall 12(@main(u1;) 75(param) 265617a3babSopenharmony_ci Store 74(@entryPointOutput) 77 266617a3babSopenharmony_ci Return 267617a3babSopenharmony_ci FunctionEnd 268617a3babSopenharmony_ci 12(@main(u1;): 9(fvec4) Function None 10 269617a3babSopenharmony_ci 11(pos): 7(ptr) FunctionParameter 270617a3babSopenharmony_ci 13: Label 271617a3babSopenharmony_ci 26(size): 7(ptr) Variable Function 272617a3babSopenharmony_ci 34(stride): 7(ptr) Variable Function 273617a3babSopenharmony_ci 20: 6(int) Load 11(pos) 274617a3babSopenharmony_ci 22: 6(int) IAdd 20 21 275617a3babSopenharmony_ci 25: 24(ptr) AccessChain 17(sbuf2) 19 22 276617a3babSopenharmony_ci Store 25 23 277617a3babSopenharmony_ci 33: 6(int) ArrayLength 32(sbuf) 0 278617a3babSopenharmony_ci Store 26(size) 33 279617a3babSopenharmony_ci Store 34(stride) 35 280617a3babSopenharmony_ci 36: 6(int) Load 11(pos) 281617a3babSopenharmony_ci 39: 38(ptr) AccessChain 32(sbuf) 19 36 37 282617a3babSopenharmony_ci 40: 6(int) Load 39 283617a3babSopenharmony_ci 43: 41(bool) INotEqual 40 42 284617a3babSopenharmony_ci SelectionMerge 45 None 285617a3babSopenharmony_ci BranchConditional 43 44 61 286617a3babSopenharmony_ci 44: Label 287617a3babSopenharmony_ci 46: 6(int) Load 11(pos) 288617a3babSopenharmony_ci 48: 47(ptr) AccessChain 32(sbuf) 19 46 19 289617a3babSopenharmony_ci 49: 27(fvec3) Load 48 290617a3babSopenharmony_ci 50: 6(int) Load 11(pos) 291617a3babSopenharmony_ci 51: 24(ptr) AccessChain 17(sbuf2) 19 50 292617a3babSopenharmony_ci 52: 8(float) Load 51 293617a3babSopenharmony_ci 53: 27(fvec3) CompositeConstruct 52 52 52 294617a3babSopenharmony_ci 54: 27(fvec3) FAdd 49 53 295617a3babSopenharmony_ci 56: 8(float) CompositeExtract 54 0 296617a3babSopenharmony_ci 57: 8(float) CompositeExtract 54 1 297617a3babSopenharmony_ci 58: 8(float) CompositeExtract 54 2 298617a3babSopenharmony_ci 59: 9(fvec4) CompositeConstruct 56 57 58 55 299617a3babSopenharmony_ci ReturnValue 59 300617a3babSopenharmony_ci 61: Label 301617a3babSopenharmony_ci 62: 6(int) Load 26(size) 302617a3babSopenharmony_ci 63: 6(int) Load 34(stride) 303617a3babSopenharmony_ci 64: 6(int) IAdd 62 63 304617a3babSopenharmony_ci 65: 8(float) ConvertUToF 64 305617a3babSopenharmony_ci 66: 9(fvec4) CompositeConstruct 65 65 65 65 306617a3babSopenharmony_ci ReturnValue 66 307617a3babSopenharmony_ci 45: Label 308617a3babSopenharmony_ci Unreachable 309617a3babSopenharmony_ci FunctionEnd 310