Skip to content

Commit 150fff8

Browse files
committed
[Tests] Split an LFTR dead-iv case
There are two interesting sub-cases here. 1) Switching IVs is legal, but only in pre-increment form. and 2) Switching IVs is legal, and so is post-increment form. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@362993 91177308-0d34-0410-b5e6-96231b3b80d8
1 parent 2cda3f1 commit 150fff8

File tree

1 file changed

+33
-2
lines changed

1 file changed

+33
-2
lines changed

test/Transforms/IndVarSimplify/lftr-dead-ivs.ll

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,39 @@ exit:
102102
ret void
103103
}
104104

105-
define void @dom_store(i8* %a) #0 {
106-
; CHECK-LABEL: @dom_store(
105+
define void @dom_store_preinc(i8* %a) #0 {
106+
; CHECK-LABEL: @dom_store_preinc(
107+
; CHECK-NEXT: entry:
108+
; CHECK-NEXT: br label [[LOOP:%.*]]
109+
; CHECK: loop:
110+
; CHECK-NEXT: [[I_0:%.*]] = phi i8 [ 0, [[ENTRY:%.*]] ], [ [[TMP4:%.*]], [[LOOP]] ]
111+
; CHECK-NEXT: [[P_0:%.*]] = phi i8* [ [[A:%.*]], [[ENTRY]] ], [ [[TMP3:%.*]], [[LOOP]] ]
112+
; CHECK-NEXT: store volatile i8 0, i8* [[P_0]]
113+
; CHECK-NEXT: [[TMP3]] = getelementptr inbounds i8, i8* [[P_0]], i64 1
114+
; CHECK-NEXT: [[TMP4]] = add nuw i8 [[I_0]], 1
115+
; CHECK-NEXT: [[EXITCOND:%.*]] = icmp ne i8 [[TMP4]], -10
116+
; CHECK-NEXT: br i1 [[EXITCOND]], label [[LOOP]], label [[EXIT:%.*]]
117+
; CHECK: exit:
118+
; CHECK-NEXT: ret void
119+
;
120+
entry:
121+
br label %loop
122+
123+
loop:
124+
%i.0 = phi i8 [ 0, %entry ], [ %tmp4, %loop ]
125+
%p.0 = phi i8* [ %a, %entry ], [ %tmp3, %loop ]
126+
store volatile i8 0, i8* %p.0
127+
%tmp3 = getelementptr inbounds i8, i8* %p.0, i64 1
128+
%tmp4 = add i8 %i.0, 1
129+
%tmp5 = icmp ult i8 %tmp4, -10
130+
br i1 %tmp5, label %loop, label %exit
131+
132+
exit:
133+
ret void
134+
}
135+
136+
define void @dom_store_postinc(i8* %a) #0 {
137+
; CHECK-LABEL: @dom_store_postinc(
107138
; CHECK-NEXT: entry:
108139
; CHECK-NEXT: br label [[LOOP:%.*]]
109140
; CHECK: loop:

0 commit comments

Comments
 (0)