diff --git a/src/writer/hlsl/generator_impl.cc b/src/writer/hlsl/generator_impl.cc
index de9ea80..fc9e505 100644
--- a/src/writer/hlsl/generator_impl.cc
+++ b/src/writer/hlsl/generator_impl.cc
@@ -2502,20 +2502,13 @@
   if (auto* l = lit->As<ast::BoolLiteral>()) {
     out << (l->IsTrue() ? "true" : "false");
   } else if (auto* fl = lit->As<ast::FloatLiteral>()) {
-    bool positive = !std::signbit(fl->value());
-    switch (std::fpclassify(fl->value())) {
-      case FP_INFINITE:
-        out << (positive ? "asfloat(0x7f800000u)" : "asfloat(0xff800000u)");
-        break;
-      case FP_NAN:
-        out << "asfloat(0x7fc00000u)";
-        break;
-      case FP_ZERO:
-        out << (positive ? "0.0f" : "asfloat(0x80000000u)");
-        break;
-      default:
-        out << FloatToString(fl->value()) << "f";
-        break;
+    if (std::isinf(fl->value())) {
+      out << (fl->value() >= 0 ? "asfloat(0x7f800000u)"
+                               : "asfloat(0xff800000u)");
+    } else if (std::isnan(fl->value())) {
+      out << "asfloat(0x7fc00000u)";
+    } else {
+      out << FloatToString(fl->value()) << "f";
     }
   } else if (auto* sl = lit->As<ast::SintLiteral>()) {
     out << sl->value();
diff --git a/test/expressions/literals/neg_inf.spvasm b/test/expressions/literals/-inf.spvasm
similarity index 100%
rename from test/expressions/literals/neg_inf.spvasm
rename to test/expressions/literals/-inf.spvasm
diff --git a/test/expressions/literals/neg_inf.spvasm.expected.hlsl b/test/expressions/literals/-inf.spvasm.expected.hlsl
similarity index 100%
rename from test/expressions/literals/neg_inf.spvasm.expected.hlsl
rename to test/expressions/literals/-inf.spvasm.expected.hlsl
diff --git a/test/expressions/literals/neg_inf.spvasm.expected.msl b/test/expressions/literals/-inf.spvasm.expected.msl
similarity index 100%
rename from test/expressions/literals/neg_inf.spvasm.expected.msl
rename to test/expressions/literals/-inf.spvasm.expected.msl
diff --git a/test/expressions/literals/neg_inf.spvasm.expected.spvasm b/test/expressions/literals/-inf.spvasm.expected.spvasm
similarity index 100%
rename from test/expressions/literals/neg_inf.spvasm.expected.spvasm
rename to test/expressions/literals/-inf.spvasm.expected.spvasm
diff --git a/test/expressions/literals/neg_inf.spvasm.expected.wgsl b/test/expressions/literals/-inf.spvasm.expected.wgsl
similarity index 100%
rename from test/expressions/literals/neg_inf.spvasm.expected.wgsl
rename to test/expressions/literals/-inf.spvasm.expected.wgsl
diff --git a/test/expressions/literals/neg_zero.spvasm b/test/expressions/literals/neg_zero.spvasm
deleted file mode 100644
index 610537b..0000000
--- a/test/expressions/literals/neg_zero.spvasm
+++ /dev/null
@@ -1,21 +0,0 @@
-                       OpCapability Shader
-                       OpMemoryModel Logical GLSL450
-                       OpEntryPoint Fragment %main "main" %out_var_SV_TARGET
-                       OpExecutionMode %main OriginUpperLeft
-                       OpSource HLSL 600
-                       OpName %out_var_SV_TARGET "out.var.SV_TARGET"
-                       OpName %main "main"
-                       OpDecorate %out_var_SV_TARGET Location 0
-              %float = OpTypeFloat 32
-     %float_0x1p_128 = OpConstant %float -0
-            %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-               %void = OpTypeVoid
-                  %9 = OpTypeFunction %void
-  %out_var_SV_TARGET = OpVariable %_ptr_Output_v4float Output
-               %main = OpFunction %void None %9
-                 %10 = OpLabel
-                 %12 = OpCompositeConstruct %v4float %float_0x1p_128 %float_0x1p_128 %float_0x1p_128 %float_0x1p_128
-                       OpStore %out_var_SV_TARGET %12
-                       OpReturn
-                       OpFunctionEnd
diff --git a/test/expressions/literals/neg_zero.spvasm.expected.hlsl b/test/expressions/literals/neg_zero.spvasm.expected.hlsl
deleted file mode 100644
index f1ac2f2..0000000
--- a/test/expressions/literals/neg_zero.spvasm.expected.hlsl
+++ /dev/null
@@ -1,20 +0,0 @@
-static float4 out_var_SV_TARGET = float4(0.0f, 0.0f, 0.0f, 0.0f);
-
-void main_1() {
-  out_var_SV_TARGET = float4(asfloat(0x80000000u), asfloat(0x80000000u), asfloat(0x80000000u), asfloat(0x80000000u));
-  return;
-}
-
-struct main_out {
-  float4 out_var_SV_TARGET_1;
-};
-struct tint_symbol {
-  float4 out_var_SV_TARGET_1 : SV_Target0;
-};
-
-tint_symbol main() {
-  main_1();
-  const main_out tint_symbol_1 = {out_var_SV_TARGET};
-  const tint_symbol tint_symbol_2 = {tint_symbol_1.out_var_SV_TARGET_1};
-  return tint_symbol_2;
-}
diff --git a/test/expressions/literals/neg_zero.spvasm.expected.msl b/test/expressions/literals/neg_zero.spvasm.expected.msl
deleted file mode 100644
index a5862ed..0000000
--- a/test/expressions/literals/neg_zero.spvasm.expected.msl
+++ /dev/null
@@ -1,23 +0,0 @@
-#include <metal_stdlib>
-
-using namespace metal;
-struct main_out {
-  float4 out_var_SV_TARGET_1;
-};
-struct tint_symbol_1 {
-  float4 out_var_SV_TARGET_1 [[color(0)]];
-};
-
-void main_1(thread float4* const tint_symbol_4) {
-  *(tint_symbol_4) = float4(-0.0f, -0.0f, -0.0f, -0.0f);
-  return;
-}
-
-fragment tint_symbol_1 tint_symbol() {
-  thread float4 tint_symbol_5 = 0.0f;
-  main_1(&(tint_symbol_5));
-  main_out const tint_symbol_2 = {.out_var_SV_TARGET_1=tint_symbol_5};
-  tint_symbol_1 const tint_symbol_3 = {.out_var_SV_TARGET_1=tint_symbol_2.out_var_SV_TARGET_1};
-  return tint_symbol_3;
-}
-
diff --git a/test/expressions/literals/neg_zero.spvasm.expected.spvasm b/test/expressions/literals/neg_zero.spvasm.expected.spvasm
deleted file mode 100644
index ea3e75c..0000000
--- a/test/expressions/literals/neg_zero.spvasm.expected.spvasm
+++ /dev/null
@@ -1,52 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 0
-; Bound: 26
-; Schema: 0
-               OpCapability Shader
-               OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
-               OpExecutionMode %main OriginUpperLeft
-               OpName %out_var_SV_TARGET "out_var_SV_TARGET"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %main_1 "main_1"
-               OpName %main_out "main_out"
-               OpMemberName %main_out 0 "out_var_SV_TARGET_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
-               OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
-               OpMemberDecorate %main_out 0 Offset 0
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%out_var_SV_TARGET = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
-       %void = OpTypeVoid
-          %8 = OpTypeFunction %void
-   %float_n0 = OpConstant %float -0
-         %13 = OpConstantComposite %v4float %float_n0 %float_n0 %float_n0 %float_n0
-   %main_out = OpTypeStruct %v4float
-         %14 = OpTypeFunction %void %main_out
-     %main_1 = OpFunction %void None %8
-         %11 = OpLabel
-               OpStore %out_var_SV_TARGET %13
-               OpReturn
-               OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %14
-%tint_symbol = OpFunctionParameter %main_out
-         %18 = OpLabel
-         %19 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %19
-               OpReturn
-               OpFunctionEnd
-       %main = OpFunction %void None %8
-         %21 = OpLabel
-         %22 = OpFunctionCall %void %main_1
-         %24 = OpLoad %v4float %out_var_SV_TARGET
-         %25 = OpCompositeConstruct %main_out %24
-         %23 = OpFunctionCall %void %tint_symbol_2 %25
-               OpReturn
-               OpFunctionEnd
diff --git a/test/expressions/literals/neg_zero.spvasm.expected.wgsl b/test/expressions/literals/neg_zero.spvasm.expected.wgsl
deleted file mode 100644
index d9a2025..0000000
--- a/test/expressions/literals/neg_zero.spvasm.expected.wgsl
+++ /dev/null
@@ -1,17 +0,0 @@
-var<private> out_var_SV_TARGET : vec4<f32>;
-
-fn main_1() {
-  out_var_SV_TARGET = vec4<f32>(-0.0, -0.0, -0.0, -0.0);
-  return;
-}
-
-struct main_out {
-  [[location(0)]]
-  out_var_SV_TARGET_1 : vec4<f32>;
-};
-
-[[stage(fragment)]]
-fn main() -> main_out {
-  main_1();
-  return main_out(out_var_SV_TARGET);
-}
