shader: MESA_SHADER_KERNEL source_sha1: {0x6c952007, 0xa737260b, 0xc05e8328, 0x451f26c3, 0x39193d5d} internal: false workgroup-size: 0, 0, 0 shared-size: 0 stage: 14 next_stage: 0 subgroup_size: 0 Unhandled stage 14 inputs: 0 outputs: 0 uniforms: 0 decl_var system INTERP_MODE_NONE none u64vec3 __spirv_BuiltInGlobalInvocationId decl_var uniform INTERP_MODE_NONE none uint64_t #0 (0, 0, 0) decl_function hello (1 params) impl hello { decl_var INTERP_MODE_NONE none uint64_t out.addr decl_var INTERP_MODE_NONE none uint id decl_var INTERP_MODE_NONE none struct.mystruct .compoundliteral block b0: // preds: 64 %0 = @load_param () (param_idx=0) 64 %1 = deref_cast (struct.mystruct *)%0 (global struct.mystruct) (ptr_stride=0, align_mul=0, align_offset=0) 64 %2 = deref_cast (struct.mystruct *)%1 (global struct.mystruct) (ptr_stride=0, align_mul=4, align_offset=0) 64 %3 = deref_var &out.addr (function_temp uint64_t) @store_deref (%3, %2) (wrmask=x, access=none) 32 %4 = deref_var &__spirv_BuiltInGlobalInvocationId (system u64vec3) 64x3 %5 = @load_deref (%4) (access=none) 64 %6 = mov %5.x 32 %7 = u2u32 %6 64 %8 = deref_var &id (function_temp uint) @store_deref (%8, %7) (wrmask=x, access=none) 64 %9 = deref_var &out.addr (function_temp uint64_t) 64 %10 = @load_deref (%9) (access=none) 64 %11 = deref_cast (struct.mystruct *)%10 (global struct.mystruct) (ptr_stride=0, align_mul=0, align_offset=0) 64 %12 = deref_var &id (function_temp uint) 32 %13 = @load_deref (%12) (access=none) 64 %14 = u2u64 %13 64 %15 = deref_cast (struct.mystruct *)%11 (global struct.mystruct) (ptr_stride=0, align_mul=0, align_offset=0) 64 %16 = deref_ptr_as_array &(*%15)[%14] (global struct.mystruct) // &(*(struct.mystruct *)%11)[%14] 64 %17 = deref_var &.compoundliteral (function_temp struct.mystruct) 64 %18 = deref_cast (struct.mystruct *)%17 (function_temp struct.mystruct) (ptr_stride=0, align_mul=0, align_offset=0) 64 %19 = load_const (0x0000000000000000 = 0.000000) 64 %20 = deref_ptr_as_array &(*%18)[0] (function_temp struct.mystruct) // &(*(struct.mystruct *)%17)[0] 64 %21 = deref_struct &%20->field0 (function_temp uint) // &(*(struct.mystruct *)%17)[0].field0 64 %22 = deref_cast (uint *)%21 (function_temp uint) (ptr_stride=0, align_mul=4, align_offset=0) 32 %23 = load_const (0x000004d2 = 1234) @store_deref (%22, %23 (0x4d2)) (wrmask=x, access=none) 64 %24 = deref_var &.compoundliteral (function_temp struct.mystruct) 64 %25 = deref_cast (struct.mystruct *)%24 (function_temp struct.mystruct) (ptr_stride=0, align_mul=0, align_offset=0) 64 %26 = load_const (0x0000000000000000 = 0.000000) 64 %27 = deref_ptr_as_array &(*%25)[0] (function_temp struct.mystruct) // &(*(struct.mystruct *)%24)[0] 64 %28 = deref_struct &%27->field1 (function_temp uint) // &(*(struct.mystruct *)%24)[0].field1 64 %29 = deref_cast (uint *)%28 (function_temp uint) (ptr_stride=0, align_mul=4, align_offset=0) 32 %30 = load_const (0x000011d7 = 4567) @store_deref (%29, %30 (0x11d7)) (wrmask=x, access=none) 64 %31 = mov %16 64 %32 = deref_cast (uint8_t *)%31 (global uint8_t) (ptr_stride=0, align_mul=0, align_offset=0) 64 %33 = deref_var &.compoundliteral (function_temp struct.mystruct) 64 %34 = mov %33 64 %35 = deref_cast (uint8_t *)%34 (function_temp uint8_t) (ptr_stride=0, align_mul=0, align_offset=0) 64 %36 = load_const (0x0000000000000008 = 0.000000) 64 %37 = deref_cast (uint8_t *)%35 (function_temp uint8_t) (ptr_stride=0, align_mul=4, align_offset=0) 64 %38 = deref_cast (uint8_t *)%32 (global uint8_t) (ptr_stride=0, align_mul=4, align_offset=0) @memcpy_deref (%38, %37, %36 (0x8)) (dst_access=0, src_access=0) // succs: b1 block b1: }