Fix assembling MIOpen asm kernels for gfx11/gfx12 with LLVM 23

LLVM 23 enables real-true16 on gfx11/gfx12 and rejects the fake16 syntax
(e.g. v_cvt_f16_f32 v1, s32) used by the Winograd asm kernels, which comgr
assembles at runtime.
--- a/src/comgr.cpp
+++ b/src/comgr.cpp
@@ -514,6 +514,12 @@
             optAsm.emplace_back("-mno-xnack");
 #endif
         compiler::lc::gcnasm::RemoveOptionsUnwanted(optAsm);
+        // The asm kernels use fake16 syntax, which LLVM 23 rejects in real-true16 mode.
+        if(StartsWith(target.Name(), "gfx11") || StartsWith(target.Name(), "gfx12"))
+        {
+            for(const auto* opt : {"-Xclangas", "-target-feature", "-Xclangas", "-real-true16"})
+                optAsm.emplace_back(opt);
+        }
 
         action.SetOptionList(optAsm);
 
