mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 12:01:16 +00:00
44 lines
1.1 KiB
Plaintext
44 lines
1.1 KiB
Plaintext
// #target: macos-x64
|
|
module test;
|
|
fn int main()
|
|
{
|
|
int[<2>] z = { 1, 2 };
|
|
z <<= 2;
|
|
z << 2;
|
|
int x;
|
|
z <<= { x, 2 };
|
|
z << { 1, 2 };
|
|
z <<= { 1, 2 };
|
|
return 0;
|
|
}
|
|
|
|
/* #expect: test.ll
|
|
|
|
entry:
|
|
%z = alloca <2 x i32>, align 8
|
|
%x = alloca i32, align 4
|
|
store <2 x i32> <i32 1, i32 2>, ptr %z, align 8
|
|
%0 = load <2 x i32>, ptr %z, align 8
|
|
%shl = shl <2 x i32> %0,
|
|
%1 = freeze <2 x i32> %shl
|
|
store <2 x i32> %1, ptr %z, align 8
|
|
%2 = load <2 x i32>, ptr %z, align 8
|
|
%shl1 = shl <2 x i32> %2,
|
|
%3 = freeze <2 x i32> %shl1
|
|
store i32 0, ptr %x, align 4
|
|
%4 = load <2 x i32>, ptr %z, align 8
|
|
%5 = load i32, ptr %x, align 4
|
|
%6 = insertelement <2 x i32> undef, i32 %5, i64 0
|
|
%7 = insertelement <2 x i32> %6, i32 2, i64 1
|
|
%shl2 = shl <2 x i32> %4, %7
|
|
%8 = freeze <2 x i32> %shl2
|
|
store <2 x i32> %8, ptr %z, align 8
|
|
%9 = load <2 x i32>, ptr %z, align 8
|
|
%shl3 = shl <2 x i32> %9, <i32 1, i32 2>
|
|
%10 = freeze <2 x i32> %shl3
|
|
%11 = load <2 x i32>, ptr %z, align 8
|
|
%shl4 = shl <2 x i32> %11, <i32 1, i32 2>
|
|
%12 = freeze <2 x i32> %shl4
|
|
store <2 x i32> %12, ptr %z, align 8
|
|
ret i32 0
|