1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=i386-unknown-linux-gnu 2*9880d681SAndroid Build Coastguard Worker; PR3391 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Worker@pci_indirect = external global { } ; <{ }*> [#uses=1] 5*9880d681SAndroid Build Coastguard Worker@pcibios_last_bus = external global i32 ; <i32*> [#uses=2] 6*9880d681SAndroid Build Coastguard Worker 7*9880d681SAndroid Build Coastguard Workerdefine void @pci_pcbios_init() nounwind section ".init.text" { 8*9880d681SAndroid Build Coastguard Workerentry: 9*9880d681SAndroid Build Coastguard Worker br label %bb1.i 10*9880d681SAndroid Build Coastguard Worker 11*9880d681SAndroid Build Coastguard Workerbb1.i: ; preds = %bb6.i.i, %bb1.i, %entry 12*9880d681SAndroid Build Coastguard Worker %0 = load i32, i32* null, align 8 ; <i32> [#uses=1] 13*9880d681SAndroid Build Coastguard Worker %1 = icmp ugt i32 %0, 1048575 ; <i1> [#uses=1] 14*9880d681SAndroid Build Coastguard Worker br i1 %1, label %bb2.i, label %bb1.i 15*9880d681SAndroid Build Coastguard Worker 16*9880d681SAndroid Build Coastguard Workerbb2.i: ; preds = %bb1.i 17*9880d681SAndroid Build Coastguard Worker %asmtmp.i.i = tail call { i32, i32, i32, i32 } asm "lcall *(%edi); cld\0A\09jc 1f\0A\09xor %ah, %ah\0A1:", "={dx},={ax},={bx},={cx},1,{di},~{dirflag},~{fpsr},~{flags},~{memory}"(i32 45313, { }* @pci_indirect) nounwind ; <{ i32, i32, i32, i32 }> [#uses=2] 18*9880d681SAndroid Build Coastguard Worker %asmresult2.i.i = extractvalue { i32, i32, i32, i32 } %asmtmp.i.i, 1 19*9880d681SAndroid Build Coastguard Worker ; <i32> [#uses=1] 20*9880d681SAndroid Build Coastguard Worker %2 = lshr i32 %asmresult2.i.i, 8 ; <i32> [#uses=1] 21*9880d681SAndroid Build Coastguard Worker %3 = trunc i32 %2 to i8 ; <i8> [#uses=1] 22*9880d681SAndroid Build Coastguard Worker %4 = load i32, i32* @pcibios_last_bus, align 4 ; <i32> [#uses=1] 23*9880d681SAndroid Build Coastguard Worker %5 = icmp slt i32 %4, 0 ; <i1> [#uses=1] 24*9880d681SAndroid Build Coastguard Worker br i1 %5, label %bb5.i.i, label %bb6.i.i 25*9880d681SAndroid Build Coastguard Worker 26*9880d681SAndroid Build Coastguard Workerbb5.i.i: ; preds = %bb2.i 27*9880d681SAndroid Build Coastguard Worker %asmresult4.i.i = extractvalue { i32, i32, i32, i32 } %asmtmp.i.i, 3 28*9880d681SAndroid Build Coastguard Worker ; <i32> [#uses=1] 29*9880d681SAndroid Build Coastguard Worker %6 = and i32 %asmresult4.i.i, 255 ; <i32> [#uses=1] 30*9880d681SAndroid Build Coastguard Worker store i32 %6, i32* @pcibios_last_bus, align 4 31*9880d681SAndroid Build Coastguard Worker br label %bb6.i.i 32*9880d681SAndroid Build Coastguard Worker 33*9880d681SAndroid Build Coastguard Workerbb6.i.i: ; preds = %bb5.i.i, %bb2.i 34*9880d681SAndroid Build Coastguard Worker %7 = icmp eq i8 %3, 0 ; <i1> [#uses=1] 35*9880d681SAndroid Build Coastguard Worker %or.cond.i.i = and i1 %7, false ; <i1> [#uses=1] 36*9880d681SAndroid Build Coastguard Worker br i1 %or.cond.i.i, label %bb1.i, label %bb8.i.i 37*9880d681SAndroid Build Coastguard Worker 38*9880d681SAndroid Build Coastguard Workerbb8.i.i: ; preds = %bb6.i.i 39*9880d681SAndroid Build Coastguard Worker unreachable 40*9880d681SAndroid Build Coastguard Worker} 41