1 ; RUN: opt < %s -instcombine -S | FileCheck %s
2 @a = common global [60 x i8] zeroinitializer, align 1 ; <[60 x i8]*>
3 @.str = private constant [8 x i8] c"abcdefg\00" ; <[8 x i8]*>
5 define i32 @foo() nounwind {
7 ; CHECK-NEXT: ret i32 60
8 %1 = call i32 @llvm.objectsize.i32(i8* getelementptr inbounds ([60 x i8]* @a, i32 0, i32 0), i1 false)
12 define i8* @bar() nounwind {
16 %0 = call i32 @llvm.objectsize.i32(i8* getelementptr inbounds ([60 x i8]* @a, i32 0, i32 0), i1 false)
17 %cmp = icmp ne i32 %0, -1
19 br i1 %cmp, label %cond.true, label %cond.false
22 %1 = load i8** %retval;
26 %2 = load i8** %retval;
30 @window = external global [0 x i8]
32 define i1 @baz() nounwind {
34 ; CHECK-NEXT: llvm.objectsize.i32
35 %1 = tail call i32 @llvm.objectsize.i32(i8* getelementptr inbounds ([0 x i8]* @window, i32 0, i32 0), i1 false)
36 %2 = icmp eq i32 %1, -1
41 declare i32 @llvm.objectsize.i32(i8*, i1) nounwind readonly