forked from OSchip/llvm-project
Remove hard-coded constant in Transforms/InstCombine/memcmp-1.ll
Transforms/InstCombine/memcmp-1.ll has a test case that looks like: @foo = constant [4 x i8] c"foo\00" @hel = constant [4 x i8] c"hel\00" ... %mem1 = getelementptr [4 x i8]* @hel, i32 0, i32 0 %mem2 = getelementptr [4 x i8]* @foo, i32 0, i32 0 %ret = call i32 @memcmp(i8* %mem1, i8* %mem2, i32 3) ret i32 %ret ; CHECK: ret i32 2 The folded return value (2 above) is computed using the system memcmp that the compiler is linked with. This can return different values on different systems. The test was originally written on an OS X 10.7.5 x86-64 box and passed. However, it failed on one of the x86-64 FreeBSD buildbots because the system memcpy on that machine returned a different value (1 instead of 2). I fixed the test by checking the folding constants with regexes. llvm-svn: 167691
This commit is contained in:
parent
158a31abe2
commit
9493eb9bc4
|
@ -59,5 +59,14 @@ define i32 @test_simplify5() {
|
|||
%mem2 = getelementptr [4 x i8]* @foo, i32 0, i32 0
|
||||
%ret = call i32 @memcmp(i8* %mem1, i8* %mem2, i32 3)
|
||||
ret i32 %ret
|
||||
; CHECK: ret i32 2
|
||||
; CHECK: ret i32 {{[0-9]+}}
|
||||
}
|
||||
|
||||
define i32 @test_simplify6() {
|
||||
; CHECK: @test_simplify6
|
||||
%mem1 = getelementptr [4 x i8]* @foo, i32 0, i32 0
|
||||
%mem2 = getelementptr [4 x i8]* @hel, i32 0, i32 0
|
||||
%ret = call i32 @memcmp(i8* %mem1, i8* %mem2, i32 3)
|
||||
ret i32 %ret
|
||||
; CHECK: ret i32 {{-[0-9]+}}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue