Home | History | Annotate | Download | only in X86
      1 ; RUN: llc < %s -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** @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
     17 ; CHECK-NEXT: orl {{.*}}, (%esp)
     18 ; CHECK-NEXT: cmpl $0
     19 
     20 if.then:                                          ; preds = %entry
     21   tail call void bitcast (void (...)* @foo to void ()*)() nounwind
     22   br label %if.end
     23 
     24 if.else:                                          ; preds = %entry
     25   tail call void bitcast (void (...)* @bar to void ()*)() nounwind
     26   br label %if.end
     27 
     28 if.end:                                           ; preds = %if.else, %if.then
     29   ret void
     30 }
     31 
     32 declare void @foo(...)
     33 
     34 declare void @bar(...)
     35