diff --git a/CMakeLists.txt b/CMakeLists.txt
index 59776f9..084e54a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -335,8 +335,8 @@
       target_compile_options(${TARGET} PUBLIC -fsanitize=thread)
       target_link_options(${TARGET} PUBLIC -fsanitize=thread)
     elseif (${DAWN_ENABLE_UBSAN})
-      target_compile_options(${TARGET} PUBLIC -fsanitize=undefined)
-      target_link_options(${TARGET} PUBLIC -fsanitize=undefined)
+      target_compile_options(${TARGET} PUBLIC -fsanitize=undefined -fsanitize=float-divide-by-zero)
+      target_link_options(${TARGET} PUBLIC -fsanitize=undefined -fsanitize=float-divide-by-zero)
     endif()
   endif(COMPILER_IS_LIKE_GNU)
 
diff --git a/src/tint/number.h b/src/tint/number.h
index 69df284..7bc1eea 100644
--- a/src/tint/number.h
+++ b/src/tint/number.h
@@ -539,6 +539,9 @@
 /// @returns a / b, or an empty optional if the resulting value overflowed the float value
 template <typename FloatingPointT, typename = traits::EnableIf<IsFloatingPoint<FloatingPointT>>>
 inline std::optional<FloatingPointT> CheckedDiv(FloatingPointT a, FloatingPointT b) {
+    if (b == FloatingPointT{0.0} || b == FloatingPointT{-0.0}) {
+        return {};
+    }
     auto result = FloatingPointT{a.value / b.value};
     if (!std::isfinite(result.value)) {
         return {};
@@ -576,6 +579,9 @@
 /// float value
 template <typename FloatingPointT, typename = traits::EnableIf<IsFloatingPoint<FloatingPointT>>>
 inline std::optional<FloatingPointT> CheckedMod(FloatingPointT a, FloatingPointT b) {
+    if (b == FloatingPointT{0.0} || b == FloatingPointT{-0.0}) {
+        return {};
+    }
     auto result = FloatingPointT{detail::Mod(a.value, b.value)};
     if (!std::isfinite(result.value)) {
         return {};
