Changeset View
Changeset View
Standalone View
Standalone View
test/Transforms/LoopInterchange/currentLimitation.ll
Show All 10 Lines | |||||
11 | 11 | | |||
12 | ;;--------------------------------------Test case 01------------------------------------ | 12 | ;;--------------------------------------Test case 01------------------------------------ | ||
13 | ;; [FIXME] This loop though valid is currently not interchanged due to the limitation that we cannot split the inner loop latch due to multiple use of inner induction | 13 | ;; [FIXME] This loop though valid is currently not interchanged due to the limitation that we cannot split the inner loop latch due to multiple use of inner induction | ||
14 | ;; variable.(used to increment the loop counter and to access A[j+1][i+1] | 14 | ;; variable.(used to increment the loop counter and to access A[j+1][i+1] | ||
15 | ;; for(int i=0;i<N-1;i++) | 15 | ;; for(int i=0;i<N-1;i++) | ||
16 | ;; for(int j=1;j<N-1;j++) | 16 | ;; for(int j=1;j<N-1;j++) | ||
17 | ;; A[j+1][i+1] = A[j+1][i+1] + k; | 17 | ;; A[j+1][i+1] = A[j+1][i+1] + k; | ||
18 | 18 | | |||
19 | ; FIXME: Currently fails because of DA changes. | | |||
20 | ; IR-LABEL: @interchange_01 | 19 | ; IR-LABEL: @interchange_01 | ||
21 | ; IR-NOT: split | 20 | ; IR-NOT: split | ||
22 | 21 | | |||
23 | ; CHECK: Name: Dependence | 22 | ; CHECK: Name: UnsupportedInsBetweenInduction | ||
24 | ; CHECK-NEXT: Function: interchange_01 | 23 | ; CHECK-NEXT: Function: interchange_01 | ||
25 | 24 | | |||
26 | define void @interchange_01(i32 %k, i32 %N) { | 25 | define void @interchange_01(i32 %k, i32 %N) { | ||
27 | entry: | 26 | entry: | ||
28 | %sub = add nsw i32 %N, -1 | 27 | %sub = add nsw i32 %N, -1 | ||
29 | %cmp26 = icmp sgt i32 %N, 1 | 28 | %cmp26 = icmp sgt i32 %N, 1 | ||
30 | br i1 %cmp26, label %for.cond1.preheader.lr.ph, label %for.end17 | 29 | br i1 %cmp26, label %for.cond1.preheader.lr.ph, label %for.end17 | ||
31 | 30 | | |||
▲ Show 20 Lines • Show All 66 Lines • Show Last 20 Lines |