1 ; RUN: opt < %s -basicaa -dse -S | FileCheck %s
3 ; The add and store in entry block should be removed by non-local DSE.
4 ; CHECK-NOT: %stval = add
5 ; CHECK-NOT: store i32 %stval
7 define void @foo(i32* noalias nocapture %a, i32* noalias nocapture readonly %b, i32 %c) {
9 %0 = load i32, i32* %b, align 4
10 %stval = add nsw i32 %0, 1
11 store i32 %stval, i32* %a, align 4
12 %cmp = icmp sgt i32 %c, 0
13 br i1 %cmp, label %if.then, label %if.else
16 %1 = add nsw i32 %c, 10
20 %2 = add nsw i32 %c, 13
24 %3 = phi i32 [ %1, %if.then ], [ %2, %if.else ]
25 store i32 %3, i32* %a, align 4