mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 12:01:16 +00:00
70 lines
1.6 KiB
C
70 lines
1.6 KiB
C
module test;
|
|
|
|
fn int foo()
|
|
{
|
|
int x = 0;
|
|
int y;
|
|
x += y;
|
|
x -= y;
|
|
x %= y;
|
|
x /= y;
|
|
x *= y;
|
|
x <<= y;
|
|
x >>= y;
|
|
x ^= y;
|
|
x |= y;
|
|
x &= y;
|
|
return x;
|
|
}
|
|
|
|
|
|
/* #expect: test.ll
|
|
|
|
%x = alloca i32, align 4
|
|
%y = alloca i32, align 4
|
|
store i32 0, ptr %x, align 4
|
|
store i32 0, ptr %y, align 4
|
|
%0 = load i32, ptr %x, align 4
|
|
%1 = load i32, ptr %y, align 4
|
|
%add = add i32 %0, %1
|
|
store i32 %add, ptr %x, align 4
|
|
%2 = load i32, ptr %x, align 4
|
|
%3 = load i32, ptr %y, align 4
|
|
%sub = sub i32 %2, %3
|
|
store i32 %sub, ptr %x, align 4
|
|
%4 = load i32, ptr %x, align 4
|
|
%5 = load i32, ptr %y, align 4
|
|
%smod = srem i32 %4, %5
|
|
store i32 %smod, ptr %x, align 4
|
|
%6 = load i32, ptr %x, align 4
|
|
%7 = load i32, ptr %y, align 4
|
|
%sdiv = sdiv i32 %6, %7
|
|
store i32 %sdiv, ptr %x, align 4
|
|
%8 = load i32, ptr %x, align 4
|
|
%9 = load i32, ptr %y, align 4
|
|
%mul = mul i32 %8, %9
|
|
store i32 %mul, ptr %x, align 4
|
|
%10 = load i32, ptr %x, align 4
|
|
%11 = load i32, ptr %y, align 4
|
|
%shl = shl i32 %10, %11
|
|
%12 = freeze i32 %shl
|
|
store i32 %12, ptr %x, align 4
|
|
%13 = load i32, ptr %x, align 4
|
|
%14 = load i32, ptr %y, align 4
|
|
%ashr = ashr i32 %13, %14
|
|
%15 = freeze i32 %ashr
|
|
store i32 %15, ptr %x, align 4
|
|
%16 = load i32, ptr %x, align 4
|
|
%17 = load i32, ptr %y, align 4
|
|
%xor = xor i32 %16, %17
|
|
store i32 %xor, ptr %x, align 4
|
|
%18 = load i32, ptr %x, align 4
|
|
%19 = load i32, ptr %y, align 4
|
|
%or = or i32 %18, %19
|
|
store i32 %or, ptr %x, align 4
|
|
%20 = load i32, ptr %x, align 4
|
|
%21 = load i32, ptr %y, align 4
|
|
%and = and i32 %20, %21
|
|
store i32 %and, ptr %x, align 4
|
|
%22 = load i32, ptr %x, align 4
|