[DAGCombiner] Add target hook function to decide folding (mul (add x, c1), c2)
[llvm-project.git] / llvm / test / Transforms / EarlyCSE / int_sideeffect.ll
blobf4d8fd25a63c363f63e7b9ab54e0bd6140973f8e
1 ; RUN: opt -S < %s -early-cse -earlycse-debug-hash | FileCheck %s
3 declare void @llvm.sideeffect()
5 ; Store-to-load forwarding across a @llvm.sideeffect.
7 ; CHECK-LABEL: s2l
8 ; CHECK-NOT: load
9 define float @s2l(float* %p) {
10     store float 0.0, float* %p
11     call void @llvm.sideeffect()
12     %t = load float, float* %p
13     ret float %t
16 ; Redundant load elimination across a @llvm.sideeffect.
18 ; CHECK-LABEL: rle
19 ; CHECK: load
20 ; CHECK-NOT: load
21 define float @rle(float* %p) {
22     %r = load float, float* %p
23     call void @llvm.sideeffect()
24     %s = load float, float* %p
25     %t = fadd float %r, %s
26     ret float %t