brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · 2662243 Raw
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