// #target: macos-x64
module foo;
import std::io;
import std::math;
Matrix4f[2] data @export = {MATRIX4F_IDENTITY, MATRIX4F_IDENTITY};
Matrix4f x = MATRIX4F_IDENTITY;
fn int main()
{
	io::printfn("%s", x.m00);
	return 0;
}

/* #expect: foo.ll

@foo__data = local_unnamed_addr global <{ { { { float, [4 x float], float, [4 x float], float, [4 x float], float } } }, { { { float, [4 x float], float, [4 x float], float, [4 x float], float } } } }> <{ { { { float, [4 x float], float, [4 x float], float, [4 x float], float } } } { { { float, [4 x float], float, [4 x float], float, [4 x float], float } } { { float, [4 x float], float, [4 x float], float, [4 x float], float } { float 1.000000e+00, [4 x float] zeroinitializer, float 1.000000e+00, [4 x float] zeroinitializer, float 1.000000e+00, [4 x float] zeroinitializer, float 1.000000e+00 } } }, { { { float, [4 x float], float, [4 x float], float, [4 x float], float } } } { { { float, [4 x float], float, [4 x float], float, [4 x float], float } } { { float, [4 x float], float, [4 x float], float, [4 x float], float } { float 1.000000e+00, [4 x float] zeroinitializer, float 1.000000e+00, [4 x float] zeroinitializer, float 1.000000e+00, [4 x float] zeroinitializer, float 1.000000e+00 } } } }>, align 16
@foo.x = local_unnamed_addr global { { { float, [4 x float], float, [4 x float], float, [4 x float], float } } } { { { float, [4 x float], float, [4 x float], float, [4 x float], float } } { { float, [4 x float], float, [4 x float], float, [4 x float], float } { float 1.000000e+00, [4 x float] zeroinitializer, float 1.000000e+00, [4 x float] zeroinitializer, float 1.000000e+00, [4 x float] zeroinitializer, float 1.000000e+00 } } }, align 4

entry:
  %varargslots = alloca [1 x %any], align 16
  %retparam = alloca i64, align 8
  store %any { ptr @foo.x, i64 ptrtoint (ptr @"$ct.float" to i64) }, ptr %varargslots, align 16
  %0 = call i64 @std.io.printfn(ptr %retparam, ptr @.str, i64 2, ptr %varargslots, i64 1)
  ret i32 0
}
