Files
c3c/test/test_suite/expressions/incdec.c3t
2025-06-18 10:13:48 +02:00

46 lines
1.1 KiB
Plaintext

// #target: macos-x64
fn void test(int* foo)
{
foo++;
foo--;
int y = 10;
y++;
y--;
float z = 2.0;
z++;
++z;
z--;
}
/* #expect: incdec.ll
%foo = alloca ptr, align 8
%y = alloca i32, align 4
%z = alloca float, align 4
store ptr %0, ptr %foo, align 8
%1 = load ptr, ptr %foo, align 8
%ptradd_any = getelementptr i8, ptr %1, i64 4
store ptr %ptradd_any, ptr %foo, align 8
%2 = load ptr, ptr %foo, align 8
%ptradd_any1 = getelementptr i8, ptr %2, i64 -4
store ptr %ptradd_any1, ptr %foo, align 8
store i32 10, ptr %y, align 4
%3 = load i32, ptr %y, align 4
%add = add i32 %3, 1
store i32 %add, ptr %y, align 4
%4 = load i32, ptr %y, align 4
%sub = sub i32 %4, 1
store i32 %sub, ptr %y, align 4
store float 2.000000e+00, ptr %z, align 4
%5 = load float, ptr %z, align 4
%fincdec = fadd float %5, 1.000000e+00
store float %fincdec, ptr %z, align 4
%6 = load float, ptr %z, align 4
%fincdec2 = fadd float %6, 1.000000e+00
store float %fincdec2, ptr %z, align 4
%7 = load float, ptr %z, align 4
%fincdec3 = fadd float %7, -1.000000e+00
store float %fincdec3, ptr %z, align 4
ret void