42 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 52; RUN: opt -passes='instcombine,early-cse<memssa>' -S %s | FileCheck %s3 4define i32 @load_store_sameval(ptr %p, i1 %cond1, i1 %cond2) {5; CHECK-LABEL: define i32 @load_store_sameval(6; CHECK-SAME: ptr [[P:%.*]], i1 [[COND1:%.*]], i1 [[COND2:%.*]]) {7; CHECK-NEXT: [[ENTRY:.*:]]8; CHECK-NEXT: [[PRE:%.*]] = load i32, ptr [[P]], align 49; CHECK-NEXT: br label %[[BLOCK:.*]]10; CHECK: [[BLOCK]]:11; CHECK-NEXT: br label %[[BLOCK2:.*]]12; CHECK: [[BLOCK2]]:13; CHECK-NEXT: br i1 [[COND2]], label %[[BLOCK3:.*]], label %[[EXIT:.*]]14; CHECK: [[BLOCK3]]:15; CHECK-NEXT: [[LOAD:%.*]] = load double, ptr [[P]], align 816; CHECK-NEXT: [[CMP:%.*]] = fcmp une double [[LOAD]], 0.000000e+0017; CHECK-NEXT: br i1 [[CMP]], label %[[BLOCK]], label %[[BLOCK2]]18; CHECK: [[EXIT]]:19; CHECK-NEXT: ret i32 020;21entry:22 %spec.select = select i1 %cond1, ptr null, ptr %p23 %pre = load i32, ptr %spec.select, align 424 br label %block25 26block:27 br label %block228 29block2:30 br i1 %cond2, label %block3, label %exit31 32block3:33 %load = load double, ptr %spec.select, align 834 %cmp = fcmp une double %load, 0.000000e+0035 br i1 %cmp, label %block, label %block236 37exit:38 store i32 %pre, ptr %spec.select, align 439 ret i32 040}41 42