diff --git a/src/amd/compiler/aco_live_var_analysis.cpp b/src/amd/compiler/aco_live_var_analysis.cpp index 48456fc0df8..abe839642af 100644 --- a/src/amd/compiler/aco_live_var_analysis.cpp +++ b/src/amd/compiler/aco_live_var_analysis.cpp @@ -421,7 +421,7 @@ live_var_analysis(Program* program) std::vector phi_info(program->blocks.size()); RegisterDemand new_demand; - program->needs_vcc = false; + program->needs_vcc = program->chip_class >= GFX10; /* this implementation assumes that the block idx corresponds to the block's position in * program->blocks vector */ diff --git a/src/amd/compiler/aco_register_allocation.cpp b/src/amd/compiler/aco_register_allocation.cpp index 41c36603608..0204f934bb3 100644 --- a/src/amd/compiler/aco_register_allocation.cpp +++ b/src/amd/compiler/aco_register_allocation.cpp @@ -1398,7 +1398,7 @@ get_reg_specified(ra_ctx& ctx, RegisterFile& reg_file, RegClass rc, aco_ptrneeds_vcc; bool is_m0 = rc == s1 && reg == m0; if (!bounds.contains(reg_win) && !is_vcc && !is_m0) return false;