brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.1 KiB · 39e5a11 Raw
93 lines · plain
1; RUN: opt -passes=mergefunc -S < %s | FileCheck %s2 3define i8 @call_with_range() {4  bitcast i8 0 to i8 ; dummy to make the function large enough5  %out = call i8 @dummy(), !range !06  ret i8 %out7}8 9define i8 @call_no_range() {10; CHECK-LABEL: @call_no_range11; CHECK-NEXT: bitcast i8 0 to i812; CHECK-NEXT: %out = call i8 @dummy()13; CHECK-NEXT: ret i8 %out14  bitcast i8 0 to i815  %out = call i8 @dummy()16  ret i8 %out17}18 19define i8 @call_different_range() {20; CHECK-LABEL: @call_different_range21; CHECK-NEXT: bitcast i8 0 to i822; CHECK-NEXT: %out = call i8 @dummy(), !range !123; CHECK-NEXT: ret i8 %out24  bitcast i8 0 to i825  %out = call i8 @dummy(), !range !126  ret i8 %out27}28 29define i8 @invoke_with_range() personality ptr undef {30  %out = invoke i8 @dummy() to label %next unwind label %lpad, !range !031 32next:33  ret i8 %out34 35lpad:36  %pad = landingpad { ptr, i32 } cleanup37  resume { ptr, i32 } zeroinitializer38}39 40define i8 @invoke_no_range() personality ptr undef {41; CHECK-LABEL: @invoke_no_range()42; CHECK-NEXT: invoke i8 @dummy43  %out = invoke i8 @dummy() to label %next unwind label %lpad44 45next:46  ret i8 %out47 48lpad:49  %pad = landingpad { ptr, i32 } cleanup50  resume { ptr, i32 } zeroinitializer51}52 53define i8 @invoke_different_range() personality ptr undef {54; CHECK-LABEL: @invoke_different_range()55; CHECK-NEXT: invoke i8 @dummy56  %out = invoke i8 @dummy() to label %next unwind label %lpad, !range !157 58next:59  ret i8 %out60 61lpad:62  %pad = landingpad { ptr, i32 } cleanup63  resume { ptr, i32 } zeroinitializer64}65 66define i8 @invoke_with_same_range() personality ptr undef {67; CHECK-DAG: @invoke_with_same_range()68; CHECK-DAG: tail call i8 @invoke_with_range()69  %out = invoke i8 @dummy() to label %next unwind label %lpad, !range !070 71next:72  ret i8 %out73 74lpad:75  %pad = landingpad { ptr, i32 } cleanup76  resume { ptr, i32 } zeroinitializer77}78 79define i8 @call_with_same_range() {80; CHECK-DAG: @call_with_same_range81; CHECK-DAG: tail call i8 @call_with_range82  bitcast i8 0 to i883  %out = call i8 @dummy(), !range !084  ret i8 %out85}86 87 88declare i8 @dummy();89declare i32 @__gxx_personality_v0(...)90 91!0 = !{i8 0, i8 2}92!1 = !{i8 5, i8 7}93