@@ -5,9 +5,9 @@ target triple = "aarch64-linux-gnu"
5
5
6
6
%pair = type { i8 , i8 }
7
7
8
- ; TODO: For a loop with a profile-guided estimated TC of 32, when the auto-vectorizer chooses VF 16,
8
+ ; For a loop with a profile-guided estimated TC of 32, when the auto-vectorizer chooses VF 16,
9
9
; it should conservatively choose IC 1 so that the vector loop runs twice at least
10
- ; CHECK: remark: <unknown>:0:0: vectorized loop (vectorization width: 16, interleaved count: 2 )
10
+ ; CHECK: remark: <unknown>:0:0: vectorized loop (vectorization width: 16, interleaved count: 1 )
11
11
define void @loop_with_profile_tc_32 (ptr noalias %p , ptr noalias %q , i64 %n ) {
12
12
entry:
13
13
br label %for.body
@@ -29,9 +29,9 @@ for.end:
29
29
ret void
30
30
}
31
31
32
- ; TODO: For a loop with a profile-guided estimated TC of 33, when the auto-vectorizer chooses VF 16,
32
+ ; For a loop with a profile-guided estimated TC of 33, when the auto-vectorizer chooses VF 16,
33
33
; it should conservatively choose IC 1 so that the vector loop runs twice at least
34
- ; CHECK: remark: <unknown>:0:0: vectorized loop (vectorization width: 16, interleaved count: 2 )
34
+ ; CHECK: remark: <unknown>:0:0: vectorized loop (vectorization width: 16, interleaved count: 1 )
35
35
define void @loop_with_profile_tc_33 (ptr noalias %p , ptr noalias %q , i64 %n ) {
36
36
entry:
37
37
br label %for.body
@@ -53,9 +53,9 @@ for.end:
53
53
ret void
54
54
}
55
55
56
- ; TODO: For a loop with a profile-guided estimated TC of 48, when the auto-vectorizer chooses VF 16,
56
+ ; For a loop with a profile-guided estimated TC of 48, when the auto-vectorizer chooses VF 16,
57
57
; it should conservatively choose IC 1 so that the vector loop runs twice at least
58
- ; CHECK: remark: <unknown>:0:0: vectorized loop (vectorization width: 16, interleaved count: 3 )
58
+ ; CHECK: remark: <unknown>:0:0: vectorized loop (vectorization width: 16, interleaved count: 1 )
59
59
define void @loop_with_profile_tc_48 (ptr noalias %p , ptr noalias %q , i64 %n ) {
60
60
entry:
61
61
br label %for.body
@@ -77,9 +77,9 @@ for.end:
77
77
ret void
78
78
}
79
79
80
- ; TODO: For a loop with a profile-guided estimated TC of 63, when the auto-vectorizer chooses VF 16,
80
+ ; For a loop with a profile-guided estimated TC of 63, when the auto-vectorizer chooses VF 16,
81
81
; it should conservatively choose IC 1 so that the vector loop runs twice at least
82
- ; CHECK: remark: <unknown>:0:0: vectorized loop (vectorization width: 16, interleaved count: 3 )
82
+ ; CHECK: remark: <unknown>:0:0: vectorized loop (vectorization width: 16, interleaved count: 1 )
83
83
define void @loop_with_profile_tc_63 (ptr noalias %p , ptr noalias %q , i64 %n ) {
84
84
entry:
85
85
br label %for.body
@@ -101,9 +101,9 @@ for.end:
101
101
ret void
102
102
}
103
103
104
- ; TODO: For a loop with a profile-guided estimated TC of 64, when the auto-vectorizer chooses VF 16,
104
+ ; For a loop with a profile-guided estimated TC of 64, when the auto-vectorizer chooses VF 16,
105
105
; it should choose conservatively IC 2 so that the vector loop runs twice at least
106
- ; CHECK: remark: <unknown>:0:0: vectorized loop (vectorization width: 16, interleaved count: 4 )
106
+ ; CHECK: remark: <unknown>:0:0: vectorized loop (vectorization width: 16, interleaved count: 2 )
107
107
define void @loop_with_profile_tc_64 (ptr noalias %p , ptr noalias %q , i64 %n ) {
108
108
entry:
109
109
br label %for.body
@@ -125,9 +125,9 @@ for.end:
125
125
ret void
126
126
}
127
127
128
- ; TODO: For a loop with a profile-guided estimated TC of 100, when the auto-vectorizer chooses VF 16,
128
+ ; For a loop with a profile-guided estimated TC of 100, when the auto-vectorizer chooses VF 16,
129
129
; it should choose conservatively IC 2 so that the vector loop runs twice at least
130
- ; CHECK: remark: <unknown>:0:0: vectorized loop (vectorization width: 16, interleaved count: 6 )
130
+ ; CHECK: remark: <unknown>:0:0: vectorized loop (vectorization width: 16, interleaved count: 2 )
131
131
define void @loop_with_profile_tc_100 (ptr noalias %p , ptr noalias %q , i64 %n ) {
132
132
entry:
133
133
br label %for.body
@@ -149,9 +149,9 @@ for.end:
149
149
ret void
150
150
}
151
151
152
- ; TODO: For a loop with a profile-guided estimated TC of 128, when the auto-vectorizer chooses VF 16,
152
+ ; For a loop with a profile-guided estimated TC of 128, when the auto-vectorizer chooses VF 16,
153
153
; it should choose conservatively IC 4 so that the vector loop runs twice at least
154
- ; CHECK: remark: <unknown>:0:0: vectorized loop (vectorization width: 16, interleaved count: 8 )
154
+ ; CHECK: remark: <unknown>:0:0: vectorized loop (vectorization width: 16, interleaved count: 4 )
155
155
define void @loop_with_profile_tc_128 (ptr noalias %p , ptr noalias %q , i64 %n ) {
156
156
entry:
157
157
br label %for.body
@@ -173,9 +173,9 @@ for.end:
173
173
ret void
174
174
}
175
175
176
- ; TODO: For a loop with a profile-guided estimated TC of 129, when the auto-vectorizer chooses VF 16,
176
+ ; For a loop with a profile-guided estimated TC of 129, when the auto-vectorizer chooses VF 16,
177
177
; it should choose conservatively IC 4 so that the vector loop runs twice at least
178
- ; CHECK: remark: <unknown>:0:0: vectorized loop (vectorization width: 16, interleaved count: 8 )
178
+ ; CHECK: remark: <unknown>:0:0: vectorized loop (vectorization width: 16, interleaved count: 4 )
179
179
define void @loop_with_profile_tc_129 (ptr noalias %p , ptr noalias %q , i64 %n ) {
180
180
entry:
181
181
br label %for.body
@@ -197,9 +197,9 @@ for.end:
197
197
ret void
198
198
}
199
199
200
- ; TODO: For a loop with a profile-guided estimated TC of 180, when the auto-vectorizer chooses VF 16,
200
+ ; For a loop with a profile-guided estimated TC of 180, when the auto-vectorizer chooses VF 16,
201
201
; it should choose conservatively IC 4 so that the vector loop runs twice at least
202
- ; CHECK: remark: <unknown>:0:0: vectorized loop (vectorization width: 16, interleaved count: 8 )
202
+ ; CHECK: remark: <unknown>:0:0: vectorized loop (vectorization width: 16, interleaved count: 4 )
203
203
define void @loop_with_profile_tc_180 (ptr noalias %p , ptr noalias %q , i64 %n ) {
204
204
entry:
205
205
br label %for.body
@@ -221,9 +221,9 @@ for.end:
221
221
ret void
222
222
}
223
223
224
- ; TODO: For a loop with a profile-guided estimated TC of 193, when the auto-vectorizer chooses VF 16,
224
+ ; For a loop with a profile-guided estimated TC of 193, when the auto-vectorizer chooses VF 16,
225
225
; it should choose conservatively IC 4 so that the vector loop runs twice at least
226
- ; CHECK: remark: <unknown>:0:0: vectorized loop (vectorization width: 16, interleaved count: 8 )
226
+ ; CHECK: remark: <unknown>:0:0: vectorized loop (vectorization width: 16, interleaved count: 4 )
227
227
define void @loop_with_profile_tc_193 (ptr noalias %p , ptr noalias %q , i64 %n ) {
228
228
entry:
229
229
br label %for.body
@@ -245,7 +245,7 @@ for.end:
245
245
ret void
246
246
}
247
247
248
- ; TODO: For a loop with a profile-guided estimated TC of 1000, when the auto-vectorizer chooses VF 16,
248
+ ; For a loop with a profile-guided estimated TC of 1000, when the auto-vectorizer chooses VF 16,
249
249
; the IC will be capped by the target-specific maximum interleave count
250
250
; CHECK: remark: <unknown>:0:0: vectorized loop (vectorization width: 16, interleaved count: 8)
251
251
define void @loop_with_profile_tc_1000 (ptr noalias %p , ptr noalias %q , i64 %n ) {
0 commit comments