brintos

brintos / llvm-project-archived public Read only

0
0
Text · 607 B · d59836c Raw
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