// #target: macos-x64 module test; import std::io; enum Foo { ABC, DEF, GHK, LDV, HELLO, } fn int main() { Foo[<2>] x = { ABC, DEF }; for (int i = 0; i < 10; i++) { x++; x += 1; x -= 1; x += { 1, 1 }; x -= { 1, 1 }; } return 0; } /* #expect: test.ll entry: %x = alloca <2 x i32>, align 8 %i = alloca i32, align 4 store <2 x i32> , ptr %x, align 8 store i32 0, ptr %i, align 4 br label %loop.cond loop.cond: ; preds = %loop.body, %entry %0 = load i32, ptr %i, align 4 %lt = icmp slt i32 %0, 10 br i1 %lt, label %loop.body, label %loop.exit loop.body: ; preds = %loop.cond %1 = load <2 x i32>, ptr %x, align 8 %add = add <2 x i32> %1, store <2 x i32> %add, ptr %x, align 8 %2 = load <2 x i32>, ptr %x, align 8 %add1 = add <2 x i32> %2, store <2 x i32> %add1, ptr %x, align 8 %3 = load <2 x i32>, ptr %x, align 8 %sub = sub <2 x i32> %3, store <2 x i32> %sub, ptr %x, align 8 %4 = load <2 x i32>, ptr %x, align 8 %add2 = add <2 x i32> %4, store <2 x i32> %add2, ptr %x, align 8 %5 = load <2 x i32>, ptr %x, align 8 %sub3 = sub <2 x i32> %5, store <2 x i32> %sub3, ptr %x, align 8 %6 = load i32, ptr %i, align 4 %add4 = add i32 %6, 1 store i32 %add4, ptr %i, align 4 br label %loop.cond loop.exit: ; preds = %loop.cond ret i32 0 }