brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.6 KiB · b5f2990 Raw
112 lines · plain
1; RUN: opt -passes=mergefunc -S < %s | FileCheck %s2 3define i8 @call_with_range_attr(i8 range(i8 0, 2) %v) {4  %out = call i8 @dummy2(i8 %v)5  ret i8 %out6}7 8define i8 @call_no_range_attr(i8 %v) {9; CHECK-LABEL: @call_no_range_attr10; CHECK-NEXT: %out = call i8 @dummy2(i8 %v)11; CHECK-NEXT: ret i8 %out12  %out = call i8 @dummy2(i8 %v)13  ret i8 %out14}15 16define i8 @call_different_range_attr(i8 range(i8 5, 7) %v) {17; CHECK-LABEL: @call_different_range_attr18; CHECK-NEXT: %out = call i8 @dummy2(i8 %v)19; CHECK-NEXT: ret i8 %out20  %out = call i8 @dummy2(i8 %v)21  ret i8 %out22}23 24define i8 @call_with_range() {25  %out = call range(i8 0, 2) i8 @dummy()26  ret i8 %out27}28 29define i8 @call_no_range() {30; CHECK-LABEL: @call_no_range31; CHECK-NEXT: %out = call i8 @dummy()32; CHECK-NEXT: ret i8 %out33  %out = call i8 @dummy()34  ret i8 %out35}36 37define i8 @call_different_range() {38; CHECK-LABEL: @call_different_range39; CHECK-NEXT: %out = call range(i8 5, 7) i8 @dummy()40; CHECK-NEXT: ret i8 %out41  %out = call range(i8 5, 7) i8 @dummy()42  ret i8 %out43}44 45define i8 @invoke_with_range() personality ptr undef {46  %out = invoke range(i8 0, 2) i8 @dummy() to label %next unwind label %lpad47 48next:49  ret i8 %out50 51lpad:52  %pad = landingpad { ptr, i32 } cleanup53  resume { ptr, i32 } zeroinitializer54}55 56define i8 @invoke_no_range() personality ptr undef {57; CHECK-LABEL: @invoke_no_range()58; CHECK-NEXT: invoke i8 @dummy59  %out = invoke i8 @dummy() to label %next unwind label %lpad60 61next:62  ret i8 %out63 64lpad:65  %pad = landingpad { ptr, i32 } cleanup66  resume { ptr, i32 } zeroinitializer67}68 69define i8 @invoke_different_range() personality ptr undef {70; CHECK-LABEL: @invoke_different_range()71; CHECK-NEXT: invoke range(i8 5, 7) i8 @dummy72  %out = invoke range(i8 5, 7) i8 @dummy() to label %next unwind label %lpad73 74next:75  ret i8 %out76 77lpad:78  %pad = landingpad { ptr, i32 } cleanup79  resume { ptr, i32 } zeroinitializer80}81 82define i8 @invoke_with_same_range() personality ptr undef {83; CHECK-DAG: @invoke_with_same_range()84; CHECK-DAG: tail call i8 @invoke_with_range()85  %out = invoke range(i8 0, 2) i8 @dummy() to label %next unwind label %lpad86 87next:88  ret i8 %out89 90lpad:91  %pad = landingpad { ptr, i32 } cleanup92  resume { ptr, i32 } zeroinitializer93}94 95define i8 @call_with_same_range() {96; CHECK-DAG: @call_with_same_range()97; CHECK-DAG: tail call i8 @call_with_range()98  %out = call range(i8 0, 2) i8 @dummy()99  ret i8 %out100}101 102define i8 @call_with_same_range_attr(i8 range(i8 0, 2) %v) {103; CHECK-DAG: @call_with_same_range_attr104; CHECK-DAG: tail call i8 @call_with_range_attr105  %out = call i8 @dummy2(i8 %v)106  ret i8 %out107}108 109declare i8 @dummy();110declare i8 @dummy2(i8);111declare i32 @__gxx_personality_v0(...)112