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

« back to all changes in this revision

Viewing changes to test/CodeGen/X86/2006-05-08-CoalesceSubRegClass.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
; Coalescing from R32 to a subset R32_. Once another register coalescer bug is
 
2
; fixed, the movb should go away as well.
 
3
 
 
4
; RUN: llc < %s -march=x86 -relocation-model=static | \
 
5
; RUN:   grep movl
 
6
 
 
7
@B = external global i32                ; <i32*> [#uses=2]
 
8
@C = external global i16*               ; <i16**> [#uses=2]
 
9
 
 
10
define void @test(i32 %A) {
 
11
        %A.upgrd.1 = trunc i32 %A to i8         ; <i8> [#uses=1]
 
12
        %tmp2 = load i32* @B            ; <i32> [#uses=1]
 
13
        %tmp3 = and i8 %A.upgrd.1, 16           ; <i8> [#uses=1]
 
14
        %shift.upgrd.2 = zext i8 %tmp3 to i32           ; <i32> [#uses=1]
 
15
        %tmp4 = shl i32 %tmp2, %shift.upgrd.2           ; <i32> [#uses=1]
 
16
        store i32 %tmp4, i32* @B
 
17
        %tmp6 = lshr i32 %A, 3          ; <i32> [#uses=1]
 
18
        %tmp = load i16** @C            ; <i16*> [#uses=1]
 
19
        %tmp8 = ptrtoint i16* %tmp to i32               ; <i32> [#uses=1]
 
20
        %tmp9 = add i32 %tmp8, %tmp6            ; <i32> [#uses=1]
 
21
        %tmp9.upgrd.3 = inttoptr i32 %tmp9 to i16*              ; <i16*> [#uses=1]
 
22
        store i16* %tmp9.upgrd.3, i16** @C
 
23
        ret void
 
24
}
 
25