1*9880d681SAndroid Build Coastguard Worker; RUN-disabled: llc < %s -verify-machineinstrs -mtriple=x86_64-apple-macosx -pre-RA-sched=ilp -debug-only=pre-RA-sched \ 2*9880d681SAndroid Build Coastguard Worker; RUN-disabled: 2>&1 | FileCheck %s 3*9880d681SAndroid Build Coastguard Worker; RUN: true 4*9880d681SAndroid Build Coastguard Worker; REQUIRES: asserts 5*9880d681SAndroid Build Coastguard Worker; 6*9880d681SAndroid Build Coastguard Worker; rdar:13279013: pre-RA-sched should not check all interferences and 7*9880d681SAndroid Build Coastguard Worker; repush them on the ready queue after scheduling each instruction. 8*9880d681SAndroid Build Coastguard Worker; 9*9880d681SAndroid Build Coastguard Worker; CHECK: *** List Scheduling 10*9880d681SAndroid Build Coastguard Worker; CHECK: Interfering reg EFLAGS 11*9880d681SAndroid Build Coastguard Worker; CHECK: Repushing 12*9880d681SAndroid Build Coastguard Worker; CHECK: Repushing 13*9880d681SAndroid Build Coastguard Worker; CHECK: Repushing 14*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: Repushing 15*9880d681SAndroid Build Coastguard Worker; CHECK: *** Final schedule 16*9880d681SAndroid Build Coastguard Workerdefine i32 @test(i8* %pin) #0 { 17*9880d681SAndroid Build Coastguard Worker %g0 = getelementptr inbounds i8, i8* %pin, i64 0 18*9880d681SAndroid Build Coastguard Worker %l0 = load i8, i8* %g0, align 1 19*9880d681SAndroid Build Coastguard Worker 20*9880d681SAndroid Build Coastguard Worker %g1a = getelementptr inbounds i8, i8* %pin, i64 1 21*9880d681SAndroid Build Coastguard Worker %l1a = load i8, i8* %g1a, align 1 22*9880d681SAndroid Build Coastguard Worker %z1a = zext i8 %l1a to i32 23*9880d681SAndroid Build Coastguard Worker %g1b = getelementptr inbounds i8, i8* %pin, i64 2 24*9880d681SAndroid Build Coastguard Worker %l1b = load i8, i8* %g1b, align 1 25*9880d681SAndroid Build Coastguard Worker %z1b = zext i8 %l1b to i32 26*9880d681SAndroid Build Coastguard Worker %c1 = icmp ne i8 %l0, 0 27*9880d681SAndroid Build Coastguard Worker %x1 = xor i32 %z1a, %z1b 28*9880d681SAndroid Build Coastguard Worker %s1 = select i1 %c1, i32 %z1a, i32 %x1 29*9880d681SAndroid Build Coastguard Worker 30*9880d681SAndroid Build Coastguard Worker %g2a = getelementptr inbounds i8, i8* %pin, i64 3 31*9880d681SAndroid Build Coastguard Worker %l2a = load i8, i8* %g2a, align 1 32*9880d681SAndroid Build Coastguard Worker %z2a = zext i8 %l2a to i32 33*9880d681SAndroid Build Coastguard Worker %g2b = getelementptr inbounds i8, i8* %pin, i64 4 34*9880d681SAndroid Build Coastguard Worker %l2b = load i8, i8* %g2b, align 1 35*9880d681SAndroid Build Coastguard Worker %z2b = zext i8 %l2b to i32 36*9880d681SAndroid Build Coastguard Worker %x2 = xor i32 %z2a, %z2b 37*9880d681SAndroid Build Coastguard Worker %s2 = select i1 %c1, i32 %z2a, i32 %x2 38*9880d681SAndroid Build Coastguard Worker 39*9880d681SAndroid Build Coastguard Worker %g3a = getelementptr inbounds i8, i8* %pin, i64 5 40*9880d681SAndroid Build Coastguard Worker %l3a = load i8, i8* %g3a, align 1 41*9880d681SAndroid Build Coastguard Worker %z3a = zext i8 %l3a to i32 42*9880d681SAndroid Build Coastguard Worker %g3b = getelementptr inbounds i8, i8* %pin, i64 6 43*9880d681SAndroid Build Coastguard Worker %l3b = load i8, i8* %g3b, align 1 44*9880d681SAndroid Build Coastguard Worker %z3b = zext i8 %l3b to i32 45*9880d681SAndroid Build Coastguard Worker %x3 = xor i32 %z3a, %z3b 46*9880d681SAndroid Build Coastguard Worker %s3 = select i1 %c1, i32 %z3a, i32 %x3 47*9880d681SAndroid Build Coastguard Worker 48*9880d681SAndroid Build Coastguard Worker %c3 = icmp ne i8 %l1a, 0 49*9880d681SAndroid Build Coastguard Worker %c4 = icmp ne i8 %l2a, 0 50*9880d681SAndroid Build Coastguard Worker 51*9880d681SAndroid Build Coastguard Worker %s4 = select i1 %c3, i32 %s1, i32 %s2 52*9880d681SAndroid Build Coastguard Worker %s5 = select i1 %c4, i32 %s4, i32 %s3 53*9880d681SAndroid Build Coastguard Worker 54*9880d681SAndroid Build Coastguard Worker ret i32 %s5 55*9880d681SAndroid Build Coastguard Worker} 56*9880d681SAndroid Build Coastguard Worker 57*9880d681SAndroid Build Coastguard Workerattributes #0 = { nounwind ssp uwtable } 58