~ubuntu-branches/ubuntu/quantal/llvm-3.1/quantal

« back to all changes in this revision

Viewing changes to test/CodeGen/X86/2009-04-14-IllegalRegs.ll

  • Committer: Package Import Robot
  • Author(s): Sylvestre Ledru
  • Date: 2012-03-29 19:09:51 UTC
  • Revision ID: package-import@ubuntu.com-20120329190951-aq83ivog4cg8bxun
Tags: upstream-3.1~svn153643
ImportĀ upstreamĀ versionĀ 3.1~svn153643

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
; RUN: llc < %s -mtriple=i386-apple-darwin -O0 -regalloc=fast | not grep sil
 
2
; rdar://6787136
 
3
 
 
4
        %struct.X = type { i8, [32 x i8] }
 
5
@llvm.used = appending global [1 x i8*] [i8* bitcast (i32 ()* @z to i8*)], section "llvm.metadata"              ; <[1 x i8*]*> [#uses=0]
 
6
 
 
7
define i32 @z() nounwind ssp {
 
8
entry:
 
9
        %retval = alloca i32            ; <i32*> [#uses=2]
 
10
        %xxx = alloca %struct.X         ; <%struct.X*> [#uses=6]
 
11
        %0 = alloca i32         ; <i32*> [#uses=2]
 
12
        %"alloca point" = bitcast i32 0 to i32          ; <i32> [#uses=0]
 
13
        %1 = getelementptr %struct.X* %xxx, i32 0, i32 1                ; <[32 x i8]*> [#uses=1]
 
14
        %2 = getelementptr [32 x i8]* %1, i32 0, i32 31         ; <i8*> [#uses=1]
 
15
        store i8 48, i8* %2, align 1
 
16
        %3 = getelementptr %struct.X* %xxx, i32 0, i32 1                ; <[32 x i8]*> [#uses=1]
 
17
        %4 = getelementptr [32 x i8]* %3, i32 0, i32 31         ; <i8*> [#uses=1]
 
18
        %5 = load i8* %4, align 1               ; <i8> [#uses=1]
 
19
        %6 = getelementptr %struct.X* %xxx, i32 0, i32 1                ; <[32 x i8]*> [#uses=1]
 
20
        %7 = getelementptr [32 x i8]* %6, i32 0, i32 0          ; <i8*> [#uses=1]
 
21
        store i8 %5, i8* %7, align 1
 
22
        %8 = getelementptr %struct.X* %xxx, i32 0, i32 0                ; <i8*> [#uses=1]
 
23
        store i8 15, i8* %8, align 1
 
24
        %9 = call i32 (...)* bitcast (i32 (%struct.X*, %struct.X*)* @f to i32 (...)*)(%struct.X* byval align 4 %xxx, %struct.X* byval align 4 %xxx) nounwind            ; <i32> [#uses=1]
 
25
        store i32 %9, i32* %0, align 4
 
26
        %10 = load i32* %0, align 4             ; <i32> [#uses=1]
 
27
        store i32 %10, i32* %retval, align 4
 
28
        br label %return
 
29
 
 
30
return:         ; preds = %entry
 
31
        %retval1 = load i32* %retval            ; <i32> [#uses=1]
 
32
        ret i32 %retval1
 
33
}
 
34
 
 
35
declare i32 @f(%struct.X* byval align 4, %struct.X* byval align 4) nounwind ssp