Commit 08ffba21e for llama.cpp

commit 08ffba21e5c2f1728b6b405c05ff3913f65706d4
Author: Amadeus dyw <74057036+SG-Amadeus@users.noreply.github.com>
Date:   Mon Oct 12 14:00:26 2026 +0800

    vulkan: use ternary expressions to avoid switch lowering for CM2 quant block size (#30164)

    * vulkan: specialize quant block size for CM2 matmul

    * vulkan: use ternary expressions to avoid switch lowering for CM2 quant block size

    * vulkan: clarify CM2 quant block size comment

diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/mul_mm_cm2.comp b/ggml/src/ggml-vulkan/vulkan-shaders/mul_mm_cm2.comp
index e3f1dd5ab..89022f047 100644
--- a/ggml/src/ggml-vulkan/vulkan-shaders/mul_mm_cm2.comp
+++ b/ggml/src/ggml-vulkan/vulkan-shaders/mul_mm_cm2.comp
@@ -49,17 +49,12 @@ layout (constant_id = 6) const uint subgroup_size = 32;
 #ifdef MULMAT_QUANT

 uint mm_quant_k() {
-    switch (MmTypeA) {
-    case GGML_TYPE_Q4_0: case GGML_TYPE_Q4_1: case GGML_TYPE_Q5_0: case GGML_TYPE_Q5_1:
-    case GGML_TYPE_Q8_0:
-        return 32u;
-    case GGML_TYPE_Q1_0:
-        return 128u;
-    case GGML_TYPE_Q2_0:
-        return 64u;
-    default:
-        return 256u;
-    }
+    // Use ternary expressions instead of a switch to keep qk as a specialization-constant expression.
+    return (MmTypeA == GGML_TYPE_Q1_0) ? 128u :
+           (MmTypeA == GGML_TYPE_Q2_0) ?  64u :
+          ((MmTypeA == GGML_TYPE_Q4_0 || MmTypeA == GGML_TYPE_Q4_1 ||
+            MmTypeA == GGML_TYPE_Q5_0 || MmTypeA == GGML_TYPE_Q5_1 ||
+            MmTypeA == GGML_TYPE_Q8_0) ? 32u : 256u);
 }
 #endif