diff --git a/quant_models/CMakeLists.txt b/quant_models/CMakeLists.txt
index 50ca35a..42cdca3 100644
--- a/quant_models/CMakeLists.txt
+++ b/quant_models/CMakeLists.txt
@@ -115,46 +115,51 @@
 # to increase it.
 
 foreach(N 0 1 2 3 4 5 6)
-iree_cc_binary(
-  NAME
-    hps_${N}_bytecode_static
-  SRCS
-    "iree_exec/hps.c"
-  DEPS
-    ::hps_${N}_quant_input_c
-    ::hps_bytecode_module_static_c
-    ::hps_bytecode_module_static_lib
-    iree::vm::bytecode_module
-    model_util::util_static
-  COPTS
-    "-DHPS_IDX=${N}"
-  LINKOPTS
-    "LINKER:--defsym=__stack_size__=200k"
-    # TODO(b/241297921): determine HPS heap size
-    "LINKER:--defsym=__heap_size__=5M"
-)
+  set(HPS_COPTS "-DHPS_IDX=${N}")
+  if (NOT BUILD_NO_WMMU)
+    list(APPEND HPS_COPTS "-DNO_STATIC_INPUT")
+  endif()
 
-springbok_test(
-  NAME
-    hps_${N}_emitc_static
-  SRCS
-    "iree_exec/hps.c"
-  DEPS
-    ::hps_${N}_quant_input_c
-    ::hps_c_module_static_emitc
-    ::hps_c_module_static_lib
-    model_util::util_static
-  LINKOPTS
-    "LINKER:--defsym=__stack_size__=200k"
-    # TODO(b/241297921): determine HPS heap size
-    "LINKER:--defsym=__heap_size__=5M"
-  COPTS
-    "-DHPS_IDX=${N}"
-    "-DBUILD_EMITC"
-  TESTFILES
-    "iree_exec/hps_test.run"
-    "iree_exec/hps_${N}_test.filecheck"
-)
+  iree_cc_binary(
+    NAME
+      hps_${N}_bytecode_static
+    SRCS
+      "iree_exec/hps.c"
+    DEPS
+      ::hps_${N}_quant_input_c
+      ::hps_bytecode_module_static_c
+      ::hps_bytecode_module_static_lib
+      iree::vm::bytecode_module
+      model_util::util_static
+    COPTS
+      ${HPS_COPTS}
+    LINKOPTS
+      "LINKER:--defsym=__stack_size__=200k"
+      # TODO(b/241297921): determine HPS heap size
+      "LINKER:--defsym=__heap_size__=5M"
+  )
+
+  springbok_test(
+    NAME
+      hps_${N}_emitc_static
+    SRCS
+      "iree_exec/hps.c"
+    DEPS
+      ::hps_${N}_quant_input_c
+      ::hps_c_module_static_emitc
+      ::hps_c_module_static_lib
+      model_util::util_static
+    LINKOPTS
+      "LINKER:--defsym=__stack_size__=200k"
+      # TODO(b/241297921): determine HPS heap size
+      "LINKER:--defsym=__heap_size__=5M"
+    COPTS
+      ${HPS_COPTS}
+      "-DBUILD_EMITC"
+    TESTFILES
+      "iree_exec/hps_test.run"
+      "iree_exec/hps_${N}_test.filecheck"
+  )
 endforeach()
 
 iree_cc_binary(
diff --git a/quant_models/iree_exec/hps.c b/quant_models/iree_exec/hps.c
index 5537c29..1b23f02 100644
--- a/quant_models/iree_exec/hps.c
+++ b/quant_models/iree_exec/hps.c
@@ -24,6 +24,7 @@
 #include "iree/hal/api.h"
 #include "model_util/util.h"
 
+#if !defined(NO_STATIC_INPUT)
 #if HPS_IDX == 0
 #include "hps_0_quant_input_c.h"
 #define HPS_QUANT_INPUT hps_0_quant_input
@@ -46,6 +47,10 @@
 #include "hps_1_quant_input_c.h"
 #define HPS_QUANT_INPUT hps_1_quant_input
 #endif
+static const void *kInput = HPS_QUANT_INPUT;
+#else
+static const void *kInput = (const void *)0x84000000;
+#endif  // if !defined(NO_STATIC_INPUT)
 
 // Compiled module embedded here to avoid file IO:
 #if !defined(BUILD_EMITC)
@@ -84,7 +89,7 @@
                               iree_const_byte_span_t **byte_span) {
   byte_span[0] = malloc(sizeof(iree_const_byte_span_t));
   *byte_span[0] = iree_make_const_byte_span(
-      HPS_QUANT_INPUT, model->input_size_bytes[0] * model->input_length[0]);
+      kInput, model->input_size_bytes[0] * model->input_length[0]);
   return iree_ok_status();
 }
 
