1 ; RUN: llvm-as < %s | llvm-dis | FileCheck %s 2 ; PR12696 3 4 define void @f1(i8 zeroext) 5 ; CHECK: define void @f1(i8 zeroext) 6 { 7 ret void; 8 } 9 10 define void @f2(i8 signext) 11 ; CHECK: define void @f2(i8 signext) 12 { 13 ret void; 14 } 15 16 define void @f3() noreturn 17 ; CHECK: define void @f3() #0 18 { 19 ret void; 20 } 21 22 define void @f4(i8 inreg) 23 ; CHECK: define void @f4(i8 inreg) 24 { 25 ret void; 26 } 27 28 define void @f5(i8* sret) 29 ; CHECK: define void @f5(i8* sret) 30 { 31 ret void; 32 } 33 34 define void @f6() nounwind 35 ; CHECK: define void @f6() #1 36 { 37 ret void; 38 } 39 40 define void @f7(i8* noalias) 41 ; CHECK: define void @f7(i8* noalias) 42 { 43 ret void; 44 } 45 46 define void @f8(i8* byval) 47 ; CHECK: define void @f8(i8* byval) 48 { 49 ret void; 50 } 51 52 define void @f9(i8* nest) 53 ; CHECK: define void @f9(i8* nest) 54 { 55 ret void; 56 } 57 58 define void @f10() readnone 59 ; CHECK: define void @f10() #2 60 { 61 ret void; 62 } 63 64 define void @f11() readonly 65 ; CHECK: define void @f11() #3 66 { 67 ret void; 68 } 69 70 define void @f12() noinline 71 ; CHECK: define void @f12() #4 72 { 73 ret void; 74 } 75 76 define void @f13() alwaysinline 77 ; CHECK: define void @f13() #5 78 { 79 ret void; 80 } 81 82 define void @f14() optsize 83 ; CHECK: define void @f14() #6 84 { 85 ret void; 86 } 87 88 define void @f15() ssp 89 ; CHECK: define void @f15() #7 90 { 91 ret void; 92 } 93 94 define void @f16() sspreq 95 ; CHECK: define void @f16() #8 96 { 97 ret void; 98 } 99 100 define void @f17(i8 align 4) 101 ; CHECK: define void @f17(i8 align 4) 102 { 103 ret void; 104 } 105 106 define void @f18(i8* nocapture) 107 ; CHECK: define void @f18(i8* nocapture) 108 { 109 ret void; 110 } 111 112 define void @f19() noredzone 113 ; CHECK: define void @f19() #9 114 { 115 ret void; 116 } 117 118 define void @f20() noimplicitfloat 119 ; CHECK: define void @f20() #10 120 { 121 ret void; 122 } 123 124 define void @f21() naked 125 ; CHECK: define void @f21() #11 126 { 127 ret void; 128 } 129 130 define void @f22() inlinehint 131 ; CHECK: define void @f22() #12 132 { 133 ret void; 134 } 135 136 define void @f23() alignstack(4) 137 ; CHECK: define void @f23() #13 138 { 139 ret void; 140 } 141 142 define void @f24() returns_twice 143 ; CHECK: define void @f24() #14 144 { 145 ret void; 146 } 147 148 define void @f25() uwtable 149 ; CHECK: define void @f25() #15 150 { 151 ret void; 152 } 153 154 define void @f26() nonlazybind 155 ; CHECK: define void @f26() #16 156 { 157 ret void; 158 } 159 160 define void @f27() sanitize_address 161 ; CHECK: define void @f27() #17 162 { 163 ret void; 164 } 165 define void @f28() sanitize_thread 166 ; CHECK: define void @f28() #18 167 { 168 ret void; 169 } 170 define void @f29() sanitize_memory 171 ; CHECK: define void @f29() #19 172 { 173 ret void; 174 } 175 176 define void @f30() "cpu"="cortex-a8" 177 ; CHECK: define void @f30() #20 178 { 179 ret void; 180 } 181 182 define i8 @f31(i8 returned %A) 183 ; CHECK: define i8 @f31(i8 returned %A) 184 { 185 ret i8 %A; 186 } 187 188 define void @f32() sspstrong 189 ; CHECK: define void @f32() #21 190 { 191 ret void; 192 } 193 194 define void @f33() minsize 195 ; CHECK: define void @f33() #22 196 { 197 ret void; 198 } 199 200 declare void @nobuiltin() 201 202 define void @f34() 203 ; CHECK: define void @f34() 204 { 205 call void @nobuiltin() nobuiltin 206 ; CHECK: call void @nobuiltin() #23 207 ret void; 208 } 209 210 ; CHECK: attributes #0 = { noreturn } 211 ; CHECK: attributes #1 = { nounwind } 212 ; CHECK: attributes #2 = { readnone } 213 ; CHECK: attributes #3 = { readonly } 214 ; CHECK: attributes #4 = { noinline } 215 ; CHECK: attributes #5 = { alwaysinline } 216 ; CHECK: attributes #6 = { optsize } 217 ; CHECK: attributes #7 = { ssp } 218 ; CHECK: attributes #8 = { sspreq } 219 ; CHECK: attributes #9 = { noredzone } 220 ; CHECK: attributes #10 = { noimplicitfloat } 221 ; CHECK: attributes #11 = { naked } 222 ; CHECK: attributes #12 = { inlinehint } 223 ; CHECK: attributes #13 = { alignstack=4 } 224 ; CHECK: attributes #14 = { returns_twice } 225 ; CHECK: attributes #15 = { uwtable } 226 ; CHECK: attributes #16 = { nonlazybind } 227 ; CHECK: attributes #17 = { sanitize_address } 228 ; CHECK: attributes #18 = { sanitize_thread } 229 ; CHECK: attributes #19 = { sanitize_memory } 230 ; CHECK: attributes #20 = { "cpu"="cortex-a8" } 231 ; CHECK: attributes #21 = { sspstrong } 232 ; CHECK: attributes #22 = { minsize } 233 ; CHECK: attributes #23 = { nobuiltin } 234