tint: Add builtin tests for arguments passed by var

Change-Id: I81b69d23e40675d7f525e6369afec9aa0659d043
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/92321
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/47d475.wgsl.expected.msl b/test/tint/builtins/gen/var/firstTrailingBit/47d475.wgsl.expected.msl
new file mode 100644
index 0000000..9053e17
--- /dev/null
+++ b/test/tint/builtins/gen/var/firstTrailingBit/47d475.wgsl.expected.msl
@@ -0,0 +1,49 @@
+#include <metal_stdlib>
+
+using namespace metal;
+uint tint_first_trailing_bit(uint v) {
+  uint x = uint(v);
+  uint const b16 = select(16u, 0u, bool((x & 65535u)));
+  x = (x >> b16);
+  uint const b8 = select(8u, 0u, bool((x & 255u)));
+  x = (x >> b8);
+  uint const b4 = select(4u, 0u, bool((x & 15u)));
+  x = (x >> b4);
+  uint const b2 = select(2u, 0u, bool((x & 3u)));
+  x = (x >> b2);
+  uint const b1 = select(1u, 0u, bool((x & 1u)));
+  uint const is_zero = select(0u, 4294967295u, (x == 0u));
+  return uint((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+void firstTrailingBit_47d475() {
+  uint arg_0 = 1u;
+  uint res = tint_first_trailing_bit(arg_0);
+}
+
+struct tint_symbol {
+  float4 value [[position]];
+};
+
+float4 vertex_main_inner() {
+  firstTrailingBit_47d475();
+  return float4(0.0f);
+}
+
+vertex tint_symbol vertex_main() {
+  float4 const inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = {};
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+fragment void fragment_main() {
+  firstTrailingBit_47d475();
+  return;
+}
+
+kernel void compute_main() {
+  firstTrailingBit_47d475();
+  return;
+}
+