llvm.org GIT mirror llvm / dbfa804
Merging r128577 git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_29@128579 91177308-0d34-0410-b5e6-96231b3b80d8 Bill Wendling 8 years ago
2 changed file(s) with 26 addition(s) and 1 deletion(s). Raw diff Collapse all Expand all
360360 //
361361 // |--earlier--|
362362 // |----- later ------|
363 //
364 // We have to be careful here as *Off is signed while *.Size is unsigned.
363365 if (EarlierOff >= LaterOff &&
364 EarlierOff + Earlier.Size <= LaterOff + Later.Size)
366 uint64_t(EarlierOff - LaterOff) + Earlier.Size <= Later.Size)
365367 return true;
366368
367369 // Otherwise, they don't completely overlap.
0 ; RUN: opt < %s -basicaa -dse -S | FileCheck %s
1 ; PR9561
2 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-n8:16:32"
3 target triple = "i386-apple-darwin9.8"
4
5 @A = external global [0 x i32]
6
7 declare cc10 void @Func2(i32*, i32*, i32*, i32)
8
9 define cc10 void @Func1(i32* noalias %Arg1, i32* noalias %Arg2, i32* %Arg3, i32 %Arg4) {
10 entry:
11 store i32 add (i32 ptrtoint ([0 x i32]* @A to i32), i32 1), i32* %Arg2
12 ; CHECK: store i32 add (i32 ptrtoint ([0 x i32]* @A to i32), i32 1), i32* %Arg2
13 %ln2gz = getelementptr i32* %Arg1, i32 14
14 %ln2gA = bitcast i32* %ln2gz to double*
15 %ln2gB = load double* %ln2gA
16 %ln2gD = getelementptr i32* %Arg2, i32 -3
17 %ln2gE = bitcast i32* %ln2gD to double*
18 store double %ln2gB, double* %ln2gE
19 ; CHECK: store double %ln2gB, double* %ln2gE
20 tail call cc10 void @Func2(i32* %Arg1, i32* %Arg2, i32* %Arg3, i32 %Arg4) nounwind
21 ret void
22 }