; Test a pile of objectsize bounds checking.
; RUN: opt < %s -instcombine -S | FileCheck %s
-; XFAIL: *
; We need target data to get the sizes of the arrays and structures.
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
ret i8* %2;
}
+; FIXME: Should be ret i32 0
define i32 @f() nounwind {
; CHECK: @f
-; CHECK-NEXT: ret i32 0
+; CHECK-NEXT: llvm.objectsize.i32
%1 = call i32 @llvm.objectsize.i32(i8* getelementptr ([60 x i8]* @a, i32 1, i32 0), i1 false)
ret i32 %1
}
define i1 @baz() nounwind {
; CHECK: @baz
-; CHECK-NEXT: llvm.objectsize.i32
+; CHECK-NEXT: ret i1 true
%1 = tail call i32 @llvm.objectsize.i32(i8* getelementptr inbounds ([0 x i8]* @window, i32 0, i32 0), i1 false)
%2 = icmp eq i32 %1, -1
ret i1 %2