diff --git a/src/nouveau/compiler/nak/legalize.rs b/src/nouveau/compiler/nak/legalize.rs index 371a01a25f6..9920ba36bfd 100644 --- a/src/nouveau/compiler/nak/legalize.rs +++ b/src/nouveau/compiler/nak/legalize.rs @@ -815,6 +815,11 @@ fn legalize_instr( ip: usize, instr: &mut Instr, ) { + let src_types = instr.src_types(); + for (i, src) in instr.srcs_mut().iter_mut().enumerate() { + *src = src.fold_imm(src_types[i]); + } + if b.sm() >= 70 { legalize_sm70_instr(b, bl, ip, instr); } else if b.sm() >= 50 { @@ -823,11 +828,6 @@ fn legalize_instr( panic!("Unknown shader model SM{}", b.sm()); } - let src_types = instr.src_types(); - for (i, src) in instr.srcs_mut().iter_mut().enumerate() { - *src = src.fold_imm(src_types[i]); - } - let mut vec_src_map: HashMap = HashMap::new(); let mut vec_comps = HashSet::new(); for src in instr.srcs_mut() {