brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.0 KiB · ffa10e3 Raw
87 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2 3; REQUIRES: asserts4 5; Eliminates store to %R in the entry block.6; RUN: opt < %s -passes=dse -debug-counter=dse-memoryssa=0 -S | FileCheck --check-prefix=SKIP0-COUNT1 %s7 8; Eliminates store to %P in the entry block.9; RUN: opt < %s -passes=dse -debug-counter=dse-memoryssa=1 -S | FileCheck --check-prefix=SKIP1-COUNT1 %s10 11; Eliminates both stores in the entry block.12; RUN: opt < %s -passes=dse -debug-counter=dse-memoryssa=0-1 -S | FileCheck --check-prefix=SKIP0-COUNT2 %s13 14; Eliminates no stores.15; RUN: opt < %s -passes=dse -debug-counter=dse-memoryssa=2 -S | FileCheck --check-prefix=SKIP2-COUNT1 %s16 17 18target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"19 20 21define void @test(ptr noalias %P, ptr noalias %Q, ptr noalias %R) {22; SKIP0-COUNT1-LABEL: @test(23; SKIP0-COUNT1-NEXT:    store i32 1, ptr [[P:%.*]]24; SKIP0-COUNT1-NEXT:    br i1 true, label [[BB1:%.*]], label [[BB2:%.*]]25; SKIP0-COUNT1:       bb1:26; SKIP0-COUNT1-NEXT:    br label [[BB3:%.*]]27; SKIP0-COUNT1:       bb2:28; SKIP0-COUNT1-NEXT:    br label [[BB3]]29; SKIP0-COUNT1:       bb3:30; SKIP0-COUNT1-NEXT:    store i32 0, ptr [[Q:%.*]]31; SKIP0-COUNT1-NEXT:    store i32 0, ptr [[R:%.*]]32; SKIP0-COUNT1-NEXT:    store i32 0, ptr [[P]]33; SKIP0-COUNT1-NEXT:    ret void34;35; SKIP1-COUNT1-LABEL: @test(36; SKIP1-COUNT1-NEXT:    store i32 1, ptr [[R:%.*]]37; SKIP1-COUNT1-NEXT:    br i1 true, label [[BB1:%.*]], label [[BB2:%.*]]38; SKIP1-COUNT1:       bb1:39; SKIP1-COUNT1-NEXT:    br label [[BB3:%.*]]40; SKIP1-COUNT1:       bb2:41; SKIP1-COUNT1-NEXT:    br label [[BB3]]42; SKIP1-COUNT1:       bb3:43; SKIP1-COUNT1-NEXT:    store i32 0, ptr [[Q:%.*]]44; SKIP1-COUNT1-NEXT:    store i32 0, ptr [[R]]45; SKIP1-COUNT1-NEXT:    store i32 0, ptr [[P:%.*]]46; SKIP1-COUNT1-NEXT:    ret void47;48; SKIP0-COUNT2-LABEL: @test(49; SKIP0-COUNT2-NEXT:    br i1 true, label [[BB1:%.*]], label [[BB2:%.*]]50; SKIP0-COUNT2:       bb1:51; SKIP0-COUNT2-NEXT:    br label [[BB3:%.*]]52; SKIP0-COUNT2:       bb2:53; SKIP0-COUNT2-NEXT:    br label [[BB3]]54; SKIP0-COUNT2:       bb3:55; SKIP0-COUNT2-NEXT:    store i32 0, ptr [[Q:%.*]]56; SKIP0-COUNT2-NEXT:    store i32 0, ptr [[R:%.*]]57; SKIP0-COUNT2-NEXT:    store i32 0, ptr [[P:%.*]]58; SKIP0-COUNT2-NEXT:    ret void59;60; SKIP2-COUNT1-LABEL: @test(61; SKIP2-COUNT1-NEXT:    store i32 1, ptr [[P:%.*]]62; SKIP2-COUNT1-NEXT:    store i32 1, ptr [[R:%.*]]63; SKIP2-COUNT1-NEXT:    br i1 true, label [[BB1:%.*]], label [[BB2:%.*]]64; SKIP2-COUNT1:       bb1:65; SKIP2-COUNT1-NEXT:    br label [[BB3:%.*]]66; SKIP2-COUNT1:       bb2:67; SKIP2-COUNT1-NEXT:    br label [[BB3]]68; SKIP2-COUNT1:       bb3:69; SKIP2-COUNT1-NEXT:    store i32 0, ptr [[Q:%.*]]70; SKIP2-COUNT1-NEXT:    store i32 0, ptr [[R]]71; SKIP2-COUNT1-NEXT:    store i32 0, ptr [[P]]72; SKIP2-COUNT1-NEXT:    ret void73;74  store i32 1, ptr %P75  store i32 1, ptr %R76  br i1 true, label %bb1, label %bb277bb1:78  br label %bb379bb2:80  br label %bb381bb3:82  store i32 0, ptr %Q83  store i32 0, ptr %R84  store i32 0, ptr %P85  ret void86}87