1; RUN: opt -S < %s -early-cse -earlycse-debug-hash | FileCheck %s
2
3declare void @llvm.sideeffect()
4
5; Store-to-load forwarding across a @llvm.sideeffect.
6
7; CHECK-LABEL: s2l
8; CHECK-NOT: load
9define float @s2l(ptr %p) {
10    store float 0.0, ptr %p
11    call void @llvm.sideeffect()
12    %t = load float, ptr %p
13    ret float %t
14}
15
16; Redundant load elimination across a @llvm.sideeffect.
17
18; CHECK-LABEL: rle
19; CHECK: load
20; CHECK-NOT: load
21define float @rle(ptr %p) {
22    %r = load float, ptr %p
23    call void @llvm.sideeffect()
24    %s = load float, ptr %p
25    %t = fadd float %r, %s
26    ret float %t
27}
28