brintos

brintos / llvm-project-archived public Read only

0
0
Text · 809 B · d477785 Raw
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