35 lines · plain
1; RUN: opt -S -passes=instcombine < %s | FileCheck %s2 3declare void @readnone_but_may_throw() readnone4 5define void @f_0(ptr %ptr) {6; CHECK-LABEL: @f_0(7entry:8; CHECK: store i32 10, ptr %ptr9; CHECK-NEXT: call void @readnone_but_may_throw()10; CHECK-NEXT: store i32 20, ptr %ptr, align 411; CHECK: ret void12 13 store i32 10, ptr %ptr14 call void @readnone_but_may_throw()15 store i32 20, ptr %ptr16 ret void17}18 19define void @f_1(i1 %cond, ptr %ptr) {20; CHECK-LABEL: @f_1(21; CHECK: store i32 10, ptr %ptr22; CHECK-NEXT: call void @readnone_but_may_throw()23 24 store i32 10, ptr %ptr25 call void @readnone_but_may_throw()26 br i1 %cond, label %left, label %merge27 28left:29 store i32 20, ptr %ptr30 br label %merge31 32merge:33 ret void34}35