40 lines · plain
1; RUN: opt -passes=dse -S < %s | FileCheck %s2target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"3 4%t = type { i32 }5 6@g = global i32 427 8define void @test1(ptr noalias %pp) {9 10 store i32 1, ptr %pp; <-- This is dead11 %x = load i32, ptr inttoptr (i32 12345 to ptr)12 store i32 %x, ptr %pp13 ret void14; CHECK-LABEL: define void @test1(15; CHECK: store16; CHECK-NOT: store17; CHECK: ret void18}19 20define void @test3() {21 store i32 1, ptr @g; <-- This is dead.22 store i32 42, ptr @g23 ret void24; CHECK-LABEL: define void @test3(25; CHECK: store26; CHECK-NOT: store27; CHECK: ret void28}29 30define void @test4(ptr %p) {31 store i32 1, ptr %p32 %x = load i32, ptr @g; <-- %p and @g could alias33 store i32 %x, ptr %p34 ret void35; CHECK-LABEL: define void @test4(36; CHECK: store37; CHECK: store38; CHECK: ret void39}40