diff --git a/src/transform/spirv.cc b/src/transform/spirv.cc
index c67f8af..e004b9b 100644
--- a/src/transform/spirv.cc
+++ b/src/transform/spirv.cc
@@ -320,6 +320,14 @@
     new_decorations.push_back(
         ctx.dst->ASTNodes().Create<ast::DisableValidationDecoration>(
             ctx.dst->ID(), ast::DisabledValidation::kIgnoreStorageClass));
+    if (ty->is_integer_scalar_or_vector() &&
+        ast::HasDecoration<ast::LocationDecoration>(new_decorations) &&
+        func->pipeline_stage() == ast::PipelineStage::kFragment) {
+      // Vulkan requires that integer user-defined fragment inputs are
+      // always decorated with `Flat`.
+      new_decorations.push_back(ctx.dst->Interpolate(
+          ast::InterpolationType::kFlat, ast::InterpolationSampling::kNone));
+    }
     auto global_var_symbol = ctx.dst->Sym();
     auto* global_var =
         ctx.dst->Var(global_var_symbol, ctx.Clone(declared_ty),
@@ -378,6 +386,14 @@
     new_decorations.push_back(
         ctx.dst->ASTNodes().Create<ast::DisableValidationDecoration>(
             ctx.dst->ID(), ast::DisabledValidation::kIgnoreStorageClass));
+    if (ty->is_integer_scalar_or_vector() &&
+        ast::HasDecoration<ast::LocationDecoration>(new_decorations) &&
+        func->pipeline_stage() == ast::PipelineStage::kVertex) {
+      // Vulkan requires that integer user-defined vertex outputs are
+      // always decorated with `Flat`.
+      new_decorations.push_back(ctx.dst->Interpolate(
+          ast::InterpolationType::kFlat, ast::InterpolationSampling::kNone));
+    }
     auto global_var_symbol = ctx.dst->Sym();
     auto* global_var =
         ctx.dst->Var(global_var_symbol, ctx.Clone(declared_ty),
diff --git a/src/transform/spirv_test.cc b/src/transform/spirv_test.cc
index 4a2c45b..6abeae1 100644
--- a/src/transform/spirv_test.cc
+++ b/src/transform/spirv_test.cc
@@ -125,7 +125,7 @@
 )";
 
   auto* expect = R"(
-[[location(0), internal(disable_validation__ignore_storage_class)]] var<in> tint_symbol : u32;
+[[location(0), internal(disable_validation__ignore_storage_class), interpolate(flat)]] var<in> tint_symbol : u32;
 
 [[location(0), internal(disable_validation__ignore_storage_class)]] var<out> tint_symbol_2 : f32;
 
@@ -165,7 +165,7 @@
   auto* expect = R"(
 type myf32 = f32;
 
-[[location(0), internal(disable_validation__ignore_storage_class)]] var<in> tint_symbol : u32;
+[[location(0), internal(disable_validation__ignore_storage_class), interpolate(flat)]] var<in> tint_symbol : u32;
 
 [[location(0), internal(disable_validation__ignore_storage_class)]] var<out> tint_symbol_2 : myf32;
 
@@ -472,6 +472,135 @@
   EXPECT_EQ(expect, str(got));
 }
 
+TEST_F(SpirvTest, HandleEntryPointIOTypes_InterpolateAttributes_Integers) {
+  // Test that we add a Flat attribute to integers that are vertex outputs and
+  // fragment inputs, but not vertex inputs or fragment outputs.
+  auto* src = R"(
+struct VertexIn {
+  [[location(0)]] i : i32;
+  [[location(1)]] u : u32;
+  [[location(2)]] vi : vec4<i32>;
+  [[location(3)]] vu : vec4<u32>;
+};
+
+struct VertexOut {
+  [[location(0)]] i : i32;
+  [[location(1)]] u : u32;
+  [[location(2)]] vi : vec4<i32>;
+  [[location(3)]] vu : vec4<u32>;
+  [[builtin(position)]] pos : vec4<f32>;
+};
+
+struct FragmentInterface {
+  [[location(0)]] i : i32;
+  [[location(1)]] u : u32;
+  [[location(2)]] vi : vec4<i32>;
+  [[location(3)]] vu : vec4<u32>;
+};
+
+[[stage(vertex)]]
+fn vert_main(in : VertexIn) -> VertexOut {
+  return VertexOut(in.i, in.u, in.vi, in.vu);
+}
+
+[[stage(fragment)]]
+fn frag_main(inputs : FragmentInterface) -> FragmentInterface {
+  return inputs;
+}
+)";
+
+  auto* expect = R"(
+struct VertexIn {
+  i : i32;
+  u : u32;
+  vi : vec4<i32>;
+  vu : vec4<u32>;
+};
+
+struct VertexOut {
+  i : i32;
+  u : u32;
+  vi : vec4<i32>;
+  vu : vec4<u32>;
+  pos : vec4<f32>;
+};
+
+struct FragmentInterface {
+  i : i32;
+  u : u32;
+  vi : vec4<i32>;
+  vu : vec4<u32>;
+};
+
+[[location(0), internal(disable_validation__ignore_storage_class)]] var<in> tint_symbol : i32;
+
+[[location(1), internal(disable_validation__ignore_storage_class)]] var<in> tint_symbol_1 : u32;
+
+[[location(2), internal(disable_validation__ignore_storage_class)]] var<in> tint_symbol_2 : vec4<i32>;
+
+[[location(3), internal(disable_validation__ignore_storage_class)]] var<in> tint_symbol_3 : vec4<u32>;
+
+[[location(0), internal(disable_validation__ignore_storage_class), interpolate(flat)]] var<out> tint_symbol_6 : i32;
+
+[[location(1), internal(disable_validation__ignore_storage_class), interpolate(flat)]] var<out> tint_symbol_7 : u32;
+
+[[location(2), internal(disable_validation__ignore_storage_class), interpolate(flat)]] var<out> tint_symbol_8 : vec4<i32>;
+
+[[location(3), internal(disable_validation__ignore_storage_class), interpolate(flat)]] var<out> tint_symbol_9 : vec4<u32>;
+
+[[builtin(position), internal(disable_validation__ignore_storage_class)]] var<out> tint_symbol_10 : vec4<f32>;
+
+fn tint_symbol_11(tint_symbol_5 : VertexOut) {
+  tint_symbol_6 = tint_symbol_5.i;
+  tint_symbol_7 = tint_symbol_5.u;
+  tint_symbol_8 = tint_symbol_5.vi;
+  tint_symbol_9 = tint_symbol_5.vu;
+  tint_symbol_10 = tint_symbol_5.pos;
+}
+
+[[stage(vertex)]]
+fn vert_main() {
+  let tint_symbol_4 : VertexIn = VertexIn(tint_symbol, tint_symbol_1, tint_symbol_2, tint_symbol_3);
+  tint_symbol_11(VertexOut(tint_symbol_4.i, tint_symbol_4.u, tint_symbol_4.vi, tint_symbol_4.vu));
+  return;
+}
+
+[[location(0), internal(disable_validation__ignore_storage_class), interpolate(flat)]] var<in> tint_symbol_12 : i32;
+
+[[location(1), internal(disable_validation__ignore_storage_class), interpolate(flat)]] var<in> tint_symbol_13 : u32;
+
+[[location(2), internal(disable_validation__ignore_storage_class), interpolate(flat)]] var<in> tint_symbol_14 : vec4<i32>;
+
+[[location(3), internal(disable_validation__ignore_storage_class), interpolate(flat)]] var<in> tint_symbol_15 : vec4<u32>;
+
+[[location(0), internal(disable_validation__ignore_storage_class)]] var<out> tint_symbol_18 : i32;
+
+[[location(1), internal(disable_validation__ignore_storage_class)]] var<out> tint_symbol_19 : u32;
+
+[[location(2), internal(disable_validation__ignore_storage_class)]] var<out> tint_symbol_20 : vec4<i32>;
+
+[[location(3), internal(disable_validation__ignore_storage_class)]] var<out> tint_symbol_21 : vec4<u32>;
+
+fn tint_symbol_22(tint_symbol_17 : FragmentInterface) {
+  tint_symbol_18 = tint_symbol_17.i;
+  tint_symbol_19 = tint_symbol_17.u;
+  tint_symbol_20 = tint_symbol_17.vi;
+  tint_symbol_21 = tint_symbol_17.vu;
+}
+
+[[stage(fragment)]]
+fn frag_main() {
+  let tint_symbol_16 : FragmentInterface = FragmentInterface(tint_symbol_12, tint_symbol_13, tint_symbol_14, tint_symbol_15);
+  tint_symbol_22(tint_symbol_16);
+  return;
+}
+)";
+
+  auto got = Run<Spirv>(src);
+
+  EXPECT_EQ(expect, str(got));
+}
+
 TEST_F(SpirvTest, HandleEntryPointIOTypes_StructLayoutDecorations) {
   auto* src = R"(
 [[block]]
diff --git a/src/writer/spirv/builder.cc b/src/writer/spirv/builder.cc
index 5e11941..a06ddbb 100644
--- a/src/writer/spirv/builder.cc
+++ b/src/writer/spirv/builder.cc
@@ -848,11 +848,6 @@
       push_annot(spv::Op::OpDecorate,
                  {Operand::Int(var_id), Operand::Int(SpvDecorationLocation),
                   Operand::Int(location->value())});
-      if (type->is_integer_scalar_or_vector()) {
-        // Vulkan requires that integers are always decorated with `Flat`.
-        AddInterpolationDecorations(var_id, ast::InterpolationType::kFlat,
-                                    ast::InterpolationSampling::kNone);
-      }
     } else if (auto* interpolate = deco->As<ast::InterpolateDecoration>()) {
       AddInterpolationDecorations(var_id, interpolate->type(),
                                   interpolate->sampling());
diff --git a/test/shader_io/fragment_output_locations.wgsl.expected.spvasm b/test/shader_io/fragment_output_locations.wgsl.expected.spvasm
index fe3c135..ef873b5 100644
--- a/test/shader_io/fragment_output_locations.wgsl.expected.spvasm
+++ b/test/shader_io/fragment_output_locations.wgsl.expected.spvasm
@@ -30,9 +30,7 @@
                OpName %tint_symbol_9 "tint_symbol_9"
                OpName %main3 "main3"
                OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_1 Flat
                OpDecorate %tint_symbol_4 Location 1
-               OpDecorate %tint_symbol_4 Flat
                OpDecorate %tint_symbol_7 Location 2
                OpDecorate %tint_symbol_10 Location 3
         %int = OpTypeInt 32 1
diff --git a/test/shader_io/fragment_output_locations_struct.wgsl.expected.spvasm b/test/shader_io/fragment_output_locations_struct.wgsl.expected.spvasm
index 21ee12d..9ad60b7 100644
--- a/test/shader_io/fragment_output_locations_struct.wgsl.expected.spvasm
+++ b/test/shader_io/fragment_output_locations_struct.wgsl.expected.spvasm
@@ -20,9 +20,7 @@
                OpName %tint_symbol "tint_symbol"
                OpName %main "main"
                OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_1 Flat
                OpDecorate %tint_symbol_2 Location 1
-               OpDecorate %tint_symbol_2 Flat
                OpDecorate %tint_symbol_3 Location 2
                OpDecorate %tint_symbol_4 Location 3
                OpMemberDecorate %FragmentOutputs 0 Offset 0
diff --git a/test/shader_io/fragment_output_mixed.wgsl.expected.spvasm b/test/shader_io/fragment_output_mixed.wgsl.expected.spvasm
index 64bde73..164fdf0 100644
--- a/test/shader_io/fragment_output_mixed.wgsl.expected.spvasm
+++ b/test/shader_io/fragment_output_mixed.wgsl.expected.spvasm
@@ -25,10 +25,8 @@
                OpName %tint_symbol "tint_symbol"
                OpName %main "main"
                OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_1 Flat
                OpDecorate %tint_symbol_2 BuiltIn FragDepth
                OpDecorate %tint_symbol_3 Location 1
-               OpDecorate %tint_symbol_3 Flat
                OpDecorate %tint_symbol_4 Location 2
                OpDecorate %_arr_uint_uint_1 ArrayStride 4
                OpDecorate %tint_symbol_5 BuiltIn SampleMask
diff --git a/test/shader_io/interpolate_integers.wgsl b/test/shader_io/interpolate_integers.wgsl
index f6419cf..436d6f0 100644
--- a/test/shader_io/interpolate_integers.wgsl
+++ b/test/shader_io/interpolate_integers.wgsl
@@ -12,5 +12,6 @@
 }
 
 [[stage(fragment)]]
-fn frag_main(inputs : Interface) {
+fn frag_main(inputs : Interface) -> [[location(0)]] i32 {
+  return inputs.i;
 }
diff --git a/test/shader_io/interpolate_integers.wgsl.expected.hlsl b/test/shader_io/interpolate_integers.wgsl.expected.hlsl
index 73372e8..64cc0c1 100644
--- a/test/shader_io/interpolate_integers.wgsl.expected.hlsl
+++ b/test/shader_io/interpolate_integers.wgsl.expected.hlsl
@@ -15,8 +15,8 @@
 
 tint_symbol vert_main() {
   const Interface tint_symbol_1 = {0, 0u, int4(0, 0, 0, 0), uint4(0u, 0u, 0u, 0u), float4(0.0f, 0.0f, 0.0f, 0.0f)};
-  const tint_symbol tint_symbol_4 = {tint_symbol_1.i, tint_symbol_1.u, tint_symbol_1.vi, tint_symbol_1.vu, tint_symbol_1.pos};
-  return tint_symbol_4;
+  const tint_symbol tint_symbol_5 = {tint_symbol_1.i, tint_symbol_1.u, tint_symbol_1.vi, tint_symbol_1.vu, tint_symbol_1.pos};
+  return tint_symbol_5;
 }
 
 struct tint_symbol_3 {
@@ -26,8 +26,12 @@
   uint4 vu : TEXCOORD3;
   float4 pos : SV_Position;
 };
+struct tint_symbol_4 {
+  int value : SV_Target0;
+};
 
-void frag_main(tint_symbol_3 tint_symbol_2) {
+tint_symbol_4 frag_main(tint_symbol_3 tint_symbol_2) {
   const Interface inputs = {tint_symbol_2.i, tint_symbol_2.u, tint_symbol_2.vi, tint_symbol_2.vu, tint_symbol_2.pos};
-  return;
+  const tint_symbol_4 tint_symbol_6 = {inputs.i};
+  return tint_symbol_6;
 }
diff --git a/test/shader_io/interpolate_integers.wgsl.expected.msl b/test/shader_io/interpolate_integers.wgsl.expected.msl
index 544aa30..4fb8d3a 100644
--- a/test/shader_io/interpolate_integers.wgsl.expected.msl
+++ b/test/shader_io/interpolate_integers.wgsl.expected.msl
@@ -21,15 +21,19 @@
   int4 vi [[user(locn2)]];
   uint4 vu [[user(locn3)]];
 };
+struct tint_symbol_5 {
+  int value [[color(0)]];
+};
 
 vertex tint_symbol vert_main() {
   Interface const tint_symbol_1 = {};
-  tint_symbol const tint_symbol_5 = {.i=tint_symbol_1.i, .u=tint_symbol_1.u, .vi=tint_symbol_1.vi, .vu=tint_symbol_1.vu, .pos=tint_symbol_1.pos};
-  return tint_symbol_5;
+  tint_symbol const tint_symbol_6 = {.i=tint_symbol_1.i, .u=tint_symbol_1.u, .vi=tint_symbol_1.vi, .vu=tint_symbol_1.vu, .pos=tint_symbol_1.pos};
+  return tint_symbol_6;
 }
 
-fragment void frag_main(float4 tint_symbol_3 [[position]], tint_symbol_4 tint_symbol_2 [[stage_in]]) {
+fragment tint_symbol_5 frag_main(float4 tint_symbol_3 [[position]], tint_symbol_4 tint_symbol_2 [[stage_in]]) {
   Interface const inputs = {.i=tint_symbol_2.i, .u=tint_symbol_2.u, .vi=tint_symbol_2.vi, .vu=tint_symbol_2.vu, .pos=tint_symbol_3};
-  return;
+  tint_symbol_5 const tint_symbol_7 = {.value=inputs.i};
+  return tint_symbol_7;
 }
 
diff --git a/test/shader_io/interpolate_integers.wgsl.expected.spvasm b/test/shader_io/interpolate_integers.wgsl.expected.spvasm
index 39474b1..7caa7e2 100644
--- a/test/shader_io/interpolate_integers.wgsl.expected.spvasm
+++ b/test/shader_io/interpolate_integers.wgsl.expected.spvasm
@@ -1,12 +1,12 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 67
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
                OpEntryPoint Vertex %vert_main "vert_main" %tint_pointsize %tint_symbol_1 %tint_symbol_2 %tint_symbol_3 %tint_symbol_4 %tint_symbol_5
-               OpEntryPoint Fragment %frag_main "frag_main"
+               OpEntryPoint Fragment %frag_main "frag_main" %tint_symbol_7 %tint_symbol_8 %tint_symbol_9 %tint_symbol_10 %tint_symbol_11 %tint_symbol_14
                OpExecutionMode %frag_main OriginUpperLeft
                OpName %tint_pointsize "tint_pointsize"
                OpName %tint_symbol_1 "tint_symbol_1"
@@ -19,6 +19,7 @@
                OpName %tint_symbol_9 "tint_symbol_9"
                OpName %tint_symbol_10 "tint_symbol_10"
                OpName %tint_symbol_11 "tint_symbol_11"
+               OpName %tint_symbol_14 "tint_symbol_14"
                OpName %Interface "Interface"
                OpMemberName %Interface 0 "i"
                OpMemberName %Interface 1 "u"
@@ -28,6 +29,8 @@
                OpName %tint_symbol_6 "tint_symbol_6"
                OpName %tint_symbol "tint_symbol"
                OpName %vert_main "vert_main"
+               OpName %tint_symbol_15 "tint_symbol_15"
+               OpName %tint_symbol_13 "tint_symbol_13"
                OpName %frag_main "frag_main"
                OpDecorate %tint_pointsize BuiltIn PointSize
                OpDecorate %tint_symbol_1 Location 0
@@ -48,6 +51,7 @@
                OpDecorate %tint_symbol_10 Location 3
                OpDecorate %tint_symbol_10 Flat
                OpDecorate %tint_symbol_11 BuiltIn FragCoord
+               OpDecorate %tint_symbol_14 Location 0
                OpMemberDecorate %Interface 0 Offset 0
                OpMemberDecorate %Interface 1 Offset 4
                OpMemberDecorate %Interface 2 Offset 16
@@ -87,34 +91,50 @@
 %tint_symbol_10 = OpVariable %_ptr_Input_v4uint Input
 %_ptr_Input_v4float = OpTypePointer Input %v4float
 %tint_symbol_11 = OpVariable %_ptr_Input_v4float Input
+%tint_symbol_14 = OpVariable %_ptr_Output_int Output %8
        %void = OpTypeVoid
   %Interface = OpTypeStruct %int %uint %v4int %v4uint %v4float
-         %35 = OpTypeFunction %void %Interface
-         %46 = OpTypeFunction %void
+         %36 = OpTypeFunction %void %Interface
+         %47 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
-         %51 = OpConstantNull %Interface
-%tint_symbol_6 = OpFunction %void None %35
+         %52 = OpConstantNull %Interface
+         %53 = OpTypeFunction %void %int
+%tint_symbol_6 = OpFunction %void None %36
 %tint_symbol = OpFunctionParameter %Interface
-         %40 = OpLabel
-         %41 = OpCompositeExtract %int %tint_symbol 0
-               OpStore %tint_symbol_1 %41
-         %42 = OpCompositeExtract %uint %tint_symbol 1
-               OpStore %tint_symbol_2 %42
-         %43 = OpCompositeExtract %v4int %tint_symbol 2
-               OpStore %tint_symbol_3 %43
-         %44 = OpCompositeExtract %v4uint %tint_symbol 3
-               OpStore %tint_symbol_4 %44
-         %45 = OpCompositeExtract %v4float %tint_symbol 4
-               OpStore %tint_symbol_5 %45
+         %41 = OpLabel
+         %42 = OpCompositeExtract %int %tint_symbol 0
+               OpStore %tint_symbol_1 %42
+         %43 = OpCompositeExtract %uint %tint_symbol 1
+               OpStore %tint_symbol_2 %43
+         %44 = OpCompositeExtract %v4int %tint_symbol 2
+               OpStore %tint_symbol_3 %44
+         %45 = OpCompositeExtract %v4uint %tint_symbol 3
+               OpStore %tint_symbol_4 %45
+         %46 = OpCompositeExtract %v4float %tint_symbol 4
+               OpStore %tint_symbol_5 %46
                OpReturn
                OpFunctionEnd
-  %vert_main = OpFunction %void None %46
-         %48 = OpLabel
+  %vert_main = OpFunction %void None %47
+         %49 = OpLabel
                OpStore %tint_pointsize %float_1
-         %50 = OpFunctionCall %void %tint_symbol_6 %51
+         %51 = OpFunctionCall %void %tint_symbol_6 %52
                OpReturn
                OpFunctionEnd
-  %frag_main = OpFunction %void None %46
-         %53 = OpLabel
+%tint_symbol_15 = OpFunction %void None %53
+%tint_symbol_13 = OpFunctionParameter %int
+         %56 = OpLabel
+               OpStore %tint_symbol_14 %tint_symbol_13
+               OpReturn
+               OpFunctionEnd
+  %frag_main = OpFunction %void None %47
+         %58 = OpLabel
+         %59 = OpLoad %int %tint_symbol_7
+         %60 = OpLoad %uint %tint_symbol_8
+         %61 = OpLoad %v4int %tint_symbol_9
+         %62 = OpLoad %v4uint %tint_symbol_10
+         %63 = OpLoad %v4float %tint_symbol_11
+         %64 = OpCompositeConstruct %Interface %59 %60 %61 %62 %63
+         %66 = OpCompositeExtract %int %64 0
+         %65 = OpFunctionCall %void %tint_symbol_15 %66
                OpReturn
                OpFunctionEnd
diff --git a/test/shader_io/interpolate_integers.wgsl.expected.wgsl b/test/shader_io/interpolate_integers.wgsl.expected.wgsl
index 8144f53..e20933e 100644
--- a/test/shader_io/interpolate_integers.wgsl.expected.wgsl
+++ b/test/shader_io/interpolate_integers.wgsl.expected.wgsl
@@ -17,5 +17,6 @@
 }
 
 [[stage(fragment)]]
-fn frag_main(inputs : Interface) {
+fn frag_main(inputs : Interface) -> [[location(0)]] i32 {
+  return inputs.i;
 }
diff --git a/test/shader_io/vertex_input_locations.wgsl.expected.spvasm b/test/shader_io/vertex_input_locations.wgsl.expected.spvasm
index 0991719..9a0c93b 100644
--- a/test/shader_io/vertex_input_locations.wgsl.expected.spvasm
+++ b/test/shader_io/vertex_input_locations.wgsl.expected.spvasm
@@ -17,9 +17,7 @@
                OpName %main "main"
                OpDecorate %tint_pointsize BuiltIn PointSize
                OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol Flat
                OpDecorate %tint_symbol_1 Location 1
-               OpDecorate %tint_symbol_1 Flat
                OpDecorate %tint_symbol_2 Location 2
                OpDecorate %tint_symbol_3 Location 3
                OpDecorate %tint_symbol_5 BuiltIn Position
diff --git a/test/shader_io/vertex_input_locations_struct.wgsl.expected.spvasm b/test/shader_io/vertex_input_locations_struct.wgsl.expected.spvasm
index 970bfe8..3766af8 100644
--- a/test/shader_io/vertex_input_locations_struct.wgsl.expected.spvasm
+++ b/test/shader_io/vertex_input_locations_struct.wgsl.expected.spvasm
@@ -22,9 +22,7 @@
                OpMemberName %VertexInputs 3 "loc3"
                OpDecorate %tint_pointsize BuiltIn PointSize
                OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol Flat
                OpDecorate %tint_symbol_1 Location 1
-               OpDecorate %tint_symbol_1 Flat
                OpDecorate %tint_symbol_2 Location 2
                OpDecorate %tint_symbol_3 Location 3
                OpDecorate %tint_symbol_6 BuiltIn Position
diff --git a/test/shader_io/vertex_input_mixed.wgsl.expected.spvasm b/test/shader_io/vertex_input_mixed.wgsl.expected.spvasm
index 48ccb64..f930879 100644
--- a/test/shader_io/vertex_input_mixed.wgsl.expected.spvasm
+++ b/test/shader_io/vertex_input_mixed.wgsl.expected.spvasm
@@ -26,9 +26,7 @@
                OpDecorate %tint_pointsize BuiltIn PointSize
                OpDecorate %tint_symbol BuiltIn VertexIndex
                OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_1 Flat
                OpDecorate %tint_symbol_3 Location 1
-               OpDecorate %tint_symbol_3 Flat
                OpDecorate %tint_symbol_4 BuiltIn InstanceIndex
                OpDecorate %tint_symbol_5 Location 2
                OpDecorate %tint_symbol_6 Location 3
