125 lines · plain
1; RUN: llc -mtriple=hexagon < %s | FileCheck %s2 3target triple = "hexagon"4 5@g0 = external global i326@g1 = external global i32, align 47@g2 = external hidden unnamed_addr constant [49 x i8], align 88@g3 = external hidden unnamed_addr constant [76 x i8], align 89@g4 = external unnamed_addr constant { ptr, ptr }10@g5 = external hidden unnamed_addr constant [36 x i8], align 811 12declare void @f0()13 14declare i32 @f1()15 16declare i32 @f2(i32)17 18declare void @f3()19 20; Function Attrs: nounwind21declare ptr @f4(ptr) #022 23; Function Attrs: nounwind24declare ptr @f5(ptr) #025 26; CHECK: f6:27; CHECK-DAG: call f428; CHECK-DAG: r0 = ##f329; CHECK-DAG: call f530; CHECK-DAG: r0 = ##f031; CHECK-DAG: call f832; CHECK-DAG: r0 = ##g233; CHECK-DAG: call f934; CHECK-DAG: call f835; CHECK-DAG: r0 = ##g336; CHECK-DAG: call f1037; CHECK-DAG: r0 = #438; CHECK-DAG: r{{[0-9]+}} = ##g139define i32 @f6() personality ptr @f11 {40b0:41 tail call void @f7()42 %v0 = tail call ptr @f4(ptr @f3) #043 %v1 = tail call ptr @f5(ptr @f0) #044 tail call void (ptr, ...) @f8(ptr @g2)45 tail call void @f9()46 tail call void (ptr, ...) @f8(ptr @g3)47 %v2 = tail call ptr @f10(i32 4) #048 %v3 = load i32, ptr @g1, align 4, !tbaa !049 %v4 = add nsw i32 %v3, 150 store i32 %v4, ptr @g1, align 4, !tbaa !051 invoke void @f12(ptr %v2, ptr @g4, ptr null) #152 to label %b7 unwind label %b153 54b1: ; preds = %b055 %v5 = landingpad { ptr, i32 }56 catch ptr null57 %v6 = extractvalue { ptr, i32 } %v5, 058 %v7 = tail call ptr @f13(ptr %v6) #059 store i32 0, ptr @g1, align 4, !tbaa !060 invoke void @f14() #161 to label %b7 unwind label %b262 63b2: ; preds = %b164 %v8 = landingpad { ptr, i32 }65 catch ptr null66 invoke void @f15()67 to label %b3 unwind label %b668 69b3: ; preds = %b270 %v9 = extractvalue { ptr, i32 } %v8, 071 %v10 = tail call ptr @f13(ptr %v9) #072 tail call void @f15()73 %v11 = load i32, ptr @g1, align 4, !tbaa !074 %v12 = icmp eq i32 %v11, 075 br i1 %v12, label %b5, label %b476 77b4: ; preds = %b378 tail call void (ptr, ...) @f8(ptr @g5)79 store i32 1, ptr @g0, align 4, !tbaa !080 br label %b581 82b5: ; preds = %b4, %b383 %v13 = tail call i32 @f1()84 %v14 = tail call i32 @f2(i32 1)85 ret i32 %v1486 87b6: ; preds = %b288 %v15 = landingpad { ptr, i32 }89 catch ptr null90 tail call void @f16() #291 unreachable92 93b7: ; preds = %b1, %b094 unreachable95}96 97declare void @f7()98 99declare void @f8(ptr, ...)100 101declare void @f9()102 103declare ptr @f10(i32)104 105declare i32 @f11(...)106 107declare void @f12(ptr, ptr, ptr)108 109declare ptr @f13(ptr)110 111declare void @f14()112 113declare void @f15()114 115declare void @f16()116 117attributes #0 = { nounwind }118attributes #1 = { noreturn }119attributes #2 = { noreturn nounwind }120 121!0 = !{!1, !1, i64 0}122!1 = !{!"int", !2}123!2 = !{!"omnipotent char", !3}124!3 = !{!"Simple C/C++ TBAA"}125