diff --git a/src/tint/writer/glsl/generator_impl.cc b/src/tint/writer/glsl/generator_impl.cc
index d1261f1..8b2d898 100644
--- a/src/tint/writer/glsl/generator_impl.cc
+++ b/src/tint/writer/glsl/generator_impl.cc
@@ -150,25 +150,22 @@
 }
 
 void PrintF32(std::ostream& out, float value) {
-    // Note: Currently inf and nan should not be constructable, but this is implemented for the day
-    // we support them.
     if (std::isinf(value)) {
-        out << (value >= 0 ? "uintBitsToFloat(0x7f800000u)" : "uintBitsToFloat(0xff800000u)");
+        out << "0.0f " << (value >= 0 ? "/* inf */" : "/* -inf */");
     } else if (std::isnan(value)) {
-        out << "uintBitsToFloat(0x7fc00000u)";
+        out << "0.0f /* nan */";
     } else {
         out << FloatToString(value) << "f";
     }
 }
 
-bool PrintF16(std::ostream& out, float value) {
-    // Note: Currently inf and nan should not be constructable, and there is no solid way to
-    // generate constant/literal f16 Inf or NaN.
-    if (std::isinf(value) || std::isnan(value)) {
-        return false;
+void PrintF16(std::ostream& out, float value) {
+    if (std::isinf(value)) {
+        out << "0.0hf " << (value >= 0 ? "/* inf */" : "/* -inf */");
+    } else if (std::isnan(value)) {
+        out << "0.0hf /* nan */";
     } else {
         out << FloatToString(value) << "hf";
-        return true;
     }
 }
 
@@ -2185,7 +2182,10 @@
             PrintF32(out, constant->As<float>());
             return true;
         },
-        [&](const sem::F16*) { return PrintF16(out, constant->As<float>()); },
+        [&](const sem::F16*) {
+            PrintF16(out, constant->As<float>());
+            return true;
+        },
         [&](const sem::I32*) {
             out << constant->As<AInt>();
             return true;
@@ -2285,9 +2285,10 @@
         },
         [&](const ast::FloatLiteralExpression* l) {
             if (l->suffix == ast::FloatLiteralExpression::Suffix::kH) {
-                return PrintF16(out, static_cast<float>(l->value));
+                PrintF16(out, static_cast<float>(l->value));
+            } else {
+                PrintF32(out, static_cast<float>(l->value));
             }
-            PrintF32(out, static_cast<float>(l->value));
             return true;
         },
         [&](const ast::IntLiteralExpression* l) {
diff --git a/src/tint/writer/hlsl/generator_impl.cc b/src/tint/writer/hlsl/generator_impl.cc
index fca1515..3625db6 100644
--- a/src/tint/writer/hlsl/generator_impl.cc
+++ b/src/tint/writer/hlsl/generator_impl.cc
@@ -112,24 +112,22 @@
 }
 
 void PrintF32(std::ostream& out, float value) {
-    // Note: Currently inf and nan should not be constructable, but this is implemented for the day
-    // we support them.
     if (std::isinf(value)) {
-        out << (value >= 0 ? "asfloat(0x7f800000u)" : "asfloat(0xff800000u)");
+        out << "0.0f " << (value >= 0 ? "/* inf */" : "/* -inf */");
     } else if (std::isnan(value)) {
-        out << "asfloat(0x7fc00000u)";
+        out << "0.0f /* nan */";
     } else {
         out << FloatToString(value) << "f";
     }
 }
 
-bool PrintF16(std::ostream& out, float value) {
-    // Note: Currently inf and nan should not be constructable, don't emit them.
-    if (std::isinf(value) || std::isnan(value)) {
-        return false;
+void PrintF16(std::ostream& out, float value) {
+    if (std::isinf(value)) {
+        out << "0.0h " << (value >= 0 ? "/* inf */" : "/* -inf */");
+    } else if (std::isnan(value)) {
+        out << "0.0h /* nan */";
     } else {
         out << FloatToString(value) << "h";
-        return true;
     }
 }
 
@@ -3127,9 +3125,9 @@
         [&](const sem::F16*) {
             // emit a f16 scalar with explicit float16_t type declaration.
             out << "float16_t(";
-            bool valid = PrintF16(out, constant->As<float>());
+            PrintF16(out, constant->As<float>());
             out << ")";
-            return valid;
+            return true;
         },
         [&](const sem::I32*) {
             out << constant->As<AInt>();
@@ -3254,9 +3252,8 @@
             if (l->suffix == ast::FloatLiteralExpression::Suffix::kH) {
                 // Emit f16 literal with explicit float16_t type declaration.
                 out << "float16_t(";
-                bool valid = PrintF16(out, static_cast<float>(l->value));
+                PrintF16(out, static_cast<float>(l->value));
                 out << ")";
-                return valid;
             }
             PrintF32(out, static_cast<float>(l->value));
             return true;
diff --git a/test/tint/bug/tint/951.spvasm.expected.dxc.hlsl b/test/tint/bug/tint/951.spvasm.expected.dxc.hlsl
index 7f73b88..dfb1c66 100644
--- a/test/tint/bug/tint/951.spvasm.expected.dxc.hlsl
+++ b/test/tint/bug/tint/951.spvasm.expected.dxc.hlsl
@@ -14,7 +14,7 @@
 float unaryOperation_f1_(inout float a) {
   const float x_47 = a;
   if ((x_47 < 0.0f)) {
-    return asfloat(0x7f800000u);
+    return 0.0f /* inf */;
   }
   const float x_55 = a;
   return log(x_55);
diff --git a/test/tint/bug/tint/951.spvasm.expected.fxc.hlsl b/test/tint/bug/tint/951.spvasm.expected.fxc.hlsl
index 7f73b88..dfb1c66 100644
--- a/test/tint/bug/tint/951.spvasm.expected.fxc.hlsl
+++ b/test/tint/bug/tint/951.spvasm.expected.fxc.hlsl
@@ -14,7 +14,7 @@
 float unaryOperation_f1_(inout float a) {
   const float x_47 = a;
   if ((x_47 < 0.0f)) {
-    return asfloat(0x7f800000u);
+    return 0.0f /* inf */;
   }
   const float x_55 = a;
   return log(x_55);
diff --git a/test/tint/bug/tint/951.spvasm.expected.glsl b/test/tint/bug/tint/951.spvasm.expected.glsl
index 4711f56..618b684 100644
--- a/test/tint/bug/tint/951.spvasm.expected.glsl
+++ b/test/tint/bug/tint/951.spvasm.expected.glsl
@@ -26,7 +26,7 @@
 float unaryOperation_f1_(inout float a) {
   float x_47 = a;
   if ((x_47 < 0.0f)) {
-    return uintBitsToFloat(0x7f800000u);
+    return 0.0f /* inf */;
   }
   float x_55 = a;
   return log(x_55);
diff --git a/test/tint/expressions/literals/-inf.spvasm.expected.dxc.hlsl b/test/tint/expressions/literals/-inf.spvasm.expected.dxc.hlsl
index e4f9b25..42f8b29 100644
--- a/test/tint/expressions/literals/-inf.spvasm.expected.dxc.hlsl
+++ b/test/tint/expressions/literals/-inf.spvasm.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 static float4 out_var_SV_TARGET = float4(0.0f, 0.0f, 0.0f, 0.0f);
 
 void main_1() {
-  out_var_SV_TARGET = (asfloat(0xff800000u)).xxxx;
+  out_var_SV_TARGET = (0.0f /* -inf */).xxxx;
   return;
 }
 
diff --git a/test/tint/expressions/literals/-inf.spvasm.expected.fxc.hlsl b/test/tint/expressions/literals/-inf.spvasm.expected.fxc.hlsl
index e4f9b25..42f8b29 100644
--- a/test/tint/expressions/literals/-inf.spvasm.expected.fxc.hlsl
+++ b/test/tint/expressions/literals/-inf.spvasm.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 static float4 out_var_SV_TARGET = float4(0.0f, 0.0f, 0.0f, 0.0f);
 
 void main_1() {
-  out_var_SV_TARGET = (asfloat(0xff800000u)).xxxx;
+  out_var_SV_TARGET = (0.0f /* -inf */).xxxx;
   return;
 }
 
diff --git a/test/tint/expressions/literals/-inf.spvasm.expected.glsl b/test/tint/expressions/literals/-inf.spvasm.expected.glsl
index ea4fcf5..7673a43 100644
--- a/test/tint/expressions/literals/-inf.spvasm.expected.glsl
+++ b/test/tint/expressions/literals/-inf.spvasm.expected.glsl
@@ -4,7 +4,7 @@
 layout(location = 0) out vec4 out_var_SV_TARGET_1_1;
 vec4 out_var_SV_TARGET = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 void main_1() {
-  out_var_SV_TARGET = vec4(uintBitsToFloat(0xff800000u));
+  out_var_SV_TARGET = vec4(0.0f /* -inf */);
   return;
 }
 
diff --git a/test/tint/expressions/literals/inf.spvasm.expected.dxc.hlsl b/test/tint/expressions/literals/inf.spvasm.expected.dxc.hlsl
index 1ce8ff8..e435870 100644
--- a/test/tint/expressions/literals/inf.spvasm.expected.dxc.hlsl
+++ b/test/tint/expressions/literals/inf.spvasm.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 static float4 out_var_SV_TARGET = float4(0.0f, 0.0f, 0.0f, 0.0f);
 
 void main_1() {
-  out_var_SV_TARGET = (asfloat(0x7f800000u)).xxxx;
+  out_var_SV_TARGET = (0.0f /* inf */).xxxx;
   return;
 }
 
diff --git a/test/tint/expressions/literals/inf.spvasm.expected.fxc.hlsl b/test/tint/expressions/literals/inf.spvasm.expected.fxc.hlsl
index 1ce8ff8..e435870 100644
--- a/test/tint/expressions/literals/inf.spvasm.expected.fxc.hlsl
+++ b/test/tint/expressions/literals/inf.spvasm.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 static float4 out_var_SV_TARGET = float4(0.0f, 0.0f, 0.0f, 0.0f);
 
 void main_1() {
-  out_var_SV_TARGET = (asfloat(0x7f800000u)).xxxx;
+  out_var_SV_TARGET = (0.0f /* inf */).xxxx;
   return;
 }
 
diff --git a/test/tint/expressions/literals/inf.spvasm.expected.glsl b/test/tint/expressions/literals/inf.spvasm.expected.glsl
index 229678d..55ce7dc 100644
--- a/test/tint/expressions/literals/inf.spvasm.expected.glsl
+++ b/test/tint/expressions/literals/inf.spvasm.expected.glsl
@@ -4,7 +4,7 @@
 layout(location = 0) out vec4 out_var_SV_TARGET_1_1;
 vec4 out_var_SV_TARGET = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 void main_1() {
-  out_var_SV_TARGET = vec4(uintBitsToFloat(0x7f800000u));
+  out_var_SV_TARGET = vec4(0.0f /* inf */);
   return;
 }
 
diff --git a/test/tint/expressions/literals/nan.spvasm.expected.dxc.hlsl b/test/tint/expressions/literals/nan.spvasm.expected.dxc.hlsl
index 110eb40..a51d765 100644
--- a/test/tint/expressions/literals/nan.spvasm.expected.dxc.hlsl
+++ b/test/tint/expressions/literals/nan.spvasm.expected.dxc.hlsl
@@ -1,7 +1,7 @@
 static float4 out_var_SV_TARGET = float4(0.0f, 0.0f, 0.0f, 0.0f);
 
 void main_1() {
-  out_var_SV_TARGET = float4(asfloat(0x7fc00000u), asfloat(0x7fc00000u), asfloat(0x7fc00000u), asfloat(0x7fc00000u));
+  out_var_SV_TARGET = float4(0.0f /* nan */, 0.0f /* nan */, 0.0f /* nan */, 0.0f /* nan */);
   return;
 }
 
diff --git a/test/tint/expressions/literals/nan.spvasm.expected.fxc.hlsl b/test/tint/expressions/literals/nan.spvasm.expected.fxc.hlsl
index 110eb40..a51d765 100644
--- a/test/tint/expressions/literals/nan.spvasm.expected.fxc.hlsl
+++ b/test/tint/expressions/literals/nan.spvasm.expected.fxc.hlsl
@@ -1,7 +1,7 @@
 static float4 out_var_SV_TARGET = float4(0.0f, 0.0f, 0.0f, 0.0f);
 
 void main_1() {
-  out_var_SV_TARGET = float4(asfloat(0x7fc00000u), asfloat(0x7fc00000u), asfloat(0x7fc00000u), asfloat(0x7fc00000u));
+  out_var_SV_TARGET = float4(0.0f /* nan */, 0.0f /* nan */, 0.0f /* nan */, 0.0f /* nan */);
   return;
 }
 
diff --git a/test/tint/expressions/literals/nan.spvasm.expected.glsl b/test/tint/expressions/literals/nan.spvasm.expected.glsl
index c78cc6f..0a04b39 100644
--- a/test/tint/expressions/literals/nan.spvasm.expected.glsl
+++ b/test/tint/expressions/literals/nan.spvasm.expected.glsl
@@ -4,7 +4,7 @@
 layout(location = 0) out vec4 out_var_SV_TARGET_1_1;
 vec4 out_var_SV_TARGET = vec4(0.0f, 0.0f, 0.0f, 0.0f);
 void main_1() {
-  out_var_SV_TARGET = vec4(uintBitsToFloat(0x7fc00000u), uintBitsToFloat(0x7fc00000u), uintBitsToFloat(0x7fc00000u), uintBitsToFloat(0x7fc00000u));
+  out_var_SV_TARGET = vec4(0.0f /* nan */, 0.0f /* nan */, 0.0f /* nan */, 0.0f /* nan */);
   return;
 }
 
