Support Partitioned subgroup builtin functions with extended types

Also refactor the generation of those builtin functions programmatically
combine names and types.
6 files changed