Home | History | Annotate | Download | only in GVNHoist
      1 ; RUN: opt -S -gvn-hoist < %s | FileCheck %s
      2 
      3 ; Check that the call and fcmp are hoisted.
      4 ; CHECK-LABEL: define void @fun(
      5 ; CHECK: call float
      6 ; CHECK: fcmp oeq
      7 ; CHECK-NOT: call float
      8 ; CHECK-NOT: fcmp oeq
      9 
     10 define void @fun(float %__b) minsize {
     11 entry:
     12   br label %if.then
     13 
     14 if.then:                                          ; preds = %entry
     15   br i1 undef, label %if.then8, label %lor.lhs.false
     16 
     17 lor.lhs.false:                                    ; preds = %if.then
     18   %0 = call float @llvm.fabs.f32(float %__b) #2
     19   %cmpinf7 = fcmp oeq float %0, 0x7FF0000000000000
     20   unreachable
     21 
     22 if.then8:                                         ; preds = %if.then
     23   %1 = call float @llvm.fabs.f32(float %__b) #2
     24   %cmpinf10 = fcmp oeq float %1, 0x7FF0000000000000
     25   ret void
     26 }
     27 
     28 declare float @llvm.fabs.f32(float)
     29