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