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