// language: metal1.0
#include <metal_stdlib>
#include <simd/simd.h>

using metal::uint;

struct type_7 {
    float inner[2];
};
struct type_8 {
    int inner[2];
};
struct type_10 {
    metal::int3 inner[1];
};
struct type_12 {
    metal::float3 inner[1];
};

void all_constant_arguments(
) {
    metal::int2 xvipaiai = metal::int2(42, 43);
    metal::uint2 xvupaiai = metal::uint2(44u, 45u);
    metal::float2 xvfpaiai = metal::float2(46.0, 47.0);
    metal::uint2 xvupuai = metal::uint2(42u, 43u);
    metal::uint2 xvupaiu = metal::uint2(42u, 43u);
    metal::uint2 xvuuai = metal::uint2(42u, 43u);
    metal::uint2 xvuaiu = metal::uint2(42u, 43u);
    metal::float2x2 xmfpaiaiaiai = metal::float2x2(metal::float2(1.0, 2.0), metal::float2(3.0, 4.0));
    metal::float2x2 xmfpafaiaiai = metal::float2x2(metal::float2(1.0, 2.0), metal::float2(3.0, 4.0));
    metal::float2x2 xmfpaiafaiai = metal::float2x2(metal::float2(1.0, 2.0), metal::float2(3.0, 4.0));
    metal::float2x2 xmfpaiaiafai = metal::float2x2(metal::float2(1.0, 2.0), metal::float2(3.0, 4.0));
    metal::float2x2 xmfpaiaiaiaf = metal::float2x2(metal::float2(1.0, 2.0), metal::float2(3.0, 4.0));
    metal::float2x2 xmfp_faiaiai = metal::float2x2(metal::float2(1.0, 2.0), metal::float2(3.0, 4.0));
    metal::float2x2 xmfpai_faiai = metal::float2x2(metal::float2(1.0, 2.0), metal::float2(3.0, 4.0));
    metal::float2x2 xmfpaiai_fai = metal::float2x2(metal::float2(1.0, 2.0), metal::float2(3.0, 4.0));
    metal::float2x2 xmfpaiaiai_f = metal::float2x2(metal::float2(1.0, 2.0), metal::float2(3.0, 4.0));
    metal::int2 xvispai = metal::int2(1);
    metal::float2 xvfspaf = metal::float2(1.0);
    metal::int2 xvis_ai = metal::int2(1);
    metal::uint2 xvus_ai = metal::uint2(1u);
    metal::float2 xvfs_ai = metal::float2(1.0);
    metal::float2 xvfs_af = metal::float2(1.0);
    type_7 xafafaf = type_7 {1.0, 2.0};
    type_7 xaf_faf = type_7 {1.0, 2.0};
    type_7 xafaf_f = type_7 {1.0, 2.0};
    type_7 xafaiai = type_7 {1.0, 2.0};
    type_8 xai_iai = type_8 {1, 2};
    type_8 xaiai_i = type_8 {1, 2};
    type_8 xaipaiai = type_8 {1, 2};
    type_7 xafpaiai = type_7 {1.0, 2.0};
    type_7 xafpaiaf = type_7 {1.0, 2.0};
    type_7 xafpafai = type_7 {1.0, 2.0};
    type_7 xafpafaf = type_7 {1.0, 2.0};
    type_10 xavipai = type_10 {metal::int3(1)};
    type_12 xavfpai = type_12 {metal::float3(1.0)};
    type_12 xavfpaf = type_12 {metal::float3(1.0)};
    type_8 iaipaiai = type_8 {1, 2};
    type_7 iafpaiaf = type_7 {1.0, 2.0};
    type_7 iafpafai = type_7 {1.0, 2.0};
    type_7 iafpafaf = type_7 {1.0, 2.0};
    xvipaiai = metal::int2(42, 43);
    xvupaiai = metal::uint2(44u, 45u);
    xvfpaiai = metal::float2(46.0, 47.0);
    xvupuai = metal::uint2(42u, 43u);
    xvupaiu = metal::uint2(42u, 43u);
    xvuuai = metal::uint2(42u, 43u);
    xvuaiu = metal::uint2(42u, 43u);
    xmfpaiaiaiai = metal::float2x2(metal::float2(1.0, 2.0), metal::float2(3.0, 4.0));
    xmfpafaiaiai = metal::float2x2(metal::float2(1.0, 2.0), metal::float2(3.0, 4.0));
    xmfpaiafaiai = metal::float2x2(metal::float2(1.0, 2.0), metal::float2(3.0, 4.0));
    xmfpaiaiafai = metal::float2x2(metal::float2(1.0, 2.0), metal::float2(3.0, 4.0));
    xmfpaiaiaiaf = metal::float2x2(metal::float2(1.0, 2.0), metal::float2(3.0, 4.0));
    xmfp_faiaiai = metal::float2x2(metal::float2(1.0, 2.0), metal::float2(3.0, 4.0));
    xmfpai_faiai = metal::float2x2(metal::float2(1.0, 2.0), metal::float2(3.0, 4.0));
    xmfpaiai_fai = metal::float2x2(metal::float2(1.0, 2.0), metal::float2(3.0, 4.0));
    xmfpaiaiai_f = metal::float2x2(metal::float2(1.0, 2.0), metal::float2(3.0, 4.0));
    xvispai = metal::int2(1);
    xvfspaf = metal::float2(1.0);
    xvis_ai = metal::int2(1);
    xvus_ai = metal::uint2(1u);
    xvfs_ai = metal::float2(1.0);
    xvfs_af = metal::float2(1.0);
    xafafaf = type_7 {1.0, 2.0};
    xaf_faf = type_7 {1.0, 2.0};
    xafaf_f = type_7 {1.0, 2.0};
    xafaiai = type_7 {1.0, 2.0};
    xai_iai = type_8 {1, 2};
    xaiai_i = type_8 {1, 2};
    xaipaiai = type_8 {1, 2};
    xafpaiai = type_7 {1.0, 2.0};
    xafpaiaf = type_7 {1.0, 2.0};
    xafpafai = type_7 {1.0, 2.0};
    xafpafaf = type_7 {1.0, 2.0};
    xavipai = type_10 {metal::int3(1)};
    xavfpai = type_12 {metal::float3(1.0)};
    xavfpaf = type_12 {metal::float3(1.0)};
    iaipaiai = type_8 {1, 2};
    iafpaiaf = type_7 {1.0, 2.0};
    iafpafai = type_7 {1.0, 2.0};
    iafpafaf = type_7 {1.0, 2.0};
    return;
}

void mixed_constant_and_runtime_arguments(
) {
    uint u = {};
    int i = {};
    float f = {};
    metal::uint2 xvupuai_1 = {};
    metal::uint2 xvupaiu_1 = {};
    metal::uint2 xvuuai_1 = {};
    metal::uint2 xvuaiu_1 = {};
    metal::float2x2 xmfp_faiaiai_1 = {};
    metal::float2x2 xmfpai_faiai_1 = {};
    metal::float2x2 xmfpaiai_fai_1 = {};
    metal::float2x2 xmfpaiaiai_f_1 = {};
    type_7 xaf_faf_1 = {};
    type_7 xafaf_f_1 = {};
    type_7 xaf_fai = {};
    type_7 xafai_f = {};
    type_8 xai_iai_1 = {};
    type_8 xaiai_i_1 = {};
    type_7 xafp_faf = {};
    type_7 xafpaf_f = {};
    type_7 xafp_fai = {};
    type_7 xafpai_f = {};
    type_8 xaip_iai = {};
    type_8 xaipai_i = {};
    uint _e3 = u;
    xvupuai_1 = metal::uint2(_e3, 43u);
    uint _e7 = u;
    xvupaiu_1 = metal::uint2(42u, _e7);
    uint _e11 = u;
    xvuuai_1 = metal::uint2(_e11, 43u);
    uint _e15 = u;
    xvuaiu_1 = metal::uint2(42u, _e15);
    float _e19 = f;
    xmfp_faiaiai_1 = metal::float2x2(metal::float2(_e19, 2.0), metal::float2(3.0, 4.0));
    float _e27 = f;
    xmfpai_faiai_1 = metal::float2x2(metal::float2(1.0, _e27), metal::float2(3.0, 4.0));
    float _e35 = f;
    xmfpaiai_fai_1 = metal::float2x2(metal::float2(1.0, 2.0), metal::float2(_e35, 4.0));
    float _e43 = f;
    xmfpaiaiai_f_1 = metal::float2x2(metal::float2(1.0, 2.0), metal::float2(3.0, _e43));
    float _e51 = f;
    xaf_faf_1 = type_7 {_e51, 2.0};
    float _e55 = f;
    xafaf_f_1 = type_7 {1.0, _e55};
    float _e59 = f;
    xaf_fai = type_7 {_e59, 2.0};
    float _e63 = f;
    xafai_f = type_7 {1.0, _e63};
    int _e67 = i;
    xai_iai_1 = type_8 {_e67, 2};
    int _e71 = i;
    xaiai_i_1 = type_8 {1, _e71};
    float _e75 = f;
    xafp_faf = type_7 {_e75, 2.0};
    float _e79 = f;
    xafpaf_f = type_7 {1.0, _e79};
    float _e83 = f;
    xafp_fai = type_7 {_e83, 2.0};
    float _e87 = f;
    xafpai_f = type_7 {1.0, _e87};
    int _e91 = i;
    xaip_iai = type_8 {_e91, 2};
    int _e95 = i;
    xaipai_i = type_8 {1, _e95};
    uint _e99 = u;
    xvupuai_1 = metal::uint2(_e99, 43u);
    uint _e102 = u;
    xvupaiu_1 = metal::uint2(42u, _e102);
    uint _e105 = u;
    xvuuai_1 = metal::uint2(_e105, 43u);
    uint _e108 = u;
    xvuaiu_1 = metal::uint2(42u, _e108);
    float _e111 = f;
    xmfp_faiaiai_1 = metal::float2x2(metal::float2(_e111, 2.0), metal::float2(3.0, 4.0));
    float _e118 = f;
    xmfpai_faiai_1 = metal::float2x2(metal::float2(1.0, _e118), metal::float2(3.0, 4.0));
    float _e125 = f;
    xmfpaiai_fai_1 = metal::float2x2(metal::float2(1.0, 2.0), metal::float2(_e125, 4.0));
    float _e132 = f;
    xmfpaiaiai_f_1 = metal::float2x2(metal::float2(1.0, 2.0), metal::float2(3.0, _e132));
    float _e139 = f;
    xaf_faf_1 = type_7 {_e139, 2.0};
    float _e142 = f;
    xafaf_f_1 = type_7 {1.0, _e142};
    float _e145 = f;
    xaf_fai = type_7 {_e145, 2.0};
    float _e148 = f;
    xafai_f = type_7 {1.0, _e148};
    int _e151 = i;
    xai_iai_1 = type_8 {_e151, 2};
    int _e154 = i;
    xaiai_i_1 = type_8 {1, _e154};
    float _e157 = f;
    xafp_faf = type_7 {_e157, 2.0};
    float _e160 = f;
    xafpaf_f = type_7 {1.0, _e160};
    float _e163 = f;
    xafp_fai = type_7 {_e163, 2.0};
    float _e166 = f;
    xafpai_f = type_7 {1.0, _e166};
    int _e169 = i;
    xaip_iai = type_8 {_e169, 2};
    int _e172 = i;
    xaipai_i = type_8 {1, _e172};
    return;
}
