@@ -20,11 +20,11 @@ define void @_Z3foov() {
20
20
; CHECK-V1-IC1: [[VECTOR_BODY]]:
21
21
; CHECK-V1-IC1: br i1 [[TMP10:%.*]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !prof [[PROF0]], !llvm.loop [[LOOP1:![0-9]+]]
22
22
; CHECK-V1-IC1: [[MIDDLE_BLOCK]]:
23
- ; CHECK-V1-IC1: br i1 [[CMP_N:%.*]], label %[[FOR_COND_CLEANUP:.*]], label %[[SCALAR_PH]], !prof [[PROF4 :![0-9]+]]
23
+ ; CHECK-V1-IC1: br i1 [[CMP_N:%.*]], label %[[FOR_COND_CLEANUP:.*]], label %[[SCALAR_PH]], !prof [[PROF5 :![0-9]+]]
24
24
; CHECK-V1-IC1: [[SCALAR_PH]]:
25
25
; CHECK-V1-IC1: br label %[[FOR_BODY:.*]]
26
26
; CHECK-V1-IC1: [[FOR_BODY]]:
27
- ; CHECK-V1-IC1: br i1 [[EXITCOND:%.*]], label %[[FOR_COND_CLEANUP]], label %[[FOR_BODY]], !prof [[PROF5 :![0-9]+]], !llvm.loop [[LOOP6 :![0-9]+]]
27
+ ; CHECK-V1-IC1: br i1 [[EXITCOND:%.*]], label %[[FOR_COND_CLEANUP]], label %[[FOR_BODY]], !prof [[PROF6 :![0-9]+]], !llvm.loop [[LOOP7 :![0-9]+]]
28
28
; CHECK-V1-IC1: [[FOR_COND_CLEANUP]]:
29
29
;
30
30
; CHECK-V2-IC1-LABEL: define void @_Z3foov(
@@ -36,11 +36,11 @@ define void @_Z3foov() {
36
36
; CHECK-V2-IC1: [[VECTOR_BODY]]:
37
37
; CHECK-V2-IC1: br i1 [[TMP4:%.*]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !prof [[PROF1:![0-9]+]], !llvm.loop [[LOOP2:![0-9]+]]
38
38
; CHECK-V2-IC1: [[MIDDLE_BLOCK]]:
39
- ; CHECK-V2-IC1: br i1 true, label %[[FOR_COND_CLEANUP:.*]], label %[[SCALAR_PH]], !prof [[PROF5 :![0-9]+]]
39
+ ; CHECK-V2-IC1: br i1 true, label %[[FOR_COND_CLEANUP:.*]], label %[[SCALAR_PH]], !prof [[PROF6 :![0-9]+]]
40
40
; CHECK-V2-IC1: [[SCALAR_PH]]:
41
41
; CHECK-V2-IC1: br label %[[FOR_BODY:.*]]
42
42
; CHECK-V2-IC1: [[FOR_BODY]]:
43
- ; CHECK-V2-IC1: br i1 [[EXITCOND:%.*]], label %[[FOR_COND_CLEANUP]], label %[[FOR_BODY]], !prof [[PROF6 :![0-9]+]], !llvm.loop [[LOOP7 :![0-9]+]]
43
+ ; CHECK-V2-IC1: br i1 [[EXITCOND:%.*]], label %[[FOR_COND_CLEANUP]], label %[[FOR_BODY]], !prof [[PROF7 :![0-9]+]], !llvm.loop [[LOOP8 :![0-9]+]]
44
44
; CHECK-V2-IC1: [[FOR_COND_CLEANUP]]:
45
45
;
46
46
; CHECK-V2-IC4-LABEL: define void @_Z3foov(
@@ -54,19 +54,19 @@ define void @_Z3foov() {
54
54
; CHECK-V2-IC4: [[VECTOR_BODY]]:
55
55
; CHECK-V2-IC4: br i1 [[TMP12:%.*]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !prof [[PROF1:![0-9]+]], !llvm.loop [[LOOP2:![0-9]+]]
56
56
; CHECK-V2-IC4: [[MIDDLE_BLOCK]]:
57
- ; CHECK-V2-IC4: br i1 true, label %[[FOR_COND_CLEANUP:.*]], label %[[VEC_EPILOG_ITER_CHECK:.*]], !prof [[PROF5 :![0-9]+]]
57
+ ; CHECK-V2-IC4: br i1 true, label %[[FOR_COND_CLEANUP:.*]], label %[[VEC_EPILOG_ITER_CHECK:.*]], !prof [[PROF6 :![0-9]+]]
58
58
; CHECK-V2-IC4: [[VEC_EPILOG_ITER_CHECK]]:
59
- ; CHECK-V2-IC4: br i1 [[MIN_EPILOG_ITERS_CHECK:%.*]], label %[[VEC_EPILOG_SCALAR_PH]], label %[[VEC_EPILOG_PH]], !prof [[PROF6 :![0-9]+]]
59
+ ; CHECK-V2-IC4: br i1 [[MIN_EPILOG_ITERS_CHECK:%.*]], label %[[VEC_EPILOG_SCALAR_PH]], label %[[VEC_EPILOG_PH]], !prof [[PROF7 :![0-9]+]]
60
60
; CHECK-V2-IC4: [[VEC_EPILOG_PH]]:
61
61
; CHECK-V2-IC4: br label %[[VEC_EPILOG_VECTOR_BODY:.*]]
62
62
; CHECK-V2-IC4: [[VEC_EPILOG_VECTOR_BODY]]:
63
- ; CHECK-V2-IC4: br i1 [[TMP23:%.*]], label %[[VEC_EPILOG_MIDDLE_BLOCK:.*]], label %[[VEC_EPILOG_VECTOR_BODY]], !llvm.loop [[LOOP7 :![0-9]+]]
63
+ ; CHECK-V2-IC4: br i1 [[TMP23:%.*]], label %[[VEC_EPILOG_MIDDLE_BLOCK:.*]], label %[[VEC_EPILOG_VECTOR_BODY]], !llvm.loop [[LOOP8 :![0-9]+]]
64
64
; CHECK-V2-IC4: [[VEC_EPILOG_MIDDLE_BLOCK]]:
65
- ; CHECK-V2-IC4: br i1 [[CMP_N:%.*]], label %[[FOR_COND_CLEANUP]], label %[[VEC_EPILOG_SCALAR_PH]], !prof [[PROF8 :![0-9]+]]
65
+ ; CHECK-V2-IC4: br i1 [[CMP_N:%.*]], label %[[FOR_COND_CLEANUP]], label %[[VEC_EPILOG_SCALAR_PH]], !prof [[PROF10 :![0-9]+]]
66
66
; CHECK-V2-IC4: [[VEC_EPILOG_SCALAR_PH]]:
67
67
; CHECK-V2-IC4: br label %[[FOR_BODY:.*]]
68
68
; CHECK-V2-IC4: [[FOR_BODY]]:
69
- ; CHECK-V2-IC4: br i1 [[EXITCOND:%.*]], label %[[FOR_COND_CLEANUP]], label %[[FOR_BODY]], !prof [[PROF9 :![0-9]+]], !llvm.loop [[LOOP10 :![0-9]+]]
69
+ ; CHECK-V2-IC4: br i1 [[EXITCOND:%.*]], label %[[FOR_COND_CLEANUP]], label %[[FOR_BODY]], !prof [[PROF11 :![0-9]+]], !llvm.loop [[LOOP12 :![0-9]+]]
70
70
; CHECK-V2-IC4: [[FOR_COND_CLEANUP]]:
71
71
;
72
72
entry:
@@ -89,31 +89,37 @@ for.cond.cleanup: ; preds = %for.body
89
89
!0 = !{!"branch_weights" , i32 1 , i32 1023 }
90
90
;.
91
91
; CHECK-V1-IC1: [[PROF0]] = !{!"branch_weights", i32 1, i32 127}
92
- ; CHECK-V1-IC1: [[LOOP1]] = distinct !{[[LOOP1]], [[META2:![0-9]+]], [[META3:![0-9]+]]}
92
+ ; CHECK-V1-IC1: [[LOOP1]] = distinct !{[[LOOP1]], [[META2:![0-9]+]], [[META3:![0-9]+]], [[META4:![0-9]+]] }
93
93
; CHECK-V1-IC1: [[META2]] = !{!"llvm.loop.isvectorized", i32 1}
94
94
; CHECK-V1-IC1: [[META3]] = !{!"llvm.loop.unroll.runtime.disable"}
95
- ; CHECK-V1-IC1: [[PROF4]] = !{!"branch_weights", i32 1, i32 3}
96
- ; CHECK-V1-IC1: [[PROF5]] = !{!"branch_weights", i32 0, i32 0}
97
- ; CHECK-V1-IC1: [[LOOP6]] = distinct !{[[LOOP6]], [[META3]], [[META2]]}
95
+ ; CHECK-V1-IC1: [[META4]] = !{!"llvm.loop.estimated_trip_count", i32 128}
96
+ ; CHECK-V1-IC1: [[PROF5]] = !{!"branch_weights", i32 1, i32 3}
97
+ ; CHECK-V1-IC1: [[PROF6]] = !{!"branch_weights", i32 0, i32 0}
98
+ ; CHECK-V1-IC1: [[LOOP7]] = distinct !{[[LOOP7]], [[META8:![0-9]+]], [[META3]], [[META2]]}
99
+ ; CHECK-V1-IC1: [[META8]] = !{!"llvm.loop.estimated_trip_count", i32 0}
98
100
;.
99
101
; CHECK-V2-IC1: [[PROF0]] = !{!"branch_weights", i32 1, i32 127}
100
102
; CHECK-V2-IC1: [[PROF1]] = !{!"branch_weights", i32 1, i32 255}
101
- ; CHECK-V2-IC1: [[LOOP2]] = distinct !{[[LOOP2]], [[META3:![0-9]+]], [[META4:![0-9]+]]}
103
+ ; CHECK-V2-IC1: [[LOOP2]] = distinct !{[[LOOP2]], [[META3:![0-9]+]], [[META4:![0-9]+]], [[META5:![0-9]+]] }
102
104
; CHECK-V2-IC1: [[META3]] = !{!"llvm.loop.isvectorized", i32 1}
103
105
; CHECK-V2-IC1: [[META4]] = !{!"llvm.loop.unroll.runtime.disable"}
104
- ; CHECK-V2-IC1: [[PROF5]] = !{!"branch_weights", i32 1, i32 3}
105
- ; CHECK-V2-IC1: [[PROF6]] = !{!"branch_weights", i32 0, i32 0}
106
- ; CHECK-V2-IC1: [[LOOP7]] = distinct !{[[LOOP7]], [[META4]], [[META3]]}
106
+ ; CHECK-V2-IC1: [[META5]] = !{!"llvm.loop.estimated_trip_count", i32 256}
107
+ ; CHECK-V2-IC1: [[PROF6]] = !{!"branch_weights", i32 1, i32 3}
108
+ ; CHECK-V2-IC1: [[PROF7]] = !{!"branch_weights", i32 0, i32 0}
109
+ ; CHECK-V2-IC1: [[LOOP8]] = distinct !{[[LOOP8]], [[META9:![0-9]+]], [[META4]], [[META3]]}
110
+ ; CHECK-V2-IC1: [[META9]] = !{!"llvm.loop.estimated_trip_count", i32 0}
107
111
;.
108
112
; CHECK-V2-IC4: [[PROF0]] = !{!"branch_weights", i32 1, i32 127}
109
113
; CHECK-V2-IC4: [[PROF1]] = !{!"branch_weights", i32 1, i32 63}
110
- ; CHECK-V2-IC4: [[LOOP2]] = distinct !{[[LOOP2]], [[META3:![0-9]+]], [[META4:![0-9]+]]}
114
+ ; CHECK-V2-IC4: [[LOOP2]] = distinct !{[[LOOP2]], [[META3:![0-9]+]], [[META4:![0-9]+]], [[META5:![0-9]+]] }
111
115
; CHECK-V2-IC4: [[META3]] = !{!"llvm.loop.isvectorized", i32 1}
112
116
; CHECK-V2-IC4: [[META4]] = !{!"llvm.loop.unroll.runtime.disable"}
113
- ; CHECK-V2-IC4: [[PROF5]] = !{!"branch_weights", i32 1, i32 15}
114
- ; CHECK-V2-IC4: [[PROF6]] = !{!"branch_weights", i32 2, i32 0}
115
- ; CHECK-V2-IC4: [[LOOP7]] = distinct !{[[LOOP7]], [[META3]], [[META4]]}
116
- ; CHECK-V2-IC4: [[PROF8]] = !{!"branch_weights", i32 1, i32 1}
117
- ; CHECK-V2-IC4: [[PROF9]] = !{!"branch_weights", i32 0, i32 0}
118
- ; CHECK-V2-IC4: [[LOOP10]] = distinct !{[[LOOP10]], [[META4]], [[META3]]}
117
+ ; CHECK-V2-IC4: [[META5]] = !{!"llvm.loop.estimated_trip_count", i32 64}
118
+ ; CHECK-V2-IC4: [[PROF6]] = !{!"branch_weights", i32 1, i32 15}
119
+ ; CHECK-V2-IC4: [[PROF7]] = !{!"branch_weights", i32 2, i32 0}
120
+ ; CHECK-V2-IC4: [[LOOP8]] = distinct !{[[LOOP8]], [[META9:![0-9]+]], [[META3]], [[META4]]}
121
+ ; CHECK-V2-IC4: [[META9]] = !{!"llvm.loop.estimated_trip_count", i32 0}
122
+ ; CHECK-V2-IC4: [[PROF10]] = !{!"branch_weights", i32 1, i32 1}
123
+ ; CHECK-V2-IC4: [[PROF11]] = !{!"branch_weights", i32 0, i32 0}
124
+ ; CHECK-V2-IC4: [[LOOP12]] = distinct !{[[LOOP12]], [[META9]], [[META4]], [[META3]]}
119
125
;.
0 commit comments