44 lines · plain
1; RUN: opt -passes=mergefunc -S < %s | FileCheck %s2define i1 @cmp_with_range(ptr, ptr) {3 %v1 = load i8, ptr %0, !range !04 %v2 = load i8, ptr %1, !range !05 %out = icmp eq i8 %v1, %v26 ret i1 %out7}8 9define i1 @cmp_no_range(ptr, ptr) {10; CHECK-LABEL: @cmp_no_range11; CHECK-NEXT: %v1 = load i8, ptr %012; CHECK-NEXT: %v2 = load i8, ptr %113; CHECK-NEXT: %out = icmp eq i8 %v1, %v214; CHECK-NEXT: ret i1 %out15 %v1 = load i8, ptr %016 %v2 = load i8, ptr %117 %out = icmp eq i8 %v1, %v218 ret i1 %out19}20 21define i1 @cmp_different_range(ptr, ptr) {22; CHECK-LABEL: @cmp_different_range23; CHECK-NEXT: %v1 = load i8, ptr %0, align 1, !range !124; CHECK-NEXT: %v2 = load i8, ptr %1, align 1, !range !125; CHECK-NEXT: %out = icmp eq i8 %v1, %v226; CHECK-NEXT: ret i1 %out27 %v1 = load i8, ptr %0, !range !128 %v2 = load i8, ptr %1, !range !129 %out = icmp eq i8 %v1, %v230 ret i1 %out31}32 33define i1 @cmp_with_same_range(ptr, ptr) {34; CHECK-LABEL: @cmp_with_same_range35; CHECK: tail call i1 @cmp_with_range36 %v1 = load i8, ptr %0, !range !037 %v2 = load i8, ptr %1, !range !038 %out = icmp eq i8 %v1, %v239 ret i1 %out40}41 42!0 = !{i8 0, i8 2}43!1 = !{i8 5, i8 7}44