Files
c3c/test/test_suite/expressions/incdec.c3t
Christoffer Lerno 3c15e495dd Add macro arguments &foo $foo #foo.
C ABI compatibility aarch64, win64, x86, x64
Added debug info
2020-11-22 22:16:19 +01:00

42 lines
1.1 KiB
Plaintext

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