gallivm: rework lp_build_tgsi_soa to take a struct