@@ -2110,93 +2110,6 @@ int rvar_bounds_test() {
2110
2110
return 0 ;
2111
2111
}
2112
2112
2113
- // Test for the issue described in https://github.com/halide/Halide/issues/6367.
2114
- int two_compute_at_test () {
2115
- ImageParam input1 (Int (16 ), 2 , " input1" );
2116
- Func output1 (" output1" ), output2 (" output2" ), output3 (" output3" );
2117
- Var k{" k" };
2118
-
2119
- Func intermediate{" intermediate" };
2120
- Func output1_value{" output1_value" };
2121
- Func output3_value{" output3_value" };
2122
-
2123
- intermediate (k) = input1 (k, 0 ) * input1 (k, 1 );
2124
- output1_value (k) = intermediate (k) * intermediate (k);
2125
- output1 (k) = output1_value (k);
2126
- output2 (k) = output1_value (k) + output1_value (k);
2127
- output3_value (k) = input1 (k, 0 ) + 2 ;
2128
- output3 (k) = output3_value (k);
2129
-
2130
- Expr num = input1.dim (0 ).extent ();
2131
- input1.dim (0 ).set_bounds (0 , num);
2132
- input1.dim (1 ).set_bounds (0 , 2 );
2133
- output1.output_buffer ().dim (0 ).set_bounds (0 , num);
2134
- output2.output_buffer ().dim (0 ).set_bounds (0 , num);
2135
- output3.output_buffer ().dim (0 ).set_bounds (0 , num);
2136
-
2137
- intermediate
2138
- .vectorize (k, 8 )
2139
- .compute_at (output1_value, k)
2140
- .bound_storage (k, 8 )
2141
- .store_in (MemoryType::Register);
2142
-
2143
- output1_value
2144
- .vectorize (k, 8 )
2145
- .compute_at (output2, k)
2146
- .bound_storage (k, 8 )
2147
- .store_in (MemoryType::Register);
2148
-
2149
- output1
2150
- .vectorize (k, 8 )
2151
- .compute_with (output2, k);
2152
-
2153
- output2
2154
- .vectorize (k, 8 );
2155
-
2156
- output3_value
2157
- .vectorize (k, 8 )
2158
- .compute_at (output3, k)
2159
- .bound_storage (k, 8 )
2160
- .store_in (MemoryType::Register);
2161
-
2162
- output3
2163
- .vectorize (k, 8 )
2164
- .compute_with (output2, k);
2165
-
2166
- Pipeline p ({output1, output2, output3});
2167
- p.compile_jit ();
2168
-
2169
- Buffer<int16_t > in (8 , 2 );
2170
- Buffer<int16_t > o1 (8 ), o2 (8 ), o3 (8 );
2171
- for (int iy = 0 ; iy < in.height (); iy++) {
2172
- for (int ix = 0 ; ix < in.width (); ix++) {
2173
- in (ix, iy) = ix + iy;
2174
- }
2175
- }
2176
- input1.set (in);
2177
- p.realize ({o1, o2, o3});
2178
-
2179
- for (int x = 0 ; x < 8 ; x++) {
2180
- int val = (x * (x + 1 )) * (x * (x + 1 ));
2181
- if (o1 (x) != val) {
2182
- printf (" o1(%d) = %d instead of %d\n " ,
2183
- x, o1 (x), val);
2184
- return -1 ;
2185
- }
2186
- if (o2 (x) != 2 * val) {
2187
- printf (" o2(%d) = %d instead of %d\n " ,
2188
- x, o2 (x), 2 * val);
2189
- return -1 ;
2190
- }
2191
- if (o3 (x) != x + 2 ) {
2192
- printf (" o2(%d) = %d instead of %d\n " ,
2193
- x, o3 (x), x + 2 );
2194
- return -1 ;
2195
- }
2196
- }
2197
- return 0 ;
2198
- }
2199
-
2200
2113
} // namespace
2201
2114
2202
2115
int main (int argc, char **argv) {
@@ -2343,11 +2256,6 @@ int main(int argc, char **argv) {
2343
2256
return -1 ;
2344
2257
}
2345
2258
2346
- printf (" Running two_compute_at test\n " );
2347
- if (two_compute_at_test () != 0 ) {
2348
- return -1 ;
2349
- }
2350
-
2351
2259
printf (" Success!\n " );
2352
2260
return 0 ;
2353
2261
}
0 commit comments