From 6ea0e91c990be0ab2b183cc70ce0c74ffb5a7731 Mon Sep 17 00:00:00 2001 From: Faith Ekstrand Date: Wed, 28 May 2025 18:48:47 -0400 Subject: [PATCH] nak: Handle suld.constant on Turing and Volta in legalization Part-of: --- src/nouveau/compiler/nak/sm70_encode.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/nouveau/compiler/nak/sm70_encode.rs b/src/nouveau/compiler/nak/sm70_encode.rs index 849b801504e..b3f96d8729f 100644 --- a/src/nouveau/compiler/nak/sm70_encode.rs +++ b/src/nouveau/compiler/nak/sm70_encode.rs @@ -2752,6 +2752,12 @@ impl SM70Encoder<'_> { impl SM70Op for OpSuLd { fn legalize(&mut self, b: &mut LegalizeBuilder) { legalize_ext_instr(self, b); + + // suld.constant doesn't exist on Volta or Turing but it's always safe + // to silently degrade to suld.weak + if self.mem_order == MemOrder::Constant && b.sm() < 80 { + self.mem_order = MemOrder::Weak; + } } fn encode(&self, e: &mut SM70Encoder<'_>) {