1; RUN: opt -S < %s -passes=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