58 lines · plain
1; RUN: opt -passes=mergefunc -S < %s | FileCheck %s2 3;; Make sure that two different allocas are not treated as equal.4 5target datalayout = "e-m:w-p:32:32-i64:64-f80:32-n8:16:32-S32"6 7%kv1 = type { i32, i32 }8%kv2 = type { i8 }9%kv3 = type { i64, i64 }10 11; Size difference.12 13; CHECK-LABEL: define void @size114; CHECK-NOT: call void @15define void @size1(ptr %f) {16 %v = alloca %kv1, align 817 call void %f(ptr %v)18 call void %f(ptr %v)19 call void %f(ptr %v)20 call void %f(ptr %v)21 ret void22}23 24; CHECK-LABEL: define void @size225; CHECK-NOT: call void @26define void @size2(ptr %f) {27 %v = alloca %kv2, align 828 call void %f(ptr %v)29 call void %f(ptr %v)30 call void %f(ptr %v)31 call void %f(ptr %v)32 ret void33}34 35; Alignment difference.36 37; CHECK-LABEL: define void @align138; CHECK-NOT: call void @39define void @align1(ptr %f) {40 %v = alloca %kv3, align 841 call void %f(ptr %v)42 call void %f(ptr %v)43 call void %f(ptr %v)44 call void %f(ptr %v)45 ret void46}47 48; CHECK-LABEL: define void @align249; CHECK-NOT: call void @50define void @align2(ptr %f) {51 %v = alloca %kv3, align 1652 call void %f(ptr %v)53 call void %f(ptr %v)54 call void %f(ptr %v)55 call void %f(ptr %v)56 ret void57}58