Files
c3c/test/test_suite/assignment/int_assign.c3t
2023-04-28 19:11:57 +02:00

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