// #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
