1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -verify-machineinstrs -mtriple=i686-linux -mattr=-sse | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker; PR11768 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Worker@ptr = external global i8* 5*9880d681SAndroid Build Coastguard Worker 6*9880d681SAndroid Build Coastguard Workerdefine void @baz() nounwind ssp { 7*9880d681SAndroid Build Coastguard Workerentry: 8*9880d681SAndroid Build Coastguard Worker %0 = load i8*, i8** @ptr, align 4 9*9880d681SAndroid Build Coastguard Worker %cmp = icmp eq i8* %0, null 10*9880d681SAndroid Build Coastguard Worker fence seq_cst 11*9880d681SAndroid Build Coastguard Worker br i1 %cmp, label %if.then, label %if.else 12*9880d681SAndroid Build Coastguard Worker 13*9880d681SAndroid Build Coastguard Worker; Make sure the fence comes before the comparison, since it 14*9880d681SAndroid Build Coastguard Worker; clobbers EFLAGS. 15*9880d681SAndroid Build Coastguard Worker 16*9880d681SAndroid Build Coastguard Worker; CHECK: lock orl {{.*}}, (%esp) 17*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: testl [[REG:%e[a-z]+]], [[REG]] 18*9880d681SAndroid Build Coastguard Worker 19*9880d681SAndroid Build Coastguard Workerif.then: ; preds = %entry 20*9880d681SAndroid Build Coastguard Worker tail call void bitcast (void (...)* @foo to void ()*)() nounwind 21*9880d681SAndroid Build Coastguard Worker br label %if.end 22*9880d681SAndroid Build Coastguard Worker 23*9880d681SAndroid Build Coastguard Workerif.else: ; preds = %entry 24*9880d681SAndroid Build Coastguard Worker tail call void bitcast (void (...)* @bar to void ()*)() nounwind 25*9880d681SAndroid Build Coastguard Worker br label %if.end 26*9880d681SAndroid Build Coastguard Worker 27*9880d681SAndroid Build Coastguard Workerif.end: ; preds = %if.else, %if.then 28*9880d681SAndroid Build Coastguard Worker ret void 29*9880d681SAndroid Build Coastguard Worker} 30*9880d681SAndroid Build Coastguard Worker 31*9880d681SAndroid Build Coastguard Workerdeclare void @foo(...) 32*9880d681SAndroid Build Coastguard Worker 33*9880d681SAndroid Build Coastguard Workerdeclare void @bar(...) 34