brintos

brintos / llvm-project-archived public Read only

0
0
Text · 988 B · 3d699a7 Raw
35 lines · plain
1; RUN: opt -S -passes=instsimplify,instcombine < %s | FileCheck %s2 3; CHECK-LABEL: define void @checkNonnullLaunder()4define void @checkNonnullLaunder() {5; CHECK:   %[[p:.*]] = call ptr @llvm.launder.invariant.group.p0(ptr nonnull %0)6; CHECK:   call void @use(ptr nonnull %[[p]])7entry:8  %0 = alloca i8, align 89 10  %p = call ptr @llvm.launder.invariant.group.p0(ptr %0)11  %p2 = call ptr @llvm.launder.invariant.group.p0(ptr %p)12  call void @use(ptr %p2)13 14  ret void15}16 17; CHECK-LABEL: define void @checkNonnullStrip()18define void @checkNonnullStrip() {19; CHECK:   %[[p:.*]] = call ptr @llvm.strip.invariant.group.p0(ptr nonnull %0)20; CHECK:   call void @use(ptr nonnull %[[p]])21entry:22  %0 = alloca i8, align 823 24  %p = call ptr @llvm.strip.invariant.group.p0(ptr %0)25  %p2 = call ptr @llvm.strip.invariant.group.p0(ptr %p)26  call void @use(ptr %p2)27 28  ret void29}30 31declare ptr @llvm.launder.invariant.group.p0(ptr)32declare ptr @llvm.strip.invariant.group.p0(ptr)33 34declare void @use(ptr)35