39 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt -S < %s -passes=early-cse -earlycse-debug-hash | FileCheck %s3 4; Store-to-load forwarding across a @llvm.experimental.noalias.scope.decl.5 6define float @s2l(ptr %p) {7; CHECK-LABEL: @s2l(8; CHECK-NEXT: store float 0.000000e+00, ptr [[P:%.*]], align 49; CHECK-NEXT: call void @llvm.experimental.noalias.scope.decl(metadata !0)10; CHECK-NEXT: ret float 0.000000e+0011;12 store float 0.0, ptr %p13 call void @llvm.experimental.noalias.scope.decl(metadata !0)14 %t = load float, ptr %p15 ret float %t16}17 18; Redundant load elimination across a @llvm.experimental.noalias.scope.decl.19 20define float @rle(ptr %p) {21; CHECK-LABEL: @rle(22; CHECK-NEXT: [[R:%.*]] = load float, ptr [[P:%.*]], align 423; CHECK-NEXT: call void @llvm.experimental.noalias.scope.decl(metadata !0)24; CHECK-NEXT: [[T:%.*]] = fadd float [[R]], [[R]]25; CHECK-NEXT: ret float [[T]]26;27 %r = load float, ptr %p28 call void @llvm.experimental.noalias.scope.decl(metadata !0)29 %s = load float, ptr %p30 %t = fadd float %r, %s31 ret float %t32}33 34declare void @llvm.experimental.noalias.scope.decl(metadata)35 36!0 = !{ !1 }37!1 = distinct !{ !1, !2 }38!2 = distinct !{ !2 }39