| ; RUN: opt -S -gvn-hoist < %s | FileCheck %s |
| |
| ; Check that the call and fcmp are hoisted. |
| ; CHECK-LABEL: define void @fun( |
| ; CHECK: call float |
| ; CHECK: fcmp oeq |
| ; CHECK-NOT: call float |
| ; CHECK-NOT: fcmp oeq |
| |
| define void @fun(float %__b) minsize { |
| entry: |
| br label %if.then |
| |
| if.then: ; preds = %entry |
| br i1 undef, label %if.then8, label %lor.lhs.false |
| |
| lor.lhs.false: ; preds = %if.then |
| %0 = call float @llvm.fabs.f32(float %__b) #2 |
| %cmpinf7 = fcmp oeq float %0, 0x7FF0000000000000 |
| unreachable |
| |
| if.then8: ; preds = %if.then |
| %1 = call float @llvm.fabs.f32(float %__b) #2 |
| %cmpinf10 = fcmp oeq float %1, 0x7FF0000000000000 |
| ret void |
| } |
| |
| declare float @llvm.fabs.f32(float) |