+ Value *val = LOAD(pBase);
+
+ if (verbose_tcs_shader_in) {
+ lp_build_print_value(gallivm, "[TCS IN][VTX] vert_chan_index: ", wrap(vert_chan_index));
+ lp_build_print_value(gallivm, "[TCS IN][VTX] attrib_index: ", attrib_index);
+ lp_build_print_value(gallivm, "[TCS IN][VTX] attr_chan_index: ", wrap(attr_index));
+ lp_build_print_value(gallivm, "[TCS IN][VTX] attrib read from map: ", wrap(attrib));
+ lp_build_print_value(gallivm, "[TCS IN][VTX] swizzle_index: ", swizzle_index);
+ lp_build_print_value(gallivm, "[TCS IN][VTX] Loaded: ", wrap(val));
+ }
+ res = VINSERT(res, val, C(i));
+ }
+ } else {
+ Value *attrib = LOAD(GEP(iface->pVtxAttribMap, {C(0), attr_index}));
+
+ Value *pBase = GEP(iface->pTcsCtx,
+ { C(0), C(SWR_HS_CONTEXT_vert), vert_index,
+ C(simdvertex_attrib), attrib, unwrap(swizzle_index) });
+
+ res = LOAD(pBase);
+
+ if (verbose_tcs_shader_in) {
+ lp_build_print_value(gallivm, "[TCS IN][VTX] attrib_index: ", attrib_index);
+ lp_build_print_value(gallivm, "[TCS IN][VTX] attr_chan_index: ", wrap(attr_index));
+ lp_build_print_value(gallivm, "[TCS IN][VTX] attrib read from map: ", wrap(attrib));
+ lp_build_print_value(gallivm, "[TCS IN][VTX] swizzle_index: ", swizzle_index);
+ lp_build_print_value(gallivm, "[TCS IN][VTX] Loaded: ", wrap(res));
+ }