Skip to content
  • Original before any lowering:

    shader: MESA_SHADER_KERNEL
    source_sha1: {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}
    workgroup-size: 0, 0, 0 (variable)
    shared-size: 0
    inputs: 0
    outputs: 0
    uniforms: 0
    shared: 0
    ray queries: 0
    decl_var system INTERP_MODE_NONE u64vec3 __spirv_BuiltInGlobalInvocationId
    decl_var uniform INTERP_MODE_NONE uint64_t @0 (0, 0, 0)
    decl_var uniform INTERP_MODE_NONE struct.s @1 (1, 0, 0)
    decl_function main_test (2 params)
    
    impl main_test {
            decl_var  INTERP_MODE_NONE uint64_t out.addr
            decl_var  INTERP_MODE_NONE uint idx
            block block_0:
            /* preds: */
            vec1 32 ssa_62 = load_const (0x00001234 = 0.000000)
            vec1 64 ssa_40 = load_const (0x0123456789abcdef = 0.000000)
            vec1 32 ssa_18 = load_const (0x00000012 = 0.000000)
            vec1 64 ssa_0 = intrinsic load_param () (param_idx=0)
            vec1 64 ssa_1 = deref_cast (struct.s *)ssa_0 (global struct.s)  /* ptr_stride=0, align_mul=0, align_offset=0 */
            vec1 64 ssa_2 = intrinsic load_param () (param_idx=1)
            vec1 64 ssa_3 = deref_cast (struct.s *)ssa_2 (function_temp struct.s)  /* ptr_stride=0, align_mul=0, align_offset=0 */
            vec1 64 ssa_4 = deref_cast (struct.s *)ssa_3 (function_temp struct.s)  /* ptr_stride=0, align_mul=1, align_offset=0 */
            vec1 64 ssa_5 = deref_var &out.addr (function_temp uint64_t)
            intrinsic store_deref (ssa_5, ssa_1) (wrmask=x /*1*/, access=0)
            vec1 32 ssa_6 = deref_var &__spirv_BuiltInGlobalInvocationId (system u64vec3)
            vec3 64 ssa_7 = intrinsic load_deref (ssa_6) (access=0)
            vec1 64 ssa_8 = mov ssa_7.x
            vec1 32 ssa_9 = u2u32 ssa_8
            vec1 64 ssa_10 = deref_var &idx (function_temp uint)
            intrinsic store_deref (ssa_10, ssa_9) (wrmask=x /*1*/, access=0)
            vec1 64 ssa_11 = deref_cast (struct.s *)ssa_4 (function_temp struct.s)  /* ptr_stride=0, align_mul=0, align_offset=0 */
            vec1 64 ssa_12 = load_const (0x0000000000000000 = 0.000000)
            vec1 64 ssa_13 = deref_ptr_as_array &(*ssa_11)[0] (function_temp struct.s) /* &(*(struct.s *)ssa_4)[0] */
            vec1 64 ssa_14 = deref_struct &ssa_13->field0 (function_temp uint8_t) /* &(*(struct.s *)ssa_4)[0].field0 */
            vec1 64 ssa_15 = deref_cast (uint8_t *)ssa_14 (function_temp uint8_t)  /* ptr_stride=0, align_mul=1, align_offset=0 */
            vec1  8 ssa_16 = intrinsic load_deref (ssa_15) (access=0)
            vec1 32 ssa_17 = u2u32 ssa_16
            vec1 32 ssa_19 = iadd ssa_17, ssa_18
            vec1  8 ssa_20 = u2u8 ssa_19
            vec1 64 ssa_21 = deref_var &out.addr (function_temp uint64_t)
            vec1 64 ssa_22 = intrinsic load_deref (ssa_21) (access=0)
            vec1 64 ssa_23 = deref_cast (struct.s *)ssa_22 (global struct.s)  /* ptr_stride=0, align_mul=0, align_offset=0 */
            vec1 64 ssa_24 = deref_var &idx (function_temp uint)
            vec1 32 ssa_25 = intrinsic load_deref (ssa_24) (access=0)
            vec1 64 ssa_26 = u2u64 ssa_25
            vec1 64 ssa_27 = deref_cast (struct.s *)ssa_23 (global struct.s)  /* ptr_stride=0, align_mul=0, align_offset=0 */
            vec1 64 ssa_28 = deref_ptr_as_array &(*ssa_27)[ssa_26] (global struct.s) /* &(*(struct.s *)ssa_23)[ssa_26] */
            vec1 64 ssa_29 = deref_cast (struct.s *)ssa_28 (global struct.s)  /* ptr_stride=0, align_mul=0, align_offset=0 */
            vec1 64 ssa_30 = load_const (0x0000000000000000 = 0.000000)
            vec1 64 ssa_31 = deref_ptr_as_array &(*ssa_29)[0] (global struct.s) /* &(*(struct.s *)ssa_28)[0] */
            vec1 64 ssa_32 = deref_struct &ssa_31->field0 (global uint8_t) /* &(*(struct.s *)ssa_28)[0].field0 */
            vec1 64 ssa_33 = deref_cast (uint8_t *)ssa_32 (global uint8_t)  /* ptr_stride=0, align_mul=1, align_offset=0 */
            intrinsic store_deref (ssa_33, ssa_20) (wrmask=x /*1*/, access=0)
            vec1 64 ssa_34 = deref_cast (struct.s *)ssa_4 (function_temp struct.s)  /* ptr_stride=0, align_mul=0, align_offset=0 */
            vec1 64 ssa_35 = load_const (0x0000000000000000 = 0.000000)
            vec1 64 ssa_36 = deref_ptr_as_array &(*ssa_34)[0] (function_temp struct.s) /* &(*(struct.s *)ssa_4)[0] */
            vec1 64 ssa_37 = deref_struct &ssa_36->field1 (function_temp uint64_t) /* &(*(struct.s *)ssa_4)[0].field1 */
            vec1 64 ssa_38 = deref_cast (uint64_t *)ssa_37 (function_temp uint64_t)  /* ptr_stride=0, align_mul=1, align_offset=0 */
            vec1 64 ssa_39 = intrinsic load_deref (ssa_38) (access=0)
            vec1 64 ssa_41 = iadd ssa_39, ssa_40
            vec1 64 ssa_42 = deref_var &out.addr (function_temp uint64_t)
            vec1 64 ssa_43 = intrinsic load_deref (ssa_42) (access=0)
            vec1 64 ssa_44 = deref_cast (struct.s *)ssa_43 (global struct.s)  /* ptr_stride=0, align_mul=0, align_offset=0 */
            vec1 64 ssa_45 = deref_var &idx (function_temp uint)
            vec1 32 ssa_46 = intrinsic load_deref (ssa_45) (access=0)
            vec1 64 ssa_47 = u2u64 ssa_46
            vec1 64 ssa_48 = deref_cast (struct.s *)ssa_44 (global struct.s)  /* ptr_stride=0, align_mul=0, align_offset=0 */
            vec1 64 ssa_49 = deref_ptr_as_array &(*ssa_48)[ssa_47] (global struct.s) /* &(*(struct.s *)ssa_44)[ssa_47] */
            vec1 64 ssa_50 = deref_cast (struct.s *)ssa_49 (global struct.s)  /* ptr_stride=0, align_mul=0, align_offset=0 */
            vec1 64 ssa_51 = load_const (0x0000000000000000 = 0.000000)
            vec1 64 ssa_52 = deref_ptr_as_array &(*ssa_50)[0] (global struct.s) /* &(*(struct.s *)ssa_49)[0] */
            vec1 64 ssa_53 = deref_struct &ssa_52->field1 (global uint64_t) /* &(*(struct.s *)ssa_49)[0].field1 */
            vec1 64 ssa_54 = deref_cast (uint64_t *)ssa_53 (global uint64_t)  /* ptr_stride=0, align_mul=1, align_offset=0 */
            intrinsic store_deref (ssa_54, ssa_41) (wrmask=x /*1*/, access=0)
            vec1 64 ssa_55 = deref_cast (struct.s *)ssa_4 (function_temp struct.s)  /* ptr_stride=0, align_mul=0, align_offset=0 */
            vec1 64 ssa_56 = load_const (0x0000000000000000 = 0.000000)
            vec1 64 ssa_57 = deref_ptr_as_array &(*ssa_55)[0] (function_temp struct.s) /* &(*(struct.s *)ssa_4)[0] */
            vec1 64 ssa_58 = deref_struct &ssa_57->field2 (function_temp uint16_t) /* &(*(struct.s *)ssa_4)[0].field2 */
            vec1 64 ssa_59 = deref_cast (uint16_t *)ssa_58 (function_temp uint16_t)  /* ptr_stride=0, align_mul=1, align_offset=0 */
            vec1 16 ssa_60 = intrinsic load_deref (ssa_59) (access=0)
            vec1 32 ssa_61 = u2u32 ssa_60
            vec1 32 ssa_63 = iadd ssa_61, ssa_62
            vec1 16 ssa_64 = u2u16 ssa_63
            vec1 64 ssa_65 = deref_var &out.addr (function_temp uint64_t)
            vec1 64 ssa_66 = intrinsic load_deref (ssa_65) (access=0)
            vec1 64 ssa_67 = deref_cast (struct.s *)ssa_66 (global struct.s)  /* ptr_stride=0, align_mul=0, align_offset=0 */
            vec1 64 ssa_68 = deref_var &idx (function_temp uint)
            vec1 32 ssa_69 = intrinsic load_deref (ssa_68) (access=0)
            vec1 64 ssa_70 = u2u64 ssa_69
            vec1 64 ssa_71 = deref_cast (struct.s *)ssa_67 (global struct.s)  /* ptr_stride=0, align_mul=0, align_offset=0 */
            vec1 64 ssa_72 = deref_ptr_as_array &(*ssa_71)[ssa_70] (global struct.s) /* &(*(struct.s *)ssa_67)[ssa_70] */
            vec1 64 ssa_73 = deref_cast (struct.s *)ssa_72 (global struct.s)  /* ptr_stride=0, align_mul=0, align_offset=0 */
            vec1 64 ssa_74 = load_const (0x0000000000000000 = 0.000000)
            vec1 64 ssa_75 = deref_ptr_as_array &(*ssa_73)[0] (global struct.s) /* &(*(struct.s *)ssa_72)[0] */
            vec1 64 ssa_76 = deref_struct &ssa_75->field2 (global uint16_t) /* &(*(struct.s *)ssa_72)[0].field2 */
            vec1 64 ssa_77 = deref_cast (uint16_t *)ssa_76 (global uint16_t)  /* ptr_stride=0, align_mul=1, align_offset=0 */
            intrinsic store_deref (ssa_77, ssa_64) (wrmask=x /*1*/, access=0)
            /* succs: block_1 */
            block block_1:
    }
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment