This means, I think that if we reverse the list_move_tail() in the array indexing rule, there's no reason that we can't just always use a synthetic load when lowering indices.
Okay, I will reverse the `list_move_tail()` ordering, but I am not sure I understand the rest of the sentence. Patch 10/10 indeed stores the hlsl_ir_index "vals" to a synthetic var, so that then the `lower_index_loads` pass turns them into hlsl_ir_loads to that synthetic var.