28 lines · plain
1; RUN: opt -S < %s -passes=early-cse -earlycse-debug-hash | FileCheck %s2 3declare void @llvm.sideeffect()4 5; Store-to-load forwarding across a @llvm.sideeffect.6 7; CHECK-LABEL: s2l8; CHECK-NOT: load9define float @s2l(ptr %p) {10 store float 0.0, ptr %p11 call void @llvm.sideeffect()12 %t = load float, ptr %p13 ret float %t14}15 16; Redundant load elimination across a @llvm.sideeffect.17 18; CHECK-LABEL: rle19; CHECK: load20; CHECK-NOT: load21define float @rle(ptr %p) {22 %r = load float, ptr %p23 call void @llvm.sideeffect()24 %s = load float, ptr %p25 %t = fadd float %r, %s26 ret float %t27}28