238 lines · plain
1; RUN: llvm-dis < %s.bc| FileCheck %s2; RUN: verify-uselistorder < %s.bc3 4; attributes-3.3.ll.bc was generated by passing this file to llvm-as-3.3.5; The test checks that LLVM does not silently misread attributes of6; older bitcode files.7 8define void @f1(i8 zeroext %0)9; CHECK: define void @f1(i8 zeroext %0)10{11 ret void;12}13 14define void @f2(i8 signext %0)15; CHECK: define void @f2(i8 signext %0)16{17 ret void;18}19 20define void @f3() noreturn21; CHECK: define void @f3() #022{23 ret void;24}25 26define void @f4(i8 inreg %0)27; CHECK: define void @f4(i8 inreg %0)28{29 ret void;30}31 32define void @f5(i8* sret(i8) %0)33; CHECK: define void @f5(ptr sret(i8) %0)34{35 ret void;36}37 38define void @f6() nounwind39; CHECK: define void @f6() #140{41 ret void;42}43 44define void @f7(i8* noalias %0)45; CHECK: define void @f7(ptr noalias %0)46{47 ret void;48}49 50define void @f8(i8* byval(i8) %0)51; CHECK: define void @f8(ptr byval(i8) %0)52{53 ret void;54}55 56define void @f9(i8* nest %0)57; CHECK: define void @f9(ptr nest %0)58{59 ret void;60}61 62define void @f10() readnone63; CHECK: define void @f10() #264{65 ret void;66}67 68define void @f11() readonly69; CHECK: define void @f11() #370{71 ret void;72}73 74define void @f12() noinline75; CHECK: define void @f12() #476{77 ret void;78}79 80define void @f13() alwaysinline81; CHECK: define void @f13() #582{83 ret void;84}85 86define void @f14() optsize87; CHECK: define void @f14() #688{89 ret void;90}91 92define void @f15() ssp93; CHECK: define void @f15() #794{95 ret void;96}97 98define void @f16() sspreq99; CHECK: define void @f16() #8100{101 ret void;102}103 104define void @f17(i8 align 4 %0)105; CHECK: define void @f17(i8 %0)106{107 ret void;108}109 110define void @f18(i8* nocapture %0)111; CHECK: define void @f18(ptr captures(none) %0)112{113 ret void;114}115 116define void @f19() noredzone117; CHECK: define void @f19() #9118{119 ret void;120}121 122define void @f20() noimplicitfloat123; CHECK: define void @f20() #10124{125 ret void;126}127 128define void @f21() naked129; CHECK: define void @f21() #11130{131 ret void;132}133 134define void @f22() inlinehint135; CHECK: define void @f22() #12136{137 ret void;138}139 140define void @f23() alignstack(4)141; CHECK: define void @f23() #13142{143 ret void;144}145 146define void @f24() returns_twice147; CHECK: define void @f24() #14148{149 ret void;150}151 152define void @f25() uwtable153; CHECK: define void @f25() #15154{155 ret void;156}157 158define void @f26() nonlazybind159; CHECK: define void @f26() #16160{161 ret void;162}163 164define void @f27() sanitize_address165; CHECK: define void @f27() #17166{167 ret void;168}169define void @f28() sanitize_thread170; CHECK: define void @f28() #18171{172 ret void;173}174define void @f29() sanitize_memory175; CHECK: define void @f29() #19176{177 ret void;178}179 180define void @f30() "cpu"="cortex-a8"181; CHECK: define void @f30() #20182{183 ret void;184}185 186define i8 @f31(i8 returned %A)187; CHECK: define i8 @f31(i8 returned %A)188{189 ret i8 %A;190}191 192define void @f32() sspstrong193; CHECK: define void @f32() #21194{195 ret void;196}197 198define void @f33() minsize199; CHECK: define void @f33() #22200{201 ret void;202}203 204declare void @nobuiltin()205 206define void @f34()207; CHECK: define void @f34()208{209 call void @nobuiltin() nobuiltin210; CHECK: call void @nobuiltin() #23211 ret void;212}213 214; CHECK: attributes #0 = { noreturn }215; CHECK: attributes #1 = { nounwind }216; CHECK: attributes #2 = { memory(none) }217; CHECK: attributes #3 = { memory(read) }218; CHECK: attributes #4 = { noinline }219; CHECK: attributes #5 = { alwaysinline }220; CHECK: attributes #6 = { optsize }221; CHECK: attributes #7 = { ssp }222; CHECK: attributes #8 = { sspreq }223; CHECK: attributes #9 = { noredzone }224; CHECK: attributes #10 = { noimplicitfloat }225; CHECK: attributes #11 = { naked }226; CHECK: attributes #12 = { inlinehint }227; CHECK: attributes #13 = { alignstack=4 }228; CHECK: attributes #14 = { returns_twice }229; CHECK: attributes #15 = { uwtable }230; CHECK: attributes #16 = { nonlazybind }231; CHECK: attributes #17 = { sanitize_address }232; CHECK: attributes #18 = { sanitize_thread }233; CHECK: attributes #19 = { sanitize_memory }234; CHECK: attributes #20 = { "cpu"="cortex-a8" }235; CHECK: attributes #21 = { sspstrong }236; CHECK: attributes #22 = { minsize }237; CHECK: attributes #23 = { nobuiltin }238