Home | History | Annotate | Download | only in X86
      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