~pali/+junk/llvm-toolchain-3.7

« back to all changes in this revision

Viewing changes to test/Analysis/BasicAA/must-and-partial.ll

  • Committer: Package Import Robot
  • Author(s): Sylvestre Ledru
  • Date: 2015-07-15 17:51:08 UTC
  • Revision ID: package-import@ubuntu.com-20150715175108-l8mynwovkx4zx697
Tags: upstream-3.7~+rc2
ImportĀ upstreamĀ versionĀ 3.7~+rc2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
; RUN: opt < %s -basicaa -aa-eval -print-all-alias-modref-info 2>&1 | FileCheck %s
 
2
 
 
3
; When merging MustAlias and PartialAlias, merge to PartialAlias
 
4
; instead of MayAlias.
 
5
 
 
6
 
 
7
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
 
8
 
 
9
; CHECK: PartialAlias:  i16* %bigbase0, i8* %phi
 
10
define i8 @test0(i8* %base, i1 %x) {
 
11
entry:
 
12
  %baseplusone = getelementptr i8, i8* %base, i64 1
 
13
  br i1 %x, label %red, label %green
 
14
red:
 
15
  br label %green
 
16
green:
 
17
  %phi = phi i8* [ %baseplusone, %red ], [ %base, %entry ]
 
18
  store i8 0, i8* %phi
 
19
 
 
20
  %bigbase0 = bitcast i8* %base to i16*
 
21
  store i16 -1, i16* %bigbase0
 
22
 
 
23
  %loaded = load i8, i8* %phi
 
24
  ret i8 %loaded
 
25
}
 
26
 
 
27
; CHECK: PartialAlias:  i16* %bigbase1, i8* %sel
 
28
define i8 @test1(i8* %base, i1 %x) {
 
29
entry:
 
30
  %baseplusone = getelementptr i8, i8* %base, i64 1
 
31
  %sel = select i1 %x, i8* %baseplusone, i8* %base
 
32
  store i8 0, i8* %sel
 
33
 
 
34
  %bigbase1 = bitcast i8* %base to i16*
 
35
  store i16 -1, i16* %bigbase1
 
36
 
 
37
  %loaded = load i8, i8* %sel
 
38
  ret i8 %loaded
 
39
}