1*f497a00dSBjorn Pettersson; RUN: opt -passes=dse -S < %s | FileCheck %s 2176bbcaeSNikita Popovtarget datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" 3176bbcaeSNikita Popov 4176bbcaeSNikita Popov%t = type { i32 } 5176bbcaeSNikita Popov 6176bbcaeSNikita Popov@g = global i32 42 7176bbcaeSNikita Popov 8c603cefbSNikita Popovdefine void @test1(ptr noalias %pp) { 9176bbcaeSNikita Popov 10c603cefbSNikita Popov store i32 1, ptr %pp; <-- This is dead 11c603cefbSNikita Popov %x = load i32, ptr inttoptr (i32 12345 to ptr) 12c603cefbSNikita Popov store i32 %x, ptr %pp 13176bbcaeSNikita Popov ret void 14176bbcaeSNikita Popov; CHECK-LABEL: define void @test1( 15176bbcaeSNikita Popov; CHECK: store 16176bbcaeSNikita Popov; CHECK-NOT: store 17176bbcaeSNikita Popov; CHECK: ret void 18176bbcaeSNikita Popov} 19176bbcaeSNikita Popov 20176bbcaeSNikita Popovdefine void @test3() { 21c603cefbSNikita Popov store i32 1, ptr @g; <-- This is dead. 22c603cefbSNikita Popov store i32 42, ptr @g 23176bbcaeSNikita Popov ret void 24176bbcaeSNikita Popov; CHECK-LABEL: define void @test3( 25176bbcaeSNikita Popov; CHECK: store 26176bbcaeSNikita Popov; CHECK-NOT: store 27176bbcaeSNikita Popov; CHECK: ret void 28176bbcaeSNikita Popov} 29176bbcaeSNikita Popov 30c603cefbSNikita Popovdefine void @test4(ptr %p) { 31c603cefbSNikita Popov store i32 1, ptr %p 32c603cefbSNikita Popov %x = load i32, ptr @g; <-- %p and @g could alias 33c603cefbSNikita Popov store i32 %x, ptr %p 34176bbcaeSNikita Popov ret void 35176bbcaeSNikita Popov; CHECK-LABEL: define void @test4( 36176bbcaeSNikita Popov; CHECK: store 37176bbcaeSNikita Popov; CHECK: store 38176bbcaeSNikita Popov; CHECK: ret void 39176bbcaeSNikita Popov} 40