1; RUN: opt -passes=dse -S < %s | FileCheck %s 2target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" 3 4%t = type { i32 } 5 6@g = global i32 42 7 8define void @test1(ptr noalias %pp) { 9 10 store i32 1, ptr %pp; <-- This is dead 11 %x = load i32, ptr inttoptr (i32 12345 to ptr) 12 store i32 %x, ptr %pp 13 ret void 14; CHECK-LABEL: define void @test1( 15; CHECK: store 16; CHECK-NOT: store 17; CHECK: ret void 18} 19 20define void @test3() { 21 store i32 1, ptr @g; <-- This is dead. 22 store i32 42, ptr @g 23 ret void 24; CHECK-LABEL: define void @test3( 25; CHECK: store 26; CHECK-NOT: store 27; CHECK: ret void 28} 29 30define void @test4(ptr %p) { 31 store i32 1, ptr %p 32 %x = load i32, ptr @g; <-- %p and @g could alias 33 store i32 %x, ptr %p 34 ret void 35; CHECK-LABEL: define void @test4( 36; CHECK: store 37; CHECK: store 38; CHECK: ret void 39} 40