brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.2 KiB · a8e086f Raw
177 lines · plain
1; RUN: llvm-as < %s | llvm-dis | FileCheck %s2 3declare void @callee0()4declare void @callee1(i32,i32)5 6define void @f0(i32* %ptr) {7; CHECK-LABEL: @f0(8 entry:9  %l = load i32, i32* %ptr10  %x = add i32 42, 111  call void @callee0() [ "foo"(i32 42, i64 100, i32 %x), "bar"(float  0.000000e+00, i64 100, i32 %l) ]12; CHECK: call void @callee0() [ "foo"(i32 42, i64 100, i32 %x), "bar"(float  0.000000e+00, i64 100, i32 %l) ]13  ret void14}15 16define void @f1(i32* %ptr) {17; CHECK-LABEL: @f1(18 entry:19  %l = load i32, i32* %ptr20  %x = add i32 42, 121 22  call void @callee0()23  call void @callee0() [ "foo"() ]24  call void @callee0() [ "foo"(i32 42, i64 100, i32 %x), "bar"(float  0.000000e+00, i64 100, i32 %l) ]25; CHECK: @callee0(){{$}}26; CHECK-NEXT: call void @callee0() [ "foo"() ]27; CHECK-NEXT: call void @callee0() [ "foo"(i32 42, i64 100, i32 %x), "bar"(float  0.000000e+00, i64 100, i32 %l) ]28  ret void29}30 31define void @f2(i32* %ptr) {32; CHECK-LABEL: @f2(33 entry:34  call void @callee0() [ "foo"() ]35; CHECK: call void @callee0() [ "foo"() ]36  ret void37}38 39define void @f3(i32* %ptr) {40; CHECK-LABEL: @f3(41 entry:42  %l = load i32, i32* %ptr43  %x = add i32 42, 144  call void @callee0() [ "foo"(i32 42, i64 100, i32 %x), "foo"(i32 42, float  0.000000e+00, i32 %l) ]45; CHECK: call void @callee0() [ "foo"(i32 42, i64 100, i32 %x), "foo"(i32 42, float  0.000000e+00, i32 %l) ]46  ret void47}48 49define void @f4(i32* %ptr) {50; CHECK-LABEL: @f4(51 entry:52  %l = load i32, i32* %ptr53  %x = add i32 42, 154  call void @callee1(i32 10, i32 %x) [ "foo"(i32 42, i64 100, i32 %x), "foo"(i32 42, float  0.000000e+00, i32 %l) ]55; CHECK: call void @callee1(i32 10, i32 %x) [ "foo"(i32 42, i64 100, i32 %x), "foo"(i32 42, float  0.000000e+00, i32 %l) ]56  ret void57}58 59define void @f5(i32 %x) {60entry:61  call void @callee1(i32 10, i32 %x) [ "foo"(i32 42, metadata !"abc"), "bar"(metadata !"abcde", metadata !"qwerty") ]62; CHECK: call void @callee1(i32 10, i32 %x) [ "foo"(i32 42, metadata !"abc"), "bar"(metadata !"abcde", metadata !"qwerty") ]63  ret void64}65 66; Invoke versions of the above tests:67 68 69define void @g0(i32* %ptr) personality i8 3 {70; CHECK-LABEL: @g0(71 entry:72  %l = load i32, i32* %ptr73  %x = add i32 42, 174  invoke void @callee0() [ "foo"(i32 42, i64 100, i32 %x), "bar"(float  0.000000e+00, i64 100, i32 %l) ] to label %normal unwind label %exception75; CHECK: invoke void @callee0() [ "foo"(i32 42, i64 100, i32 %x), "bar"(float  0.000000e+00, i64 100, i32 %l) ]76 77exception:78  %cleanup = landingpad i8 cleanup79  br label %normal80normal:81  ret void82}83 84define void @g1(i32* %ptr) personality i8 3 {85; CHECK-LABEL: @g1(86 entry:87  %l = load i32, i32* %ptr88  %x = add i32 42, 189 90  invoke void @callee0() to label %normal unwind label %exception91; CHECK: invoke void @callee0(){{$}}92 93exception:94  %cleanup = landingpad i8 cleanup95  br label %normal96 97normal:98  invoke void @callee0() [ "foo"() ] to label %normal1 unwind label %exception199; CHECK: invoke void @callee0() [ "foo"() ]100 101exception1:102  %cleanup1 = landingpad i8 cleanup103  br label %normal1104 105normal1:106  invoke void @callee0() [ "foo"(i32 42, i64 100, i32 %x), "foo"(i32 42, float  0.000000e+00, i32 %l) ] to label %normal2 unwind label %exception2107; CHECK: invoke void @callee0() [ "foo"(i32 42, i64 100, i32 %x), "foo"(i32 42, float  0.000000e+00, i32 %l) ]108 109exception2:110  %cleanup2 = landingpad i8 cleanup111  br label %normal2112 113normal2:114  ret void115}116 117define void @g2(i32* %ptr) personality i8 3 {118; CHECK-LABEL: @g2(119 entry:120  invoke void @callee0() [ "foo"() ] to label %normal unwind label %exception121; CHECK: invoke void @callee0() [ "foo"() ]122 123exception:124  %cleanup = landingpad i8 cleanup125  br label %normal126normal:127  ret void128}129 130define void @g3(i32* %ptr) personality i8 3 {131; CHECK-LABEL: @g3(132 entry:133  %l = load i32, i32* %ptr134  %x = add i32 42, 1135  invoke void @callee0() [ "foo"(i32 42, i64 100, i32 %x), "foo"(i32 42, float  0.000000e+00, i32 %l) ] to label %normal unwind label %exception136; CHECK: invoke void @callee0() [ "foo"(i32 42, i64 100, i32 %x), "foo"(i32 42, float  0.000000e+00, i32 %l) ]137 138exception:139  %cleanup = landingpad i8 cleanup140  br label %normal141normal:142  ret void143}144 145define void @g4(i32* %ptr) personality i8 3 {146; CHECK-LABEL: @g4(147 entry:148  %l = load i32, i32* %ptr149  %x = add i32 42, 1150  invoke void @callee1(i32 10, i32 %x) [ "foo"(i32 42, i64 100, i32 %x), "foo"(i32 42, float  0.000000e+00, i32 %l) ]151        to label %normal unwind label %exception152; CHECK: invoke void @callee1(i32 10, i32 %x) [ "foo"(i32 42, i64 100, i32 %x), "foo"(i32 42, float  0.000000e+00, i32 %l) ]153 154exception:155  %cleanup = landingpad i8 cleanup156  br label %normal157normal:158  ret void159}160 161define void @g5(ptr %ptr) personality i8 3 {162entry:163  %l = load i32, ptr %ptr, align 4164  %x = add i32 42, 1165  invoke void @callee1(i32 10, i32 %x) [ "foo"(i32 42, metadata !"abc"), "bar"(metadata !"abcde", metadata !"qwerty") ]166          to label %normal unwind label %exception167; CHECK:   invoke void @callee1(i32 10, i32 %x) [ "foo"(i32 42, metadata !"abc"), "bar"(metadata !"abcde", metadata !"qwerty") ]168 169exception:                                        ; preds = %entry170  %cleanup = landingpad i8171          cleanup172  br label %normal173 174normal:                                           ; preds = %exception, %entry175  ret void176}177