~pali/+junk/llvm-toolchain-3.7

« back to all changes in this revision

Viewing changes to test/CodeGen/X86/2009-01-16-SchedulerBug.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: llc < %s -mtriple=i386-apple-darwin
 
2
; rdar://6501631
 
3
 
 
4
        %CF = type { %Register }
 
5
        %XXV = type { i32 (...)** }
 
6
        %Register = type { %"struct.XXC::BCFs", i32 }
 
7
        %"struct.XXC::BCFs" = type { i32 }
 
8
 
 
9
declare { i32, i1 } @llvm.sadd.with.overflow.i32(i32, i32) nounwind
 
10
 
 
11
define fastcc %XXV* @bar(%CF* %call_frame, %XXV** %exception) nounwind {
 
12
prologue:
 
13
        %param_x = load %XXV*, %XXV** null              ; <%XXV*> [#uses=1]
 
14
        %unique_1.i = ptrtoint %XXV* %param_x to i1             ; <i1> [#uses=1]
 
15
        br i1 %unique_1.i, label %NextVerify42, label %FailedVerify
 
16
 
 
17
NextVerify42:           ; preds = %prologue
 
18
        %param_y = load %XXV*, %XXV** null              ; <%XXV*> [#uses=1]
 
19
        %unique_1.i58 = ptrtoint %XXV* %param_y to i1           ; <i1> [#uses=1]
 
20
        br i1 %unique_1.i58, label %function_setup.cont, label %FailedVerify
 
21
 
 
22
function_setup.cont:            ; preds = %NextVerify42
 
23
        br i1 false, label %label13, label %label
 
24
 
 
25
label:          ; preds = %function_setup.cont
 
26
        %has_exn = icmp eq %XXV* null, null             ; <i1> [#uses=1]
 
27
        br i1 %has_exn, label %kjsNumberLiteral.exit, label %handle_exception
 
28
 
 
29
kjsNumberLiteral.exit:          ; preds = %label
 
30
        %0 = call { i32, i1 } @llvm.sadd.with.overflow.i32(i32 0, i32 0)                ; <{ i32, i1 }> [#uses=2]
 
31
        %intAdd = extractvalue { i32, i1 } %0, 0                ; <i32> [#uses=2]
 
32
        %intAddOverflow = extractvalue { i32, i1 } %0, 1                ; <i1> [#uses=1]
 
33
        %toint56 = ashr i32 %intAdd, 1          ; <i32> [#uses=1]
 
34
        %toFP57 = sitofp i32 %toint56 to double         ; <double> [#uses=1]
 
35
        br i1 %intAddOverflow, label %rematerializeAdd, label %label13
 
36
 
 
37
label13:                ; preds = %kjsNumberLiteral.exit, %function_setup.cont
 
38
        %var_lr1.0 = phi double [ %toFP57, %kjsNumberLiteral.exit ], [ 0.000000e+00, %function_setup.cont ]             ; <double> [#uses=0]
 
39
        unreachable
 
40
 
 
41
FailedVerify:           ; preds = %NextVerify42, %prologue
 
42
        ret %XXV* null
 
43
 
 
44
rematerializeAdd:               ; preds = %kjsNumberLiteral.exit
 
45
        %rematerializedInt = sub i32 %intAdd, 0         ; <i32> [#uses=0]
 
46
        ret %XXV* null
 
47
 
 
48
handle_exception:               ; preds = %label
 
49
        ret %XXV* undef
 
50
}