[spirv-writer] Fix global constant emitting

This CL fixes the emitting of global constants to use the correct
`OpConstantComposite` call when adding to the types section. A TODO is
added to generate `OpCompositeConstruct` when we need to generate
initializers inside functions.

Bug: tint:5
Change-Id: I1bbf6c68e21b546d6a643b4c99c7d2c9317bfcbd
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/18440
Reviewed-by: David Neto <dneto@google.com>
diff --git a/src/writer/spirv/builder.cc b/src/writer/spirv/builder.cc
index d0e10eb..35017b9 100644
--- a/src/writer/spirv/builder.cc
+++ b/src/writer/spirv/builder.cc
@@ -371,7 +371,9 @@
 
     const_to_id_[str] = result.to_i();
 
-    push_type(spv::Op::OpCompositeConstruct, ops);
+    // TODO(dsinclair) For non-global constant's this should be
+    // in the instructions and ben an OpCompositeConstruct call.
+    push_type(spv::Op::OpConstantComposite, ops);
     return result.to_i();
   }
 
diff --git a/src/writer/spirv/builder_constructor_expression_test.cc b/src/writer/spirv/builder_constructor_expression_test.cc
index 51bb271..7a5fa2f 100644
--- a/src/writer/spirv/builder_constructor_expression_test.cc
+++ b/src/writer/spirv/builder_constructor_expression_test.cc
@@ -69,7 +69,7 @@
 %1 = OpTypeVector %2 3
 %3 = OpConstant %2 1
 %4 = OpConstant %2 3
-%5 = OpCompositeConstruct %1 %3 %3 %4
+%5 = OpConstantComposite %1 %3 %3 %4
 )");
 }
 
diff --git a/src/writer/spirv/builder_global_variable_test.cc b/src/writer/spirv/builder_global_variable_test.cc
index 3f2deac..09fed56 100644
--- a/src/writer/spirv/builder_global_variable_test.cc
+++ b/src/writer/spirv/builder_global_variable_test.cc
@@ -95,7 +95,7 @@
 %1 = OpTypeVector %2 3
 %3 = OpConstant %2 1
 %4 = OpConstant %2 3
-%5 = OpCompositeConstruct %1 %3 %3 %4
+%5 = OpConstantComposite %1 %3 %3 %4
 %7 = OpTypePointer Output %2
 %6 = OpVariable %7 Output %5
 )");
@@ -128,7 +128,7 @@
 %1 = OpTypeVector %2 3
 %3 = OpConstant %2 1
 %4 = OpConstant %2 3
-%5 = OpCompositeConstruct %1 %3 %3 %4
+%5 = OpConstantComposite %1 %3 %3 %4
 )");
 }
 
diff --git a/src/writer/spirv/builder_return_test.cc b/src/writer/spirv/builder_return_test.cc
index 038bbb7..f61805b 100644
--- a/src/writer/spirv/builder_return_test.cc
+++ b/src/writer/spirv/builder_return_test.cc
@@ -67,7 +67,7 @@
 %1 = OpTypeVector %2 3
 %3 = OpConstant %2 1
 %4 = OpConstant %2 3
-%5 = OpCompositeConstruct %1 %3 %3 %4
+%5 = OpConstantComposite %1 %3 %3 %4
 )");
   EXPECT_EQ(DumpInstructions(b.instructions()), R"(OpReturnValue %5
 )");