Note that that often will be doable just as an expression index. Say CREATE INDEX foo ON bar(my_function(cola, colb)); which then can answer questions like SELECT * FROM bar WHERE my_function(cola, colb) = 'zaphod'; if my_function is immutable. That has the advantage of not needing additional space in the table, just the index.
Of course, there are plenty cases where one still wants to have generated columns.