// #target: macos-x64
module inlineme;
import std::io;

fn void test1() @inline
{
    io::printn("Inline!");
}

fn void test2() @noinline
{
    io::printn("No inline!");
}

fn void test3()
{
    io::printn("Plain");
}

fn void main()
{
    test1() @inline;
    test2() @inline;
    test3() @inline;
    test1() @noinline;
    test2() @noinline;
    test3() @noinline;
    test1();
    test2();
    test3();
}
/* #expect: inlineme.ll

entry:
  call void @inlineme.test1() #3
  call void @inlineme.test2() #3
  call void @inlineme.test3() #3
  call void @inlineme.test1() #4
  call void @inlineme.test2() #4
  call void @inlineme.test3() #4
  call void @inlineme.test1() #3
  call void @inlineme.test2()
  call void @inlineme.test3()
  ret void
}

attributes #3 = { alwaysinline }
attributes #4 = { noinline }
