Expr               35 apps/HelloAndroid/jni/hello_generator.cpp         input.dim(0).set_stride(Expr());
Expr               23 apps/HelloAndroidCamera2/jni/deinterleave_generator.cpp         uvInterleaved.dim(0).set_stride(Expr());
Expr               41 apps/HelloAndroidCamera2/jni/edge_detect_generator.cpp         input.dim(0).set_stride(Expr());
Expr               13 apps/HelloAndroidGL/jni/halide_gl_filter.cpp     Expr kx, ky;
Expr               14 apps/HelloAndroidGL/jni/halide_gl_filter.cpp     Expr xx, yy;
Expr               21 apps/HelloAndroidGL/jni/halide_gl_filter.cpp     Expr angle;
Expr               26 apps/HelloAndroidGL/jni/halide_gl_filter.cpp     Expr v = 0.0f;
Expr                6 apps/HelloHexagon/pipeline.cpp Expr blur5(Expr x0, Expr x1, Expr x2, Expr x3, Expr x4) {
Expr               13 apps/HelloMatlab/iir_blur.cpp Func blur_cols_transpose(Func input, Expr height, Expr alpha) {
Expr               25 apps/HelloMatlab/iir_blur.cpp     Expr flip_ry = height - ry - 1;
Expr               68 apps/HelloMatlab/iir_blur.cpp         Expr width = input.width();
Expr               69 apps/HelloMatlab/iir_blur.cpp         Expr height = input.height();
Expr               55 apps/HelloiOS/HelloiOS/reaction_diffusion_2_generator.cpp         Expr R = blur(x, y, 0);
Expr               56 apps/HelloiOS/HelloiOS/reaction_diffusion_2_generator.cpp         Expr G = blur(x, y, 1);
Expr               57 apps/HelloiOS/HelloiOS/reaction_diffusion_2_generator.cpp         Expr B = blur(x, y, 2);
Expr               60 apps/HelloiOS/HelloiOS/reaction_diffusion_2_generator.cpp         Expr s = 0.5f;
Expr               66 apps/HelloiOS/HelloiOS/reaction_diffusion_2_generator.cpp         Expr dR = B * (1 - R - G);
Expr               67 apps/HelloiOS/HelloiOS/reaction_diffusion_2_generator.cpp         Expr dG = (1 - B) * (R - G);
Expr               68 apps/HelloiOS/HelloiOS/reaction_diffusion_2_generator.cpp         Expr dB = 1 - B + 2 * G * R - R - G;
Expr               70 apps/HelloiOS/HelloiOS/reaction_diffusion_2_generator.cpp         Expr bump = (frame % 1024) / 1024.0f;
Expr               72 apps/HelloiOS/HelloiOS/reaction_diffusion_2_generator.cpp         Expr alpha = lerp(0.3f, 0.7f, bump);
Expr               75 apps/HelloiOS/HelloiOS/reaction_diffusion_2_generator.cpp         Expr t = 0.1f;
Expr               96 apps/HelloiOS/HelloiOS/reaction_diffusion_2_generator.cpp         Expr min_x = clamp(mouse_x - 20, 0, state.dim(0).extent()-1);
Expr               97 apps/HelloiOS/HelloiOS/reaction_diffusion_2_generator.cpp         Expr max_x = clamp(mouse_x + 20, 0, state.dim(0).extent()-1);
Expr               98 apps/HelloiOS/HelloiOS/reaction_diffusion_2_generator.cpp         Expr min_y = clamp(mouse_y - 20, 0, state.dim(1).extent()-1);
Expr               99 apps/HelloiOS/HelloiOS/reaction_diffusion_2_generator.cpp         Expr max_y = clamp(mouse_y + 20, 0, state.dim(1).extent()-1);
Expr              102 apps/HelloiOS/HelloiOS/reaction_diffusion_2_generator.cpp         Expr dx = clobber.x - mouse_x;
Expr              103 apps/HelloiOS/HelloiOS/reaction_diffusion_2_generator.cpp         Expr dy = clobber.y - mouse_y;
Expr              104 apps/HelloiOS/HelloiOS/reaction_diffusion_2_generator.cpp         Expr radius = dx * dx + dy * dy;
Expr              184 apps/HelloiOS/HelloiOS/reaction_diffusion_2_generator.cpp         Expr c0 = contour(x, y, 0);
Expr              185 apps/HelloiOS/HelloiOS/reaction_diffusion_2_generator.cpp         Expr c1 = contour(x, y, 1);
Expr              186 apps/HelloiOS/HelloiOS/reaction_diffusion_2_generator.cpp         Expr c2 = contour(x, y, 2);
Expr              188 apps/HelloiOS/HelloiOS/reaction_diffusion_2_generator.cpp         Expr R = min(c0, max(c1, c2));
Expr              189 apps/HelloiOS/HelloiOS/reaction_diffusion_2_generator.cpp         Expr G = (c0 + c1 + c2)/3;
Expr              190 apps/HelloiOS/HelloiOS/reaction_diffusion_2_generator.cpp         Expr B = max(c0, max(c1, c2));
Expr              191 apps/HelloiOS/HelloiOS/reaction_diffusion_2_generator.cpp         Expr A = 1.0f;
Expr              197 apps/HelloiOS/HelloiOS/reaction_diffusion_2_generator.cpp         Expr bgra = select(c == 0, cast<uint8_t>(B * 255), 
Expr              202 apps/HelloiOS/HelloiOS/reaction_diffusion_2_generator.cpp         Expr rgba = select(c == 0, cast<uint8_t>(R * 255), 
Expr               20 apps/bilateral_grid/bilateral_grid_generator.cpp         Expr val = clamped(x * s_sigma + r.x - s_sigma/2, y * s_sigma + r.y - s_sigma/2);
Expr               23 apps/bilateral_grid/bilateral_grid_generator.cpp         Expr zi = cast<int>(val * (1.0f/r_sigma) + 0.5f);
Expr               49 apps/bilateral_grid/bilateral_grid_generator.cpp         Expr zv = val * (1.0f/r_sigma);
Expr               51 apps/bilateral_grid/bilateral_grid_generator.cpp         Expr zf = zv - zi;
Expr               52 apps/bilateral_grid/bilateral_grid_generator.cpp         Expr xf = cast<float>(x % s_sigma) / s_sigma;
Expr               53 apps/bilateral_grid/bilateral_grid_generator.cpp         Expr yf = cast<float>(y % s_sigma) / s_sigma;
Expr               54 apps/bilateral_grid/bilateral_grid_generator.cpp         Expr xi = x/s_sigma;
Expr               55 apps/bilateral_grid/bilateral_grid_generator.cpp         Expr yi = y/s_sigma;
Expr               10 apps/c_backend/pipeline_cpp_generator.cpp Expr make_call_cpp_extern_toplevel(Expr arg1, Expr arg2) {
Expr               14 apps/c_backend/pipeline_cpp_generator.cpp Expr make_call_cpp_extern_namespace(Expr arg1, Expr arg2) {
Expr               18 apps/c_backend/pipeline_cpp_generator.cpp Expr make_call_cpp_extern_shared_namespace_1(Expr arg1, Expr arg2) {
Expr               21 apps/c_backend/pipeline_cpp_generator.cpp Expr make_call_cpp_extern_shared_namespace_2(Expr arg1, Expr arg2) {
Expr               24 apps/c_backend/pipeline_cpp_generator.cpp Expr make_call_cpp_extern_shared_namespace_3(Expr arg1, Expr arg2) {
Expr               28 apps/c_backend/pipeline_cpp_generator.cpp Expr make_call_cpp_extern_nested_namespace_outer(Expr arg1, Expr arg2) {
Expr               31 apps/c_backend/pipeline_cpp_generator.cpp Expr make_call_cpp_extern_nested_namespace_inner(Expr arg1, Expr arg2) {
Expr               35 apps/c_backend/pipeline_cpp_generator.cpp Expr make_call_cpp_extern_shared_nested_1(Expr arg1, Expr arg2) {
Expr               38 apps/c_backend/pipeline_cpp_generator.cpp Expr make_call_cpp_extern_shared_nested_2(Expr arg1, Expr arg2) {
Expr               41 apps/c_backend/pipeline_cpp_generator.cpp Expr make_call_cpp_extern_shared_nested_3(Expr arg1, Expr arg2) {
Expr               44 apps/c_backend/pipeline_cpp_generator.cpp Expr make_call_cpp_extern_shared_nested_4(Expr arg1, Expr arg2) {
Expr               61 apps/c_backend/pipeline_cpp_generator.cpp         Expr add_all_the_things = cast<int>(0);
Expr               28 apps/camera_pipe/camera_pipe_generator.cpp     Expr avg(Expr a, Expr b);
Expr               41 apps/camera_pipe/camera_pipe_generator.cpp Expr CameraPipe::avg(Expr a, Expr b) {
Expr               48 apps/camera_pipe/camera_pipe_generator.cpp     Expr a = max(input(x - 2, y), input(x + 2, y),
Expr              102 apps/camera_pipe/camera_pipe_generator.cpp     Expr gv_r  = avg(g_gb(x, y-1), g_gb(x, y));
Expr              103 apps/camera_pipe/camera_pipe_generator.cpp     Expr gvd_r = absd(g_gb(x, y-1), g_gb(x, y));
Expr              104 apps/camera_pipe/camera_pipe_generator.cpp     Expr gh_r  = avg(g_gr(x+1, y), g_gr(x, y));
Expr              105 apps/camera_pipe/camera_pipe_generator.cpp     Expr ghd_r = absd(g_gr(x+1, y), g_gr(x, y));
Expr              109 apps/camera_pipe/camera_pipe_generator.cpp     Expr gv_b  = avg(g_gr(x, y+1), g_gr(x, y));
Expr              110 apps/camera_pipe/camera_pipe_generator.cpp     Expr gvd_b = absd(g_gr(x, y+1), g_gr(x, y));
Expr              111 apps/camera_pipe/camera_pipe_generator.cpp     Expr gh_b  = avg(g_gb(x-1, y), g_gb(x, y));
Expr              112 apps/camera_pipe/camera_pipe_generator.cpp     Expr ghd_b = absd(g_gb(x-1, y), g_gb(x, y));
Expr              120 apps/camera_pipe/camera_pipe_generator.cpp     Expr correction;
Expr              144 apps/camera_pipe/camera_pipe_generator.cpp     Expr rp_b  = correction + avg(r_r(x, y), r_r(x-1, y+1));
Expr              145 apps/camera_pipe/camera_pipe_generator.cpp     Expr rpd_b = absd(r_r(x, y), r_r(x-1, y+1));
Expr              148 apps/camera_pipe/camera_pipe_generator.cpp     Expr rn_b  = correction + avg(r_r(x-1, y), r_r(x, y+1));
Expr              149 apps/camera_pipe/camera_pipe_generator.cpp     Expr rnd_b = absd(r_r(x-1, y), r_r(x, y+1));
Expr              156 apps/camera_pipe/camera_pipe_generator.cpp     Expr bp_r  = correction + avg(b_b(x, y), b_b(x+1, y-1));
Expr              157 apps/camera_pipe/camera_pipe_generator.cpp     Expr bpd_r = absd(b_b(x, y), b_b(x+1, y-1));
Expr              160 apps/camera_pipe/camera_pipe_generator.cpp     Expr bn_r  = correction + avg(b_b(x+1, y), b_b(x, y-1));
Expr              161 apps/camera_pipe/camera_pipe_generator.cpp     Expr bnd_r = absd(b_b(x+1, y), b_b(x, y-1));
Expr              214 apps/camera_pipe/camera_pipe_generator.cpp     Expr kelvin = color_temp;
Expr              217 apps/camera_pipe/camera_pipe_generator.cpp     Expr alpha = (1.0f/kelvin - 1.0f/3200) / (1.0f/7000 - 1.0f/3200);
Expr              218 apps/camera_pipe/camera_pipe_generator.cpp     Expr val =  (matrix_3200(x, y) * alpha + matrix_7000(x, y) * (1 - alpha));
Expr              223 apps/camera_pipe/camera_pipe_generator.cpp     Expr ir = cast<int32_t>(input(x, y, 0));
Expr              224 apps/camera_pipe/camera_pipe_generator.cpp     Expr ig = cast<int32_t>(input(x, y, 1));
Expr              225 apps/camera_pipe/camera_pipe_generator.cpp     Expr ib = cast<int32_t>(input(x, y, 2));
Expr              227 apps/camera_pipe/camera_pipe_generator.cpp     Expr r = matrix(3, 0) + matrix(0, 0) * ir + matrix(1, 0) * ig + matrix(2, 0) * ib;
Expr              228 apps/camera_pipe/camera_pipe_generator.cpp     Expr g = matrix(3, 1) + matrix(0, 1) * ir + matrix(1, 1) * ig + matrix(2, 1) * ib;
Expr              229 apps/camera_pipe/camera_pipe_generator.cpp     Expr b = matrix(3, 2) + matrix(0, 2) * ir + matrix(1, 2) * ig + matrix(2, 2) * ib;
Expr              245 apps/camera_pipe/camera_pipe_generator.cpp     Expr minRaw = 0 + blackLevel;
Expr              246 apps/camera_pipe/camera_pipe_generator.cpp     Expr maxRaw = whiteLevel;
Expr              260 apps/camera_pipe/camera_pipe_generator.cpp     Expr invRange = 1.0f/(maxRaw - minRaw);
Expr              261 apps/camera_pipe/camera_pipe_generator.cpp     Expr b = 2.0f - pow(2.0f, contrast/100.0f);
Expr              262 apps/camera_pipe/camera_pipe_generator.cpp     Expr a = 2.0f - 2.0f*b;
Expr              265 apps/camera_pipe/camera_pipe_generator.cpp     Expr xf = clamp(cast<float>(x - minRaw)*invRange, 0.0f, 1.0f);
Expr              267 apps/camera_pipe/camera_pipe_generator.cpp     Expr g = pow(xf, 1.0f/gamma);
Expr              269 apps/camera_pipe/camera_pipe_generator.cpp     Expr z = select(g > 0.5f,
Expr              274 apps/camera_pipe/camera_pipe_generator.cpp     Expr val = cast(result_type, clamp(z*255.0f+0.5f, 0.0f, 255.0f));
Expr              287 apps/camera_pipe/camera_pipe_generator.cpp         Expr in = input(x, y, c);
Expr              288 apps/camera_pipe/camera_pipe_generator.cpp         Expr u0 = in/lutResample;
Expr              289 apps/camera_pipe/camera_pipe_generator.cpp         Expr u = in%lutResample;
Expr              290 apps/camera_pipe/camera_pipe_generator.cpp         Expr y0 = curve(clamp(u0, 0, 127));
Expr              291 apps/camera_pipe/camera_pipe_generator.cpp         Expr y1 = curve(clamp(u0 + 1, 0, 127));
Expr              315 apps/camera_pipe/camera_pipe_generator.cpp     Expr out_width = processed.output_buffer().width();
Expr              316 apps/camera_pipe/camera_pipe_generator.cpp     Expr out_height = processed.output_buffer().height();
Expr              320 apps/camera_pipe/camera_pipe_generator.cpp     Expr strip_size;
Expr               12 apps/fft/complex.h     Halide::Expr x, y;
Expr               22 apps/fft/complex.h     ComplexExpr(Halide::Expr x, Halide::Expr y = 0.0f) : x(x), y(y) {}
Expr               24 apps/fft/complex.h     Halide::Expr re() { return x; }
Expr               25 apps/fft/complex.h     Halide::Expr im() { return y; }
Expr               41 apps/fft/complex.h inline Halide::Expr re(ComplexExpr z) { return z.re(); }
Expr               42 apps/fft/complex.h inline Halide::Expr im(ComplexExpr z) { return z.im(); }
Expr               43 apps/fft/complex.h inline Halide::Expr re(Halide::Expr x) { return x; }
Expr               44 apps/fft/complex.h inline Halide::Expr im(Halide::Expr x) { return 0.0f; }
Expr               58 apps/fft/complex.h inline ComplexExpr operator+(ComplexExpr a, Halide::Expr b) {
Expr               61 apps/fft/complex.h inline ComplexExpr operator+(Halide::Expr a, ComplexExpr b) {
Expr               67 apps/fft/complex.h inline ComplexExpr operator-(ComplexExpr a, Halide::Expr b) {
Expr               70 apps/fft/complex.h inline ComplexExpr operator-(Halide::Expr a, ComplexExpr b) {
Expr               77 apps/fft/complex.h inline ComplexExpr operator*(ComplexExpr a, Halide::Expr b) {
Expr               80 apps/fft/complex.h inline ComplexExpr operator*(Halide::Expr a, ComplexExpr b) {
Expr               83 apps/fft/complex.h inline ComplexExpr operator/(ComplexExpr a, Halide::Expr b) {
Expr               88 apps/fft/complex.h inline ComplexExpr expj(Halide::Expr x) {
Expr               97 apps/fft/complex.h inline ComplexExpr select(Halide::Expr c, ComplexExpr t, ComplexExpr f) {
Expr              101 apps/fft/complex.h inline ComplexExpr select(Halide::Expr c1, ComplexExpr t1,
Expr              102 apps/fft/complex.h                                                     Halide::Expr c2, ComplexExpr t2,
Expr               36 apps/fft/fft.cpp const ComplexExpr j(Expr(0), Expr(1));
Expr               77 apps/fft/fft.cpp vector<Expr> A(vector<Expr> l, const vector<T> &r) {
Expr               94 apps/fft/fft.cpp             refs.push_back(x(A({Expr(-i - 1)}, args)));
Expr               96 apps/fft/fft.cpp             refs.push_back(x(A({Expr(i)}, args)));
Expr              240 apps/fft/fft.cpp         ComplexExpr dft = x(A({Expr(0)}, args));
Expr              242 apps/fft/fft.cpp                 dft += expj((sign*2*kPi*k*n)/N) * x(A({Expr(k)}, args));
Expr              270 apps/fft/fft.cpp ComplexFunc twiddle_factors(int N, Expr gain, int sign,
Expr              295 apps/fft/fft.cpp                      Expr gain,
Expr              687 apps/fft/fft.cpp     Expr gain = desc.gain;
Expr              708 apps/fft/fft.cpp     Expr zip_n0 = (n0 / zip_width) * zip_width * 2 + (n0 % zip_width);
Expr              728 apps/fft/fft.cpp         Expr unzip_n0 = (n0 / (zip_width * 2)) * zip_width + (n0 % zip_width);
Expr              774 apps/fft/fft.cpp     dft = ComplexFunc(constant_exterior((Func)dft, Tuple(undef_z()), Expr(), Expr(), Expr(0), Expr(N1 / 2)));
Expr              925 apps/fft/fft.cpp         ComplexFunc(repeat_edge((Func)dft0_unzipped, Expr(0), Expr(N0), Expr(0), Expr((N1 + 1) / 2 + 1)));
Expr              939 apps/fft/fft.cpp         Expr n0_X = (n0 / zip_width) * zip_width * 2 + (n0 % zip_width);
Expr              940 apps/fft/fft.cpp         Expr n1_sym = (N1 - n1) % N1;
Expr              945 apps/fft/fft.cpp         Expr n0_Y = n0_X + zip_width;
Expr              963 apps/fft/fft.cpp     ComplexFunc dft_padded = ComplexFunc(repeat_edge((Func)dft, Expr(), Expr(), Expr(0), Expr(N1)));
Expr              967 apps/fft/fft.cpp         Expr unzip_n0 = (n0 / (zip_width * 2)) * zip_width + (n0 % zip_width);
Expr               16 apps/fft/fft.h     Halide::Expr gain = 1.0f;
Expr               32 apps/fft/funct.h     typedef Halide::Expr Expr;
Expr               37 apps/fft/funct.h     explicit FuncT(Expr e) : Func(e) {}
Expr               44 apps/fft/funct.h     FuncRefT<T> operator()(std::vector<Expr> vars) const { return Func::operator()(vars); }
Expr               80 apps/fft/funct.h Halide::Expr operator==(FuncRefT<T> a, T b) { return static_cast<T>(a) == b; }
Expr               82 apps/fft/funct.h Halide::Expr operator!=(FuncRefT<T> a, T b) { return static_cast<T>(a) != b; }
Expr               84 apps/fft/funct.h Halide::Expr operator<=(FuncRefT<T> a, T b) { return static_cast<T>(a) <= b; }
Expr               86 apps/fft/funct.h Halide::Expr operator>=(FuncRefT<T> a, T b) { return static_cast<T>(a) >= b; }
Expr               88 apps/fft/funct.h Halide::Expr operator<(FuncRefT<T> a, T b) { return static_cast<T>(a) < b; }
Expr               90 apps/fft/funct.h Halide::Expr operator>(FuncRefT<T> a, T b) { return static_cast<T>(a) > b; }
Expr               92 apps/fft/funct.h Halide::Expr operator==(T a, FuncRefT<T> b) { return a == static_cast<T>(b); }
Expr               94 apps/fft/funct.h Halide::Expr operator!=(T a, FuncRefT<T> b) { return a != static_cast<T>(b); }
Expr               96 apps/fft/funct.h Halide::Expr operator<=(T a, FuncRefT<T> b) { return a <= static_cast<T>(b); }
Expr               98 apps/fft/funct.h Halide::Expr operator>=(T a, FuncRefT<T> b) { return a >= static_cast<T>(b); }
Expr              100 apps/fft/funct.h Halide::Expr operator<(T a, FuncRefT<T> b) { return a < static_cast<T>(b); }
Expr              102 apps/fft/funct.h Halide::Expr operator>(T a, FuncRefT<T> b) { return a > static_cast<T>(b); }
Expr               17 apps/hexagon_benchmarks/conv3x3_generator.cpp         Expr sum = cast(accumulator_type, 0);
Expr               37 apps/hexagon_benchmarks/conv3x3_generator.cpp             Expr input_stride = input.dim(1).stride();
Expr               40 apps/hexagon_benchmarks/conv3x3_generator.cpp             Expr output_stride = output.dim(1).stride();
Expr               30 apps/hexagon_benchmarks/dilate3x3_generator.cpp             Expr input_stride = input.dim(1).stride();
Expr               33 apps/hexagon_benchmarks/dilate3x3_generator.cpp             Expr output_stride = output.dim(1).stride();
Expr               33 apps/hexagon_benchmarks/gaussian5x5_generator.cpp             Expr input_stride = input.dim(1).stride();
Expr               36 apps/hexagon_benchmarks/gaussian5x5_generator.cpp             Expr output_stride = output.dim(1).stride();
Expr                7 apps/hexagon_benchmarks/median3x3_generator.cpp     static Expr mid(Expr a, Expr b, Expr c) {
Expr               41 apps/hexagon_benchmarks/median3x3_generator.cpp             Expr input_stride = input.dim(1).stride();
Expr               44 apps/hexagon_benchmarks/median3x3_generator.cpp             Expr output_stride = output.dim(1).stride();
Expr               35 apps/hexagon_benchmarks/sobel_generator.cpp             Expr input_stride = input.dim(1).stride();
Expr               38 apps/hexagon_benchmarks/sobel_generator.cpp             Expr output_stride = output.dim(1).stride();
Expr               23 apps/hexagon_matmul/pipeline.cpp         Expr k_extent = A.dim(0).extent();
Expr               52 apps/interpolate/interpolate.cpp             Expr w = input.width()/(1 << l);
Expr               53 apps/interpolate/interpolate.cpp             Expr h = input.height()/(1 << l);
Expr               42 apps/linear_algebra/src/blas_l1_generators.cpp     void Schedule(Func result, Expr width) {
Expr               47 apps/linear_algebra/src/blas_l1_generators.cpp     Expr calc(Arg i) {
Expr               61 apps/linear_algebra/src/blas_l1_generators.cpp         Expr size = x_.width();
Expr               62 apps/linear_algebra/src/blas_l1_generators.cpp         Expr size_vecs = (size / vec_size) * vec_size;
Expr               63 apps/linear_algebra/src/blas_l1_generators.cpp         Expr size_tail = size - size_vecs;
Expr              123 apps/linear_algebra/src/blas_l1_generators.cpp         Expr size = x_.width();
Expr              124 apps/linear_algebra/src/blas_l1_generators.cpp         Expr size_vecs = size / vec_size;
Expr              125 apps/linear_algebra/src/blas_l1_generators.cpp         Expr size_tail = size - size_vecs * vec_size;
Expr              190 apps/linear_algebra/src/blas_l1_generators.cpp         Expr size = x_.width();
Expr              191 apps/linear_algebra/src/blas_l1_generators.cpp         Expr size_vecs = size / vec_size;
Expr              192 apps/linear_algebra/src/blas_l1_generators.cpp         Expr size_tail = size - size_vecs * vec_size;
Expr               49 apps/linear_algebra/src/blas_l2_generators.cpp             const Expr size = A_.height();
Expr               50 apps/linear_algebra/src/blas_l2_generators.cpp             const Expr sum_size = A_.width();
Expr               51 apps/linear_algebra/src/blas_l2_generators.cpp             const Expr sum_size_vecs = sum_size / vec_size;
Expr              116 apps/linear_algebra/src/blas_l2_generators.cpp             const Expr size = A_.width();
Expr              117 apps/linear_algebra/src/blas_l2_generators.cpp             const Expr sum_size = A_.height();
Expr              118 apps/linear_algebra/src/blas_l2_generators.cpp             const Expr sum_size_cols = (sum_size / unroll_size) * unroll_size;
Expr              119 apps/linear_algebra/src/blas_l2_generators.cpp             const Expr tail_size = sum_size - sum_size_cols;
Expr              164 apps/linear_algebra/src/blas_l2_generators.cpp         const Expr size = x_.width();
Expr              211 apps/linear_algebra/src/blas_l2_generators.cpp         Expr num_rows = A_.width();
Expr              212 apps/linear_algebra/src/blas_l2_generators.cpp         Expr num_cols = A_.height();
Expr               32 apps/linear_algebra/src/blas_l3_generators.cpp         const Expr num_rows = A_.width();
Expr               33 apps/linear_algebra/src/blas_l3_generators.cpp         const Expr num_cols = B_.height();
Expr               34 apps/linear_algebra/src/blas_l3_generators.cpp         const Expr sum_size = A_.height();
Expr               23 apps/local_laplacian/local_laplacian_generator.cpp         Expr fx = cast<float>(x) / 256.0f;
Expr               40 apps/local_laplacian/local_laplacian_generator.cpp         Expr level = k * (1.0f / (levels - 1));
Expr               41 apps/local_laplacian/local_laplacian_generator.cpp         Expr idx = gray(x, y)*cast<float>(levels-1)*256.0f;
Expr               66 apps/local_laplacian/local_laplacian_generator.cpp             Expr level = inGPyramid[j](x, y) * cast<float>(levels-1);
Expr               67 apps/local_laplacian/local_laplacian_generator.cpp             Expr li = clamp(cast<int>(level), 0, levels-2);
Expr               68 apps/local_laplacian/local_laplacian_generator.cpp             Expr lf = level - cast<float>(li);
Expr               15 apps/resize/resize.cpp Expr kernel_box(Expr x) {
Expr               16 apps/resize/resize.cpp     Expr xx = abs(x);
Expr               20 apps/resize/resize.cpp Expr kernel_linear(Expr x) {
Expr               21 apps/resize/resize.cpp     Expr xx = abs(x);
Expr               25 apps/resize/resize.cpp Expr kernel_cubic(Expr x) {
Expr               26 apps/resize/resize.cpp     Expr xx = abs(x);
Expr               27 apps/resize/resize.cpp     Expr xx2 = xx * xx;
Expr               28 apps/resize/resize.cpp     Expr xx3 = xx2 * xx;
Expr               36 apps/resize/resize.cpp Expr sinc(Expr x) {
Expr               40 apps/resize/resize.cpp Expr kernel_lanczos(Expr x) {
Expr               41 apps/resize/resize.cpp     Expr value = sinc(x) * sinc(x/3);
Expr               50 apps/resize/resize.cpp     Expr (*kernel)(Expr);
Expr              125 apps/resize/resize.cpp     Expr sourcex = (x + 0.5f) / scaleFactor;
Expr              126 apps/resize/resize.cpp     Expr sourcey = (y + 0.5f) / scaleFactor;
Expr              132 apps/resize/resize.cpp     Expr beginx = cast<int>(sourcex - kernelSize + 0.5f);
Expr              133 apps/resize/resize.cpp     Expr beginy = cast<int>(sourcey - kernelSize + 0.5f);
Expr               29 apps/templates/tests/example_generator.cpp             Expr input_planar = input.stride(0) == 1;
Expr               30 apps/templates/tests/example_generator.cpp             Expr input_chunky = input.stride(2) == 1;
Expr               31 apps/templates/tests/example_generator.cpp             Expr output_planar = output.output_buffer().stride(0) == 1;
Expr               32 apps/templates/tests/example_generator.cpp             Expr output_chunky = output.output_buffer().stride(2) == 1;
Expr               33 apps/templates/tests/example_generator.cpp             Expr stride_specializations[] = {
Expr               39 apps/templates/tests/example_generator.cpp             for (Expr condition : stride_specializations) {
Expr               48 apps/templates/tests/example_generator.cpp         input.set_stride(0, Expr());
Expr               49 apps/templates/tests/example_generator.cpp         output.output_buffer().set_stride(0, Expr());
Expr               23 python_bindings/python/Argument.cpp         .def(p::init<std::string, Argument::Kind, h::Type, uint8_t, h::Expr, h::Expr, h::Expr>(
Expr               26 python_bindings/python/Argument.cpp         .def(p::init<std::string, Argument::Kind, h::Type, uint8_t, h::Expr>(
Expr               27 python_bindings/python/BoundaryConditions.cpp std::vector<std::pair<h::Expr, h::Expr>> inline pyobject_to_bounds(const p::object &pybounds) {
Expr               29 python_bindings/python/BoundaryConditions.cpp     std::vector<std::pair<h::Expr, h::Expr>> result(intermediate.size());
Expr               30 python_bindings/python/BoundaryConditions.cpp     std::transform(intermediate.begin(), intermediate.end(), result.begin(), to_pair<h::Expr, h::Expr>);
Expr               37 python_bindings/python/BoundaryConditions.cpp h::Func constant_exterior0(T func_like, h::Expr value) {
Expr               41 python_bindings/python/BoundaryConditions.cpp h::Func constant_exterior_bounds(h::Func func, h::Expr value, p::object bounds_) {
Expr               18 python_bindings/python/Expr.cpp p::object expr_vector_to_python_tuple(const std::vector<h::Expr> &t) {
Expr               23 python_bindings/python/Expr.cpp         for (const h::Expr &e : t) {
Expr               30 python_bindings/python/Expr.cpp std::vector<h::Expr> python_tuple_to_expr_vector(const p::object &obj) {
Expr               31 python_bindings/python/Expr.cpp     p::extract<h::Expr> expr_extract(obj);
Expr               35 python_bindings/python/Expr.cpp         return python_collection_to_vector<h::Expr>(obj);
Expr               39 python_bindings/python/Expr.cpp std::string expr_repr(const h::Expr &expr) {
Expr               48 python_bindings/python/Expr.cpp h::Expr *expr_from_var_constructor(h::Var &var) {
Expr               49 python_bindings/python/Expr.cpp     return new h::Expr(var);
Expr               53 python_bindings/python/Expr.cpp     using Halide::Expr;
Expr               55 python_bindings/python/Expr.cpp     auto expr_class = p::class_<Expr>("Expr",
Expr               87 python_bindings/python/Expr.cpp                           .def("type", &Expr::type, p::arg("self"),
Expr               96 python_bindings/python/Expr.cpp     p::implicitly_convertible<int, h::Expr>();
Expr               97 python_bindings/python/Expr.cpp     p::implicitly_convertible<float, h::Expr>();
Expr               98 python_bindings/python/Expr.cpp     p::implicitly_convertible<double, h::Expr>();
Expr               10 python_bindings/python/Expr.h boost::python::object expr_vector_to_python_tuple(const std::vector<Halide::Expr> &t);
Expr               11 python_bindings/python/Expr.h std::vector<Halide::Expr> python_tuple_to_expr_vector(const boost::python::object &obj);
Expr              232 python_bindings/python/Func.cpp             .def(p::init<h::Expr>(p::arg("self")));
Expr               61 python_bindings/python/Func.h                         hh::Expr xfactor, hh::Expr yfactor) {
Expr               68 python_bindings/python/Func.h                         hh::Expr xfactor, hh::Expr yfactor) {
Expr               59 python_bindings/python/Func_Ref.cpp             .def("__iadd__", &iadd_func<FuncTupleElementRef &, h::Expr>, p::args("self", "expr"),
Expr               65 python_bindings/python/Func_Ref.cpp             .def("__isub__", &isub_func<FuncTupleElementRef &, h::Expr>, p::args("self", "expr"),
Expr               72 python_bindings/python/Func_Ref.cpp             .def("__imul__", &imul_func<FuncTupleElementRef &, h::Expr>, p::args("self", "expr"),
Expr               79 python_bindings/python/Func_Ref.cpp             .def("__idiv__", &idiv_func<FuncTupleElementRef &, h::Expr>, p::args("self", "expr"),
Expr              108 python_bindings/python/Func_Ref.cpp     add_operators_with<fterc_t, h::Expr>(func_tuple_element_ref_class);
Expr              110 python_bindings/python/Func_Ref.cpp     p::implicitly_convertible<FuncTupleElementRef, h::Expr>();
Expr              136 python_bindings/python/Func_Ref.cpp             .def("__iadd__", &iadd_func<FuncRef &, h::Expr>, p::args("self", "expr"),
Expr              142 python_bindings/python/Func_Ref.cpp             .def("__isub__", &isub_func<FuncRef &, h::Expr>, p::args("self", "expr"),
Expr              148 python_bindings/python/Func_Ref.cpp             .def("__imul__", &imul_func<FuncRef &, h::Expr>, p::args("self", "expr"),
Expr              154 python_bindings/python/Func_Ref.cpp             .def("__idiv__", &idiv_func<FuncRef &, h::Expr>, p::args("self", "expr"),
Expr              189 python_bindings/python/Func_Ref.cpp     add_operators_with<frec_t, h::Expr>(func_ref_expr_class);
Expr              191 python_bindings/python/Func_Ref.cpp     p::implicitly_convertible<FuncRef, h::Expr>();
Expr               20 python_bindings/python/Function.cpp         .def(p::init<h::Expr>(p::args("self", "e")))
Expr               13 python_bindings/python/IROperator.cpp h::Expr reinterpret0(h::Type t, h::Expr e) {
Expr               17 python_bindings/python/IROperator.cpp h::Expr cast0(h::Type t, h::Expr e) {
Expr               21 python_bindings/python/IROperator.cpp h::Expr select0(h::Expr condition, h::Expr true_value, h::Expr false_value) {
Expr               25 python_bindings/python/IROperator.cpp h::Expr select1(h::Expr c1, h::Expr v1,
Expr               26 python_bindings/python/IROperator.cpp                 h::Expr c2, h::Expr v2,
Expr               27 python_bindings/python/IROperator.cpp                 h::Expr default_val) {
Expr               31 python_bindings/python/IROperator.cpp h::Expr select2(h::Expr c1, h::Expr v1,
Expr               32 python_bindings/python/IROperator.cpp                 h::Expr c2, h::Expr v2,
Expr               33 python_bindings/python/IROperator.cpp                 h::Expr c3, h::Expr v3,
Expr               34 python_bindings/python/IROperator.cpp                 h::Expr default_val) {
Expr               39 python_bindings/python/IROperator.cpp h::Expr select3(h::Expr c1, h::Expr v1,
Expr               40 python_bindings/python/IROperator.cpp                 h::Expr c2, h::Expr v2,
Expr               41 python_bindings/python/IROperator.cpp                 h::Expr c3, h::Expr v3,
Expr               42 python_bindings/python/IROperator.cpp                 h::Expr c4, h::Expr v4,
Expr               43 python_bindings/python/IROperator.cpp                 h::Expr default_val) {
Expr               49 python_bindings/python/IROperator.cpp h::Expr select4(h::Expr c1, h::Expr v1,
Expr               50 python_bindings/python/IROperator.cpp                 h::Expr c2, h::Expr v2,
Expr               51 python_bindings/python/IROperator.cpp                 h::Expr c3, h::Expr v3,
Expr               52 python_bindings/python/IROperator.cpp                 h::Expr c4, h::Expr v4,
Expr               53 python_bindings/python/IROperator.cpp                 h::Expr c5, h::Expr v5,
Expr               54 python_bindings/python/IROperator.cpp                 h::Expr default_val) {
Expr               61 python_bindings/python/IROperator.cpp h::Expr select5(h::Expr c1, h::Expr v1,
Expr               62 python_bindings/python/IROperator.cpp                 h::Expr c2, h::Expr v2,
Expr               63 python_bindings/python/IROperator.cpp                 h::Expr c3, h::Expr v3,
Expr               64 python_bindings/python/IROperator.cpp                 h::Expr c4, h::Expr v4,
Expr               65 python_bindings/python/IROperator.cpp                 h::Expr c5, h::Expr v5,
Expr               66 python_bindings/python/IROperator.cpp                 h::Expr c6, h::Expr v6,
Expr               67 python_bindings/python/IROperator.cpp                 h::Expr default_val) {
Expr               75 python_bindings/python/IROperator.cpp h::Expr select6(h::Expr c1, h::Expr v1,
Expr               76 python_bindings/python/IROperator.cpp                 h::Expr c2, h::Expr v2,
Expr               77 python_bindings/python/IROperator.cpp                 h::Expr c3, h::Expr v3,
Expr               78 python_bindings/python/IROperator.cpp                 h::Expr c4, h::Expr v4,
Expr               79 python_bindings/python/IROperator.cpp                 h::Expr c5, h::Expr v5,
Expr               80 python_bindings/python/IROperator.cpp                 h::Expr c6, h::Expr v6,
Expr               81 python_bindings/python/IROperator.cpp                 h::Expr c7, h::Expr v7,
Expr               82 python_bindings/python/IROperator.cpp                 h::Expr default_val) {
Expr               91 python_bindings/python/IROperator.cpp h::Expr select7(h::Expr c1, h::Expr v1,
Expr               92 python_bindings/python/IROperator.cpp                 h::Expr c2, h::Expr v2,
Expr               93 python_bindings/python/IROperator.cpp                 h::Expr c3, h::Expr v3,
Expr               94 python_bindings/python/IROperator.cpp                 h::Expr c4, h::Expr v4,
Expr               95 python_bindings/python/IROperator.cpp                 h::Expr c5, h::Expr v5,
Expr               96 python_bindings/python/IROperator.cpp                 h::Expr c6, h::Expr v6,
Expr               97 python_bindings/python/IROperator.cpp                 h::Expr c7, h::Expr v7,
Expr               98 python_bindings/python/IROperator.cpp                 h::Expr c8, h::Expr v8,
Expr               99 python_bindings/python/IROperator.cpp                 h::Expr default_val) {
Expr              109 python_bindings/python/IROperator.cpp h::Expr select8(h::Expr c1, h::Expr v1,
Expr              110 python_bindings/python/IROperator.cpp                 h::Expr c2, h::Expr v2,
Expr              111 python_bindings/python/IROperator.cpp                 h::Expr c3, h::Expr v3,
Expr              112 python_bindings/python/IROperator.cpp                 h::Expr c4, h::Expr v4,
Expr              113 python_bindings/python/IROperator.cpp                 h::Expr c5, h::Expr v5,
Expr              114 python_bindings/python/IROperator.cpp                 h::Expr c6, h::Expr v6,
Expr              115 python_bindings/python/IROperator.cpp                 h::Expr c7, h::Expr v7,
Expr              116 python_bindings/python/IROperator.cpp                 h::Expr c8, h::Expr v8,
Expr              117 python_bindings/python/IROperator.cpp                 h::Expr c9, h::Expr v9,
Expr              118 python_bindings/python/IROperator.cpp                 h::Expr default_val) {
Expr              129 python_bindings/python/IROperator.cpp h::Expr select9(h::Expr c1, h::Expr v1,
Expr              130 python_bindings/python/IROperator.cpp                 h::Expr c2, h::Expr v2,
Expr              131 python_bindings/python/IROperator.cpp                 h::Expr c3, h::Expr v3,
Expr              132 python_bindings/python/IROperator.cpp                 h::Expr c4, h::Expr v4,
Expr              133 python_bindings/python/IROperator.cpp                 h::Expr c5, h::Expr v5,
Expr              134 python_bindings/python/IROperator.cpp                 h::Expr c6, h::Expr v6,
Expr              135 python_bindings/python/IROperator.cpp                 h::Expr c7, h::Expr v7,
Expr              136 python_bindings/python/IROperator.cpp                 h::Expr c8, h::Expr v8,
Expr              137 python_bindings/python/IROperator.cpp                 h::Expr c9, h::Expr v9,
Expr              138 python_bindings/python/IROperator.cpp                 h::Expr c10, h::Expr v10,
Expr              139 python_bindings/python/IROperator.cpp                 h::Expr default_val) {
Expr              152 python_bindings/python/IROperator.cpp h::Expr print_when0(h::Expr condition, p::tuple values_passed) {
Expr              154 python_bindings/python/IROperator.cpp     std::vector<h::Expr> values;
Expr              159 python_bindings/python/IROperator.cpp         p::extract<h::Expr &> expr_extract(o);
Expr              176 python_bindings/python/IROperator.cpp h::Expr random_float0() {
Expr              180 python_bindings/python/IROperator.cpp h::Expr random_float1(h::Expr seed) {
Expr              184 python_bindings/python/IROperator.cpp h::Expr random_int0() {
Expr              188 python_bindings/python/IROperator.cpp h::Expr random_int1(h::Expr seed) {
Expr              192 python_bindings/python/IROperator.cpp h::Expr undef0(h::Type type) {
Expr              196 python_bindings/python/IROperator.cpp h::Expr memoize_tag0(h::Expr result, const std::vector<h::Expr> &cache_key_values) {
Expr              203 python_bindings/python/IROperator.cpp     h::Expr (*max_exprs)(h::Expr, h::Expr) = &h::max;
Expr              204 python_bindings/python/IROperator.cpp     h::Expr (*max_expr_int)(const h::Expr &, int) = &h::max;
Expr              205 python_bindings/python/IROperator.cpp     h::Expr (*max_int_expr)(int, const h::Expr &) = &h::max;
Expr              207 python_bindings/python/IROperator.cpp     h::Expr (*min_exprs)(h::Expr, h::Expr) = &h::min;
Expr              208 python_bindings/python/IROperator.cpp     h::Expr (*min_expr_int)(const h::Expr &, int) = &h::min;
Expr              209 python_bindings/python/IROperator.cpp     h::Expr (*min_int_expr)(int, const h::Expr &) = &h::min;
Expr               47 python_bindings/python/Image.cpp h::Expr buffer_call_operator_tuple(h::Buffer<T> &that, p::tuple &args_passed) {
Expr               48 python_bindings/python/Image.cpp     std::vector<h::Expr> expr_args;
Expr               50 python_bindings/python/Image.cpp         expr_args.push_back(p::extract<h::Expr>(args_passed[i]));
Expr              245 python_bindings/python/Image.cpp     using h::Expr;
Expr              363 python_bindings/python/Image.cpp         .def("__getitem__", buffer_call_operator<Expr, T, Expr>,
Expr              367 python_bindings/python/Image.cpp         .def("__getitem__", buffer_call_operator<Expr, T, Expr, Expr>,
Expr              371 python_bindings/python/Image.cpp         .def("__getitem__", buffer_call_operator<Expr, T, Expr, Expr, Expr>,
Expr              374 python_bindings/python/Image.cpp         .def("__getitem__", buffer_call_operator<Expr, T, Expr, Expr, Expr, Expr>,
Expr               15 python_bindings/python/InlineReductions.cpp h::Expr sum0(h::Expr e, const std::string name) {
Expr               19 python_bindings/python/InlineReductions.cpp h::Expr sum1(h::RDom r, h::Expr e, const std::string name) {
Expr               23 python_bindings/python/InlineReductions.cpp h::Expr product0(h::Expr e, const std::string name) {
Expr               27 python_bindings/python/InlineReductions.cpp h::Expr product1(h::RDom r, h::Expr e, const std::string name) {
Expr               31 python_bindings/python/InlineReductions.cpp h::Expr maximum0(h::Expr e, const std::string name) {
Expr               35 python_bindings/python/InlineReductions.cpp h::Expr maximum1(h::RDom r, h::Expr e, const std::string name) {
Expr               39 python_bindings/python/InlineReductions.cpp h::Expr minimum0(h::Expr e, const std::string name) {
Expr               43 python_bindings/python/InlineReductions.cpp h::Expr minimum1(h::RDom r, h::Expr e, const std::string name) {
Expr               47 python_bindings/python/InlineReductions.cpp p::object argmin0(h::Expr e, const std::string name) {
Expr               51 python_bindings/python/InlineReductions.cpp p::object argmin1(h::RDom r, h::Expr e, const std::string name) {
Expr               55 python_bindings/python/InlineReductions.cpp p::object argmax0(h::Expr e, const std::string name) {
Expr               59 python_bindings/python/InlineReductions.cpp p::object argmax1(h::RDom r, h::Expr e, const std::string name) {
Expr               10 python_bindings/python/Lambda.cpp h::Func lambda0D(h::Expr e) {
Expr               14 python_bindings/python/Lambda.cpp h::Func lambda1D(h::Var x, h::Expr e) {
Expr               18 python_bindings/python/Lambda.cpp h::Func lambda2D(h::Var x, h::Var y, h::Expr e) {
Expr               22 python_bindings/python/Lambda.cpp h::Func lambda3D(h::Var x, h::Var y, h::Var z, h::Expr e) {
Expr               26 python_bindings/python/Lambda.cpp h::Func lambda4D(h::Var x, h::Var y, h::Var z, h::Var w, h::Expr e) {
Expr               30 python_bindings/python/Lambda.cpp h::Func lambda5D(h::Var x, h::Var y, h::Var z, h::Var w, h::Var v, h::Expr e) {
Expr               19 python_bindings/python/Param.cpp h::Expr imageparam_to_expr_operator0(h::ImageParam &that, p::tuple args_passed) {
Expr               20 python_bindings/python/Param.cpp     std::vector<h::Expr> expr_args;
Expr               25 python_bindings/python/Param.cpp         expr_args.push_back(p::extract<h::Expr>(args_passed[i]));
Expr               31 python_bindings/python/Param.cpp h::Expr imageparam_to_expr_operator1(h::ImageParam &that, h::Expr an_expr) {
Expr               32 python_bindings/python/Param.cpp     std::vector<h::Expr> expr_args;
Expr              279 python_bindings/python/Param.cpp h::Expr param_as_expr(h::Param<T> &that) {
Expr              280 python_bindings/python/Param.cpp     return static_cast<h::Expr>(that);
Expr              317 python_bindings/python/Param.cpp         .def(p::init<T, h::Expr, h::Expr>(
Expr              321 python_bindings/python/Param.cpp         .def(p::init<std::string, T, h::Expr, h::Expr>(
Expr              376 python_bindings/python/Param.cpp     p::implicitly_convertible<Param<T>, h::Expr>();
Expr              381 python_bindings/python/Param.cpp     add_operators_with<pc_t, h::Expr>(param_class);
Expr              535 python_bindings/python/Param.cpp     p::object call_create_param_object(T true_val, std::string name, h::Expr min, h::Expr max) {
Expr              540 python_bindings/python/Param.cpp     p::object call_create_param_object(T true_val, h::Expr min, h::Expr max) {
Expr              585 python_bindings/python/Param.cpp     static p::object create_param4(h::Type type, p::object val, h::Expr min, h::Expr max) {
Expr              586 python_bindings/python/Param.cpp         return create_param1_impl_t<pixel_types_t, h::Expr, h::Expr>()(type, val, min, max);
Expr              589 python_bindings/python/Param.cpp     static p::object create_param5(h::Type type, std::string name, p::object val, h::Expr min, h::Expr max) {
Expr              590 python_bindings/python/Param.cpp         return create_param1_impl_t<pixel_types_t, std::string, h::Expr, h::Expr>()(type, val, name, min, max);
Expr               44 python_bindings/python/RDom.cpp     p::implicitly_convertible<RVar, h::Expr>();
Expr               47 python_bindings/python/RDom.cpp     add_operators_with<decltype(rvar_class), h::Expr>(rvar_class);
Expr               58 python_bindings/python/RDom.cpp     std::vector<h::Expr> exprs;
Expr               62 python_bindings/python/RDom.cpp         p::extract<h::Expr> expr_extract(o);
Expr               77 python_bindings/python/RDom.cpp     std::vector<std::pair<h::Expr, h::Expr>> ranges;
Expr               85 python_bindings/python/RDom.cpp h::RDom *RDom_constructor1(h::Expr min0, h::Expr extent0,
Expr               87 python_bindings/python/RDom.cpp     std::vector<std::pair<h::Expr, h::Expr>> ranges;
Expr               92 python_bindings/python/RDom.cpp h::RDom *RDom_constructor2(h::Expr min0, h::Expr extent0,
Expr               93 python_bindings/python/RDom.cpp                            h::Expr min1, h::Expr extent1,
Expr               95 python_bindings/python/RDom.cpp     std::vector<std::pair<h::Expr, h::Expr>> ranges;
Expr              101 python_bindings/python/RDom.cpp h::RDom *RDom_constructor3(h::Expr min0, h::Expr extent0,
Expr              102 python_bindings/python/RDom.cpp                            h::Expr min1, h::Expr extent1,
Expr              103 python_bindings/python/RDom.cpp                            h::Expr min2, h::Expr extent2,
Expr              105 python_bindings/python/RDom.cpp     std::vector<std::pair<h::Expr, h::Expr>> ranges;
Expr              112 python_bindings/python/RDom.cpp h::RDom *RDom_constructor4(h::Expr min0, h::Expr extent0,
Expr              113 python_bindings/python/RDom.cpp                            h::Expr min1, h::Expr extent1,
Expr              114 python_bindings/python/RDom.cpp                            h::Expr min2, h::Expr extent2,
Expr              115 python_bindings/python/RDom.cpp                            h::Expr min3, h::Expr extent3,
Expr              117 python_bindings/python/RDom.cpp     std::vector<std::pair<h::Expr, h::Expr>> ranges;
Expr              227 python_bindings/python/RDom.cpp     p::implicitly_convertible<RDom, h::Expr>();
Expr              231 python_bindings/python/RDom.cpp     add_operators_with<decltype(rdom_class), h::Expr>(rdom_class);
Expr               38 python_bindings/python/Var.cpp h::Expr var_as_expr(h::Var &that) {
Expr               39 python_bindings/python/Var.cpp     return static_cast<h::Expr>(that);
Expr              123 python_bindings/python/Var.cpp     add_operators_with<decltype(var_class), h::Expr>(var_class);
Expr              125 python_bindings/python/Var.cpp     p::implicitly_convertible<Var, h::Expr>();
Expr               96 src/AddImageChecks.cpp     vector<pair<string, Expr>> lets_overflow;
Expr               97 src/AddImageChecks.cpp     vector<pair<string, Expr>> lets_required;
Expr               98 src/AddImageChecks.cpp     vector<pair<string, Expr>> lets_constrained;
Expr               99 src/AddImageChecks.cpp     vector<pair<string, Expr>> lets_proposed;
Expr              109 src/AddImageChecks.cpp     Expr maybe_return_condition = const_false();
Expr              115 src/AddImageChecks.cpp     map<string, Expr> replace_with_required;
Expr              123 src/AddImageChecks.cpp             Expr min_required = Variable::make(Int(32), name + ".min." + dim + ".required");
Expr              126 src/AddImageChecks.cpp             Expr extent_required = Variable::make(Int(32), name + ".extent." + dim + ".required");
Expr              129 src/AddImageChecks.cpp             Expr stride_required = Variable::make(Int(32), name + ".stride." + dim + ".required");
Expr              138 src/AddImageChecks.cpp     map<string, Expr> replace_with_constrained;
Expr              194 src/AddImageChecks.cpp                 Expr query_buf = Variable::make(type_of<struct halide_buffer_t *>(),
Expr              197 src/AddImageChecks.cpp                     Expr min = Call::make(Int(32), Call::buffer_get_min,
Expr              199 src/AddImageChecks.cpp                     Expr max = Call::make(Int(32), Call::buffer_get_max,
Expr              210 src/AddImageChecks.cpp         Expr handle = Variable::make(type_of<buffer_t *>(), name + ".buffer",
Expr              212 src/AddImageChecks.cpp         Expr inference_mode = Call::make(Bool(), Call::buffer_is_bounds_query,
Expr              225 src/AddImageChecks.cpp             Expr type_code = Variable::make(UInt(8), type_code_name, image, param, rdom);
Expr              226 src/AddImageChecks.cpp             Expr type_bits = Variable::make(UInt(8), type_bits_name, image, param, rdom);
Expr              227 src/AddImageChecks.cpp             Expr type_lanes = Variable::make(UInt(16), type_lanes_name, image, param, rdom);
Expr              228 src/AddImageChecks.cpp             Expr error = Call::make(Int(32), "halide_error_bad_type",
Expr              252 src/AddImageChecks.cpp             Expr actual_min = Variable::make(Int(32), actual_min_name, image, param, rdom);
Expr              253 src/AddImageChecks.cpp             Expr actual_extent = Variable::make(Int(32), actual_extent_name, image, param, rdom);
Expr              254 src/AddImageChecks.cpp             Expr actual_stride = Variable::make(Int(32), actual_stride_name, image, param, rdom);
Expr              262 src/AddImageChecks.cpp             Expr min_required = touched.empty() ? actual_min : touched[j].min;
Expr              263 src/AddImageChecks.cpp             Expr extent_required = touched.empty() ? actual_extent : (touched[j].max + 1 - touched[j].min);
Expr              273 src/AddImageChecks.cpp             Expr min_required_var = Variable::make(Int(32), min_required_name);
Expr              274 src/AddImageChecks.cpp             Expr extent_required_var = Variable::make(Int(32), extent_required_name);
Expr              279 src/AddImageChecks.cpp             Expr actual_max = actual_min + actual_extent - 1;
Expr              280 src/AddImageChecks.cpp             Expr max_required = min_required_var + extent_required_var - 1;
Expr              286 src/AddImageChecks.cpp             Expr oob_condition = actual_min <= min_required_var && actual_max >= max_required;
Expr              288 src/AddImageChecks.cpp             Expr oob_error = Call::make(Int(32), "halide_error_access_out_of_bounds",
Expr              301 src/AddImageChecks.cpp             Expr stride_required;
Expr              318 src/AddImageChecks.cpp             Expr max_size = make_const(UInt(64), t.maximum_buffer_size());
Expr              319 src/AddImageChecks.cpp             Expr max_extent = make_const(UInt(64), 0x7fffffff);
Expr              320 src/AddImageChecks.cpp             Expr actual_size = abs(cast<int64_t>(actual_extent) * actual_stride);
Expr              321 src/AddImageChecks.cpp             Expr allocation_size_error = Call::make(Int(32), "halide_error_buffer_allocation_too_large",
Expr              332 src/AddImageChecks.cpp                     Expr last_dim = Variable::make(Int(64), name + ".total_extent." + std::to_string(j-1));
Expr              333 src/AddImageChecks.cpp                     Expr this_dim = actual_extent * last_dim;
Expr              334 src/AddImageChecks.cpp                     Expr this_dim_var = Variable::make(Int(64), name + ".total_extent." + dim);
Expr              336 src/AddImageChecks.cpp                     Expr error = Call::make(Int(32), "halide_error_buffer_extents_too_large",
Expr              343 src/AddImageChecks.cpp                 Expr negative_extent_condition = actual_extent >= 0;
Expr              344 src/AddImageChecks.cpp                 Expr negative_extent_error = Call::make(Int(32), "halide_error_buffer_extents_negative",
Expr              370 src/AddImageChecks.cpp         vector<pair<Expr, Expr>> constraints;
Expr              377 src/AddImageChecks.cpp             Expr stride_constrained, extent_constrained, min_constrained;
Expr              379 src/AddImageChecks.cpp             Expr stride_orig = Variable::make(Int(32), stride_name, image, param, rdom);
Expr              380 src/AddImageChecks.cpp             Expr extent_orig = Variable::make(Int(32), extent_name, image, param, rdom);
Expr              381 src/AddImageChecks.cpp             Expr min_orig    = Variable::make(Int(32), min_name, image, param, rdom);
Expr              383 src/AddImageChecks.cpp             Expr stride_required = Variable::make(Int(32), stride_name + ".required");
Expr              384 src/AddImageChecks.cpp             Expr extent_required = Variable::make(Int(32), extent_name + ".required");
Expr              385 src/AddImageChecks.cpp             Expr min_required = Variable::make(Int(32), min_name + ".required");
Expr              387 src/AddImageChecks.cpp             Expr stride_proposed = Variable::make(Int(32), stride_name + ".proposed");
Expr              388 src/AddImageChecks.cpp             Expr extent_proposed = Variable::make(Int(32), extent_name + ".proposed");
Expr              389 src/AddImageChecks.cpp             Expr min_proposed = Variable::make(Int(32), min_name + ".proposed");
Expr              460 src/AddImageChecks.cpp             Expr max_proposed = min_proposed + extent_proposed - 1;
Expr              461 src/AddImageChecks.cpp             Expr max_required = min_required + extent_required - 1;
Expr              462 src/AddImageChecks.cpp             Expr check = (min_proposed <= min_required) && (max_proposed >= max_required);
Expr              463 src/AddImageChecks.cpp             Expr error = Call::make(Int(32), "halide_error_constraints_make_required_region_smaller",
Expr              480 src/AddImageChecks.cpp             Expr var = constraints[i].first;
Expr              482 src/AddImageChecks.cpp             Expr constrained_var = Variable::make(Int(32), name + ".constrained");
Expr              492 src/AddImageChecks.cpp             Expr error = Call::make(Int(32), "halide_error_constraint_violated",
Expr              502 src/AddImageChecks.cpp             Expr host_ptr = Variable::make(Handle(), host_name);
Expr              503 src/AddImageChecks.cpp             Expr u64t_host_ptr = reinterpret<uint64_t>(host_ptr);
Expr              504 src/AddImageChecks.cpp             Expr align_condition = (u64t_host_ptr % alignment_required) == 0;
Expr              505 src/AddImageChecks.cpp             Expr error = Call::make(Int(32), "halide_error_unaligned_host_ptr",
Expr               36 src/AddParameterChecks.cpp     map<string, Expr> replace_with_constrained;
Expr               37 src/AddParameterChecks.cpp     vector<pair<string, Expr>> lets;
Expr               40 src/AddParameterChecks.cpp         Expr condition;
Expr               41 src/AddParameterChecks.cpp         Expr value, limit_value;
Expr               57 src/AddParameterChecks.cpp             Expr constrained_var = Variable::make(param.type(), constrained_name);
Expr               58 src/AddParameterChecks.cpp             Expr constrained_value = Variable::make(param.type(), i.first, param);
Expr              123 src/AddParameterChecks.cpp         Expr error = Call::make(Int(32), error_call_name,
Expr               36 src/AlignLoads.cpp     Expr make_load(const Load *load, Expr index) {
Expr               61 src/AlignLoads.cpp         Expr index = mutate(op->index);
Expr              108 src/AlignLoads.cpp             Expr dense_base = simplify(ramp->base - shift);
Expr              109 src/AlignLoads.cpp             Expr dense_index = Ramp::make(dense_base, 1, lanes*stride);
Expr              110 src/AlignLoads.cpp             Expr dense = make_load(op, dense_index);
Expr              122 src/AlignLoads.cpp             Expr native_load = make_load(op, Ramp::make(ramp->base, 1, native_lanes));
Expr              132 src/AlignLoads.cpp             vector<Expr> slices;
Expr              135 src/AlignLoads.cpp                 Expr slice_base = simplify(ramp->base + i);
Expr              146 src/AlignLoads.cpp             Expr aligned_base = simplify(ramp->base - aligned_offset);
Expr              147 src/AlignLoads.cpp             Expr aligned_load = make_load(op, Ramp::make(aligned_base, 1, lanes*2));
Expr              162 src/AlignLoads.cpp         Expr value = mutate(op->value);
Expr               73 src/AllocationBoundsInference.cpp             Expr min, max, extent;
Expr               93 src/AllocationBoundsInference.cpp                 Expr max_plus_one = max + 1;
Expr              101 src/AllocationBoundsInference.cpp             Expr min_var = Variable::make(Int(32), min_name);
Expr              102 src/AllocationBoundsInference.cpp             Expr max_var = Variable::make(Int(32), max_name);
Expr              107 src/AllocationBoundsInference.cpp             Expr error_msg = Call::make(Int(32), "halide_error_explicit_bounds_too_small",
Expr               13 src/ApplySplit.cpp                                      map<string, Expr> &dim_extent_alignment) {
Expr               16 src/ApplySplit.cpp     Expr outer = Variable::make(Int(32), prefix + split.outer);
Expr               17 src/ApplySplit.cpp     Expr outer_max = Variable::make(Int(32), prefix + split.outer + ".loop_max");
Expr               19 src/ApplySplit.cpp         Expr inner = Variable::make(Int(32), prefix + split.inner);
Expr               20 src/ApplySplit.cpp         Expr old_max = Variable::make(Int(32), prefix + split.old_var + ".loop_max");
Expr               21 src/ApplySplit.cpp         Expr old_min = Variable::make(Int(32), prefix + split.old_var + ".loop_min");
Expr               22 src/ApplySplit.cpp         Expr old_extent = Variable::make(Int(32), prefix + split.old_var + ".loop_extent");
Expr               26 src/ApplySplit.cpp         Expr base = outer * split.factor + old_min;
Expr               28 src/ApplySplit.cpp         Expr base_var = Variable::make(Int(32), base_name);
Expr               30 src/ApplySplit.cpp         Expr old_var = Variable::make(Int(32), old_var_name);
Expr               32 src/ApplySplit.cpp         map<string, Expr>::iterator iter = dim_extent_alignment.find(split.old_var);
Expr               59 src/ApplySplit.cpp             Expr rebased = outer * split.factor + inner;
Expr               61 src/ApplySplit.cpp             Expr rebased_var = Variable::make(Int(32), rebased_var_name);
Expr               68 src/ApplySplit.cpp             Expr cond = likely(rebased_var < old_extent);
Expr               94 src/ApplySplit.cpp         Expr fused = Variable::make(Int(32), prefix + split.old_var);
Expr               95 src/ApplySplit.cpp         Expr inner_min = Variable::make(Int(32), prefix + split.inner + ".loop_min");
Expr               96 src/ApplySplit.cpp         Expr outer_min = Variable::make(Int(32), prefix + split.outer + ".loop_min");
Expr               97 src/ApplySplit.cpp         Expr inner_extent = Variable::make(Int(32), prefix + split.inner + ".loop_extent");
Expr              104 src/ApplySplit.cpp         Expr factor = max(inner_extent, 1);
Expr              105 src/ApplySplit.cpp         Expr inner = fused % factor + inner_min;
Expr              106 src/ApplySplit.cpp         Expr outer = fused / factor + outer_min;
Expr              115 src/ApplySplit.cpp         map<string, Expr>::iterator inner_dim = dim_extent_alignment.find(split.inner);
Expr              116 src/ApplySplit.cpp         map<string, Expr>::iterator outer_dim = dim_extent_alignment.find(split.outer);
Expr              130 src/ApplySplit.cpp vector<std::pair<string, Expr>> compute_loop_bounds_after_split(const Split &split, string prefix) {
Expr              135 src/ApplySplit.cpp     vector<std::pair<string, Expr>> let_stmts;
Expr              137 src/ApplySplit.cpp     Expr old_var_extent = Variable::make(Int(32), prefix + split.old_var + ".loop_extent");
Expr              138 src/ApplySplit.cpp     Expr old_var_max = Variable::make(Int(32), prefix + split.old_var + ".loop_max");
Expr              139 src/ApplySplit.cpp     Expr old_var_min = Variable::make(Int(32), prefix + split.old_var + ".loop_min");
Expr              141 src/ApplySplit.cpp         Expr inner_extent = split.factor;
Expr              142 src/ApplySplit.cpp         Expr outer_extent = (old_var_max - old_var_min + split.factor)/split.factor;
Expr              151 src/ApplySplit.cpp         Expr inner_extent = Variable::make(Int(32), prefix + split.inner + ".loop_extent");
Expr              152 src/ApplySplit.cpp         Expr outer_extent = Variable::make(Int(32), prefix + split.outer + ".loop_extent");
Expr              153 src/ApplySplit.cpp         Expr fused_extent = inner_extent * outer_extent;
Expr               27 src/ApplySplit.h     Expr value;
Expr               32 src/ApplySplit.h     ApplySplitResult(const std::string &n, Expr val, Type t)
Expr               34 src/ApplySplit.h     ApplySplitResult(Expr val) : name(""), value(val), type(Predicate) {}
Expr               48 src/ApplySplit.h     std::map<std::string, Expr> &dim_extent_alignment);
Expr               52 src/ApplySplit.h std::vector<std::pair<std::string, Expr>> compute_loop_bounds_after_split(
Expr               58 src/Argument.h     Expr def, min, max;
Expr               62 src/Argument.h                 Expr _def = Expr(),
Expr               63 src/Argument.h                 Expr _min = Expr(),
Expr               64 src/Argument.h                 Expr _max = Expr()) :
Expr              108 src/AssociativeOpsTable.cpp     Expr x0 = Variable::make(t, "x0");      \
Expr              109 src/AssociativeOpsTable.cpp     Expr y0 = Variable::make(t, "y0");      \
Expr              110 src/AssociativeOpsTable.cpp     Expr x1 = Variable::make(t, "x1");      \
Expr              111 src/AssociativeOpsTable.cpp     Expr y1 = Variable::make(t, "y1");      \
Expr              112 src/AssociativeOpsTable.cpp     Expr k0 = Variable::make(t, "k0");      \
Expr              113 src/AssociativeOpsTable.cpp     Expr zero = make_const(t, 0);           \
Expr              114 src/AssociativeOpsTable.cpp     Expr one = make_const(t, 1);            \
Expr              115 src/AssociativeOpsTable.cpp     Expr neg_one = make_const(t, -1);       \
Expr              116 src/AssociativeOpsTable.cpp     Expr tmax = t.max();                    \
Expr              117 src/AssociativeOpsTable.cpp     Expr tmin = t.min();                    \
Expr              215 src/AssociativeOpsTable.cpp     Expr k0_uint16 = Variable::make(UInt(16), "k0");
Expr              216 src/AssociativeOpsTable.cpp     Expr k0_uint32 = Variable::make(UInt(32), "k0");
Expr              217 src/AssociativeOpsTable.cpp     Expr k0_uint64 = Variable::make(UInt(64), "k0");
Expr              235 src/AssociativeOpsTable.cpp     Expr k0_uint32 = Variable::make(UInt(32), "k0");
Expr              236 src/AssociativeOpsTable.cpp     Expr k0_uint64 = Variable::make(UInt(64), "k0");
Expr              253 src/AssociativeOpsTable.cpp     Expr k0_uint64 = Variable::make(UInt(64), "k0");
Expr              321 src/AssociativeOpsTable.cpp const vector<AssociativePattern> &get_ops_table(const vector<Expr> &exprs) {
Expr               33 src/AssociativeOpsTable.h     std::vector<Expr> ops;
Expr               35 src/AssociativeOpsTable.h     std::vector<Expr> identities;
Expr               41 src/AssociativeOpsTable.h     AssociativePattern(const std::vector<Expr> &ops, const std::vector<Expr> &ids, bool is_commutative)
Expr               43 src/AssociativeOpsTable.h     AssociativePattern(Expr op, Expr id, bool is_commutative)
Expr               62 src/AssociativeOpsTable.h const std::vector<AssociativePattern> &get_ops_table(const std::vector<Expr> &exprs);
Expr               44 src/Associativity.cpp     const vector<Expr> &args;
Expr               86 src/Associativity.cpp     ConvertSelfRef(const string &f, const vector<Expr> &args, int idx,
Expr               92 src/Associativity.cpp     Expr x_part; // Undefined if there is no self-reference at value_index
Expr               95 src/Associativity.cpp bool associative_op_pattern_match(Expr e,
Expr               96 src/Associativity.cpp                                   const Expr &op,
Expr              100 src/Associativity.cpp                                   map<string, Expr> &match) {
Expr              102 src/Associativity.cpp     map<string, Expr> result;
Expr              159 src/Associativity.cpp                 const vector<string> &op_y_names, const vector<Expr> &x_parts,
Expr              160 src/Associativity.cpp                 const vector<Expr> &exprs, AssociativeOp &assoc_op) {
Expr              173 src/Associativity.cpp         map<string, Expr> pattern_match;
Expr              188 src/Associativity.cpp         vector<pair<Expr, Expr>> replacement; // find -> replacement
Expr              196 src/Associativity.cpp             Expr y_part = y_iter->second;
Expr              209 src/Associativity.cpp             Expr e = exprs[index];
Expr              228 src/Associativity.cpp bool extract_associative_op(const vector<Expr> exprs, const vector<string> &op_x_names,
Expr              229 src/Associativity.cpp                             const vector<string> &op_y_names, const vector<Expr> &x_parts,
Expr              240 src/Associativity.cpp         assoc_op.xs[0] = {"", Expr()};
Expr              308 src/Associativity.cpp AssociativeOp prove_associativity(const string &f, vector<Expr> args, vector<Expr> exprs) {
Expr              311 src/Associativity.cpp     for (Expr &arg : args) {
Expr              324 src/Associativity.cpp     vector<Expr> x_parts(exprs.size());
Expr              384 src/Associativity.cpp         vector<Expr> sub_exprs = get_subvector(exprs, subgraphs[i]);
Expr              387 src/Associativity.cpp         vector<Expr> sub_x_parts = get_subvector(x_parts, subgraphs[i]);
Expr              446 src/Associativity.cpp std::string print_args(const string &f, const vector<Expr> &args, const vector<Expr> &exprs) {
Expr              472 src/Associativity.cpp void check_associativity(const string &f, vector<Expr> args, vector<Expr> exprs,
Expr              480 src/Associativity.cpp         map<string, Expr> replacement;
Expr              505 src/Associativity.cpp             Expr expected_op = substitute(replacement, assoc_op.pattern.ops[i]);
Expr              530 src/Associativity.cpp         Expr x = Variable::make(t, "x");
Expr              531 src/Associativity.cpp         Expr y = Variable::make(t, "y");
Expr              532 src/Associativity.cpp         Expr x_idx = Variable::make(Int(32), "x_idx");
Expr              533 src/Associativity.cpp         Expr f_call_0 = Call::make(t, "f", {x_idx}, Call::CallType::Halide, nullptr, 0);
Expr              575 src/Associativity.cpp         Expr x = Variable::make(t, "x");
Expr              576 src/Associativity.cpp         Expr y = Variable::make(t, "y");
Expr              577 src/Associativity.cpp         Expr x_idx = Variable::make(Int(32), "x_idx");
Expr              578 src/Associativity.cpp         Expr f_call_0 = Call::make(t, "f", {x_idx}, Call::CallType::Halide, nullptr, 0);
Expr              600 src/Associativity.cpp     Expr x = Variable::make(t, "x");
Expr              601 src/Associativity.cpp     Expr y = Variable::make(t, "y");
Expr              602 src/Associativity.cpp     Expr z = Variable::make(t, "z");
Expr              603 src/Associativity.cpp     Expr rx = Variable::make(t, "rx");
Expr              605 src/Associativity.cpp     vector<Expr> xs(4), ys(4), zs(4);
Expr              612 src/Associativity.cpp     Expr f_call_0 = Call::make(t, "f", {x}, Call::CallType::Halide, nullptr, 0);
Expr              613 src/Associativity.cpp     Expr f_call_1 = Call::make(t, "f", {x}, Call::CallType::Halide, nullptr, 1);
Expr              614 src/Associativity.cpp     Expr f_call_2 = Call::make(t, "f", {x}, Call::CallType::Halide, nullptr, 2);
Expr              615 src/Associativity.cpp     Expr g_call_0 = Call::make(t, "g", {rx}, Call::CallType::Halide, nullptr, 0);
Expr              616 src/Associativity.cpp     Expr g_call_1 = Call::make(t, "g", {rx}, Call::CallType::Halide, nullptr, 1);
Expr              649 src/Associativity.cpp                           {Replacement("", Expr()), Replacement("", Expr()), Replacement("x2", f_call_2)},
Expr              682 src/Associativity.cpp                           {Replacement("", Expr())},
Expr              733 src/Associativity.cpp         Expr ry = Variable::make(t, "ry");
Expr              734 src/Associativity.cpp         Expr f_xy_call_0 = Call::make(t, "f", {x, y}, Call::CallType::Halide, nullptr, 0);
Expr              735 src/Associativity.cpp         Expr f_xy_call_1 = Call::make(t, "f", {x, y}, Call::CallType::Halide, nullptr, 1);
Expr              736 src/Associativity.cpp         Expr f_xy_call_2 = Call::make(t, "f", {x, y}, Call::CallType::Halide, nullptr, 2);
Expr              737 src/Associativity.cpp         Expr f_xy_call_3 = Call::make(t, "f", {x, y}, Call::CallType::Halide, nullptr, 3);
Expr              738 src/Associativity.cpp         Expr g_xy_call_0 = Call::make(t, "g", {rx, ry}, Call::CallType::Halide, nullptr, 0);
Expr              755 src/Associativity.cpp                               {Replacement("x0", f_xy_call_0), Replacement("", Expr()), Replacement("x2", f_xy_call_2), Replacement("x3", f_xy_call_3)},
Expr               56 src/Associativity.h         Expr expr;
Expr               59 src/Associativity.h         Replacement(const std::string &var, Expr expr) : var(var), expr(expr) {}
Expr               96 src/Associativity.h     const std::string &f, std::vector<Expr> args, std::vector<Expr> exprs);
Expr                8 src/BoundaryConditions.cpp                  const std::vector<std::pair<Expr, Expr>> &bounds) {
Expr               15 src/BoundaryConditions.cpp     std::vector<Expr> actuals;
Expr               18 src/BoundaryConditions.cpp         Expr min = bounds[i].first;
Expr               19 src/BoundaryConditions.cpp         Expr extent = bounds[i].second;
Expr               41 src/BoundaryConditions.cpp                        const std::vector<std::pair<Expr, Expr>> &bounds) {
Expr               49 src/BoundaryConditions.cpp     Expr out_of_bounds = cast<bool>(false);
Expr               52 src/BoundaryConditions.cpp         Expr min = bounds[i].first;
Expr               53 src/BoundaryConditions.cpp         Expr extent = bounds[i].second;
Expr               67 src/BoundaryConditions.cpp         std::vector<Expr> def;
Expr               79 src/BoundaryConditions.cpp Func constant_exterior(const Func &source, Expr value,
Expr               80 src/BoundaryConditions.cpp                        const std::vector<std::pair<Expr, Expr>> &bounds) {
Expr               86 src/BoundaryConditions.cpp                   const std::vector<std::pair<Expr, Expr>> &bounds) {
Expr               93 src/BoundaryConditions.cpp     std::vector<Expr> actuals;
Expr               96 src/BoundaryConditions.cpp         Expr min = bounds[i].first;
Expr               97 src/BoundaryConditions.cpp         Expr extent = bounds[i].second;
Expr              100 src/BoundaryConditions.cpp             Expr coord = arg_var - min;  // Enforce zero origin.
Expr              127 src/BoundaryConditions.cpp                   const std::vector<std::pair<Expr, Expr>> &bounds) {
Expr              134 src/BoundaryConditions.cpp     std::vector<Expr> actuals;
Expr              138 src/BoundaryConditions.cpp         Expr min = bounds[i].first;
Expr              139 src/BoundaryConditions.cpp         Expr extent = bounds[i].second;
Expr              142 src/BoundaryConditions.cpp             Expr coord = arg_var - min;    // Enforce zero origin.
Expr              168 src/BoundaryConditions.cpp                      const std::vector<std::pair<Expr, Expr>> &bounds) {
Expr              175 src/BoundaryConditions.cpp     std::vector<Expr> actuals;
Expr              179 src/BoundaryConditions.cpp         Expr min = bounds[i].first;
Expr              180 src/BoundaryConditions.cpp         Expr extent = bounds[i].second;
Expr              183 src/BoundaryConditions.cpp             Expr limit = extent - 1;
Expr              184 src/BoundaryConditions.cpp             Expr coord = arg_var - min;  // Enforce zero origin.
Expr               85 src/BoundaryConditions.h                               const std::vector<std::pair<Expr, Expr>> &bounds);
Expr               86 src/BoundaryConditions.h EXPORT Func constant_exterior(const Func &source, Expr value,
Expr               87 src/BoundaryConditions.h                               const std::vector<std::pair<Expr, Expr>> &bounds);
Expr               91 src/BoundaryConditions.h     std::vector<std::pair<Expr, Expr>> object_bounds;
Expr               93 src/BoundaryConditions.h         object_bounds.push_back({ Expr(func_like.dim(i).min()), Expr(func_like.dim(i).extent()) });
Expr               99 src/BoundaryConditions.h inline NO_INLINE Func constant_exterior(const T &func_like, Expr value) {
Expr              104 src/BoundaryConditions.h           typename std::enable_if<Halide::Internal::all_are_convertible<Expr, Bounds...>::value>::type* = nullptr>
Expr              107 src/BoundaryConditions.h     std::vector<std::pair<Expr, Expr>> collected_bounds;
Expr              112 src/BoundaryConditions.h           typename std::enable_if<Halide::Internal::all_are_convertible<Expr, Bounds...>::value>::type* = nullptr>
Expr              113 src/BoundaryConditions.h inline NO_INLINE Func constant_exterior(const T &func_like, Expr value,
Expr              133 src/BoundaryConditions.h                         const std::vector<std::pair<Expr, Expr>> &bounds);
Expr              137 src/BoundaryConditions.h     std::vector<std::pair<Expr, Expr>> object_bounds;
Expr              139 src/BoundaryConditions.h         object_bounds.push_back({ Expr(func_like.dim(i).min()), Expr(func_like.dim(i).extent()) });
Expr              147 src/BoundaryConditions.h           typename std::enable_if<Halide::Internal::all_are_convertible<Expr, Bounds...>::value>::type* = nullptr>
Expr              149 src/BoundaryConditions.h     std::vector<std::pair<Expr, Expr>> collected_bounds;
Expr              169 src/BoundaryConditions.h                          const std::vector<std::pair<Expr, Expr>> &bounds);
Expr              173 src/BoundaryConditions.h     std::vector<std::pair<Expr, Expr>> object_bounds;
Expr              175 src/BoundaryConditions.h         object_bounds.push_back({ Expr(func_like.dim(i).min()), Expr(func_like.dim(i).extent()) });
Expr              182 src/BoundaryConditions.h           typename std::enable_if<Halide::Internal::all_are_convertible<Expr, Bounds...>::value>::type* = nullptr>
Expr              184 src/BoundaryConditions.h     std::vector<std::pair<Expr, Expr>> collected_bounds;
Expr              204 src/BoundaryConditions.h                          const std::vector<std::pair<Expr, Expr>> &bounds);
Expr              208 src/BoundaryConditions.h     std::vector<std::pair<Expr, Expr>> object_bounds;
Expr              210 src/BoundaryConditions.h         object_bounds.push_back({ Expr(func_like.dim(i).min()), Expr(func_like.dim(i).extent()) });
Expr              217 src/BoundaryConditions.h           typename std::enable_if<Halide::Internal::all_are_convertible<Expr, Bounds...>::value>::type* = nullptr>
Expr              219 src/BoundaryConditions.h     std::vector<std::pair<Expr, Expr>> collected_bounds;
Expr              242 src/BoundaryConditions.h                             const std::vector<std::pair<Expr, Expr>> &bounds);
Expr              246 src/BoundaryConditions.h     std::vector<std::pair<Expr, Expr>> object_bounds;
Expr              248 src/BoundaryConditions.h         object_bounds.push_back({ Expr(func_like.dim(i).min()), Expr(func_like.dim(i).extent()) });
Expr              255 src/BoundaryConditions.h           typename std::enable_if<Halide::Internal::all_are_convertible<Expr, Bounds...>::value>::type* = nullptr>
Expr              257 src/BoundaryConditions.h     std::vector<std::pair<Expr, Expr>> collected_bounds;
Expr               26 src/Bounds.cpp int static_sign(Expr x) {
Expr               32 src/Bounds.cpp         Expr zero = make_zero(x.type());
Expr               43 src/Bounds.cpp Expr find_constant_bound(Expr e, Direction d) {
Expr               50 src/Bounds.cpp         Expr a = find_constant_bound(min->a, d);
Expr               51 src/Bounds.cpp         Expr b = find_constant_bound(min->b, d);
Expr               60 src/Bounds.cpp         Expr a = find_constant_bound(max->a, d);
Expr               61 src/Bounds.cpp         Expr b = find_constant_bound(max->b, d);
Expr               70 src/Bounds.cpp         Expr a = find_constant_bound(cast->value, d);
Expr               75 src/Bounds.cpp     return Expr();
Expr              171 src/Bounds.cpp             Expr lower_bound = find_constant_bound(a.min, Direction::Lower);
Expr              172 src/Bounds.cpp             Expr upper_bound = find_constant_bound(a.max, Direction::Upper);
Expr              177 src/Bounds.cpp                 Expr test =
Expr              238 src/Bounds.cpp                     Expr no_overflow = (cast<int>(a.max) + cast<int>(b.max) == cast<int>(interval.max));
Expr              245 src/Bounds.cpp                     Expr no_overflow = (cast<int>(a.min) + cast<int>(b.min) == cast<int>(interval.min));
Expr              277 src/Bounds.cpp                     Expr no_overflow = (cast<int>(a.max) - cast<int>(b.min) == cast<int>(interval.max));
Expr              284 src/Bounds.cpp                     Expr no_overflow = (cast<int>(a.min) - cast<int>(b.max) == cast<int>(interval.min));
Expr              319 src/Bounds.cpp             Expr e1 = a.has_lower_bound() ? a.min * b.min : a.min;
Expr              320 src/Bounds.cpp             Expr e2 = a.has_upper_bound() ? a.max * b.min : a.max;
Expr              329 src/Bounds.cpp                 Expr cmp = b.min >= make_zero(b.min.type().element_of());
Expr              347 src/Bounds.cpp                 Expr test1 = (cast<int>(a.min) * cast<int>(b.min) == cast<int>(a.min * b.min));
Expr              348 src/Bounds.cpp                 Expr test2 = (cast<int>(a.min) * cast<int>(b.max) == cast<int>(a.min * b.max));
Expr              349 src/Bounds.cpp                 Expr test3 = (cast<int>(a.max) * cast<int>(b.min) == cast<int>(a.max * b.min));
Expr              350 src/Bounds.cpp                 Expr test4 = (cast<int>(a.max) * cast<int>(b.max) == cast<int>(a.max * b.max));
Expr              373 src/Bounds.cpp             Expr e1 = a.has_lower_bound() ? a.min / b.min : a.min;
Expr              374 src/Bounds.cpp             Expr e2 = a.has_upper_bound() ? a.max / b.max : a.max;
Expr              383 src/Bounds.cpp                 Expr cmp = b.min > make_zero(b.min.type().element_of());
Expr              552 src/Bounds.cpp             Expr load_min =
Expr              565 src/Bounds.cpp         Expr var = Variable::make(op->base.type(), var_name);
Expr              566 src/Bounds.cpp         Expr lane = op->base + var * op->stride;
Expr              583 src/Bounds.cpp         std::vector<Expr> new_args(op->args.size());
Expr              604 src/Bounds.cpp             Expr call = Call::make(t, op->name, new_args, op->call_type,
Expr              634 src/Bounds.cpp             Expr equivalent_select = Select::make(op->args[0], op->args[1], op->args[2]);
Expr              639 src/Bounds.cpp             Expr simplified = simplify(op);
Expr              698 src/Bounds.cpp                 val.min = Expr();
Expr              708 src/Bounds.cpp                 val.max = Expr();
Expr              739 src/Bounds.cpp         for (Expr i : op->vectors) {
Expr              783 src/Bounds.cpp Interval bounds_of_expr_in_scope(Expr expr, const Scope<Interval> &scope, const FuncValueBounds &fb) {
Expr              805 src/Bounds.cpp         Expr min = Min::make(a[i].min, b[i].min);
Expr              806 src/Bounds.cpp         Expr max_a = a[i].min + a[i].extent;
Expr              807 src/Bounds.cpp         Expr max_b = b[i].min + b[i].extent;
Expr              808 src/Bounds.cpp         Expr max_plus_one = Max::make(max_a, max_b);
Expr              809 src/Bounds.cpp         Expr extent = max_plus_one - min;
Expr              885 src/Bounds.cpp                 a.used = Expr();
Expr              889 src/Bounds.cpp         a.used = Expr();
Expr              938 src/Bounds.cpp     Expr overlap = ((a_maybe_unused ? a.used : const_true()) &&
Expr              960 src/Bounds.cpp     Expr condition = const_true();
Expr             1016 src/Bounds.cpp             for (Expr e : op->args) {
Expr             1046 src/Bounds.cpp     bool is_small_enough_to_substitute(Expr e) {
Expr             1116 src/Bounds.cpp                 Expr c = op->condition;
Expr             1127 src/Bounds.cpp                 Expr a, b;
Expr             1138 src/Bounds.cpp                     Expr inner_min, inner_max;
Expr             1270 src/Bounds.cpp         Expr min_val, max_val;
Expr             1312 src/Bounds.cpp map<string, Box> boxes_touched(Expr e, Stmt s, bool consider_calls, bool consider_provides,
Expr             1348 src/Bounds.cpp Box box_touched(Expr e, Stmt s, bool consider_calls, bool consider_provides,
Expr             1355 src/Bounds.cpp map<string, Box> boxes_required(Expr e, const Scope<Interval> &scope, const FuncValueBounds &fb) {
Expr             1359 src/Bounds.cpp Box box_required(Expr e, string fn, const Scope<Interval> &scope, const FuncValueBounds &fb) {
Expr             1364 src/Bounds.cpp     return boxes_touched(Expr(), s, true, false, "", scope, fb);
Expr             1368 src/Bounds.cpp     return box_touched(Expr(), s, true, false, fn, scope, fb);
Expr             1371 src/Bounds.cpp map<string, Box> boxes_provided(Expr e, const Scope<Interval> &scope, const FuncValueBounds &fb) {
Expr             1375 src/Bounds.cpp Box box_provided(Expr e, string fn, const Scope<Interval> &scope, const FuncValueBounds &fb) {
Expr             1380 src/Bounds.cpp     return boxes_touched(Expr(), s, false, true, "", scope, fb);
Expr             1384 src/Bounds.cpp     return box_touched(Expr(), s, false, true, fn, scope, fb);
Expr             1387 src/Bounds.cpp map<string, Box> boxes_touched(Expr e, const Scope<Interval> &scope, const FuncValueBounds &fb) {
Expr             1391 src/Bounds.cpp Box box_touched(Expr e, string fn, const Scope<Interval> &scope, const FuncValueBounds &fb) {
Expr             1396 src/Bounds.cpp     return boxes_touched(Expr(), s, true, true, "", scope, fb);
Expr             1400 src/Bounds.cpp     return box_touched(Expr(), s, true, true, fn, scope, fb);
Expr             1461 src/Bounds.cpp void check(const Scope<Interval> &scope, Expr e, Expr correct_min, Expr correct_max) {
Expr             1481 src/Bounds.cpp     scope.push("x", Interval(Expr(0), Expr(10)));
Expr             1538 src/Bounds.cpp     Expr u8_1 = cast<uint8_t>(Load::make(Int(8), "buf", x, Buffer<>(), Parameter(), const_true()));
Expr             1539 src/Bounds.cpp     Expr u8_2 = cast<uint8_t>(Load::make(Int(8), "buf", x + 17, Buffer<>(), Parameter(), const_true()));
Expr             1543 src/Bounds.cpp     vector<Expr> input_site_1 = {2*x};
Expr             1544 src/Bounds.cpp     vector<Expr> input_site_2 = {2*x+1};
Expr             1545 src/Bounds.cpp     vector<Expr> output_site = {x+1};
Expr             1567 src/Bounds.cpp     Box r2({Interval(Expr(5), Expr(19))});
Expr               30 src/Bounds.h   Interval bounds_of_expr_in_scope(Expr expr,
Expr               39 src/Bounds.h   Expr find_constant_bound(Expr e, Direction d);
Expr               45 src/Bounds.h       Expr used;
Expr               86 src/Bounds.h   std::map<std::string, Box> boxes_required(Expr e,
Expr               98 src/Bounds.h   std::map<std::string, Box> boxes_provided(Expr e,
Expr              110 src/Bounds.h   std::map<std::string, Box> boxes_touched(Expr e,
Expr              120 src/Bounds.h   Box box_required(Expr e, std::string fn,
Expr              127 src/Bounds.h   Box box_provided(Expr e, std::string fn,
Expr              134 src/Bounds.h   Box box_touched(Expr e, std::string fn,
Expr               44 src/BoundsInference.cpp bool depends_on_bounds_inference(Expr e) {
Expr              116 src/BoundsInference.cpp         Expr cond; // Condition on params only (can't depend on loop variable)
Expr              117 src/BoundsInference.cpp         Expr value;
Expr              119 src/BoundsInference.cpp         CondValue(const Expr &c, const Expr &v) : cond(c), value(v) {}
Expr              142 src/BoundsInference.cpp             vector<Expr> predicates = def.split_predicate();
Expr              147 src/BoundsInference.cpp             vector<vector<Expr>> vecs(2);
Expr              154 src/BoundsInference.cpp                 for (const Expr &val : vecs[i]) {
Expr              156 src/BoundsInference.cpp                         Expr cond_val = Call::make(val.type(),
Expr              175 src/BoundsInference.cpp                 Expr s_cond = specializations[i-1].condition;
Expr              204 src/BoundsInference.cpp                     Expr val = vec[0].value;
Expr              309 src/BoundsInference.cpp                             Expr min = Variable::make(Int(32), last_stage + dim + ".min");
Expr              310 src/BoundsInference.cpp                             Expr max = Variable::make(Int(32), last_stage + dim + ".max");
Expr              342 src/BoundsInference.cpp                     Expr outer_query = Variable::make(type_of<struct halide_buffer_t *>(), outer_query_name);
Expr              344 src/BoundsInference.cpp                     Expr inner_query = Variable::make(type_of<struct halide_buffer_t *>(), inner_query_name);
Expr              346 src/BoundsInference.cpp                         Expr outer_min = Call::make(Int(32), Call::buffer_get_min,
Expr              348 src/BoundsInference.cpp                         Expr outer_max = Call::make(Int(32), Call::buffer_get_max,
Expr              351 src/BoundsInference.cpp                         Expr inner_min = Call::make(Int(32), Call::buffer_get_min,
Expr              353 src/BoundsInference.cpp                         Expr inner_max = Call::make(Int(32), Call::buffer_get_max,
Expr              357 src/BoundsInference.cpp                         Expr shift = Min::make(0, outer_max - inner_max);
Expr              358 src/BoundsInference.cpp                         Expr new_min = inner_min + shift;
Expr              359 src/BoundsInference.cpp                         Expr new_max = inner_max + shift;
Expr              382 src/BoundsInference.cpp                     Expr inner_query = Variable::make(type_of<struct halide_buffer_t *>(), inner_query_name);
Expr              384 src/BoundsInference.cpp                         Expr new_min = Call::make(Int(32), Call::buffer_get_min,
Expr              386 src/BoundsInference.cpp                         Expr new_max = Call::make(Int(32), Call::buffer_get_max,
Expr              410 src/BoundsInference.cpp                     Expr min_required = Variable::make(Int(32), min_var);
Expr              411 src/BoundsInference.cpp                     Expr max_required = Variable::make(Int(32), max_var);
Expr              440 src/BoundsInference.cpp                         Expr max_plus_one = max_required + 1;
Expr              478 src/BoundsInference.cpp             vector<Expr> bounds_inference_args;
Expr              480 src/BoundsInference.cpp             vector<pair<string, Expr>> lets;
Expr              487 src/BoundsInference.cpp             Expr null_handle = make_zero(Handle());
Expr              489 src/BoundsInference.cpp             vector<Expr> buffers_to_annotate;
Expr              501 src/BoundsInference.cpp                         Expr buf = builder.build();
Expr              513 src/BoundsInference.cpp                     Expr in_buf = Variable::make(type_of<struct halide_buffer_t *>(), name + ".buffer");
Expr              518 src/BoundsInference.cpp                     Expr alloca_size = Call::make(Int(32), Call::size_of_halide_buffer_t, {}, Call::Intrinsic);
Expr              519 src/BoundsInference.cpp                     Expr query_buf = Call::make(type_of<struct halide_buffer_t *>(), Call::alloca,
Expr              521 src/BoundsInference.cpp                     Expr query_shape = Call::make(type_of<struct halide_dimension_t *>(), Call::alloca,
Expr              527 src/BoundsInference.cpp                     Expr buf = Variable::make(type_of<struct halide_buffer_t *>(), query_name, b, p, ReductionDomain());
Expr              545 src/BoundsInference.cpp                     Expr min = Variable::make(Int(32), prefix + ".min");
Expr              546 src/BoundsInference.cpp                     Expr max = Variable::make(Int(32), prefix + ".max");
Expr              551 src/BoundsInference.cpp                 Expr output_buffer_t = builder.build();
Expr              567 src/BoundsInference.cpp                     Expr sizeof_buffer_t =
Expr              581 src/BoundsInference.cpp             Expr e = func.make_call_to_extern_definition(bounds_inference_args, target);
Expr              585 src/BoundsInference.cpp             Expr result = Variable::make(Int(32), result_name);
Expr              586 src/BoundsInference.cpp             Expr error = Call::make(Int(32), "halide_error_bounds_inference_call_failed",
Expr              740 src/BoundsInference.cpp                             Expr buf = Variable::make(type_of<struct halide_buffer_t *>(), buf_name);
Expr              741 src/BoundsInference.cpp                             Expr min = Call::make(Int(32), Call::buffer_get_min,
Expr              743 src/BoundsInference.cpp                             Expr max = Call::make(Int(32), Call::buffer_get_max,
Expr              816 src/BoundsInference.cpp                 Expr min = Variable::make(Int(32), buffer_name + ".min." + std::to_string(d), buf);
Expr              817 src/BoundsInference.cpp                 Expr extent = Variable::make(Int(32), buffer_name + ".extent." + std::to_string(d), buf);
Expr              820 src/BoundsInference.cpp                 Expr min_constraint = buf.min_constraint(d);
Expr              821 src/BoundsInference.cpp                 Expr extent_constraint = buf.extent_constraint(d);
Expr              851 src/BoundsInference.cpp         vector<pair<string, Expr>> lets;
Expr              960 src/BoundsInference.cpp                         Expr val = Variable::make(Int(32), var);
Expr               19 src/Buffer.cpp Expr buffer_accessor(const Buffer<> &buf, const std::vector<Expr> &args) {
Expr               20 src/Buffer.cpp     std::vector<Expr> int_args;
Expr               21 src/Buffer.cpp     for (Expr e : args) {
Expr               22 src/Buffer.h   EXPORT Expr buffer_accessor(const Buffer<> &buf, const std::vector<Expr> &args);
Expr              432 src/Buffer.h       Expr operator()(Expr first, Args... rest) const {
Expr              433 src/Buffer.h           std::vector<Expr> args = {first, rest...};
Expr              438 src/Buffer.h       Expr operator()(const std::vector<Expr> &args) const {
Expr               24 src/CSE.cpp    bool should_extract(Expr e) {
Expr               69 src/CSE.cpp            Expr expr;
Expr               77 src/CSE.cpp        map<Expr, int, ExprCompare> shallow_numbering;
Expr               91 src/CSE.cpp        ExprWithCompareCache with_cache(Expr e) {
Expr               95 src/CSE.cpp        Expr mutate(Expr e) {
Expr               98 src/CSE.cpp                map<Expr, int, ExprCompare>::iterator iter = shallow_numbering.find(e);
Expr              125 src/CSE.cpp            Expr old_e = e;
Expr              153 src/CSE.cpp            Expr value = mutate(let->value);
Expr              159 src/CSE.cpp            Expr body = mutate(let->body);
Expr              168 src/CSE.cpp            Expr predicate = op->predicate;
Expr              173 src/CSE.cpp            Expr index = mutate(op->index);
Expr              182 src/CSE.cpp            Expr predicate = op->predicate;
Expr              187 src/CSE.cpp            Expr value = mutate(op->value);
Expr              188 src/CSE.cpp            Expr index = mutate(op->index);
Expr              206 src/CSE.cpp        void include(const Expr &e) {
Expr              217 src/CSE.cpp            map<Expr, int, ExprCompare>::iterator iter = gvn.shallow_numbering.find(e);
Expr              234 src/CSE.cpp        map<Expr, Expr, ExprCompare> replacements;
Expr              235 src/CSE.cpp        Replacer(const map<Expr, Expr, ExprCompare> &r) : replacements(r) {}
Expr              239 src/CSE.cpp        Expr mutate(Expr e) {
Expr              240 src/CSE.cpp            map<Expr, Expr, ExprCompare>::iterator iter = replacements.find(e);
Expr              247 src/CSE.cpp            Expr new_e = IRMutator::mutate(e);
Expr              260 src/CSE.cpp        Expr mutate(Expr e) {
Expr              267 src/CSE.cpp    Expr common_subexpression_elimination(Expr e) {
Expr              282 src/CSE.cpp        vector<pair<string, Expr>> lets;
Expr              283 src/CSE.cpp        vector<Expr> new_version(gvn.entries.size());
Expr              284 src/CSE.cpp        map<Expr, Expr, ExprCompare> replacements;
Expr              287 src/CSE.cpp            Expr old = e.expr;
Expr              305 src/CSE.cpp            Expr value = lets[i-1].second;
Expr              348 src/CSE.cpp            Expr value = mutate(let->value);
Expr              349 src/CSE.cpp            Expr body = mutate(let->body);
Expr              357 src/CSE.cpp    void check(Expr in, Expr correct) {
Expr              358 src/CSE.cpp        Expr result = common_subexpression_elimination(in);
Expr              369 src/CSE.cpp    Expr ssa_block(vector<Expr> exprs) {
Expr              370 src/CSE.cpp        Expr e = exprs.back();
Expr              381 src/CSE.cpp        Expr x = Variable::make(Int(32), "x");
Expr              382 src/CSE.cpp        Expr y = Variable::make(Int(32), "y");
Expr              384 src/CSE.cpp        Expr t[32], tf[32];
Expr              389 src/CSE.cpp        Expr e, correct;
Expr              421 src/CSE.cpp        Expr e1 = ssa_block({x*x,                  // a = x*x
Expr              424 src/CSE.cpp        Expr e2 = ssa_block({x*x,                  // a again
Expr              445 src/CSE.cpp        Expr result = common_subexpression_elimination(e);
Expr              448 src/CSE.cpp            Expr pred = x*x + y*y > 0;
Expr              449 src/CSE.cpp            Expr index = select(x*x + y*y > 0, x*x + y*y + 2, x*x + y*y + 10);
Expr              450 src/CSE.cpp            Expr load = Load::make(Int(32), "buf", index, Buffer<>(), Parameter(), const_true());
Expr              451 src/CSE.cpp            Expr pred_load = Load::make(Int(32), "buf", index, Buffer<>(), Parameter(), pred);
Expr              454 src/CSE.cpp            Expr t2 = Variable::make(Bool(), "t2");
Expr              455 src/CSE.cpp            Expr cse_load = Load::make(Int(32), "buf", t[3], Buffer<>(), Parameter(), const_true());
Expr              456 src/CSE.cpp            Expr cse_pred_load = Load::make(Int(32), "buf", t[3], Buffer<>(), Parameter(), t2);
Expr              467 src/CSE.cpp            Expr pred = x*x + y*y > 0;
Expr              468 src/CSE.cpp            Expr index = select(x*x + y*y > 0, x*x + y*y + 2, x*x + y*y + 10);
Expr              469 src/CSE.cpp            Expr load = Load::make(Int(32), "buf", index, Buffer<>(), Parameter(), const_true());
Expr              470 src/CSE.cpp            Expr pred_load = Load::make(Int(32), "buf", index, Buffer<>(), Parameter(), pred);
Expr              473 src/CSE.cpp            Expr t2 = Variable::make(Bool(), "t2");
Expr              474 src/CSE.cpp            Expr cse_load = Load::make(Int(32), "buf", select(t2, t[1] + 2, t[1] + 10), Buffer<>(), Parameter(), const_true());
Expr              475 src/CSE.cpp            Expr cse_pred_load = Load::make(Int(32), "buf", select(t2, t[1] + 2, t[1] + 10), Buffer<>(), Parameter(), t2);
Expr              486 src/CSE.cpp            Expr handle_a = reinterpret(type_of<int *>(), make_zero(UInt(64)));
Expr              487 src/CSE.cpp            Expr handle_b = reinterpret(type_of<float *>(), make_zero(UInt(64)));
Expr              488 src/CSE.cpp            Expr handle_c = reinterpret(type_of<float *>(), make_zero(UInt(64)));
Expr              491 src/CSE.cpp            Expr t0 = Variable::make(handle_b.type(), "t0");
Expr               21 src/CSE.h      EXPORT Expr common_subexpression_elimination(Expr);
Expr              113 src/CanonicalizeGPUVars.cpp         Expr min = mutate(op->min);
Expr              114 src/CanonicalizeGPUVars.cpp         Expr extent = mutate(op->extent);
Expr              141 src/CanonicalizeGPUVars.cpp                 Expr new_var = Variable::make(Int(32), name);
Expr              160 src/CanonicalizeGPUVars.cpp         Expr value = mutate(op->value);
Expr              165 src/CanonicalizeGPUVars.cpp             Expr new_var = Variable::make(Int(32), name);
Expr              180 src/CanonicalizeGPUVars.cpp         Expr condition = mutate(op->condition);
Expr               63 src/CodeGen_ARM.cpp         Expr vector = Variable::make(t, "*");
Expr               64 src/CodeGen_ARM.cpp         Expr w_vector = Variable::make(w, "*");
Expr               65 src/CodeGen_ARM.cpp         Expr ws_vector = Variable::make(ws, "*");
Expr               68 src/CodeGen_ARM.cpp         Expr tmin = simplify(cast(w, t.min()));
Expr               69 src/CodeGen_ARM.cpp         Expr tmax = simplify(cast(w, t.max()));
Expr               70 src/CodeGen_ARM.cpp         Expr tsmin = simplify(cast(ws, t.min()));
Expr               71 src/CodeGen_ARM.cpp         Expr tsmax = simplify(cast(ws, t.max()));
Expr               73 src/CodeGen_ARM.cpp         Pattern p("", "", intrin_lanes, Expr(), Pattern::NarrowArgs);
Expr              156 src/CodeGen_ARM.cpp                             i32_sat((wild_i64x2 * wild_i64x2 + (1<<30)) / Expr(int64_t(1) << 31)),
Expr              159 src/CodeGen_ARM.cpp                             i32_sat((wild_i64x_ * wild_i64x_ + (1<<30)) / Expr(int64_t(1) << 31)),
Expr              231 src/CodeGen_ARM.cpp Value *CodeGen_ARM::call_pattern(const Pattern &p, Type t, const vector<Expr> &args) {
Expr              255 src/CodeGen_ARM.cpp     vector<Expr> matches;
Expr              288 src/CodeGen_ARM.cpp                 Expr constant = matches[1];
Expr              324 src/CodeGen_ARM.cpp             Expr replacement = cast(t,
Expr              337 src/CodeGen_ARM.cpp         Expr a, b;
Expr              381 src/CodeGen_ARM.cpp     vector<Expr> matches;
Expr              408 src/CodeGen_ARM.cpp Expr CodeGen_ARM::sorted_avg(Expr a, Expr b) {
Expr              419 src/CodeGen_ARM.cpp         vector<Expr> matches;
Expr              440 src/CodeGen_ARM.cpp     vector<Expr> matches;
Expr              655 src/CodeGen_ARM.cpp     Expr rhs = op->value;
Expr              656 src/CodeGen_ARM.cpp     vector<pair<string, Expr>> lets;
Expr              745 src/CodeGen_ARM.cpp             Expr slice_base = simplify(ramp->base + i * num_vecs);
Expr              746 src/CodeGen_ARM.cpp             Expr slice_ramp = Ramp::make(slice_base, ramp->stride, intrin_type.lanes() * num_vecs);
Expr              845 src/CodeGen_ARM.cpp         Expr base = ramp->base;
Expr              902 src/CodeGen_ARM.cpp             Expr slice_base = simplify(base + i*ramp->stride);
Expr              903 src/CodeGen_ARM.cpp             Expr slice_ramp = Ramp::make(slice_base, ramp->stride, intrin_lanes);
Expr              948 src/CodeGen_ARM.cpp             Expr a = sub->a, b = sub->b;
Expr              950 src/CodeGen_ARM.cpp             Expr na = lossless_cast(narrow, a);
Expr              951 src/CodeGen_ARM.cpp             Expr nb = lossless_cast(narrow, b);
Expr              961 src/CodeGen_ARM.cpp                 Expr absd = Call::make(UInt(narrow.bits(), narrow.lanes()), Call::absd,
Expr               21 src/CodeGen_ARM.h     Expr sorted_avg(Expr a, Expr b);
Expr               45 src/CodeGen_ARM.h         Expr pattern;         ///< The pattern to match against
Expr               53 src/CodeGen_ARM.h         Pattern(const std::string &i32, const std::string &i64, int l, Expr p, PatternType t = Simple) :
Expr               63 src/CodeGen_ARM.h     llvm::Value *call_pattern(const Pattern &p, Type t, const std::vector<Expr> &args);
Expr              321 src/CodeGen_C.cpp string CodeGen_C::print_reinterpret(Type type, Expr e) {
Expr              677 src/CodeGen_C.cpp string CodeGen_C::print_expr(Expr e) {
Expr              728 src/CodeGen_C.cpp void CodeGen_C::visit_binop(Type t, Expr a, Expr b, const char * op) {
Expr              830 src/CodeGen_C.cpp     oss << Expr(op);
Expr              929 src/CodeGen_C.cpp         Expr e = lower_lerp(op->args[0], op->args[1], op->args[2]);
Expr              933 src/CodeGen_C.cpp         Expr a = op->args[0];
Expr              934 src/CodeGen_C.cpp         Expr b = op->args[1];
Expr              935 src/CodeGen_C.cpp         Expr e = select(a < b, b - a, a - b);
Expr              971 src/CodeGen_C.cpp         Expr a0 = op->args[0];
Expr             1189 src/CodeGen_C.cpp     Expr body = op->body;
Expr             1198 src/CodeGen_C.cpp         Expr new_var = Variable::make(op->value.type(), id_value);
Expr             1228 src/CodeGen_C.cpp         Expr new_var = Variable::make(op->value.type(), id_value);
Expr             1318 src/CodeGen_C.cpp                 size_id = print_expr(Expr(static_cast<int32_t>(constant_size)));
Expr             1360 src/CodeGen_C.cpp             Expr conditional_size = Select::make(op->condition,
Expr             1362 src/CodeGen_C.cpp                                                  Expr(static_cast<int32_t>(0)));
Expr             1462 src/CodeGen_C.cpp     Expr e = Select::make(alpha > 4.0f, print_when(x < 1, 3), 2);
Expr             1469 src/CodeGen_C.cpp     Expr buf = Variable::make(Handle(), "buf.buffer");
Expr               72 src/CodeGen_C.h     std::string print_expr(Expr);
Expr               90 src/CodeGen_C.h     virtual std::string print_reinterpret(Type, Expr);
Expr              180 src/CodeGen_C.h     void visit_binop(Type t, Expr a, Expr b, const char *op);
Expr               49 src/CodeGen_GPU_Dev.cpp bool CodeGen_GPU_Dev::is_block_uniform(Expr expr) {
Expr               53 src/CodeGen_GPU_Dev.h     static bool is_block_uniform(Expr expr);
Expr               34 src/CodeGen_GPU_Host.cpp     Expr num_threads[4];
Expr               35 src/CodeGen_GPU_Host.cpp     Expr num_blocks[4];
Expr               36 src/CodeGen_GPU_Host.cpp     Expr shared_mem_size;
Expr              207 src/CodeGen_GPU_Host.cpp         CodeGen_CPU::create_assertion(did_succeed, Expr(), result);
Expr              248 src/CodeGen_GPU_Host.cpp         Value *zero_int32 = codegen(Expr(cast<int>(0)));
Expr              361 src/CodeGen_GPU_Host.cpp                 Expr buf = Variable::make(type_of<buffer_t *>(), name + ".buffer");
Expr              362 src/CodeGen_GPU_Host.cpp                 Expr get_dev = Call::make(UInt(64), Call::buffer_get_device, {buf}, Call::Extern);
Expr              124 src/CodeGen_Hexagon.cpp     Expr hvx_mode = target.has_feature(Target::HVX_128) ? 128 : 64;
Expr              125 src/CodeGen_Hexagon.cpp     Expr hvx_lock = Call::make(Int(32), "halide_qurt_hvx_lock", {hvx_mode}, Call::Extern);
Expr              127 src/CodeGen_Hexagon.cpp     Expr hvx_lock_result_var = Variable::make(Int(32), hvx_lock_result_name);
Expr              131 src/CodeGen_Hexagon.cpp     Expr dummy_obj = reinterpret(Handle(), cast<uint64_t>(1));
Expr              132 src/CodeGen_Hexagon.cpp     Expr hvx_unlock = Call::make(Int(32), Call::register_destructor,
Expr              133 src/CodeGen_Hexagon.cpp                                  {Expr("halide_qurt_hvx_unlock_as_destructor"), dummy_obj}, Call::Intrinsic);
Expr              140 src/CodeGen_Hexagon.cpp bool is_dense_ramp(Expr x) {
Expr              158 src/CodeGen_Hexagon.cpp         Expr predicate = mutate(op->predicate);
Expr              159 src/CodeGen_Hexagon.cpp         Expr index = mutate(op->index);
Expr              162 src/CodeGen_Hexagon.cpp         Expr condition = Shuffle::make({predicate}, {0});
Expr             1217 src/CodeGen_Hexagon.cpp string type_suffix(Expr a, bool signed_variants = true) {
Expr             1221 src/CodeGen_Hexagon.cpp string type_suffix(Expr a, Expr b, bool signed_variants = true) {
Expr             1225 src/CodeGen_Hexagon.cpp string type_suffix(const vector<Expr> &ops, bool signed_variants = true) {
Expr             1237 src/CodeGen_Hexagon.cpp                                     vector<Expr> args, bool maybe) {
Expr             1329 src/CodeGen_Hexagon.cpp Expr maybe_scalar(Expr x) {
Expr             1370 src/CodeGen_Hexagon.cpp                        << Expr(op) << "\n";
Expr             1376 src/CodeGen_Hexagon.cpp Expr CodeGen_Hexagon::mulhi_shr(Expr a, Expr b, int shr) {
Expr             1382 src/CodeGen_Hexagon.cpp         Expr p_wide = Call::make(wide_ty, "halide.hexagon.mpy" + type_suffix(a, b),
Expr             1387 src/CodeGen_Hexagon.cpp         Expr p = Call::make(ty, "halide.hexagon.trunclo" + type_suffix(p_wide, false),
Expr             1401 src/CodeGen_Hexagon.cpp Expr CodeGen_Hexagon::sorted_avg(Expr a, Expr b) {
Expr             1444 src/CodeGen_Hexagon.cpp             << "see https://github.com/halide/Halide/issues/1582\n" << Expr(op) << "\n";
Expr             1467 src/CodeGen_Hexagon.cpp             Expr b = maybe_scalar(op->args[1]);
Expr             1506 src/CodeGen_Hexagon.cpp             Expr equiv = -Cast::make(op->type, op->args[0]);
Expr             1525 src/CodeGen_Hexagon.cpp         Expr extent_0_bytes = op->args[2] * op->args[3] * op->type.bytes();
Expr             1534 src/CodeGen_Hexagon.cpp             Expr stride_1_bytes = op->args[5] * op->type.bytes();
Expr             1575 src/CodeGen_Hexagon.cpp             Expr equiv =
Expr             1592 src/CodeGen_Hexagon.cpp             Expr equiv =
Expr             1603 src/CodeGen_Hexagon.cpp     internal_assert(op->condition.type().is_scalar()) << Expr(op) << "\n";
Expr             1637 src/CodeGen_Hexagon.cpp         Expr ge = Not::make(GT::make(op->b, op->a));
Expr             1647 src/CodeGen_Hexagon.cpp         Expr le = Not::make(GT::make(op->a, op->b));
Expr             1657 src/CodeGen_Hexagon.cpp         Expr lt = GT::make(op->b, op->a);
Expr             1666 src/CodeGen_Hexagon.cpp         Expr eq = Not::make(EQ::make(op->a, op->b));
Expr               27 src/CodeGen_Hexagon.h     Expr mulhi_shr(Expr a, Expr b, int shr);
Expr               28 src/CodeGen_Hexagon.h     Expr sorted_avg(Expr a, Expr b);
Expr               88 src/CodeGen_Hexagon.h                              std::vector<Expr>, bool maybe = false);
Expr              217 src/CodeGen_Internal.cpp Expr lower_euclidean_div(Expr a, Expr b) {
Expr              221 src/CodeGen_Internal.cpp     Expr q = Call::make(a.type(), Call::div_round_to_zero, {a, b}, Call::PureIntrinsic);
Expr              238 src/CodeGen_Internal.cpp         Expr r = a - q*b;
Expr              239 src/CodeGen_Internal.cpp         Expr bs = b >> (a.type().bits() - 1);
Expr              240 src/CodeGen_Internal.cpp         Expr rs = r >> (a.type().bits() - 1);
Expr              248 src/CodeGen_Internal.cpp Expr lower_euclidean_mod(Expr a, Expr b) {
Expr              252 src/CodeGen_Internal.cpp     Expr r = Call::make(a.type(), Call::mod_round_to_zero, {a, b}, Call::PureIntrinsic);
Expr              261 src/CodeGen_Internal.cpp         Expr sign_mask = r >> (a.type().bits()-1);
Expr              280 src/CodeGen_Internal.cpp         Expr predicate = mutate(op->predicate);
Expr              281 src/CodeGen_Internal.cpp         Expr index = mutate(op->index);
Expr              282 src/CodeGen_Internal.cpp         Expr condition;
Expr              285 src/CodeGen_Internal.cpp             Expr unpredicated_load = Load::make(op->type, op->name, index, op->image, op->param,
Expr              291 src/CodeGen_Internal.cpp             Expr index_var = Variable::make(index.type(), index_name);
Expr              293 src/CodeGen_Internal.cpp             Expr predicate_var = Variable::make(predicate.type(), predicate_name);
Expr              295 src/CodeGen_Internal.cpp             vector<Expr> lanes;
Expr              298 src/CodeGen_Internal.cpp                 Expr idx_i = Shuffle::make({index_var}, {i});
Expr              299 src/CodeGen_Internal.cpp                 Expr pred_i = Shuffle::make({predicate_var}, {i});
Expr              300 src/CodeGen_Internal.cpp                 Expr unpredicated_load = Load::make(op->type.element_of(), op->name, idx_i, op->image, op->param,
Expr              318 src/CodeGen_Internal.cpp         Expr predicate = mutate(op->predicate);
Expr              319 src/CodeGen_Internal.cpp         Expr value = mutate(op->value);
Expr              320 src/CodeGen_Internal.cpp         Expr index = mutate(op->index);
Expr              327 src/CodeGen_Internal.cpp             Expr value_var = Variable::make(value.type(), value_name);
Expr              329 src/CodeGen_Internal.cpp             Expr index_var = Variable::make(index.type(), index_name);
Expr              331 src/CodeGen_Internal.cpp             Expr predicate_var = Variable::make(predicate.type(), predicate_name);
Expr              335 src/CodeGen_Internal.cpp                 Expr pred_i = Shuffle::make({predicate_var}, {i});
Expr              336 src/CodeGen_Internal.cpp                 Expr value_i = Shuffle::make({value_var}, {i});
Expr              337 src/CodeGen_Internal.cpp                 Expr index_i = Shuffle::make({index_var}, {i});
Expr               61 src/CodeGen_Internal.h Expr lower_euclidean_div(Expr a, Expr b);
Expr               62 src/CodeGen_Internal.h Expr lower_euclidean_mod(Expr a, Expr b);
Expr              842 src/CodeGen_LLVM.cpp Constant* CodeGen_LLVM::embed_constant_expr(Expr e) {
Expr              921 src/CodeGen_LLVM.cpp         Expr def = args[arg].def;
Expr              922 src/CodeGen_LLVM.cpp         Expr min = args[arg].min;
Expr              923 src/CodeGen_LLVM.cpp         Expr max = args[arg].max;
Expr              927 src/CodeGen_LLVM.cpp             def = min = max = Expr();
Expr             1089 src/CodeGen_LLVM.cpp Value *CodeGen_LLVM::codegen(Expr e) {
Expr             1204 src/CodeGen_LLVM.cpp Expr CodeGen_LLVM::mulhi_shr(Expr a, Expr b, int shr) {
Expr             1208 src/CodeGen_LLVM.cpp     Expr p_wide = cast(wide_ty, a) * cast(wide_ty, b);
Expr             1212 src/CodeGen_LLVM.cpp Expr CodeGen_LLVM::sorted_avg(Expr a, Expr b) {
Expr             1219 src/CodeGen_LLVM.cpp     user_assert(!is_zero(op->b)) << "Division by constant zero in expression: " << Expr(op) << "\n";
Expr             1249 src/CodeGen_LLVM.cpp         Expr num = op->a;
Expr             1252 src/CodeGen_LLVM.cpp         Expr sign = num >> make_const(op->type, op->type.bits() - 1);
Expr             1260 src/CodeGen_LLVM.cpp         Expr mult = make_const(num.type(), multiplier);
Expr             1290 src/CodeGen_LLVM.cpp         Expr num = op->a;
Expr             1293 src/CodeGen_LLVM.cpp         Expr mult = make_const(num.type(), multiplier);
Expr             1294 src/CodeGen_LLVM.cpp         Expr val = mulhi_shr(num, mult, method == 1 ? shift : 0);
Expr             1345 src/CodeGen_LLVM.cpp     Expr a = Variable::make(op->a.type(), a_name);
Expr             1346 src/CodeGen_LLVM.cpp     Expr b = Variable::make(op->b.type(), b_name);
Expr             1355 src/CodeGen_LLVM.cpp     Expr a = Variable::make(op->a.type(), a_name);
Expr             1356 src/CodeGen_LLVM.cpp     Expr b = Variable::make(op->b.type(), b_name);
Expr             1471 src/CodeGen_LLVM.cpp Expr promote_64(Expr e) {
Expr             1488 src/CodeGen_LLVM.cpp Value *CodeGen_LLVM::codegen_buffer_pointer(string buffer, Halide::Type type, Expr index) {
Expr             1494 src/CodeGen_LLVM.cpp Value *CodeGen_LLVM::codegen_buffer_pointer(Value *base_address, Halide::Type type, Expr index) {
Expr             1551 src/CodeGen_LLVM.cpp void CodeGen_LLVM::add_tbaa_metadata(llvm::Instruction *inst, string buffer, Expr index) {
Expr             1644 src/CodeGen_LLVM.cpp             Expr base_a = ramp->base, base_b = ramp->base + ramp->lanes;
Expr             1645 src/CodeGen_LLVM.cpp             Expr stride_a = make_one(base_a.type());
Expr             1646 src/CodeGen_LLVM.cpp             Expr stride_b = make_one(base_b.type());
Expr             1674 src/CodeGen_LLVM.cpp             Expr ramp_a = Ramp::make(base_a, stride_a, ramp->lanes);
Expr             1675 src/CodeGen_LLVM.cpp             Expr ramp_b = Ramp::make(base_b, stride_b, ramp->lanes);
Expr             1676 src/CodeGen_LLVM.cpp             Expr load_a = Load::make(op->type, op->name, ramp_a, op->image, op->param, op->predicate);
Expr             1677 src/CodeGen_LLVM.cpp             Expr load_b = Load::make(op->type, op->name, ramp_b, op->image, op->param, op->predicate);
Expr             1693 src/CodeGen_LLVM.cpp             Expr flipped_base = ramp->base - ramp->lanes + 1;
Expr             1694 src/CodeGen_LLVM.cpp             Expr flipped_stride = make_one(flipped_base.type());
Expr             1695 src/CodeGen_LLVM.cpp             Expr flipped_index = Ramp::make(flipped_base, flipped_stride, ramp->lanes);
Expr             1696 src/CodeGen_LLVM.cpp             Expr flipped_load = Load::make(op->type, op->name, flipped_index, op->image, op->param, op->predicate);
Expr             1726 src/CodeGen_LLVM.cpp                 Expr idx = extract_lane(op->index, i);
Expr             1756 src/CodeGen_LLVM.cpp         Expr broadcast = Broadcast::make(op->base, op->lanes);
Expr             1757 src/CodeGen_LLVM.cpp         Expr ramp = Ramp::make(make_zero(op->base.type()), op->stride, op->lanes);
Expr             1794 src/CodeGen_LLVM.cpp Expr unbroadcast(Expr e) {
Expr             1875 src/CodeGen_LLVM.cpp void CodeGen_LLVM::scalarize(Expr e) {
Expr             1924 src/CodeGen_LLVM.cpp             Expr slice_base = simplify(ramp->base + i);
Expr             1925 src/CodeGen_LLVM.cpp             Expr slice_stride = make_one(slice_base.type());
Expr             1926 src/CodeGen_LLVM.cpp             Expr slice_index = slice_lanes == 1 ? slice_base : Ramp::make(slice_base, slice_stride, slice_lanes);
Expr             1969 src/CodeGen_LLVM.cpp     debug(4) << "Vectorize predicated dense vector load:\n\t" << Expr(load) << "\n";
Expr             2011 src/CodeGen_LLVM.cpp         Expr slice_base = simplify(ramp->base + i);
Expr             2012 src/CodeGen_LLVM.cpp         Expr slice_stride = make_one(slice_base.type());
Expr             2013 src/CodeGen_LLVM.cpp         Expr slice_index = slice_lanes == 1 ? slice_base : Ramp::make(slice_base, slice_stride, slice_lanes);
Expr             2039 src/CodeGen_LLVM.cpp         debug(4) << "Predicated dense vector load with stride -1\n\t" << Expr(op) << "\n";
Expr             2050 src/CodeGen_LLVM.cpp         Expr flipped_base = ramp->base - ramp->lanes + 1;
Expr             2051 src/CodeGen_LLVM.cpp         Expr flipped_stride = make_one(flipped_base.type());
Expr             2052 src/CodeGen_LLVM.cpp         Expr flipped_index = Ramp::make(flipped_base, flipped_stride, ramp->lanes);
Expr             2053 src/CodeGen_LLVM.cpp         Expr flipped_load = Load::make(op->type, op->name, flipped_index, op->image,
Expr             2059 src/CodeGen_LLVM.cpp         Expr load_expr = Load::make(op->type, op->name, op->index, op->image,
Expr             2062 src/CodeGen_LLVM.cpp         Expr pred_load = Call::make(load_expr.type(),
Expr             2092 src/CodeGen_LLVM.cpp         Value *char_ptr = codegen(Expr(filename));
Expr             2177 src/CodeGen_LLVM.cpp             Expr x = Variable::make(op->args[0].type(), x_name);
Expr             2184 src/CodeGen_LLVM.cpp         Expr a = op->args[0];
Expr             2185 src/CodeGen_LLVM.cpp         Expr b = op->args[1];
Expr             2208 src/CodeGen_LLVM.cpp             Expr a_var = Variable::make(op->args[0].type(), a_name);
Expr             2209 src/CodeGen_LLVM.cpp             Expr b_var = Variable::make(op->args[1].type(), b_name);
Expr             2264 src/CodeGen_LLVM.cpp         Expr cond = op->args[0];
Expr             2462 src/CodeGen_LLVM.cpp         Expr arg = op->args[1];
Expr             2518 src/CodeGen_LLVM.cpp             Expr cond;
Expr             2645 src/CodeGen_LLVM.cpp         Expr x = op->args[0];
Expr             2646 src/CodeGen_LLVM.cpp         Expr y = op->args[1];
Expr             2647 src/CodeGen_LLVM.cpp         Expr e = Internal::halide_exp(Internal::halide_log(x) * y);
Expr             2651 src/CodeGen_LLVM.cpp         Expr e = Internal::halide_log(op->args[0]);
Expr             2655 src/CodeGen_LLVM.cpp         Expr e = Internal::halide_exp(op->args[0]);
Expr             2737 src/CodeGen_LLVM.cpp                 Expr halide_arg = takes_user_context ? op->args[i-1] : op->args[i];
Expr             2873 src/CodeGen_LLVM.cpp void CodeGen_LLVM::create_assertion(Value *cond, Expr message, llvm::Value *error_code) {
Expr             3068 src/CodeGen_LLVM.cpp         create_assertion(did_succeed, Expr(), result);
Expr             3079 src/CodeGen_LLVM.cpp         Expr v = reinterpret(UInt(64, op->value.type().lanes()), op->value);
Expr             3134 src/CodeGen_LLVM.cpp                 Expr slice_base = simplify(ramp->base + i);
Expr             3135 src/CodeGen_LLVM.cpp                 Expr slice_stride = make_one(slice_base.type());
Expr             3136 src/CodeGen_LLVM.cpp                 Expr slice_index = slice_lanes == 1 ? slice_base : Ramp::make(slice_base, slice_stride, slice_lanes);
Expr             3227 src/CodeGen_LLVM.cpp         for (Expr i : op->vectors) {
Expr             3233 src/CodeGen_LLVM.cpp         for (Expr i : op->vectors) {
Expr             3286 src/CodeGen_LLVM.cpp                                  const string &name, vector<Expr> args) {
Expr             3489 src/CodeGen_LLVM.cpp ModulusRemainder CodeGen_LLVM::get_alignment_info(Expr e) {
Expr              204 src/CodeGen_LLVM.h     Expr wild_i8x8, wild_i16x4, wild_i32x2; // 64-bit signed ints
Expr              205 src/CodeGen_LLVM.h     Expr wild_u8x8, wild_u16x4, wild_u32x2; // 64-bit unsigned ints
Expr              206 src/CodeGen_LLVM.h     Expr wild_i8x16, wild_i16x8, wild_i32x4, wild_i64x2; // 128-bit signed ints
Expr              207 src/CodeGen_LLVM.h     Expr wild_u8x16, wild_u16x8, wild_u32x4, wild_u64x2; // 128-bit unsigned ints
Expr              208 src/CodeGen_LLVM.h     Expr wild_i8x32, wild_i16x16, wild_i32x8, wild_i64x4; // 256-bit signed ints
Expr              209 src/CodeGen_LLVM.h     Expr wild_u8x32, wild_u16x16, wild_u32x8, wild_u64x4; // 256-bit unsigned ints
Expr              211 src/CodeGen_LLVM.h     Expr wild_f32x2; // 64-bit floats
Expr              212 src/CodeGen_LLVM.h     Expr wild_f32x4, wild_f64x2; // 128-bit floats
Expr              213 src/CodeGen_LLVM.h     Expr wild_f32x8, wild_f64x4; // 256-bit floats
Expr              216 src/CodeGen_LLVM.h     Expr wild_u1x_, wild_i8x_, wild_u8x_, wild_i16x_, wild_u16x_;
Expr              217 src/CodeGen_LLVM.h     Expr wild_i32x_, wild_u32x_, wild_i64x_, wild_u64x_;
Expr              218 src/CodeGen_LLVM.h     Expr wild_f32x_, wild_f64x_;
Expr              219 src/CodeGen_LLVM.h     Expr min_i8, max_i8, max_u8;
Expr              220 src/CodeGen_LLVM.h     Expr min_i16, max_i16, max_u16;
Expr              221 src/CodeGen_LLVM.h     Expr min_i32, max_i32, max_u32;
Expr              222 src/CodeGen_LLVM.h     Expr min_i64, max_i64, max_u64;
Expr              223 src/CodeGen_LLVM.h     Expr min_f32, max_f32, min_f64, max_f64;
Expr              228 src/CodeGen_LLVM.h     llvm::Value *codegen(Expr);
Expr              235 src/CodeGen_LLVM.h     void scalarize(Expr);
Expr              265 src/CodeGen_LLVM.h     void create_assertion(llvm::Value *condition, Expr message, llvm::Value *error_code = nullptr);
Expr              286 src/CodeGen_LLVM.h     llvm::Value *codegen_buffer_pointer(std::string buffer, Type type, Expr index);
Expr              287 src/CodeGen_LLVM.h     llvm::Value *codegen_buffer_pointer(llvm::Value *base_address, Type type, Expr index);
Expr              297 src/CodeGen_LLVM.h     void add_tbaa_metadata(llvm::Instruction *inst, std::string buffer, Expr index);
Expr              309 src/CodeGen_LLVM.h     virtual Expr mulhi_shr(Expr a, Expr b, int shr);
Expr              311 src/CodeGen_LLVM.h     virtual Expr sorted_avg(Expr a, Expr b);
Expr              415 src/CodeGen_LLVM.h                              const std::string &name, std::vector<Expr>);
Expr              452 src/CodeGen_LLVM.h     ModulusRemainder get_alignment_info(Expr e);
Expr              481 src/CodeGen_LLVM.h     llvm::Constant *embed_constant_expr(Expr e);
Expr               90 src/CodeGen_Metal_Dev.cpp string CodeGen_Metal_Dev::CodeGen_Metal_C::print_reinterpret(Type type, Expr e) {
Expr              199 src/CodeGen_Metal_Dev.cpp Expr is_ramp_one(Expr e) {
Expr              202 src/CodeGen_Metal_Dev.cpp         return Expr();
Expr              209 src/CodeGen_Metal_Dev.cpp     return Expr();
Expr              222 src/CodeGen_Metal_Dev.cpp     Expr ramp_base = is_ramp_one(op->index);
Expr              293 src/CodeGen_Metal_Dev.cpp     Expr ramp_base = is_ramp_one(op->index);
Expr               64 src/CodeGen_Metal_Dev.h         std::string print_reinterpret(Type type, Expr e);
Expr               78 src/CodeGen_OpenCL_Dev.cpp string CodeGen_OpenCL_Dev::CodeGen_OpenCL_C::print_reinterpret(Type type, Expr e) {
Expr              155 src/CodeGen_OpenCL_Dev.cpp Expr is_ramp1(Expr e) {
Expr              158 src/CodeGen_OpenCL_Dev.cpp         return Expr();
Expr              166 src/CodeGen_OpenCL_Dev.cpp     return Expr();
Expr              185 src/CodeGen_OpenCL_Dev.cpp             Expr equiv = -Cast::make(op->type, op->args[0]);
Expr              190 src/CodeGen_OpenCL_Dev.cpp         Expr equiv = Cast::make(op->type, op->args[0]);
Expr              226 src/CodeGen_OpenCL_Dev.cpp     Expr ramp_base = is_ramp1(op->index);
Expr              295 src/CodeGen_OpenCL_Dev.cpp     Expr ramp_base = is_ramp1(op->index);
Expr               55 src/CodeGen_OpenCL_Dev.h         std::string print_reinterpret(Type type, Expr e);
Expr              335 src/CodeGen_OpenGLCompute_Dev.cpp     Expr extent = 1;
Expr              336 src/CodeGen_OpenGLCompute_Dev.cpp     for (Expr e : op->extents) {
Expr               72 src/CodeGen_OpenGL_Dev.cpp Expr call_builtin(const Type &result_type, const string &func,
Expr               73 src/CodeGen_OpenGL_Dev.cpp                   const vector<Expr> &args) {
Expr               75 src/CodeGen_OpenGL_Dev.cpp     vector<Expr> new_args(args.size());
Expr               83 src/CodeGen_OpenGL_Dev.cpp     Expr val = Call::make(float_type, func, new_args, Call::Extern);
Expr              181 src/CodeGen_OpenGL_Dev.cpp         Expr val = Div::make(Cast::make(float_type, op->a), Cast::make(float_type, op->b));
Expr              355 src/CodeGen_OpenGL_Dev.cpp         Expr value = op->value;
Expr              411 src/CodeGen_OpenGL_Dev.cpp vector<Expr> evaluate_vector_select(const Select *op) {
Expr              413 src/CodeGen_OpenGL_Dev.cpp     vector<Expr> result(lanes);
Expr              415 src/CodeGen_OpenGL_Dev.cpp         Expr cond = extract_lane(op->condition, i);
Expr              416 src/CodeGen_OpenGL_Dev.cpp         Expr true_value = extract_lane(op->true_value, i);
Expr              417 src/CodeGen_OpenGL_Dev.cpp         Expr false_value = extract_lane(op->false_value, i);
Expr              461 src/CodeGen_OpenGL_Dev.cpp         vector<Expr> result = evaluate_vector_select(op);
Expr              478 src/CodeGen_OpenGL_Dev.cpp string CodeGen_GLSL::get_vector_suffix(Expr e) {
Expr              479 src/CodeGen_OpenGL_Dev.cpp     vector<Expr> matches;
Expr              480 src/CodeGen_OpenGL_Dev.cpp     Expr w = Variable::make(Int(32), "*");
Expr              502 src/CodeGen_OpenGL_Dev.cpp vector<string> CodeGen_GLSL::print_lanes(Expr e) {
Expr              608 src/CodeGen_OpenGL_Dev.cpp             Expr c = op->args[4];
Expr              698 src/CodeGen_OpenGL_Dev.cpp         Expr zero_val = op->args[0];
Expr              699 src/CodeGen_OpenGL_Dev.cpp         Expr one_val = op->args[1];
Expr              700 src/CodeGen_OpenGL_Dev.cpp         Expr weight = op->args[2];
Expr              716 src/CodeGen_OpenGL_Dev.cpp         Expr e = call_builtin(result_type, "mix", {zero_val, one_val, weight});
Expr              975 src/CodeGen_OpenGL_Dev.cpp void check(Expr e, const string &result) {
Expr              996 src/CodeGen_OpenGL_Dev.cpp     vector<Expr> e;
Expr             1013 src/CodeGen_OpenGL_Dev.cpp     check(Min::make(Expr(1), Expr(5)),
Expr             1017 src/CodeGen_OpenGL_Dev.cpp     check(Max::make(Expr(1), Expr(5)),
Expr             1027 src/CodeGen_OpenGL_Dev.cpp     check(Variable::make(Int(32), "x") / Expr(3),
Expr             1107 src/CodeGen_OpenGL_Dev.cpp     Expr load4 = Call::make(Float(32, 4), Call::glsl_texture_load,
Expr              120 src/CodeGen_OpenGL_Dev.h     std::string get_vector_suffix(Expr e);
Expr              122 src/CodeGen_OpenGL_Dev.h     std::vector<std::string> print_lanes(Expr expr);
Expr              172 src/CodeGen_PTX_Dev.cpp         Expr simt_idx = Call::make(Int(32), simt_intrinsic(loop->name), std::vector<Expr>(), Call::Extern);
Expr              223 src/CodeGen_PTX_Dev.cpp     Expr trap = Call::make(Int(32), "halide_ptx_trap", {}, Call::Extern);
Expr               27 src/CodeGen_Posix.cpp Value *CodeGen_Posix::codegen_allocation_size(const std::string &name, Type type, const std::vector<Expr> &extents) {
Expr               30 src/CodeGen_Posix.cpp     Expr overflow = make_zero(UInt(64));
Expr               31 src/CodeGen_Posix.cpp     Expr total_size = make_const(UInt(64), type.lanes() * type.bytes());
Expr               40 src/CodeGen_Posix.cpp     Expr total_size_hi = make_zero(UInt(64));
Expr               42 src/CodeGen_Posix.cpp     Expr low_mask = make_const(UInt(64), (uint64_t)(0xffffffff));
Expr               44 src/CodeGen_Posix.cpp         Expr next_extent = cast(UInt(32), extents[i]);
Expr               60 src/CodeGen_Posix.cpp     Expr max_size = make_const(UInt(64), target.maximum_buffer_size());
Expr               61 src/CodeGen_Posix.cpp     Expr size_check = (overflow == 0) && (total_size <= max_size);
Expr               83 src/CodeGen_Posix.cpp                                                            const std::vector<Expr> &extents, Expr condition,
Expr               84 src/CodeGen_Posix.cpp                                                            Expr new_expr, std::string free_function) {
Expr               97 src/CodeGen_Posix.cpp             llvm_size = codegen(Expr(constant_bytes));
Expr              189 src/CodeGen_Posix.cpp             for (Expr e : extents) {
Expr              216 src/CodeGen_Posix.cpp                                            std::vector<Expr>(), Call::Extern));
Expr               88 src/CodeGen_Posix.h     llvm::Value *codegen_allocation_size(const std::string &name, Type type, const std::vector<Expr> &extents);
Expr              104 src/CodeGen_Posix.h                                  const std::vector<Expr> &extents,
Expr              105 src/CodeGen_Posix.h                                  Expr condition, Expr new_expr, std::string free_function);
Expr               50 src/CodeGen_PowerPC.cpp     vector<Expr> matches;
Expr               57 src/CodeGen_PowerPC.cpp         Expr pattern;
Expr               38 src/CodeGen_X86.cpp bool should_use_pmaddwd(Expr a, Expr b, vector<Expr> &result) {
Expr               50 src/CodeGen_X86.cpp     vector<Expr> args = {lossless_cast(narrow, ma->a),
Expr               67 src/CodeGen_X86.cpp     vector<Expr> matches;
Expr               77 src/CodeGen_X86.cpp     vector<Expr> matches;
Expr              210 src/CodeGen_X86.cpp     vector<Expr> matches;
Expr              218 src/CodeGen_X86.cpp         Expr pattern;
Expr              302 src/CodeGen_X86.cpp         Expr top_bits = cast(signed_type, op->value / 2);
Expr              306 src/CodeGen_X86.cpp         Expr bottom_bit = cast(signed_type, op->value % 2);
Expr              319 src/CodeGen_X86.cpp Expr CodeGen_X86::mulhi_shr(Expr a, Expr b, int shr) {
Expr              323 src/CodeGen_X86.cpp         Expr p;
Expr              403 src/CodeGen_X86.cpp         Expr equiv = cast(op->type,
Expr               32 src/CodeGen_X86.h     Expr mulhi_shr(Expr a, Expr b, int shr);
Expr               18 src/ConciseCasts.h inline Expr f64(Expr e) {
Expr               22 src/ConciseCasts.h inline Expr f32(Expr e) {
Expr               26 src/ConciseCasts.h inline Expr i64(Expr e) {
Expr               30 src/ConciseCasts.h inline Expr i32(Expr e) {
Expr               34 src/ConciseCasts.h inline Expr i16(Expr e) {
Expr               38 src/ConciseCasts.h inline Expr i8(Expr e) {
Expr               42 src/ConciseCasts.h inline Expr u64(Expr e) {
Expr               46 src/ConciseCasts.h inline Expr u32(Expr e) {
Expr               50 src/ConciseCasts.h inline Expr u16(Expr e) {
Expr               54 src/ConciseCasts.h inline Expr u8(Expr e) {
Expr               58 src/ConciseCasts.h inline Expr i8_sat(Expr e) {
Expr               62 src/ConciseCasts.h inline Expr u8_sat(Expr e) {
Expr               66 src/ConciseCasts.h inline Expr i16_sat(Expr e) {
Expr               70 src/ConciseCasts.h inline Expr u16_sat(Expr e) {
Expr               74 src/ConciseCasts.h inline Expr i32_sat(Expr e) {
Expr               78 src/ConciseCasts.h inline Expr u32_sat(Expr e) {
Expr               82 src/ConciseCasts.h inline Expr i64_sat(Expr e) {
Expr               86 src/ConciseCasts.h inline Expr u64_sat(Expr e) {
Expr               16 src/Debug.h    struct Expr;
Expr               19 src/Debug.h    EXPORT std::ostream &operator<<(std::ostream &stream, const Expr &);
Expr               16 src/DebugArguments.cpp         Expr scalar_var = Variable::make(arg.type, arg.name);
Expr               17 src/DebugArguments.cpp         Expr buffer_var = Variable::make(type_of<halide_buffer_t *>(), arg.name + ".buffer");
Expr               18 src/DebugArguments.cpp         Expr value;
Expr               26 src/DebugToFile.cpp             vector<Expr> args;
Expr               38 src/DebugToFile.cpp             Expr num_elements = 1;
Expr               70 src/DebugToFile.cpp             Expr buf = Variable::make(Handle(), f.name() + ".buffer");
Expr               73 src/DebugToFile.cpp             Expr call = Call::make(Int(32), Call::debug_to_file, args, Call::Intrinsic);
Expr               75 src/DebugToFile.cpp             Expr call_result_var = Variable::make(Int(32), call_result_name);
Expr              119 src/DebugToFile.cpp             Expr min    = Variable::make(Int(32), out.name() + ".min." + dim);
Expr              120 src/DebugToFile.cpp             Expr extent = Variable::make(Int(32), out.name() + ".extent." + dim);
Expr               19 src/Definition.cpp     Expr predicate;
Expr               20 src/Definition.cpp     std::vector<Expr> values, args;
Expr               31 src/Definition.cpp         for (Expr val : values) {
Expr               34 src/Definition.cpp         for (Expr arg : args) {
Expr               88 src/Definition.cpp Definition::Definition(const std::vector<Expr> &args, const std::vector<Expr> &values,
Expr              137 src/Definition.cpp std::vector<Expr> &Definition::args() {
Expr              141 src/Definition.cpp const std::vector<Expr> &Definition::args() const {
Expr              145 src/Definition.cpp std::vector<Expr> &Definition::values() {
Expr              149 src/Definition.cpp const std::vector<Expr> &Definition::values() const {
Expr              153 src/Definition.cpp Expr &Definition::predicate() {
Expr              157 src/Definition.cpp const Expr &Definition::predicate() const {
Expr              161 src/Definition.cpp std::vector<Expr> Definition::split_predicate() const {
Expr              162 src/Definition.cpp     std::vector<Expr> predicates;
Expr              183 src/Definition.cpp const Specialization &Definition::add_specialization(Expr condition) {
Expr               47 src/Definition.h     EXPORT Definition(const std::vector<Expr> &args, const std::vector<Expr> &values,
Expr               81 src/Definition.h     EXPORT const std::vector<Expr> &args() const;
Expr               82 src/Definition.h     EXPORT std::vector<Expr> &args();
Expr               87 src/Definition.h     EXPORT const std::vector<Expr> &values() const;
Expr               88 src/Definition.h     EXPORT std::vector<Expr> &values();
Expr               93 src/Definition.h     EXPORT const Expr &predicate() const;
Expr               94 src/Definition.h     EXPORT Expr &predicate();
Expr               99 src/Definition.h     EXPORT std::vector<Expr> split_predicate() const;
Expr              113 src/Definition.h     EXPORT const Specialization &add_specialization(Expr condition);
Expr              119 src/Definition.h     Expr condition;
Expr              157 src/Deinterleave.cpp     Scope<Expr> internal;
Expr              258 src/Deinterleave.cpp             std::vector<Expr> args(op->args.size());
Expr              270 src/Deinterleave.cpp             Expr new_value = mutate(op->value);
Expr              273 src/Deinterleave.cpp             Expr new_var = Variable::make(new_type, new_name);
Expr              275 src/Deinterleave.cpp             Expr body = mutate(op->body);
Expr              295 src/Deinterleave.cpp                 std::vector<Expr> new_vectors(op->vectors.size() / lane_stride);
Expr              321 src/Deinterleave.cpp Expr extract_odd_lanes(Expr e, const Scope<int> &lets) {
Expr              331 src/Deinterleave.cpp Expr extract_even_lanes(Expr e, const Scope<int> &lets) {
Expr              341 src/Deinterleave.cpp Expr extract_even_lanes(Expr e) {
Expr              347 src/Deinterleave.cpp Expr extract_odd_lanes(Expr e) {
Expr              353 src/Deinterleave.cpp Expr extract_mod3_lanes(Expr e, int lane, const Scope<int> &lets) {
Expr              363 src/Deinterleave.cpp Expr extract_lane(Expr e, int lane) {
Expr              383 src/Deinterleave.cpp     Expr deinterleave_expr(Expr e) {
Expr              388 src/Deinterleave.cpp             Expr a = extract_even_lanes(e, vector_lets);
Expr              389 src/Deinterleave.cpp             Expr b = extract_odd_lanes(e, vector_lets);
Expr              392 src/Deinterleave.cpp             Expr a = extract_mod3_lanes(e, 0, vector_lets);
Expr              393 src/Deinterleave.cpp             Expr b = extract_mod3_lanes(e, 1, vector_lets);
Expr              394 src/Deinterleave.cpp             Expr c = extract_mod3_lanes(e, 2, vector_lets);
Expr              397 src/Deinterleave.cpp             Expr a = extract_even_lanes(e, vector_lets);
Expr              398 src/Deinterleave.cpp             Expr b = extract_odd_lanes(e, vector_lets);
Expr              399 src/Deinterleave.cpp             Expr aa = extract_even_lanes(a, vector_lets);
Expr              400 src/Deinterleave.cpp             Expr ab = extract_odd_lanes(a, vector_lets);
Expr              401 src/Deinterleave.cpp             Expr ba = extract_even_lanes(b, vector_lets);
Expr              402 src/Deinterleave.cpp             Expr bb = extract_odd_lanes(b, vector_lets);
Expr              412 src/Deinterleave.cpp         Expr value = mutate(op->value);
Expr              452 src/Deinterleave.cpp         expr = visit_let<Let, Expr>(op);
Expr              492 src/Deinterleave.cpp         Expr idx = mutate(op->index);
Expr              496 src/Deinterleave.cpp         Expr predicate = mutate(op->predicate);
Expr              530 src/Deinterleave.cpp         Expr idx = mutate(op->index);
Expr              536 src/Deinterleave.cpp         Expr value = mutate(op->value);
Expr              542 src/Deinterleave.cpp         Expr predicate = mutate(op->predicate);
Expr              602 src/Deinterleave.cpp             Expr base;
Expr              603 src/Deinterleave.cpp             std::vector<Expr> args(stores.size());
Expr              604 src/Deinterleave.cpp             std::vector<Expr> predicates(stores.size());
Expr              619 src/Deinterleave.cpp                 Expr diff = simplify(ri->base - r0->base);
Expr              690 src/Deinterleave.cpp             Expr index = Ramp::make(base, make_one(base.type()), t.lanes());
Expr              691 src/Deinterleave.cpp             Expr value = Shuffle::make_interleave(args);
Expr              692 src/Deinterleave.cpp             Expr predicate = Shuffle::make_interleave(predicates);
Expr              724 src/Deinterleave.cpp void check(Expr a, Expr even, Expr odd) {
Expr              726 src/Deinterleave.cpp     Expr correct_even = extract_even_lanes(a);
Expr              727 src/Deinterleave.cpp     Expr correct_odd = extract_odd_lanes(a);
Expr              738 src/Deinterleave.cpp     std::pair<Expr, Expr> result;
Expr              739 src/Deinterleave.cpp     Expr x = Variable::make(Int(32), "x");
Expr              740 src/Deinterleave.cpp     Expr ramp = Ramp::make(x + 4, 3, 8);
Expr              741 src/Deinterleave.cpp     Expr ramp_a = Ramp::make(x + 4, 6, 4);
Expr              742 src/Deinterleave.cpp     Expr ramp_b = Ramp::make(x + 7, 6, 4);
Expr              743 src/Deinterleave.cpp     Expr broadcast = Broadcast::make(x + 4, 16);
Expr              744 src/Deinterleave.cpp     Expr broadcast_a = Broadcast::make(x + 4, 8);
Expr              745 src/Deinterleave.cpp     Expr broadcast_b = broadcast_a;
Expr               17 src/Deinterleave.h EXPORT Expr extract_odd_lanes(Expr a);
Expr               20 src/Deinterleave.h EXPORT Expr extract_even_lanes(Expr a);
Expr               23 src/Deinterleave.h EXPORT Expr extract_lane(Expr vec, int lane);
Expr              103 src/EarlyFree.cpp         Expr buf = Variable::make(Handle(), func + ".buffer");
Expr               25 src/EliminateBoolVectors.cpp         Expr a = mutate(op->a);
Expr               26 src/EliminateBoolVectors.cpp         Expr b = mutate(op->b);
Expr               66 src/EliminateBoolVectors.cpp         Expr a = mutate(op->a);
Expr               67 src/EliminateBoolVectors.cpp         Expr b = mutate(op->b);
Expr               98 src/EliminateBoolVectors.cpp         Expr a = mutate(op->a);
Expr              124 src/EliminateBoolVectors.cpp         Expr predicate = mutate(op->predicate);
Expr              125 src/EliminateBoolVectors.cpp         Expr value = op->value;
Expr              133 src/EliminateBoolVectors.cpp         Expr index = mutate(op->index);
Expr              143 src/EliminateBoolVectors.cpp         Expr cond = mutate(op->condition);
Expr              144 src/EliminateBoolVectors.cpp         Expr true_value = mutate(op->true_value);
Expr              145 src/EliminateBoolVectors.cpp         Expr false_value = mutate(op->false_value);
Expr              171 src/EliminateBoolVectors.cpp         Expr value = mutate(op->value);
Expr              194 src/EliminateBoolVectors.cpp         Expr value = mutate(op->value);
Expr              216 src/EliminateBoolVectors.cpp     void visit(const Let *op) { expr = visit_let<Expr>(op); }
Expr              224 src/EliminateBoolVectors.cpp Expr eliminate_bool_vectors(Expr e) {
Expr               27 src/EliminateBoolVectors.h EXPORT Expr eliminate_bool_vectors(Expr s);
Expr              264 src/Expr.h     struct Expr : public Internal::IRHandle {
Expr              266 src/Expr.h         Expr() : Internal::IRHandle() {}
Expr              269 src/Expr.h         Expr(const Internal::BaseExprNode *n) : IRHandle(n) {}
Expr              274 src/Expr.h         EXPORT explicit Expr(int8_t x)    : IRHandle(Internal::IntImm::make(Int(8), x)) {}
Expr              275 src/Expr.h         EXPORT explicit Expr(int16_t x)   : IRHandle(Internal::IntImm::make(Int(16), x)) {}
Expr              276 src/Expr.h         EXPORT          Expr(int32_t x)   : IRHandle(Internal::IntImm::make(Int(32), x)) {}
Expr              277 src/Expr.h         EXPORT explicit Expr(int64_t x)   : IRHandle(Internal::IntImm::make(Int(64), x)) {}
Expr              278 src/Expr.h         EXPORT explicit Expr(uint8_t x)   : IRHandle(Internal::UIntImm::make(UInt(8), x)) {}
Expr              279 src/Expr.h         EXPORT explicit Expr(uint16_t x)  : IRHandle(Internal::UIntImm::make(UInt(16), x)) {}
Expr              280 src/Expr.h         EXPORT explicit Expr(uint32_t x)  : IRHandle(Internal::UIntImm::make(UInt(32), x)) {}
Expr              281 src/Expr.h         EXPORT explicit Expr(uint64_t x)  : IRHandle(Internal::UIntImm::make(UInt(64), x)) {}
Expr              282 src/Expr.h         EXPORT          Expr(float16_t x) : IRHandle(Internal::FloatImm::make(Float(16), (double)x)) {}
Expr              283 src/Expr.h         EXPORT          Expr(float x)     : IRHandle(Internal::FloatImm::make(Float(32), x)) {}
Expr              284 src/Expr.h         EXPORT explicit Expr(double x)    : IRHandle(Internal::FloatImm::make(Float(64), x)) {}
Expr              288 src/Expr.h         EXPORT          Expr(const std::string &s) : IRHandle(Internal::StringImm::make(s)) {}
Expr              299 src/Expr.h         bool operator()(const Expr &a, const Expr &b) const {
Expr               20 src/ExprUsesVar.h     Scope<Expr> scope;
Expr               44 src/ExprUsesVar.h     ExprUsesVars(const Scope<T> &v, const Scope<Expr> *s = nullptr) : vars(v), result(false) {
Expr               66 src/ExprUsesVar.h                                    const Scope<Expr> &s = Scope<Expr>::empty_scope()) {
Expr               73 src/ExprUsesVar.h inline bool expr_uses_var(Expr e, const std::string &v) {
Expr               87 src/ExprUsesVar.h inline bool expr_uses_vars(Expr e, const Scope<T> &v,
Expr               88 src/ExprUsesVar.h                            const Scope<Expr> &s = Scope<Expr>::empty_scope()) {
Expr               98 src/ExprUsesVar.h                            const Scope<Expr> &s = Scope<Expr>::empty_scope()) {
Expr               18 src/Extern.h       Halide::Expr name(const Halide::Expr &a1) {                         \
Expr               24 src/Extern.h       Halide::Expr name(const Halide::Expr &a1, const Halide::Expr &a2) { \
Expr               31 src/Extern.h       Halide::Expr name(const Halide::Expr &a1, const Halide::Expr &a2,const Halide::Expr &a3) { \
Expr               39 src/Extern.h       Halide::Expr name(const Halide::Expr &a1, const Halide::Expr &a2, const Halide::Expr &a3, const Halide::Expr &a4) { \
Expr               48 src/Extern.h       Halide::Expr name(const Halide::Expr &a1, const Halide::Expr &a2, const Halide::Expr &a3, const Halide::Expr &a4, const Halide::Expr &a5) { \
Expr               58 src/Extern.h       Halide::Expr name(const Halide::Expr &a1) {                         \
Expr               64 src/Extern.h       Halide::Expr name(const Halide::Expr &a1, const Halide::Expr &a2) { \
Expr               71 src/Extern.h       Halide::Expr name(const Halide::Expr &a1, const Halide::Expr &a2, const Halide::Expr &a3) { \
Expr               79 src/Extern.h       Halide::Expr name(const Halide::Expr &a1, const Halide::Expr &a2, const Halide::Expr &a3, const Halide::Expr &a4) { \
Expr               88 src/Extern.h       Halide::Expr name(const Halide::Expr &a1, const Halide::Expr &a2, const Halide::Expr &a3, const Halide::Expr &a4, const Halide::Expr &a5) { \
Expr              116 src/FastIntegerDivide.cpp Expr fast_integer_divide(Expr numerator, Expr denominator) {
Expr              131 src/FastIntegerDivide.cpp     Expr result;
Expr              133 src/FastIntegerDivide.cpp         Expr mul, shift;
Expr              175 src/FastIntegerDivide.cpp         Expr mul, shift;
Expr              202 src/FastIntegerDivide.cpp         Expr xsign = select(numerator > 0, cast(t, 0), cast(t, -1));
Expr              231 src/FastIntegerDivide.cpp Expr fast_integer_modulo(Expr numerator, Expr denominator) {
Expr               42 src/FastIntegerDivide.h EXPORT Expr fast_integer_divide(Expr numerator, Expr denominator);
Expr               47 src/FastIntegerDivide.h EXPORT Expr fast_integer_modulo(Expr numerator, Expr denominator);
Expr               51 src/Func.cpp   Func::Func(Expr e) : func(make_entity_name(this, "Halide::Func", 'f')) {
Expr               74 src/Func.cpp   Expr Func::value() const {
Expr               91 src/Func.cpp   const std::vector<Expr> &Func::update_args(int idx) const {
Expr              103 src/Func.cpp   Expr Func::update_value(int idx) const {
Expr              199 src/Func.cpp   FuncRef Func::operator()(vector<Expr> args) const {
Expr              233 src/Func.cpp   std::pair<int, int> Func::add_implicit_vars(vector<Expr> &args) const {
Expr              236 src/Func.cpp       std::vector<Expr>::iterator iter = args.begin();
Expr              371 src/Func.cpp               vector<Expr> args;
Expr              388 src/Func.cpp   Expr substitute_self_reference(Expr val, const string &func, const Function &substitute,
Expr              396 src/Func.cpp   void substitute_var_in_exprs(const string &name, Expr value, vector<Expr> &exprs) {
Expr              402 src/Func.cpp   void apply_split_result(const vector<pair<string, Expr>> &bounds_let_stmts,
Expr              404 src/Func.cpp                           vector<Expr> &predicates, vector<Expr> &args,
Expr              405 src/Func.cpp                           vector<Expr> &values) {
Expr              434 src/Func.cpp                    vector<Expr> &predicates, vector<Expr> &args,
Expr              435 src/Func.cpp                    vector<Expr> &values, map<string, Expr> &dim_extent_alignment) {
Expr              440 src/Func.cpp       Expr old_max, old_min, old_extent;
Expr              456 src/Func.cpp           vector<pair<string, Expr>> bounds_let_stmts = compute_loop_bounds_after_split(s, "");
Expr              467 src/Func.cpp                   vector<Expr> &predicates, vector<Expr> &args,
Expr              468 src/Func.cpp                   vector<Expr> &values, map<string, Expr> &dim_extent_alignment) {
Expr              475 src/Func.cpp       Expr inner_min, inner_extent, outer_min, outer_extent;
Expr              484 src/Func.cpp           Expr extent = iter_outer->extent * iter_inner->extent;
Expr              491 src/Func.cpp           vector<pair<string, Expr>> bounds_let_stmts = compute_loop_bounds_after_split(s, "");
Expr              504 src/Func.cpp                     vector<Expr> &predicates, vector<Expr> &args,
Expr              505 src/Func.cpp                     vector<Expr> &values, map<string, Expr> &dim_extent_alignment) {
Expr              515 src/Func.cpp           vector<pair<string, Expr>> bounds_let_stmts = compute_loop_bounds_after_split(s, "");
Expr              525 src/Func.cpp                     vector<Expr> &predicates, vector<Expr> &args,
Expr              526 src/Func.cpp                     vector<Expr> &values, map<string, Expr> &dim_extent_alignment) {
Expr              535 src/Func.cpp           vector<pair<string, Expr>> bounds_let_stmts = compute_loop_bounds_after_split(s, "");
Expr              546 src/Func.cpp                              vector<Expr> &predicates, vector<Expr> &args,
Expr              547 src/Func.cpp                              vector<Expr> &values) {
Expr              548 src/Func.cpp       map<string, Expr> dim_extent_alignment;
Expr              553 src/Func.cpp       vector<pair<string, Expr>> rvar_bounds;
Expr              597 src/Func.cpp       vector<Expr> &args = definition.args();
Expr              598 src/Func.cpp       vector<Expr> &values = definition.values();
Expr              612 src/Func.cpp       vector<Expr> predicates = definition.split_predicate();
Expr              747 src/Func.cpp       vector<Expr> init_vals(values.size());
Expr              756 src/Func.cpp       vector<Expr> update_args(args.size() + vars_rename.size());
Expr              761 src/Func.cpp       map<string, Expr> substitution_map;
Expr              774 src/Func.cpp           Expr arg = substitute(substitution_map, args[i]);
Expr              779 src/Func.cpp       for (const Expr &pred : predicates) {
Expr              780 src/Func.cpp           Expr subs_pred = substitute(substitution_map, pred);
Expr              793 src/Func.cpp       vector<Expr> update_vals(values.size());
Expr              795 src/Func.cpp           Expr val = substitute(substitution_map, values[i]);
Expr              845 src/Func.cpp       vector<Expr> f_store_args(dim_vars.size());
Expr              851 src/Func.cpp       vector<Expr> f_load_args;
Expr              860 src/Func.cpp       vector<Expr> f_values(values.size());
Expr              864 src/Func.cpp           map<string, Expr> replacement;
Expr              870 src/Func.cpp                   Expr prev_val = Call::make(intm.output_types()[i], func_name,
Expr              884 src/Func.cpp           Expr prev_val = Call::make(intm.output_types()[0], func_name,
Expr              887 src/Func.cpp           Expr val = substitute(prover_result.ys[0].var, intm(f_load_args), prover_result.pattern.ops[0]);
Expr              905 src/Func.cpp   void Stage::split(const string &old, const string &outer, const string &inner, Expr factor, bool exact, TailStrategy tail) {
Expr             1016 src/Func.cpp   Stage &Stage::split(VarOrRVar old, VarOrRVar outer, VarOrRVar inner, Expr factor, TailStrategy tail) {
Expr             1094 src/Func.cpp       Split split = {fused_name, outer_name, inner_name, Expr(), true, TailStrategy::RoundUp, Split::FuseVars};
Expr             1113 src/Func.cpp   Stage Stage::specialize(Expr condition) {
Expr             1402 src/Func.cpp   Stage &Stage::parallel(VarOrRVar var, Expr factor, TailStrategy tail) {
Expr             1414 src/Func.cpp   Stage &Stage::vectorize(VarOrRVar var, Expr factor, TailStrategy tail) {
Expr             1427 src/Func.cpp   Stage &Stage::unroll(VarOrRVar var, Expr factor, TailStrategy tail) {
Expr             1444 src/Func.cpp                      Expr xfactor, Expr yfactor,
Expr             1454 src/Func.cpp                      Expr xfactor, Expr yfactor,
Expr             1588 src/Func.cpp   Stage &Stage::gpu_tile(VarOrRVar x, VarOrRVar bx, Var tx, Expr x_size,
Expr             1598 src/Func.cpp   Stage &Stage::gpu_tile(VarOrRVar x, VarOrRVar bx, RVar tx, Expr x_size,
Expr             1608 src/Func.cpp   Stage &Stage::gpu_tile(VarOrRVar x, VarOrRVar tx, Expr x_size,
Expr             1622 src/Func.cpp                          Expr x_size, Expr y_size,
Expr             1639 src/Func.cpp                          Expr x_size, Expr y_size,
Expr             1647 src/Func.cpp                          Expr x_size, Expr y_size,
Expr             1656 src/Func.cpp                          Expr x_size, Expr y_size, Expr z_size,
Expr             1688 src/Func.cpp                          Expr x_size, Expr y_size, Expr z_size,
Expr             1694 src/Func.cpp   Stage &Stage::gpu_tile(VarOrRVar x, Expr x_size, TailStrategy tail, DeviceAPI device_api) {
Expr             1707 src/Func.cpp                          Expr x_size, Expr y_size,
Expr             1718 src/Func.cpp                          Expr x_size, Expr y_size, Expr z_size,
Expr             1735 src/Func.cpp   Stage &Stage::prefetch(const Func &f, VarOrRVar var, Expr offset, PrefetchBoundStrategy strategy) {
Expr             1741 src/Func.cpp   Stage &Stage::prefetch(const Internal::Parameter &param, VarOrRVar var, Expr offset, PrefetchBoundStrategy strategy) {
Expr             1855 src/Func.cpp   Func &Func::split(VarOrRVar old, VarOrRVar outer, VarOrRVar inner, Expr factor, TailStrategy tail) {
Expr             1884 src/Func.cpp   Stage Func::specialize(Expr c) {
Expr             1918 src/Func.cpp   Func &Func::parallel(VarOrRVar var, Expr factor, TailStrategy tail) {
Expr             1924 src/Func.cpp   Func &Func::vectorize(VarOrRVar var, Expr factor, TailStrategy tail) {
Expr             1930 src/Func.cpp   Func &Func::unroll(VarOrRVar var, Expr factor, TailStrategy tail) {
Expr             1936 src/Func.cpp   Func &Func::bound(Var var, Expr min, Expr extent) {
Expr             1959 src/Func.cpp       Bound b = {var.name(), min, extent, Expr(), Expr()};
Expr             1964 src/Func.cpp   Func &Func::bound_extent(Var var, Expr extent) {
Expr             1965 src/Func.cpp       return bound(var, Expr(), extent);
Expr             1968 src/Func.cpp   Func &Func::align_bounds(Var var, Expr modulus, Expr remainder) {
Expr             1994 src/Func.cpp       Bound b = {var.name(), Expr(), Expr(), modulus, remainder};
Expr             2002 src/Func.cpp                    Expr xfactor, Expr yfactor,
Expr             2011 src/Func.cpp                    Expr xfactor, Expr yfactor,
Expr             2084 src/Func.cpp   Func &Func::gpu_tile(VarOrRVar x, VarOrRVar bx, Var tx, Expr x_size, TailStrategy tail, DeviceAPI device_api) {
Expr             2090 src/Func.cpp   Func &Func::gpu_tile(VarOrRVar x, VarOrRVar bx, RVar tx, Expr x_size, TailStrategy tail, DeviceAPI device_api) {
Expr             2096 src/Func.cpp   Func &Func::gpu_tile(VarOrRVar x, VarOrRVar tx, Expr x_size, TailStrategy tail, DeviceAPI device_api) {
Expr             2105 src/Func.cpp                        Expr x_size, Expr y_size,
Expr             2116 src/Func.cpp                        Expr x_size, Expr y_size,
Expr             2127 src/Func.cpp                        Expr x_size, Expr y_size,
Expr             2139 src/Func.cpp                        Expr x_size, Expr y_size, Expr z_size,
Expr             2150 src/Func.cpp                        Expr x_size, Expr y_size, Expr z_size,
Expr             2159 src/Func.cpp   Func &Func::gpu_tile(VarOrRVar x, Expr x_size, TailStrategy tail, DeviceAPI device_api) {
Expr             2166 src/Func.cpp                        Expr x_size, Expr y_size,
Expr             2175 src/Func.cpp                        Expr x_size, Expr y_size, Expr z_size,
Expr             2218 src/Func.cpp   Func &Func::prefetch(const Func &f, VarOrRVar var, Expr offset, PrefetchBoundStrategy strategy) {
Expr             2224 src/Func.cpp   Func &Func::prefetch(const Internal::Parameter &param, VarOrRVar var, Expr offset, PrefetchBoundStrategy strategy) {
Expr             2269 src/Func.cpp   Func &Func::align_storage(Var dim, Expr alignment) {
Expr             2284 src/Func.cpp   Func &Func::fold_storage(Var dim, Expr factor, bool fold_forward) {
Expr             2386 src/Func.cpp       CountImplicitVars(const vector<Expr> &e) : count(0) {
Expr             2403 src/Func.cpp   FuncRef::FuncRef(Internal::Function f, const vector<Expr> &a, int placeholder_pos,
Expr             2418 src/Func.cpp   vector<Expr> FuncRef::args_with_implicit_vars(const vector<Expr> &e) const {
Expr             2419 src/Func.cpp       vector<Expr> a = args;
Expr             2450 src/Func.cpp               vector<Expr>::iterator iter = a.begin() + implicit_placeholder_pos;
Expr             2478 src/Func.cpp   Stage FuncRef::operator=(Expr e) {
Expr             2492 src/Func.cpp           vector<Expr> expanded_args = args_with_implicit_vars(e.as_vector());
Expr             2515 src/Func.cpp           return (*this) = Expr(e);
Expr             2523 src/Func.cpp   Func define_base_case(Internal::Function func, const vector<Expr> &a, const Tuple &e) {
Expr             2544 src/Func.cpp   Func define_base_case(Internal::Function func, const vector<Expr> &a, Expr e) {
Expr             2552 src/Func.cpp       vector<Expr> init_values(e.size());
Expr             2556 src/Func.cpp       vector<Expr> expanded_args = args_with_implicit_vars(e.as_vector());
Expr             2559 src/Func.cpp       vector<Expr> values(e.size());
Expr             2567 src/Func.cpp   Stage FuncRef::func_ref_update(Expr e, int init_val) {
Expr             2568 src/Func.cpp       vector<Expr> expanded_args = args_with_implicit_vars({e});
Expr             2570 src/Func.cpp       return self_ref = BinaryOp()(Expr(self_ref), e);
Expr             2573 src/Func.cpp   Stage FuncRef::operator+=(Expr e) {
Expr             2574 src/Func.cpp       return func_ref_update<std::plus<Expr>>(e, 0);
Expr             2581 src/Func.cpp           return func_ref_update<std::plus<Expr>>(e, 0);
Expr             2587 src/Func.cpp           return (*this) += Expr(e);
Expr             2593 src/Func.cpp   Stage FuncRef::operator*=(Expr e) {
Expr             2594 src/Func.cpp       return func_ref_update<std::multiplies<Expr>>(e, 1);
Expr             2601 src/Func.cpp           return func_ref_update<std::multiplies<Expr>>(e, 1);
Expr             2607 src/Func.cpp           return (*this) *= Expr(e);
Expr             2613 src/Func.cpp   Stage FuncRef::operator-=(Expr e) {
Expr             2614 src/Func.cpp       return func_ref_update<std::minus<Expr>>(e, 0);
Expr             2621 src/Func.cpp           return func_ref_update<std::minus<Expr>>(e, 0);
Expr             2627 src/Func.cpp           return (*this) -= Expr(e);
Expr             2633 src/Func.cpp   Stage FuncRef::operator/=(Expr e) {
Expr             2634 src/Func.cpp       return func_ref_update<std::divides<Expr>>(e, 1);
Expr             2641 src/Func.cpp           return func_ref_update<std::divides<Expr>>(e, 1);
Expr             2647 src/Func.cpp           return (*this) /= Expr(e);
Expr             2653 src/Func.cpp   FuncRef::operator Expr() const {
Expr             2683 src/Func.cpp           const FuncRef &ref, const std::vector<Expr>& args, int idx)
Expr             2690 src/Func.cpp   Tuple FuncTupleElementRef::values_with_undefs(Expr e) const {
Expr             2691 src/Func.cpp       vector<Expr> values(func_ref.size());
Expr             2703 src/Func.cpp   Stage FuncTupleElementRef::operator=(Expr e) {
Expr             2707 src/Func.cpp   Stage FuncTupleElementRef::operator+=(Expr e) {
Expr             2711 src/Func.cpp   Stage FuncTupleElementRef::operator*=(Expr e) {
Expr             2715 src/Func.cpp   Stage FuncTupleElementRef::operator-=(Expr e) {
Expr             2719 src/Func.cpp   Stage FuncTupleElementRef::operator/=(Expr e) {
Expr             2727 src/Func.cpp   FuncTupleElementRef::operator Expr() const {
Expr               61 src/Func.h                    Expr factor, bool exact, TailStrategy tail);
Expr              175 src/Func.h         EXPORT Stage &split(VarOrRVar old, VarOrRVar outer, VarOrRVar inner, Expr factor, TailStrategy tail = TailStrategy::Auto);
Expr              181 src/Func.h         EXPORT Stage &parallel(VarOrRVar var, Expr task_size, TailStrategy tail = TailStrategy::Auto);
Expr              182 src/Func.h         EXPORT Stage &vectorize(VarOrRVar var, Expr factor, TailStrategy tail = TailStrategy::Auto);
Expr              183 src/Func.h         EXPORT Stage &unroll(VarOrRVar var, Expr factor, TailStrategy tail = TailStrategy::Auto);
Expr              186 src/Func.h                            VarOrRVar xi, VarOrRVar yi, Expr
Expr              187 src/Func.h                            xfactor, Expr yfactor,
Expr              191 src/Func.h                            Expr xfactor, Expr yfactor,
Expr              203 src/Func.h         EXPORT Stage specialize(Expr condition);
Expr              227 src/Func.h         EXPORT Stage &gpu_tile(VarOrRVar x, VarOrRVar bx, Var tx, Expr x_size,
Expr              230 src/Func.h         EXPORT Stage &gpu_tile(VarOrRVar x, VarOrRVar bx, RVar tx, Expr x_size,
Expr              234 src/Func.h         EXPORT Stage &gpu_tile(VarOrRVar x, VarOrRVar tx, Expr x_size,
Expr              240 src/Func.h                                Expr x_size, Expr y_size,
Expr              246 src/Func.h                                Expr x_size, Expr y_size,
Expr              251 src/Func.h                                Expr x_size, Expr y_size,
Expr              258 src/Func.h                                Expr x_size, Expr y_size, Expr z_size,
Expr              263 src/Func.h                                Expr x_size, Expr y_size, Expr z_size,
Expr              271 src/Func.h         EXPORT Stage &gpu_tile(VarOrRVar x, Expr x_size,
Expr              276 src/Func.h                                Expr x_size, Expr y_size,
Expr              281 src/Func.h                                Expr x_size, Expr y_size, Expr z_size,
Expr              288 src/Func.h         EXPORT Stage &prefetch(const Func &f, VarOrRVar var, Expr offset = 1,
Expr              290 src/Func.h         EXPORT Stage &prefetch(const Internal::Parameter &param, VarOrRVar var, Expr offset = 1,
Expr              293 src/Func.h         Stage &prefetch(const T &image, VarOrRVar var, Expr offset = 1,
Expr              315 src/Func.h         std::vector<Expr> args;
Expr              316 src/Func.h         std::vector<Expr> args_with_implicit_vars(const std::vector<Expr> &e) const;
Expr              328 src/Func.h         Stage func_ref_update(Expr e, int init_val);
Expr              331 src/Func.h         FuncRef(Internal::Function, const std::vector<Expr> &,
Expr              339 src/Func.h         EXPORT Stage operator=(Expr);
Expr              351 src/Func.h         EXPORT Stage operator+=(Expr);
Expr              362 src/Func.h         EXPORT Stage operator-=(Expr);
Expr              373 src/Func.h         EXPORT Stage operator*=(Expr);
Expr              384 src/Func.h         EXPORT Stage operator/=(Expr);
Expr              396 src/Func.h         EXPORT operator Expr() const;
Expr              418 src/Func.h         std::vector<Expr> args; // args to the function
Expr              423 src/Func.h         Tuple values_with_undefs(Expr e) const;
Expr              426 src/Func.h         FuncTupleElementRef(const FuncRef &ref, const std::vector<Expr>& args, int idx);
Expr              432 src/Func.h         EXPORT Stage operator=(Expr e);
Expr              440 src/Func.h         EXPORT Stage operator+=(Expr e);
Expr              448 src/Func.h         EXPORT Stage operator-=(Expr e);
Expr              456 src/Func.h         EXPORT Stage operator*=(Expr e);
Expr              464 src/Func.h         EXPORT Stage operator/=(Expr e);
Expr              473 src/Func.h         EXPORT operator Expr() const;
Expr              503 src/Func.h         std::pair<int, int> add_implicit_vars(std::vector<Expr> &) const;
Expr              530 src/Func.h         EXPORT explicit Func(Expr e);
Expr              887 src/Func.h         EXPORT Expr value() const;
Expr              901 src/Func.h         EXPORT const std::vector<Expr> &update_args(int idx = 0) const;
Expr              907 src/Func.h         EXPORT Expr update_value(int idx = 0) const;
Expr              991 src/Func.h         EXPORT FuncRef operator()(std::vector<Expr>) const;
Expr              994 src/Func.h         NO_INLINE typename std::enable_if<Internal::all_are_convertible<Expr, Args...>::value, FuncRef>::type
Expr              995 src/Func.h         operator()(Expr x, Args&&... args) const {
Expr              996 src/Func.h             std::vector<Expr> collected_args{x, std::forward<Args>(args)...};
Expr             1109 src/Func.h         EXPORT Func &split(VarOrRVar old, VarOrRVar outer, VarOrRVar inner, Expr factor, TailStrategy tail = TailStrategy::Auto);
Expr             1128 src/Func.h         EXPORT Func &parallel(VarOrRVar var, Expr task_size, TailStrategy tail = TailStrategy::Auto);
Expr             1149 src/Func.h         EXPORT Func &vectorize(VarOrRVar var, Expr factor, TailStrategy tail = TailStrategy::Auto);
Expr             1155 src/Func.h         EXPORT Func &unroll(VarOrRVar var, Expr factor, TailStrategy tail = TailStrategy::Auto);
Expr             1165 src/Func.h         EXPORT Func &bound(Var var, Expr min, Expr extent);
Expr             1175 src/Func.h         EXPORT Func &align_bounds(Var var, Expr modulus, Expr remainder = 0);
Expr             1183 src/Func.h         EXPORT Func &bound_extent(Var var, Expr extent);
Expr             1191 src/Func.h                           Expr xfactor, Expr yfactor,
Expr             1198 src/Func.h                           Expr xfactor, Expr yfactor,
Expr             1388 src/Func.h         EXPORT Stage specialize(Expr condition);
Expr             1478 src/Func.h         EXPORT Func &gpu_tile(VarOrRVar x, VarOrRVar bx, Var tx, Expr x_size,
Expr             1481 src/Func.h         EXPORT Func &gpu_tile(VarOrRVar x, VarOrRVar bx, RVar tx, Expr x_size,
Expr             1485 src/Func.h         EXPORT Func &gpu_tile(VarOrRVar x, VarOrRVar tx, Expr x_size,
Expr             1491 src/Func.h                               Expr x_size, Expr y_size,
Expr             1497 src/Func.h                               Expr x_size, Expr y_size,
Expr             1502 src/Func.h                               Expr x_size, Expr y_size,
Expr             1509 src/Func.h                               Expr x_size, Expr y_size, Expr z_size,
Expr             1514 src/Func.h                               Expr x_size, Expr y_size, Expr z_size,
Expr             1519 src/Func.h         EXPORT Func &gpu_tile(VarOrRVar x, Expr x_size,
Expr             1523 src/Func.h         EXPORT Func &gpu_tile(VarOrRVar x, VarOrRVar y, Expr x_size, Expr y_size,
Expr             1528 src/Func.h                               Expr x_size, Expr y_size, Expr z_size,
Expr             1578 src/Func.h         EXPORT Func &prefetch(const Func &f, VarOrRVar var, Expr offset = 1,
Expr             1580 src/Func.h         EXPORT Func &prefetch(const Internal::Parameter &param, VarOrRVar var, Expr offset = 1,
Expr             1583 src/Func.h         Func &prefetch(const T &image, VarOrRVar var, Expr offset = 1,
Expr             1625 src/Func.h         EXPORT Func &align_storage(Var dim, Expr alignment);
Expr             1657 src/Func.h         EXPORT Func &fold_storage(Var dim, Expr extent, bool fold_forward = true);
Expr             2007 src/Func.h     NO_INLINE T evaluate(Expr e) {
Expr             2050 src/Func.h     NO_INLINE T evaluate_may_gpu(Expr e) {
Expr              371 src/Function.cpp void Function::define(const vector<string> &args, vector<Expr> values) {
Expr              474 src/Function.cpp void Function::define_update(const vector<Expr> &_args, vector<Expr> values) {
Expr              523 src/Function.cpp     vector<Expr> args(_args.size());
Expr              757 src/Function.cpp const std::vector<Expr> &Function::values() const {
Expr              812 src/Function.cpp Expr Function::make_call_to_extern_definition(const std::vector<Expr> &args,
Expr               31 src/Function.h     Expr expr;
Expr               38 src/Function.h     ExternFuncArgument(Expr e): arg_type(ExprArg), expr(e) {}
Expr              113 src/Function.h     EXPORT void define(const std::vector<std::string> &args, std::vector<Expr> values);
Expr              123 src/Function.h     EXPORT void define_update(const std::vector<Expr> &args, std::vector<Expr> values);
Expr              153 src/Function.h     EXPORT const std::vector<Expr> &values() const;
Expr              205 src/Function.h     EXPORT Expr make_call_to_extern_definition(const std::vector<Expr> &args,
Expr               62 src/FuseGPUThreadLoops.cpp                                       vector<Expr>(), Call::Extern));
Expr               68 src/FuseGPUThreadLoops.cpp     Expr block_extent[4];
Expr               72 src/FuseGPUThreadLoops.cpp     void found_for(int dim, Expr extent) {
Expr              122 src/FuseGPUThreadLoops.cpp     Expr extent(int d) const {
Expr              205 src/FuseGPUThreadLoops.cpp             Expr var = Variable::make(Int(32), "." + thread_names[dim]);
Expr              211 src/FuseGPUThreadLoops.cpp                 Expr cond = var < op->extent;
Expr              236 src/FuseGPUThreadLoops.cpp         Expr size;
Expr              260 src/FuseGPUThreadLoops.cpp         Expr max_size_bytes; // In bytes
Expr              357 src/FuseGPUThreadLoops.cpp             Expr predicate = mutate(op->predicate);
Expr              358 src/FuseGPUThreadLoops.cpp             Expr index = mutate(op->index);
Expr              364 src/FuseGPUThreadLoops.cpp                 Expr base = Variable::make(Int(32), op->name + ".shared_offset");
Expr              377 src/FuseGPUThreadLoops.cpp             Expr predicate = mutate(op->predicate);
Expr              378 src/FuseGPUThreadLoops.cpp             Expr index = mutate(op->index);
Expr              379 src/FuseGPUThreadLoops.cpp             Expr value = mutate(op->value);
Expr              384 src/FuseGPUThreadLoops.cpp                 Expr base = Variable::make(Int(32), op->name + ".shared_offset");
Expr              398 src/FuseGPUThreadLoops.cpp         Expr value = mutate(op->value);
Expr              421 src/FuseGPUThreadLoops.cpp         Expr alloc_size = simplify(alloc.size);
Expr              451 src/FuseGPUThreadLoops.cpp                     Expr size = alloc_size * alloc.type.bytes();
Expr              452 src/FuseGPUThreadLoops.cpp                     Expr dist = mem_allocs[free_spaces[i]].max_size_bytes - size;
Expr              553 src/FuseGPUThreadLoops.cpp             Expr total_size = Variable::make(Int(32), "group_" + std::to_string(mem_allocs.size()-1) + ".shared_offset");
Expr              560 src/FuseGPUThreadLoops.cpp                 Expr group_offset = Variable::make(Int(32), "group_" + std::to_string(i) + ".shared_offset");
Expr              564 src/FuseGPUThreadLoops.cpp                     Expr offset = (group_offset / new_elem_size);
Expr              568 src/FuseGPUThreadLoops.cpp                 Expr offset = 0;
Expr              696 src/FuseGPUThreadLoops.cpp             Expr adjusted = Variable::make(Int(32), op->name) + op->min;
Expr               16 src/FuzzFloatStores.cpp             Expr value = op->value;
Expr               17 src/FuzzFloatStores.cpp             Expr mask = make_one(t.with_code(Type::UInt));
Expr              100 src/Generator.cpp     Expr def, min, max;
Expr              163 src/Generator.cpp     std::vector<Expr> args_expr;
Expr              187 src/Generator.cpp void ValueTracker::track_values(const std::string &name, const std::vector<Expr> &values) {
Expr              188 src/Generator.cpp     std::vector<std::vector<Expr>> &history = values_history[name];
Expr              203 src/Generator.cpp         Expr oldval = history[i].back();
Expr              204 src/Generator.cpp         Expr newval = values[i];
Expr              232 src/Generator.cpp std::vector<Expr> parameter_constraints(const Parameter &p) {
Expr              234 src/Generator.cpp     std::vector<Expr> values;
Expr              235 src/Generator.cpp     values.push_back(Expr(p.host_alignment()));
Expr             1538 src/Generator.cpp const std::vector<Expr> &GIOBase::exprs() const {
Expr             1567 src/Generator.cpp         for (const Expr &e : exprs()) {
Expr             1669 src/Generator.cpp             Expr e = Internal::Variable::make(type(), array_name(i), parameters_[i]);
Expr              247 src/Generator.h     std::map<std::string, std::vector<std::vector<Expr>>> values_history;
Expr              251 src/Generator.h     EXPORT void track_values(const std::string &name, const std::vector<Expr> &values);
Expr              254 src/Generator.h EXPORT std::vector<Expr> parameter_constraints(const Parameter &p);
Expr              422 src/Generator.h     operator Expr() const { return make_const(type_of<T>(), this->value()); }
Expr             1015 src/Generator.h     const Expr expr_;
Expr             1021 src/Generator.h     StubInput(const Expr &e) : kind_(IOKind::Scalar), expr_(e) {}
Expr             1040 src/Generator.h     Expr expr() const {
Expr             1105 src/Generator.h     EXPORT const std::vector<Expr> &exprs() const;
Expr             1127 src/Generator.h     std::vector<Expr> exprs_;
Expr             1165 src/Generator.h inline const std::vector<Expr> &GIOBase::get_values<Expr>() const {
Expr             1315 src/Generator.h     Expr operator()(Args&&... args) const {
Expr             1319 src/Generator.h     Expr operator()(std::vector<Expr> args) const {
Expr             1386 src/Generator.h     Expr operator()(Args&&... args) const {
Expr             1390 src/Generator.h     Expr operator()(std::vector<Expr> args) const {
Expr             1401 src/Generator.h class GeneratorInput_Scalar : public GeneratorInputImpl<T, Expr> {
Expr             1403 src/Generator.h     using Super = GeneratorInputImpl<T, Expr>;
Expr             1434 src/Generator.h     operator Expr() const {
Expr             1454 src/Generator.h     const Expr min_, max_;
Expr             1471 src/Generator.h         : Super(name, def), min_(Expr()), max_(Expr()) {
Expr             1477 src/Generator.h         : Super(array_size, name, def), min_(Expr()), max_(Expr()) {
Expr             2182 src/Generator.h     using Expr = Halide::Expr;
Expr             2196 src/Generator.h     template <typename T> static Expr cast(Expr e) { return Halide::cast<T>(e); }
Expr             2197 src/Generator.h     static inline Expr cast(Halide::Type t, Expr e) { return Halide::cast(t, e); }
Expr             2538 src/Generator.h     std::vector<StubInput> build_input(size_t i, const Expr &arg) {
Expr             2547 src/Generator.h     std::vector<StubInput> build_input(size_t i, const std::vector<Expr> &arg) {
Expr             2568 src/Generator.h         Expr e(arg);
Expr             2585 src/Generator.h             Expr e(value);
Expr             2884 src/Generator.h     static std::vector<StubInput> to_stub_input_vector(const Expr &e) {
Expr              606 src/HexagonOffload.cpp     std::map<std::string, Expr> state_bufs;
Expr              614 src/HexagonOffload.cpp     Expr state_var(const std::string& name, Type type) {
Expr              620 src/HexagonOffload.cpp     Expr state_var_ptr(const std::string& name, Type type) {
Expr              621 src/HexagonOffload.cpp         Expr &buf = state_bufs[name];
Expr              630 src/HexagonOffload.cpp     Expr module_state() {
Expr              634 src/HexagonOffload.cpp     Expr module_state_ptr() {
Expr              640 src/HexagonOffload.cpp     Expr buffer_ptr(const uint8_t* buffer, size_t size, const char* name) {
Expr              643 src/HexagonOffload.cpp         Expr buf = Variable::make(type_of<halide_buffer_t *>(), string(name) + ".buffer", code);
Expr              705 src/HexagonOffload.cpp                 Expr host_ptr = reinterpret<uint64_t>(Variable::make(Handle(), i.first));
Expr              706 src/HexagonOffload.cpp                 Expr error = Call::make(Int(32), "halide_error_unaligned_host_ptr",
Expr              712 src/HexagonOffload.cpp             Expr buf = Variable::make(Handle(), i.first + ".buffer");
Expr              713 src/HexagonOffload.cpp             Expr host_ptr = Call::make(Handle(), "_halide_hexagon_buffer_get_host", {buf}, Call::Extern);
Expr              714 src/HexagonOffload.cpp             Expr device_ptr = Call::make(Handle(), "_halide_hexagon_buffer_get_device", {buf}, Call::Extern);
Expr              734 src/HexagonOffload.cpp         std::vector<Expr> arg_sizes;
Expr              735 src/HexagonOffload.cpp         std::vector<Expr> arg_ptrs;
Expr              736 src/HexagonOffload.cpp         std::vector<Expr> arg_flags;
Expr              743 src/HexagonOffload.cpp             Expr buf = Variable::make(type_of<halide_buffer_t *>(), i.first + ".buffer");
Expr              744 src/HexagonOffload.cpp             Expr device = Call::make(UInt(64), Call::buffer_get_device, {buf}, Call::Extern);
Expr              745 src/HexagonOffload.cpp             Expr host = Call::make(Handle(), Call::buffer_get_host, {buf}, Call::Extern);
Expr              746 src/HexagonOffload.cpp             Expr pseudo_buffer = Call::make(Handle(), Call::make_struct, {device, host}, Call::Intrinsic);
Expr              748 src/HexagonOffload.cpp             arg_sizes.push_back(Expr((uint64_t)(pseudo_buffer.type().bytes())));
Expr              759 src/HexagonOffload.cpp             Expr arg = Variable::make(i.second, i.first);
Expr              760 src/HexagonOffload.cpp             Expr arg_ptr = Call::make(type_of<void *>(), Call::make_struct, {arg}, Call::Intrinsic);
Expr              761 src/HexagonOffload.cpp             arg_sizes.push_back(Expr((uint64_t) i.second.bytes()));
Expr              767 src/HexagonOffload.cpp         arg_sizes.push_back(Expr((uint64_t) 0));
Expr              770 src/HexagonOffload.cpp         std::vector<Expr> params;
Expr              813 src/HexagonOffload.cpp             Expr buf_var = Variable::make(type_of<struct halide_buffer_t *>(), "hexagon_code.buffer");
Expr              814 src/HexagonOffload.cpp             Expr code_size = Call::make(Int(32), Call::buffer_get_extent, { buf_var, 0 }, Call::Extern);
Expr              815 src/HexagonOffload.cpp             Expr code_ptr = Call::make(Handle(), Call::buffer_get_host, { buf_var }, Call::Extern);
Expr               25 src/HexagonOptimize.cpp Expr native_interleave(Expr x) {
Expr               36 src/HexagonOptimize.cpp Expr native_deinterleave(Expr x) {
Expr               47 src/HexagonOptimize.cpp bool is_native_interleave_op(Expr x, const char *name) {
Expr               53 src/HexagonOptimize.cpp bool is_native_interleave(Expr x) {
Expr               57 src/HexagonOptimize.cpp bool is_native_deinterleave(Expr x) {
Expr               64 src/HexagonOptimize.cpp Expr bc(Expr x) { return Broadcast::make(x, 0); }
Expr              103 src/HexagonOptimize.cpp Expr with_lanes(Expr x, int lanes) {
Expr              145 src/HexagonOptimize.cpp     Expr pattern;         // The pattern to match against
Expr              149 src/HexagonOptimize.cpp     Pattern(const string &intrin, Expr p, int flags = 0)
Expr              153 src/HexagonOptimize.cpp Expr wild_u8 = Variable::make(UInt(8), "*");
Expr              154 src/HexagonOptimize.cpp Expr wild_u16 = Variable::make(UInt(16), "*");
Expr              155 src/HexagonOptimize.cpp Expr wild_u32 = Variable::make(UInt(32), "*");
Expr              156 src/HexagonOptimize.cpp Expr wild_u64 = Variable::make(UInt(64), "*");
Expr              157 src/HexagonOptimize.cpp Expr wild_i8 = Variable::make(Int(8), "*");
Expr              158 src/HexagonOptimize.cpp Expr wild_i16 = Variable::make(Int(16), "*");
Expr              159 src/HexagonOptimize.cpp Expr wild_i32 = Variable::make(Int(32), "*");
Expr              160 src/HexagonOptimize.cpp Expr wild_i64 = Variable::make(Int(64), "*");
Expr              162 src/HexagonOptimize.cpp Expr wild_u8x = Variable::make(Type(Type::UInt, 8, 0), "*");
Expr              163 src/HexagonOptimize.cpp Expr wild_u16x = Variable::make(Type(Type::UInt, 16, 0), "*");
Expr              164 src/HexagonOptimize.cpp Expr wild_u32x = Variable::make(Type(Type::UInt, 32, 0), "*");
Expr              165 src/HexagonOptimize.cpp Expr wild_u64x = Variable::make(Type(Type::UInt, 64, 0), "*");
Expr              166 src/HexagonOptimize.cpp Expr wild_i8x = Variable::make(Type(Type::Int, 8, 0), "*");
Expr              167 src/HexagonOptimize.cpp Expr wild_i16x = Variable::make(Type(Type::Int, 16, 0), "*");
Expr              168 src/HexagonOptimize.cpp Expr wild_i32x = Variable::make(Type(Type::Int, 32, 0), "*");
Expr              169 src/HexagonOptimize.cpp Expr wild_i64x = Variable::make(Type(Type::Int, 64, 0), "*");
Expr              175 src/HexagonOptimize.cpp Expr apply_patterns(Expr x, const vector<Pattern> &patterns, const Target &target, IRMutator *op_mutator) {
Expr              177 src/HexagonOptimize.cpp     vector<Expr> matches;
Expr              186 src/HexagonOptimize.cpp             for (Expr i : matches) {
Expr              238 src/HexagonOptimize.cpp             for (Expr &op : matches) {
Expr              255 src/HexagonOptimize.cpp Expr lossless_negate(Expr x) {
Expr              258 src/HexagonOptimize.cpp         Expr a = lossless_negate(m->a);
Expr              262 src/HexagonOptimize.cpp         Expr b = lossless_negate(m->b);
Expr              270 src/HexagonOptimize.cpp     return Expr();
Expr              274 src/HexagonOptimize.cpp Expr apply_commutative_patterns(const T *op, const vector<Pattern> &patterns, const Target &target, IRMutator *mutator) {
Expr              275 src/HexagonOptimize.cpp     Expr ret = apply_patterns(op, patterns, target, mutator);
Expr              279 src/HexagonOptimize.cpp     Expr commuted = T::make(op->b, op->a);
Expr              343 src/HexagonOptimize.cpp             Expr new_expr = apply_commutative_patterns(op, scalar_muls, target, this);
Expr              359 src/HexagonOptimize.cpp     static Expr halide_hexagon_add_2mpy(Type result_type, string suffix, Expr v0, Expr v1, Expr c0, Expr c1) {
Expr              360 src/HexagonOptimize.cpp         Expr call = Call::make(result_type, "halide.hexagon.add_2mpy" + suffix, {v0, v1, c0, c1}, Call::PureExtern);
Expr              364 src/HexagonOptimize.cpp     static Expr halide_hexagon_add_2mpy(Type result_type, string suffix, Expr v01, Expr c01) {
Expr              368 src/HexagonOptimize.cpp     static Expr halide_hexagon_add_4mpy(Type result_type, string suffix, Expr v01, Expr c01) {
Expr              372 src/HexagonOptimize.cpp     typedef pair<Expr, Expr> MulExpr;
Expr              376 src/HexagonOptimize.cpp     static Expr unbroadcast_lossless_cast(Type ty, Expr x) {
Expr              383 src/HexagonOptimize.cpp             return Expr();
Expr              391 src/HexagonOptimize.cpp     static int find_mpy_ops(Expr op, Type a_ty, Type b_ty, int max_mpy_count,
Expr              392 src/HexagonOptimize.cpp                             vector<MulExpr> &mpys, Expr &rest) {
Expr              400 src/HexagonOptimize.cpp         Expr maybe_mul = op;
Expr              410 src/HexagonOptimize.cpp             Expr a = unbroadcast_lossless_cast(a_ty, mul->a);
Expr              411 src/HexagonOptimize.cpp             Expr b = unbroadcast_lossless_cast(b_ty, mul->b);
Expr              433 src/HexagonOptimize.cpp                     Expr add_b = Mul::make(simplify(-mul_b->a), mul_b->b);
Expr              439 src/HexagonOptimize.cpp                     Expr add_b = Mul::make(mul_b->a, simplify(-mul_b->b));
Expr              449 src/HexagonOptimize.cpp         Expr as_a = unbroadcast_lossless_cast(a_ty, op);
Expr              450 src/HexagonOptimize.cpp         Expr as_b = unbroadcast_lossless_cast(b_ty, op);
Expr              469 src/HexagonOptimize.cpp             Expr rest;
Expr              487 src/HexagonOptimize.cpp                 Expr a0123 = Shuffle::make_interleave({mpys[0].first, mpys[1].first, mpys[2].first, mpys[3].first});
Expr              493 src/HexagonOptimize.cpp                     Expr b0123 = Shuffle::make_interleave({mpys[0].second, mpys[1].second, mpys[2].second, mpys[3].second});
Expr              496 src/HexagonOptimize.cpp                     Expr new_expr = halide_hexagon_add_4mpy(op->type, suffix, a0123, b0123);
Expr              515 src/HexagonOptimize.cpp             rest = Expr();
Expr              528 src/HexagonOptimize.cpp                 Expr a0123 = Shuffle::make_interleave({mpys[0].first, mpys[1].first, mpys[2].first, mpys[3].first});
Expr              529 src/HexagonOptimize.cpp                 Expr b0123 = Shuffle::make_interleave({mpys[0].second, mpys[1].second, mpys[2].second, mpys[3].second});
Expr              535 src/HexagonOptimize.cpp                     Expr new_expr = halide_hexagon_add_4mpy(op->type, suffix, a0123, b0123);
Expr              558 src/HexagonOptimize.cpp             Expr rest;
Expr              574 src/HexagonOptimize.cpp                 Expr a01 = Shuffle::make_interleave({mpys[0].first, mpys[1].first});
Expr              580 src/HexagonOptimize.cpp                 Expr new_expr;
Expr              582 src/HexagonOptimize.cpp                     Expr b01 = Shuffle::make_interleave({mpys[0].second, mpys[1].second});
Expr              664 src/HexagonOptimize.cpp             Expr new_expr = apply_commutative_patterns(op, adds, target, this);
Expr              676 src/HexagonOptimize.cpp             Expr neg_b = lossless_negate(op->b);
Expr              689 src/HexagonOptimize.cpp                 Expr new_expr = apply_patterns(op, subs, target, this);
Expr              706 src/HexagonOptimize.cpp             static const pair<string, Expr> cl[] = {
Expr              710 src/HexagonOptimize.cpp             vector<Expr> matches;
Expr              758 src/HexagonOptimize.cpp             { "halide.hexagon.trunc_mpy.vw.vw", i32((wild_i64x*wild_i64x)/Expr(static_cast<int64_t>(1) << 32)), Pattern::NarrowOps },
Expr              768 src/HexagonOptimize.cpp             { "halide.hexagon.trunc_satdw_mpy2.vw.vw", i32_sat((wild_i64x*wild_i64x)/Expr(static_cast<int64_t>(1) << 31)), Pattern::NarrowOps },
Expr              769 src/HexagonOptimize.cpp             { "halide.hexagon.trunc_satdw_mpy2_rnd.vw.vw", i32_sat((wild_i64x*wild_i64x + (1 << 30))/Expr(static_cast<int64_t>(1) << 31)), Pattern::NarrowOps },
Expr              834 src/HexagonOptimize.cpp         static const vector<pair<Expr, Expr>> cast_rewrites = {
Expr              855 src/HexagonOptimize.cpp             Expr cast = op;
Expr              857 src/HexagonOptimize.cpp             Expr new_expr = apply_patterns(cast, casts, target, this);
Expr              865 src/HexagonOptimize.cpp             vector<Expr> matches;
Expr              869 src/HexagonOptimize.cpp                     Expr replacement = with_lanes(i.second, op->type.lanes());
Expr              895 src/HexagonOptimize.cpp                 Expr e = op->args[0];
Expr              931 src/HexagonOptimize.cpp     bool yields_removable_interleave(Expr x) {
Expr              950 src/HexagonOptimize.cpp     bool yields_interleave(Expr x) {
Expr              979 src/HexagonOptimize.cpp     bool yields_removable_interleave(const vector<Expr> &exprs) {
Expr              981 src/HexagonOptimize.cpp         for (const Expr &i : exprs) {
Expr              993 src/HexagonOptimize.cpp     Expr remove_interleave(Expr x) {
Expr             1009 src/HexagonOptimize.cpp             Expr body = remove_interleave(let->body);
Expr             1023 src/HexagonOptimize.cpp         Expr a = mutate(op->a);
Expr             1024 src/HexagonOptimize.cpp         Expr b = mutate(op->b);
Expr             1072 src/HexagonOptimize.cpp         Expr true_value = mutate(op->true_value);
Expr             1073 src/HexagonOptimize.cpp         Expr false_value = mutate(op->false_value);
Expr             1077 src/HexagonOptimize.cpp         Expr cond = mutate(op->condition);
Expr             1098 src/HexagonOptimize.cpp     static bool uses_var(Expr e, const string &var) {
Expr             1104 src/HexagonOptimize.cpp         Expr value = mutate(op->value);
Expr             1144 src/HexagonOptimize.cpp                 Expr deinterleaved = remove_interleave(value);
Expr             1149 src/HexagonOptimize.cpp                 Expr interleaved = Variable::make(deinterleaved.type(), deinterleaved_name);
Expr             1184 src/HexagonOptimize.cpp             Expr value = mutate(op->value);
Expr             1232 src/HexagonOptimize.cpp             for (Expr i : op->args) {
Expr             1246 src/HexagonOptimize.cpp         Expr arg = mutate(op->args[0]);
Expr             1266 src/HexagonOptimize.cpp         vector<Expr> args(op->args);
Expr             1270 src/HexagonOptimize.cpp         for (Expr &i : args) {
Expr             1271 src/HexagonOptimize.cpp             Expr new_i = mutate(i);
Expr             1310 src/HexagonOptimize.cpp             for (Expr &i : args) {
Expr             1322 src/HexagonOptimize.cpp             for (Expr &i : args) {
Expr             1331 src/HexagonOptimize.cpp             Expr arg = args[0].as<Call>()->args[0];
Expr             1354 src/HexagonOptimize.cpp         Expr condition = mutate(op->condition);
Expr             1380 src/HexagonOptimize.cpp         Expr predicate = mutate(op->predicate);
Expr             1381 src/HexagonOptimize.cpp         Expr value = mutate(op->value);
Expr             1382 src/HexagonOptimize.cpp         Expr index = mutate(op->index);
Expr             1474 src/HexagonOptimize.cpp                         std::vector<Expr> args = arg->args;
Expr             1475 src/HexagonOptimize.cpp                         for (Expr &j : args) {
Expr             1492 src/HexagonOptimize.cpp Expr span_of_bounds(Interval bounds) {
Expr             1522 src/HexagonOptimize.cpp     std::vector<std::pair<string, Expr>> lets;
Expr             1557 src/HexagonOptimize.cpp         Expr index = mutate(op->index);
Expr             1570 src/HexagonOptimize.cpp                 Expr index_span = span_of_bounds(index_bounds);
Expr             1578 src/HexagonOptimize.cpp                     Expr base = simplify(index_bounds.min);
Expr             1584 src/HexagonOptimize.cpp                     Expr lut = Load::make(op->type.with_lanes(const_extent), op->name,
Expr               27 src/HexagonOptimize.h EXPORT Expr native_deinterleave(Expr x);
Expr               28 src/HexagonOptimize.h EXPORT Expr native_interleave(Expr x);
Expr               29 src/HexagonOptimize.h EXPORT bool is_native_deinterleave(Expr x);
Expr               30 src/HexagonOptimize.h EXPORT bool is_native_interleave(Expr x);
Expr                8 src/IR.cpp     Expr Cast::make(Type t, const Expr &v) {
Expr               18 src/IR.cpp     Expr Add::make(const Expr &a, const Expr &b) {
Expr               30 src/IR.cpp     Expr Sub::make(const Expr &a, const Expr &b) {
Expr               42 src/IR.cpp     Expr Mul::make(const Expr &a, const Expr &b) {
Expr               54 src/IR.cpp     Expr Div::make(const Expr &a, const Expr &b) {
Expr               66 src/IR.cpp     Expr Mod::make(const Expr &a, const Expr &b) {
Expr               78 src/IR.cpp     Expr Min::make(const Expr &a, const Expr &b) {
Expr               90 src/IR.cpp     Expr Max::make(const Expr &a, const Expr &b) {
Expr              102 src/IR.cpp     Expr EQ::make(const Expr &a, const Expr &b) {
Expr              114 src/IR.cpp     Expr NE::make(const Expr &a, const Expr &b) {
Expr              126 src/IR.cpp     Expr LT::make(const Expr &a, const Expr &b) {
Expr              139 src/IR.cpp     Expr LE::make(const Expr &a, const Expr &b) {
Expr              151 src/IR.cpp     Expr GT::make(const Expr &a, const Expr &b) {
Expr              164 src/IR.cpp     Expr GE::make(const Expr &a, const Expr &b) {
Expr              176 src/IR.cpp     Expr And::make(const Expr &a, const Expr &b) {
Expr              190 src/IR.cpp     Expr Or::make(const Expr &a, const Expr &b) {
Expr              204 src/IR.cpp     Expr Not::make(const Expr &a) {
Expr              214 src/IR.cpp     Expr Select::make(const Expr &condition, const Expr &true_value, const Expr &false_value) {
Expr              232 src/IR.cpp     Expr Load::make(Type type, const std::string &name, const Expr &index, Buffer<> image, Parameter param, const Expr &predicate) {
Expr              249 src/IR.cpp     Expr Ramp::make(const Expr &base, const Expr &stride, int lanes) {
Expr              265 src/IR.cpp     Expr Broadcast::make(const Expr &value, int lanes) {
Expr              277 src/IR.cpp     Expr Let::make(const std::string &name, const Expr &value, const Expr &body) {
Expr              289 src/IR.cpp     Stmt LetStmt::make(const std::string &name, const Expr &value, const Stmt &body) {
Expr              300 src/IR.cpp     Stmt AssertStmt::make(const Expr &condition, const Expr &message) {
Expr              328 src/IR.cpp     Stmt For::make(const std::string &name, const Expr &min, const Expr &extent, ForType for_type, DeviceAPI device_api, const Stmt &body) {
Expr              345 src/IR.cpp     Stmt Store::make(const std::string &name, const Expr &value, const Expr &index, Parameter param, const Expr &predicate) {
Expr              362 src/IR.cpp     Stmt Provide::make(const std::string &name, const std::vector<Expr> &values, const std::vector<Expr> &args) {
Expr              378 src/IR.cpp     Stmt Allocate::make(const std::string &name, Type type, const std::vector<Expr> &extents,
Expr              379 src/IR.cpp                         const Expr &condition, const Stmt &body,
Expr              380 src/IR.cpp                         const Expr &new_expr, const std::string &free_function) {
Expr              400 src/IR.cpp     int32_t Allocate::constant_allocation_size(const std::vector<Expr> &extents, const std::string &name) {
Expr              441 src/IR.cpp     Stmt Realize::make(const std::string &name, const std::vector<Type> &types, const Region &bounds, const Expr &condition, const Stmt &body) {
Expr              508 src/IR.cpp     Stmt IfThenElse::make(const Expr &condition, const Stmt &then_case, const Stmt &else_case) {
Expr              519 src/IR.cpp     Stmt Evaluate::make(const Expr &v) {
Expr              527 src/IR.cpp     Expr Call::make(Function func, const std::vector<Expr> &args, int idx) {
Expr              537 src/IR.cpp     Expr Call::make(Type type, const std::string &name, const std::vector<Expr> &args, CallType call_type,
Expr              573 src/IR.cpp     Expr Variable::make(Type type, const std::string &name, Buffer<> image, Parameter param, ReductionDomain reduction_domain) {
Expr              584 src/IR.cpp     Expr Shuffle::make(const std::vector<Expr> &vectors,
Expr              590 src/IR.cpp         for (Expr i : vectors) {
Expr              605 src/IR.cpp     Expr Shuffle::make_interleave(const std::vector<Expr> &vectors) {
Expr              614 src/IR.cpp         for (Expr i : vectors) {
Expr              629 src/IR.cpp     Expr Shuffle::make_concat(const std::vector<Expr> &vectors) {
Expr              647 src/IR.cpp     Expr Shuffle::make_slice(const Expr &vector, int begin, int stride, int size) {
Expr              660 src/IR.cpp     Expr Shuffle::make_extract_element(const Expr &vector, int i) {
Expr              672 src/IR.cpp         for (Expr i : vectors) {
Expr              711 src/IR.cpp         for (Expr i : vectors ) {
Expr              722 src/IR.cpp         for (Expr i : vectors ) {
Expr               29 src/IR.h           Expr value;
Expr               31 src/IR.h           EXPORT static Expr make(Type t, const Expr &v);
Expr               38 src/IR.h           Expr a, b;
Expr               40 src/IR.h           EXPORT static Expr make(const Expr &a, const Expr &b);
Expr               47 src/IR.h           Expr a, b;
Expr               49 src/IR.h           EXPORT static Expr make(const Expr &a, const Expr &b);
Expr               56 src/IR.h           Expr a, b;
Expr               58 src/IR.h           EXPORT static Expr make(const Expr &a, const Expr &b);
Expr               65 src/IR.h           Expr a, b;
Expr               67 src/IR.h           EXPORT static Expr make(const Expr &a, const Expr &b);
Expr               76 src/IR.h           Expr a, b;
Expr               78 src/IR.h           EXPORT static Expr make(const Expr &a, const Expr &b);
Expr               85 src/IR.h           Expr a, b;
Expr               87 src/IR.h           EXPORT static Expr make(const Expr &a, const Expr &b);
Expr               94 src/IR.h           Expr a, b;
Expr               96 src/IR.h           EXPORT static Expr make(const Expr &a, const Expr &b);
Expr              103 src/IR.h           Expr a, b;
Expr              105 src/IR.h           EXPORT static Expr make(const Expr &a, const Expr &b);
Expr              112 src/IR.h           Expr a, b;
Expr              114 src/IR.h           EXPORT static Expr make(const Expr &a, const Expr &b);
Expr              121 src/IR.h           Expr a, b;
Expr              123 src/IR.h           EXPORT static Expr make(const Expr &a, const Expr &b);
Expr              130 src/IR.h           Expr a, b;
Expr              132 src/IR.h           EXPORT static Expr make(const Expr &a, const Expr &b);
Expr              139 src/IR.h           Expr a, b;
Expr              141 src/IR.h           EXPORT static Expr make(const Expr &a, const Expr &b);
Expr              148 src/IR.h           Expr a, b;
Expr              150 src/IR.h           EXPORT static Expr make(const Expr &a, const Expr &b);
Expr              157 src/IR.h           Expr a, b;
Expr              159 src/IR.h           EXPORT static Expr make(const Expr &a, const Expr &b);
Expr              166 src/IR.h           Expr a, b;
Expr              168 src/IR.h           EXPORT static Expr make(const Expr &a, const Expr &b);
Expr              175 src/IR.h           Expr a;
Expr              177 src/IR.h           EXPORT static Expr make(const Expr &a);
Expr              186 src/IR.h           Expr condition, true_value, false_value;
Expr              188 src/IR.h           EXPORT static Expr make(const Expr &condition, const Expr &true_value, const Expr &false_value);
Expr              201 src/IR.h           Expr predicate, index;
Expr              210 src/IR.h           EXPORT static Expr make(Type type, const std::string &name,
Expr              211 src/IR.h                                   const Expr &index, Buffer<> image,
Expr              212 src/IR.h                                   Parameter param, const Expr &predicate);
Expr              223 src/IR.h           Expr base, stride;
Expr              226 src/IR.h           EXPORT static Expr make(const Expr &base, const Expr &stride, int lanes);
Expr              235 src/IR.h           Expr value;
Expr              238 src/IR.h           EXPORT static Expr make(const Expr &value, int lanes);
Expr              248 src/IR.h           Expr value, body;
Expr              250 src/IR.h           EXPORT static Expr make(const std::string &name, const Expr &value, const Expr &body);
Expr              259 src/IR.h           Expr value;
Expr              262 src/IR.h           EXPORT static Stmt make(const std::string &name, const Expr &value, const Stmt &body);
Expr              271 src/IR.h           Expr condition;
Expr              272 src/IR.h           Expr message;
Expr              274 src/IR.h           EXPORT static Stmt make(const Expr &condition, const Expr &message);
Expr              310 src/IR.h           Expr predicate, value, index;
Expr              314 src/IR.h           EXPORT static Stmt make(const std::string &name, const Expr &value, const Expr &index,
Expr              315 src/IR.h                                   Parameter param, const Expr &predicate);
Expr              327 src/IR.h           std::vector<Expr> values;
Expr              328 src/IR.h           std::vector<Expr> args;
Expr              330 src/IR.h           EXPORT static Stmt make(const std::string &name, const std::vector<Expr> &values, const std::vector<Expr> &args);
Expr              345 src/IR.h           std::vector<Expr> extents;
Expr              346 src/IR.h           Expr condition;
Expr              355 src/IR.h           Expr new_expr;
Expr              359 src/IR.h           EXPORT static Stmt make(const std::string &name, Type type, const std::vector<Expr> &extents,
Expr              360 src/IR.h                                   const Expr &condition, const Stmt &body,
Expr              361 src/IR.h                                   const Expr &new_expr = Expr(), const std::string &free_function = std::string());
Expr              368 src/IR.h           EXPORT static int32_t constant_allocation_size(const std::vector<Expr> &extents, const std::string &name);
Expr              386 src/IR.h           Expr min, extent;
Expr              388 src/IR.h           Range(const Expr &min, const Expr &extent) : min(min), extent(extent) {
Expr              406 src/IR.h           Expr condition;
Expr              409 src/IR.h           EXPORT static Stmt make(const std::string &name, const std::vector<Type> &types, const Region &bounds, const Expr &condition, const Stmt &body);
Expr              430 src/IR.h           Expr condition;
Expr              433 src/IR.h           EXPORT static Stmt make(const Expr &condition, const Stmt &then_case, const Stmt &else_case = Stmt());
Expr              440 src/IR.h           Expr value;
Expr              442 src/IR.h           EXPORT static Stmt make(const Expr &v);
Expr              455 src/IR.h           std::vector<Expr> args;
Expr              559 src/IR.h           EXPORT static Expr make(Type type, const std::string &name, const std::vector<Expr> &args, CallType call_type,
Expr              564 src/IR.h           EXPORT static Expr make(Function func, const std::vector<Expr> &args, int idx = 0);
Expr              567 src/IR.h           static Expr make(Buffer<> image, const std::vector<Expr> &args) {
Expr              572 src/IR.h           static Expr make(Parameter param, const std::vector<Expr> &args) {
Expr              614 src/IR.h           static Expr make(Type type, const std::string &name) {
Expr              618 src/IR.h           static Expr make(Type type, const std::string &name, Parameter param) {
Expr              622 src/IR.h           static Expr make(Type type, const std::string &name, Buffer<> image) {
Expr              626 src/IR.h           static Expr make(Type type, const std::string &name, ReductionDomain reduction_domain) {
Expr              630 src/IR.h           EXPORT static Expr make(Type type, const std::string &name, Buffer<> image,
Expr              650 src/IR.h           Expr min, extent;
Expr              655 src/IR.h           EXPORT static Stmt make(const std::string &name, const Expr &min, const Expr &extent, ForType for_type, DeviceAPI device_api, const Stmt &body);
Expr              669 src/IR.h           std::vector<Expr> vectors;
Expr              676 src/IR.h           EXPORT static Expr make(const std::vector<Expr> &vectors,
Expr              681 src/IR.h           EXPORT static Expr make_interleave(const std::vector<Expr> &vectors);
Expr              685 src/IR.h           EXPORT static Expr make_concat(const std::vector<Expr> &vectors);
Expr              689 src/IR.h           EXPORT static Expr make_slice(const Expr &vector, int begin, int stride, int size);
Expr              693 src/IR.h           EXPORT static Expr make_extract_element(const Expr &vector, int i);
Expr               28 src/IREquality.cpp     CmpResult compare_expr(const Expr &a, const Expr &b);
Expr               39 src/IREquality.cpp     Expr expr;
Expr               45 src/IREquality.cpp     CmpResult compare_expr_vector(const std::vector<Expr> &a, const std::vector<Expr> &b);
Expr              108 src/IREquality.cpp IRComparer::CmpResult IRComparer::compare_expr(const Expr &a, const Expr &b) {
Expr              223 src/IREquality.cpp IRComparer::CmpResult IRComparer::compare_expr_vector(const vector<Expr> &a, const vector<Expr> &b) {
Expr              265 src/IREquality.cpp void visit_binary_operator(IRComparer *cmp, const T *op, Expr expr) {
Expr              469 src/IREquality.cpp bool equal(const Expr &a, const Expr &b) {
Expr              473 src/IREquality.cpp bool graph_equal(const Expr &a, const Expr &b) {
Expr              487 src/IREquality.cpp bool IRDeepCompare::operator()(const Expr &a, const Expr &b) const {
Expr              518 src/IREquality.cpp void check_equal(const Expr &a, const Expr &b) {
Expr              528 src/IREquality.cpp void check_not_equal(const Expr &a, const Expr &b) {
Expr              544 src/IREquality.cpp     Expr x = Variable::make(Int(32), "x");
Expr              553 src/IREquality.cpp     Expr e1 = x, e2 = x;
Expr               16 src/IREquality.h     EXPORT bool operator()(const Expr &a, const Expr &b) const;
Expr               25 src/IREquality.h         Expr a, b;
Expr               30 src/IREquality.h     uint32_t hash(const Expr &a, const Expr &b) const {
Expr               46 src/IREquality.h     void insert(const Expr &a, const Expr &b) {
Expr               52 src/IREquality.h     bool contains(const Expr &a, const Expr &b) const {
Expr               61 src/IREquality.h             entries[i].a = Expr();
Expr               62 src/IREquality.h             entries[i].b = Expr();
Expr               94 src/IREquality.h     Expr expr;
Expr               98 src/IREquality.h     ExprWithCompareCache(const Expr &e, IRCompareCache *c) : expr(e), cache(c) {}
Expr              109 src/IREquality.h EXPORT bool equal(const Expr &a, const Expr &b);
Expr              111 src/IREquality.h EXPORT bool graph_equal(const Expr &a, const Expr &b);
Expr               17 src/IRMatch.cpp     vector<Expr> matches;
Expr               18 src/IRMatch.cpp     Expr w = Variable::make(Int(32), "*");
Expr               19 src/IRMatch.cpp     Expr fw = Variable::make(Float(32), "*");
Expr               20 src/IRMatch.cpp     Expr x = Variable::make(Int(32), "x");
Expr               21 src/IRMatch.cpp     Expr y = Variable::make(Int(32), "y");
Expr               22 src/IRMatch.cpp     Expr fx = Variable::make(Float(32), "fx");
Expr               23 src/IRMatch.cpp     Expr fy = Variable::make(Float(32), "fy");
Expr               25 src/IRMatch.cpp     Expr vec_wild = Variable::make(Int(32, 4), "*");
Expr               55 src/IRMatch.cpp     vector<Expr> *matches;
Expr               56 src/IRMatch.cpp     map<string, Expr> *var_matches;
Expr               57 src/IRMatch.cpp     Expr expr;
Expr               59 src/IRMatch.cpp     IRMatch(Expr e, vector<Expr> &m) : result(true), matches(&m), var_matches(nullptr), expr(e) {
Expr               61 src/IRMatch.cpp     IRMatch(Expr e, map<string, Expr> &m) : result(true), matches(nullptr), var_matches(&m), expr(e) {
Expr              128 src/IRMatch.cpp             Expr &match = (*var_matches)[op->name];
Expr              254 src/IRMatch.cpp bool expr_match(Expr pattern, Expr expr, vector<Expr> &matches) {
Expr              269 src/IRMatch.cpp bool expr_match(Expr pattern, Expr expr, map<string, Expr> &matches) {
Expr               30 src/IRMatch.h  EXPORT bool expr_match(Expr pattern, Expr expr, std::vector<Expr> &result);
Expr               44 src/IRMatch.h  EXPORT bool expr_match(Expr pattern, Expr expr, std::map<std::string, Expr> &result);
Expr                9 src/IRMutator.cpp Expr IRMutator::mutate(Expr e) {
Expr               13 src/IRMutator.cpp         expr = Expr();
Expr               25 src/IRMutator.cpp     expr = Expr();
Expr               31 src/IRMutator.cpp void mutate_binary_operator(IRMutator *mutator, const T *op, Expr *expr, Stmt *stmt) {
Expr               32 src/IRMutator.cpp     Expr a = mutator->mutate(op->a);
Expr               33 src/IRMutator.cpp     Expr b = mutator->mutate(op->b);
Expr               48 src/IRMutator.cpp         Expr old_min = bounds[i].min;
Expr               49 src/IRMutator.cpp         Expr old_extent = bounds[i].extent;
Expr               50 src/IRMutator.cpp         Expr new_min = mutator->mutate(old_min);
Expr               51 src/IRMutator.cpp         Expr new_extent = mutator->mutate(old_extent);
Expr               72 src/IRMutator.cpp     Expr value = mutate(op->value);
Expr               97 src/IRMutator.cpp     Expr a = mutate(op->a);
Expr              103 src/IRMutator.cpp     Expr cond = mutate(op->condition);
Expr              104 src/IRMutator.cpp     Expr t = mutate(op->true_value);
Expr              105 src/IRMutator.cpp     Expr f = mutate(op->false_value);
Expr              116 src/IRMutator.cpp     Expr predicate = mutate(op->predicate);
Expr              117 src/IRMutator.cpp     Expr index = mutate(op->index);
Expr              126 src/IRMutator.cpp     Expr base = mutate(op->base);
Expr              127 src/IRMutator.cpp     Expr stride = mutate(op->stride);
Expr              137 src/IRMutator.cpp     Expr value = mutate(op->value);
Expr              143 src/IRMutator.cpp     vector<Expr > new_args(op->args.size());
Expr              148 src/IRMutator.cpp         Expr old_arg = op->args[i];
Expr              149 src/IRMutator.cpp         Expr new_arg = mutate(old_arg);
Expr              163 src/IRMutator.cpp     Expr value = mutate(op->value);
Expr              164 src/IRMutator.cpp     Expr body = mutate(op->body);
Expr              174 src/IRMutator.cpp     Expr value = mutate(op->value);
Expr              185 src/IRMutator.cpp     Expr condition = mutate(op->condition);
Expr              186 src/IRMutator.cpp     Expr message = mutate(op->message);
Expr              205 src/IRMutator.cpp     Expr min = mutate(op->min);
Expr              206 src/IRMutator.cpp     Expr extent = mutate(op->extent);
Expr              218 src/IRMutator.cpp     Expr predicate = mutate(op->predicate);
Expr              219 src/IRMutator.cpp     Expr value = mutate(op->value);
Expr              220 src/IRMutator.cpp     Expr index = mutate(op->index);
Expr              229 src/IRMutator.cpp     vector<Expr> new_args(op->args.size());
Expr              230 src/IRMutator.cpp     vector<Expr> new_values(op->values.size());
Expr              235 src/IRMutator.cpp         Expr old_arg = op->args[i];
Expr              236 src/IRMutator.cpp         Expr new_arg = mutate(old_arg);
Expr              242 src/IRMutator.cpp         Expr old_value = op->values[i];
Expr              243 src/IRMutator.cpp         Expr new_value = mutate(old_value);
Expr              256 src/IRMutator.cpp     std::vector<Expr> new_extents;
Expr              263 src/IRMutator.cpp     Expr condition = mutate(op->condition);
Expr              264 src/IRMutator.cpp     Expr new_expr;
Expr              290 src/IRMutator.cpp     Expr condition = mutate(op->condition);
Expr              327 src/IRMutator.cpp     Expr condition = mutate(op->condition);
Expr              340 src/IRMutator.cpp     Expr v = mutate(op->value);
Expr              349 src/IRMutator.cpp     vector<Expr > new_vectors(op->vectors.size());
Expr              353 src/IRMutator.cpp         Expr old_vector = op->vectors[i];
Expr              354 src/IRMutator.cpp         Expr new_vector = mutate(old_vector);
Expr              377 src/IRMutator.cpp Expr IRGraphMutator::mutate(Expr e) {
Expr              382 src/IRMutator.cpp     Expr new_e = IRMutator::mutate(e);
Expr               31 src/IRMutator.h     EXPORT virtual Expr mutate(Expr expr);
Expr               38 src/IRMutator.h     Expr expr;
Expr               94 src/IRMutator.h     std::map<Expr, Expr, ExprCompare> expr_replacements;
Expr               99 src/IRMutator.h     EXPORT Expr mutate(Expr e);
Expr               19 src/IROperator.cpp Expr evaluate_polynomial(const Expr &x, float *coeff, int n) {
Expr               22 src/IROperator.cpp     Expr x2 = x * x;
Expr               24 src/IROperator.cpp     Expr even_terms = coeff[0];
Expr               25 src/IROperator.cpp     Expr odd_terms = coeff[1];
Expr               53 src/IROperator.cpp bool is_const(const Expr &e) {
Expr               70 src/IROperator.cpp bool is_const(const Expr &e, int64_t value) {
Expr               92 src/IROperator.cpp const int64_t *as_const_int(const Expr &e) {
Expr              104 src/IROperator.cpp const uint64_t *as_const_uint(const Expr &e) {
Expr              116 src/IROperator.cpp const double *as_const_float(const Expr &e) {
Expr              128 src/IROperator.cpp bool is_const_power_of_two_integer(const Expr &e, int *bits) {
Expr              157 src/IROperator.cpp bool is_positive_const(const Expr &e) {
Expr              174 src/IROperator.cpp bool is_negative_const(const Expr &e) {
Expr              190 src/IROperator.cpp bool is_negative_negatable_const(const Expr &e, Type T) {
Expr              208 src/IROperator.cpp bool is_negative_negatable_const(const Expr &e) {
Expr              212 src/IROperator.cpp bool is_undef(const Expr &e) {
Expr              217 src/IROperator.cpp bool is_zero(const Expr &e) {
Expr              230 src/IROperator.cpp bool is_one(const Expr &e) {
Expr              243 src/IROperator.cpp bool is_two(const Expr &e) {
Expr              255 src/IROperator.cpp Expr make_const_helper(Type t, T val) {
Expr              266 src/IROperator.cpp         return Expr();
Expr              271 src/IROperator.cpp Expr make_const(Type t, int64_t val) {
Expr              275 src/IROperator.cpp Expr make_const(Type t, uint64_t val) {
Expr              279 src/IROperator.cpp Expr make_const(Type t, double val) {
Expr              284 src/IROperator.cpp Expr make_bool(bool val, int w) {
Expr              288 src/IROperator.cpp Expr make_zero(Type t) {
Expr              296 src/IROperator.cpp Expr make_one(Type t) {
Expr              300 src/IROperator.cpp Expr make_two(Type t) {
Expr              304 src/IROperator.cpp Expr const_true(int w) {
Expr              308 src/IROperator.cpp Expr const_false(int w) {
Expr              312 src/IROperator.cpp Expr lossless_cast(Type t, const Expr &e) {
Expr              324 src/IROperator.cpp             return Expr();
Expr              329 src/IROperator.cpp         Expr v = lossless_cast(t.element_of(), b->value);
Expr              333 src/IROperator.cpp             return Expr();
Expr              341 src/IROperator.cpp             return Expr();
Expr              349 src/IROperator.cpp             return Expr();
Expr              357 src/IROperator.cpp             return Expr();
Expr              361 src/IROperator.cpp     return Expr();
Expr              379 src/IROperator.cpp void match_types(Expr &a, Expr &b) {
Expr              428 src/IROperator.cpp void range_reduce_log(const Expr &input, Expr *reduced, Expr *exponent) {
Expr              431 src/IROperator.cpp     Expr int_version = reinterpret(int_type, input);
Expr              438 src/IROperator.cpp     Expr non_exponent_mask = make_const(int_type, 0x807fffff);
Expr              441 src/IROperator.cpp     Expr no_exponent = int_version & non_exponent_mask;
Expr              446 src/IROperator.cpp     Expr new_exponent = no_exponent >> 22;
Expr              448 src/IROperator.cpp     Expr new_biased_exponent = 127 - new_exponent;
Expr              449 src/IROperator.cpp     Expr old_biased_exponent = int_version >> 23;
Expr              452 src/IROperator.cpp     Expr blended = (int_version & non_exponent_mask) | (new_biased_exponent << 23);
Expr              457 src/IROperator.cpp Expr halide_log(const Expr &x_full) {
Expr              461 src/IROperator.cpp     Expr nan = Call::make(type, "nan_f32", {}, Call::PureExtern);
Expr              462 src/IROperator.cpp     Expr neg_inf = Call::make(type, "neg_inf_f32", {}, Call::PureExtern);
Expr              464 src/IROperator.cpp     Expr use_nan = x_full < 0.0f; // log of a negative returns nan
Expr              465 src/IROperator.cpp     Expr use_neg_inf = x_full == 0.0f; // log of zero is -inf
Expr              466 src/IROperator.cpp     Expr exceptional = use_nan | use_neg_inf;
Expr              470 src/IROperator.cpp     Expr patched = select(exceptional, make_one(type), x_full);
Expr              471 src/IROperator.cpp     Expr reduced, exponent;
Expr              488 src/IROperator.cpp     Expr x1 = reduced - 1.0f;
Expr              489 src/IROperator.cpp     Expr result = evaluate_polynomial(x1, coeff, sizeof(coeff)/sizeof(coeff[0]));
Expr              501 src/IROperator.cpp Expr halide_exp(const Expr &x_full) {
Expr              509 src/IROperator.cpp     Expr scaled = x_full * one_over_ln2;
Expr              510 src/IROperator.cpp     Expr k_real = floor(scaled);
Expr              511 src/IROperator.cpp     Expr k = cast(Int(32, type.lanes()), k_real);
Expr              513 src/IROperator.cpp     Expr x = x_full - k_real * ln2_part1;
Expr              525 src/IROperator.cpp     Expr result = evaluate_polynomial(x, coeff, sizeof(coeff)/sizeof(coeff[0]));
Expr              529 src/IROperator.cpp     Expr biased = k + fpbias;
Expr              531 src/IROperator.cpp     Expr inf = Call::make(type, "inf_f32", {}, Call::PureExtern);
Expr              535 src/IROperator.cpp     Expr two_to_the_n = reinterpret(type, biased << 23);
Expr              548 src/IROperator.cpp Expr halide_erf(const Expr &x_full) {
Expr              552 src/IROperator.cpp     Expr sign = select(x_full < 0, -1.0f, 1.0f);
Expr              553 src/IROperator.cpp     Expr x = abs(x_full);
Expr              564 src/IROperator.cpp     Expr approx1 = evaluate_polynomial(x, c1, sizeof(c1)/sizeof(c1[0]));
Expr              577 src/IROperator.cpp     Expr approx2 = evaluate_polynomial(x*x, c2, sizeof(c2)/sizeof(c2[0]));
Expr              581 src/IROperator.cpp     Expr y = select(x > 1.0f, approx1, approx2);
Expr              583 src/IROperator.cpp     Expr result = common_subexpression_elimination(sign * y);
Expr              588 src/IROperator.cpp Expr raise_to_integer_power(const Expr &e, int64_t p) {
Expr              589 src/IROperator.cpp     Expr result;
Expr              598 src/IROperator.cpp         Expr y = raise_to_integer_power(e, p>>1);
Expr              605 src/IROperator.cpp void split_into_ands(const Expr &cond, std::vector<Expr> &result) {
Expr              618 src/IROperator.cpp Expr BufferBuilder::build() const {
Expr              619 src/IROperator.cpp     std::vector<Expr> args(10);
Expr              623 src/IROperator.cpp         Expr sz = Call::make(Int(32), Call::size_of_halide_buffer_t, {}, Call::Intrinsic);
Expr              628 src/IROperator.cpp     Expr shape_var = Variable::make(type_of<halide_dimension_t *>(), shape_var_name);
Expr              659 src/IROperator.cpp     std::vector<Expr> shape;
Expr              679 src/IROperator.cpp     for (const Expr &e : shape) {
Expr              683 src/IROperator.cpp     Expr shape_arg = Call::make(type_of<halide_dimension_t *>(), Call::make_struct, shape, Call::Intrinsic);
Expr              692 src/IROperator.cpp     Expr flags = make_zero(UInt(64));
Expr              705 src/IROperator.cpp     Expr e = Call::make(type_of<struct halide_buffer_t *>(), Call::buffer_init, args, Call::Extern);
Expr              716 src/IROperator.cpp Expr fast_log(const Expr &x) {
Expr              719 src/IROperator.cpp     Expr reduced, exponent;
Expr              722 src/IROperator.cpp     Expr x1 = reduced - 1.0f;
Expr              734 src/IROperator.cpp     Expr result = evaluate_polynomial(x1, coeff, sizeof(coeff)/sizeof(coeff[0]));
Expr              740 src/IROperator.cpp Expr fast_exp(const Expr &x_full) {
Expr              743 src/IROperator.cpp     Expr scaled = x_full / logf(2.0);
Expr              744 src/IROperator.cpp     Expr k_real = floor(scaled);
Expr              745 src/IROperator.cpp     Expr k = cast<int>(k_real);
Expr              746 src/IROperator.cpp     Expr x = x_full - k_real * logf(2.0);
Expr              755 src/IROperator.cpp     Expr result = evaluate_polynomial(x, coeff, sizeof(coeff)/sizeof(coeff[0]));
Expr              759 src/IROperator.cpp     Expr biased = clamp(k + fpbias, 0, 255);
Expr              763 src/IROperator.cpp     Expr two_to_the_n = reinterpret<float>(biased << 23);
Expr              768 src/IROperator.cpp Expr stringify(const std::vector<Expr> &args) {
Expr              773 src/IROperator.cpp Expr combine_strings(const std::vector<Expr> &args) {
Expr              775 src/IROperator.cpp     std::vector<Expr> strings(args.size()*2);
Expr              779 src/IROperator.cpp             strings[i*2+1] = Expr(" ");
Expr              781 src/IROperator.cpp             strings[i*2+1] = Expr("\n");
Expr              788 src/IROperator.cpp Expr print(const std::vector<Expr> &args) {
Expr              789 src/IROperator.cpp     Expr combined_string = combine_strings(args);
Expr              792 src/IROperator.cpp     Expr print_call =
Expr              797 src/IROperator.cpp     Expr result =
Expr              803 src/IROperator.cpp Expr print_when(const Expr &condition, const std::vector<Expr> &args) {
Expr              804 src/IROperator.cpp     Expr p = print(args);
Expr              811 src/IROperator.cpp Expr require(const Expr &condition, const std::vector<Expr> &args) {
Expr              816 src/IROperator.cpp     Expr requirement_failed_error =
Expr              824 src/IROperator.cpp     Expr failure_value = cast(args[0].type(), requirement_failed_error);
Expr              833 src/IROperator.cpp Expr memoize_tag_helper(const Expr &result, const std::vector<Expr> &cache_key_values) {
Expr              834 src/IROperator.cpp     std::vector<Expr> args;
Expr              843 src/IROperator.cpp Expr saturating_cast(Type t, Expr e) {
Expr              861 src/IROperator.cpp             Expr min_bound;
Expr              865 src/IROperator.cpp             Expr max_bound = lossless_cast(e.type(), t.max());
Expr               21 src/IROperator.h EXPORT bool is_const(const Expr &e);
Expr               25 src/IROperator.h EXPORT bool is_const(const Expr &e, int64_t v);
Expr               29 src/IROperator.h EXPORT const int64_t *as_const_int(const Expr &e);
Expr               33 src/IROperator.h EXPORT const uint64_t *as_const_uint(const Expr &e);
Expr               37 src/IROperator.h EXPORT const double *as_const_float(const Expr &e);
Expr               42 src/IROperator.h EXPORT bool is_const_power_of_two_integer(const Expr &e, int *bits);
Expr               46 src/IROperator.h EXPORT bool is_positive_const(const Expr &e);
Expr               50 src/IROperator.h EXPORT bool is_negative_const(const Expr &e);
Expr               58 src/IROperator.h EXPORT bool is_negative_negatable_const(const Expr &e);
Expr               61 src/IROperator.h EXPORT bool is_undef(const Expr &e);
Expr               65 src/IROperator.h EXPORT bool is_zero(const Expr &e);
Expr               69 src/IROperator.h EXPORT bool is_one(const Expr &e);
Expr               73 src/IROperator.h EXPORT bool is_two(const Expr &e);
Expr               81 src/IROperator.h EXPORT Expr make_const(Type t, int64_t val);
Expr               82 src/IROperator.h EXPORT Expr make_const(Type t, uint64_t val);
Expr               83 src/IROperator.h EXPORT Expr make_const(Type t, double val);
Expr               84 src/IROperator.h inline Expr make_const(Type t, int32_t val)   {return make_const(t, (int64_t)val);}
Expr               85 src/IROperator.h inline Expr make_const(Type t, uint32_t val)  {return make_const(t, (uint64_t)val);}
Expr               86 src/IROperator.h inline Expr make_const(Type t, int16_t val)   {return make_const(t, (int64_t)val);}
Expr               87 src/IROperator.h inline Expr make_const(Type t, uint16_t val)  {return make_const(t, (uint64_t)val);}
Expr               88 src/IROperator.h inline Expr make_const(Type t, int8_t val)    {return make_const(t, (int64_t)val);}
Expr               89 src/IROperator.h inline Expr make_const(Type t, uint8_t val)   {return make_const(t, (uint64_t)val);}
Expr               90 src/IROperator.h inline Expr make_const(Type t, bool val)      {return make_const(t, (uint64_t)val);}
Expr               91 src/IROperator.h inline Expr make_const(Type t, float val)     {return make_const(t, (double)val);}
Expr               92 src/IROperator.h inline Expr make_const(Type t, float16_t val) {return make_const(t, (double)val);}
Expr              106 src/IROperator.h EXPORT Expr make_bool(bool val, int lanes = 1);
Expr              109 src/IROperator.h EXPORT Expr make_zero(Type t);
Expr              112 src/IROperator.h EXPORT Expr make_one(Type t);
Expr              115 src/IROperator.h EXPORT Expr make_two(Type t);
Expr              119 src/IROperator.h EXPORT Expr const_true(int lanes = 1);
Expr              123 src/IROperator.h EXPORT Expr const_false(int lanes = 1);
Expr              128 src/IROperator.h EXPORT Expr lossless_cast(Type t, const Expr &e);
Expr              154 src/IROperator.h EXPORT void match_types(Expr &a, Expr &b);
Expr              158 src/IROperator.h EXPORT Expr halide_log(const Expr &a);
Expr              159 src/IROperator.h EXPORT Expr halide_exp(const Expr &a);
Expr              160 src/IROperator.h EXPORT Expr halide_erf(const Expr &a);
Expr              165 src/IROperator.h EXPORT Expr raise_to_integer_power(const Expr &a, int64_t b);
Expr              169 src/IROperator.h EXPORT void split_into_ands(const Expr &cond, std::vector<Expr> &result);
Expr              182 src/IROperator.h     Expr buffer_memory, shape_memory;
Expr              183 src/IROperator.h     Expr host, device, device_interface;
Expr              186 src/IROperator.h     std::vector<Expr> mins, extents, strides;
Expr              187 src/IROperator.h     Expr host_dirty, device_dirty;
Expr              188 src/IROperator.h     EXPORT Expr build() const;
Expr              195 src/IROperator.h inline Expr cast(const Expr &a) {
Expr              200 src/IROperator.h inline Expr cast(Type t, const Expr &a) {
Expr              238 src/IROperator.h inline Expr operator+(Expr a, Expr b) {
Expr              248 src/IROperator.h inline Expr operator+(const Expr &a, int b) {
Expr              257 src/IROperator.h inline Expr operator+(int a, const Expr &b) {
Expr              266 src/IROperator.h inline Expr &operator+=(Expr &a, const Expr &b) {
Expr              274 src/IROperator.h inline Expr operator-(Expr a, Expr b) {
Expr              283 src/IROperator.h inline Expr operator-(const Expr &a, int b) {
Expr              292 src/IROperator.h inline Expr operator-(int a, const Expr &b) {
Expr              303 src/IROperator.h inline Expr operator-(const Expr &a) {
Expr              311 src/IROperator.h inline Expr &operator-=(Expr &a, const Expr &b) {
Expr              319 src/IROperator.h inline Expr operator*(Expr a, Expr b) {
Expr              328 src/IROperator.h inline Expr operator*(const Expr &a, int b) {
Expr              337 src/IROperator.h inline Expr operator*(int a, const Expr &b) {
Expr              346 src/IROperator.h inline Expr &operator*=(Expr &a, const Expr &b) {
Expr              356 src/IROperator.h inline Expr operator/(Expr a, Expr b) {
Expr              367 src/IROperator.h inline Expr &operator/=(Expr &a, const Expr &b) {
Expr              378 src/IROperator.h inline Expr operator/(const Expr &a, int b) {
Expr              387 src/IROperator.h inline Expr operator/(int a, const Expr &b) {
Expr              399 src/IROperator.h inline Expr operator%(Expr a, Expr b) {
Expr              409 src/IROperator.h inline Expr operator%(const Expr &a, int b) {
Expr              418 src/IROperator.h inline Expr operator%(int a, const Expr &b) {
Expr              428 src/IROperator.h inline Expr operator>(Expr a, Expr b) {
Expr              438 src/IROperator.h inline Expr operator>(const Expr &a, int b) {
Expr              448 src/IROperator.h inline Expr operator>(int a, const Expr &b) {
Expr              457 src/IROperator.h inline Expr operator<(Expr a, Expr b) {
Expr              467 src/IROperator.h inline Expr operator<(const Expr &a, int b) {
Expr              477 src/IROperator.h inline Expr operator<(int a, const Expr &b) {
Expr              486 src/IROperator.h inline Expr operator<=(Expr a, Expr b) {
Expr              496 src/IROperator.h inline Expr operator<=(const Expr &a, int b) {
Expr              506 src/IROperator.h inline Expr operator<=(int a, const Expr &b) {
Expr              515 src/IROperator.h inline Expr operator>=(Expr a, Expr b) {
Expr              525 src/IROperator.h inline Expr operator>=(const Expr &a, int b) {
Expr              535 src/IROperator.h inline Expr operator>=(int a, const Expr &b) {
Expr              544 src/IROperator.h inline Expr operator==(Expr a, Expr b) {
Expr              554 src/IROperator.h inline Expr operator==(const Expr &a, int b) {
Expr              564 src/IROperator.h inline Expr operator==(int a, const Expr &b) {
Expr              573 src/IROperator.h inline Expr operator!=(Expr a, Expr b) {
Expr              583 src/IROperator.h inline Expr operator!=(const Expr &a, int b) {
Expr              593 src/IROperator.h inline Expr operator!=(int a, const Expr &b) {
Expr              600 src/IROperator.h inline Expr operator&&(Expr a, Expr b) {
Expr              608 src/IROperator.h inline Expr operator&&(const Expr &a, bool b) {
Expr              617 src/IROperator.h inline Expr operator&&(bool a, const Expr &b) {
Expr              623 src/IROperator.h inline Expr operator||(Expr a, Expr b) {
Expr              631 src/IROperator.h inline Expr operator||(const Expr &a, bool b) {
Expr              640 src/IROperator.h inline Expr operator||(bool a, const Expr &b) {
Expr              647 src/IROperator.h inline Expr operator!(const Expr &a) {
Expr              655 src/IROperator.h inline Expr max(Expr a, Expr b) {
Expr              667 src/IROperator.h inline Expr max(const Expr &a, int b) {
Expr              679 src/IROperator.h inline Expr max(int a, const Expr &b) {
Expr              685 src/IROperator.h inline Expr max(float a, const Expr &b) {return max(Expr(a), b);}
Expr              686 src/IROperator.h inline Expr max(const Expr &a, float b) {return max(a, Expr(b));}
Expr              695 src/IROperator.h          typename std::enable_if<Halide::Internal::all_are_convertible<Expr, Rest...>::value>::type* = nullptr>
Expr              696 src/IROperator.h inline Expr max(const A &a, const B &b, const C &c, Rest&&... rest) {
Expr              700 src/IROperator.h inline Expr min(Expr a, Expr b) {
Expr              712 src/IROperator.h inline Expr min(const Expr &a, int b) {
Expr              723 src/IROperator.h inline Expr min(int a, const Expr &b) {
Expr              729 src/IROperator.h inline Expr min(float a, const Expr &b) {return min(Expr(a), b);}
Expr              730 src/IROperator.h inline Expr min(const Expr &a, float b) {return min(a, Expr(b));}
Expr              739 src/IROperator.h          typename std::enable_if<Halide::Internal::all_are_convertible<Expr, Rest...>::value>::type* = nullptr>
Expr              740 src/IROperator.h inline Expr min(const A &a, const B &b, const C &c, Rest&&... rest) {
Expr              748 src/IROperator.h inline Expr operator+(const Expr &a, float b) {return a + Expr(b);}
Expr              749 src/IROperator.h inline Expr operator+(float a, const Expr &b) {return Expr(a) + b;}
Expr              750 src/IROperator.h inline Expr operator-(const Expr &a, float b) {return a - Expr(b);}
Expr              751 src/IROperator.h inline Expr operator-(float a, const Expr &b) {return Expr(a) - b;}
Expr              752 src/IROperator.h inline Expr operator*(const Expr &a, float b) {return a * Expr(b);}
Expr              753 src/IROperator.h inline Expr operator*(float a, const Expr &b) {return Expr(a) * b;}
Expr              754 src/IROperator.h inline Expr operator/(const Expr &a, float b) {return a / Expr(b);}
Expr              755 src/IROperator.h inline Expr operator/(float a, const Expr &b) {return Expr(a) / b;}
Expr              756 src/IROperator.h inline Expr operator%(const Expr &a, float b) {return a % Expr(b);}
Expr              757 src/IROperator.h inline Expr operator%(float a, const Expr &b) {return Expr(a) % b;}
Expr              758 src/IROperator.h inline Expr operator>(const Expr &a, float b) {return a > Expr(b);}
Expr              759 src/IROperator.h inline Expr operator>(float a, const Expr &b) {return Expr(a) > b;}
Expr              760 src/IROperator.h inline Expr operator<(const Expr &a, float b) {return a < Expr(b);}
Expr              761 src/IROperator.h inline Expr operator<(float a, const Expr &b) {return Expr(a) < b;}
Expr              762 src/IROperator.h inline Expr operator>=(const Expr &a, float b) {return a >= Expr(b);}
Expr              763 src/IROperator.h inline Expr operator>=(float a, const Expr &b) {return Expr(a) >= b;}
Expr              764 src/IROperator.h inline Expr operator<=(const Expr &a, float b) {return a <= Expr(b);}
Expr              765 src/IROperator.h inline Expr operator<=(float a, const Expr &b) {return Expr(a) <= b;}
Expr              766 src/IROperator.h inline Expr operator==(const Expr &a, float b) {return a == Expr(b);}
Expr              767 src/IROperator.h inline Expr operator==(float a, const Expr &b) {return Expr(a) == b;}
Expr              768 src/IROperator.h inline Expr operator!=(const Expr &a, float b) {return a != Expr(b);}
Expr              769 src/IROperator.h inline Expr operator!=(float a, const Expr &b) {return Expr(a) != b;}
Expr              774 src/IROperator.h inline Expr clamp(const Expr &a, const Expr &min_val, const Expr &max_val) {
Expr              777 src/IROperator.h     Expr n_min_val = lossless_cast(a.type(), min_val);
Expr              780 src/IROperator.h     Expr n_max_val = lossless_cast(a.type(), max_val);
Expr              790 src/IROperator.h inline Expr abs(const Expr &a) {
Expr              807 src/IROperator.h inline Expr absd(Expr a, Expr b) {
Expr              827 src/IROperator.h inline Expr select(Expr condition, Expr true_value, Expr false_value) {
Expr              859 src/IROperator.h          typename std::enable_if<Halide::Internal::all_are_convertible<Expr, Args...>::value>::type* = nullptr>
Expr              860 src/IROperator.h inline Expr select(const Expr &c0, const Expr &v0, const Expr &c1, const Expr &v1, Args&&... args) {
Expr              870 src/IROperator.h inline Expr sin(const Expr &x) {
Expr              886 src/IROperator.h inline Expr asin(const Expr &x) {
Expr              902 src/IROperator.h inline Expr cos(const Expr &x) {
Expr              918 src/IROperator.h inline Expr acos(const Expr &x) {
Expr              934 src/IROperator.h inline Expr tan(const Expr &x) {
Expr              950 src/IROperator.h inline Expr atan(const Expr &x) {
Expr              966 src/IROperator.h inline Expr atan2(Expr y, Expr x) {
Expr              987 src/IROperator.h inline Expr sinh(const Expr &x) {
Expr             1003 src/IROperator.h inline Expr asinh(const Expr &x) {
Expr             1019 src/IROperator.h inline Expr cosh(const Expr &x) {
Expr             1035 src/IROperator.h inline Expr acosh(const Expr &x) {
Expr             1051 src/IROperator.h inline Expr tanh(const Expr &x) {
Expr             1067 src/IROperator.h inline Expr atanh(const Expr &x) {
Expr             1083 src/IROperator.h inline Expr sqrt(const Expr &x) {
Expr             1099 src/IROperator.h inline Expr hypot(const Expr &x, const Expr &y) {
Expr             1110 src/IROperator.h inline Expr exp(const Expr &x) {
Expr             1130 src/IROperator.h inline Expr log(const Expr &x) {
Expr             1149 src/IROperator.h inline Expr pow(Expr x, Expr y) {
Expr             1174 src/IROperator.h inline Expr erf(const Expr &x) {
Expr             1183 src/IROperator.h EXPORT Expr fast_log(const Expr &x);
Expr             1189 src/IROperator.h EXPORT Expr fast_exp(const Expr &x);
Expr             1195 src/IROperator.h inline Expr fast_pow(Expr x, Expr y) {
Expr             1208 src/IROperator.h inline Expr fast_inverse(const Expr &x) {
Expr             1216 src/IROperator.h inline Expr fast_inverse_sqrt(const Expr &x) {
Expr             1225 src/IROperator.h inline Expr floor(const Expr &x) {
Expr             1243 src/IROperator.h inline Expr ceil(const Expr &x) {
Expr             1262 src/IROperator.h inline Expr round(const Expr &x) {
Expr             1279 src/IROperator.h inline Expr trunc(const Expr &x) {
Expr             1295 src/IROperator.h inline Expr is_nan(const Expr &x) {
Expr             1314 src/IROperator.h inline Expr fract(const Expr &x) {
Expr             1320 src/IROperator.h inline Expr reinterpret(Type t, const Expr &e) {
Expr             1333 src/IROperator.h inline Expr reinterpret(const Expr &e) {
Expr             1340 src/IROperator.h inline Expr operator&(Expr x, Expr y) {
Expr             1359 src/IROperator.h inline Expr operator|(Expr x, Expr y) {
Expr             1378 src/IROperator.h inline Expr operator^(Expr x, Expr y) {
Expr             1395 src/IROperator.h inline Expr operator~(const Expr &x) {
Expr             1410 src/IROperator.h inline Expr operator<<(Expr x, Expr y) {
Expr             1417 src/IROperator.h inline Expr operator<<(const Expr &x, int y) {
Expr             1421 src/IROperator.h inline Expr operator<<(int x, const Expr &y) {
Expr             1436 src/IROperator.h inline Expr operator>>(Expr x, Expr y) {
Expr             1443 src/IROperator.h inline Expr operator>>(const Expr &x, int y) {
Expr             1447 src/IROperator.h inline Expr operator>>(int x, const Expr &y) {
Expr             1519 src/IROperator.h inline Expr lerp(Expr zero_val, Expr one_val, Expr weight) {
Expr             1561 src/IROperator.h inline Expr popcount(const Expr &x) {
Expr             1569 src/IROperator.h inline Expr count_leading_zeros(const Expr &x) {
Expr             1577 src/IROperator.h inline Expr count_trailing_zeros(const Expr &x) {
Expr             1587 src/IROperator.h inline Expr div_round_to_zero(Expr x, Expr y) {
Expr             1606 src/IROperator.h inline Expr mod_round_to_zero(Expr x, Expr y) {
Expr             1649 src/IROperator.h inline Expr random_float(const Expr &seed = Expr()) {
Expr             1654 src/IROperator.h     std::vector<Expr> args;
Expr             1671 src/IROperator.h inline Expr random_uint(const Expr &seed = Expr()) {
Expr             1676 src/IROperator.h     std::vector<Expr> args;
Expr             1691 src/IROperator.h inline Expr random_int(const Expr &seed = Expr()) {
Expr             1697 src/IROperator.h inline NO_INLINE void collect_print_args(std::vector<Expr> &args) {
Expr             1701 src/IROperator.h inline NO_INLINE void collect_print_args(std::vector<Expr> &args, const char *arg, Args&&... more_args) {
Expr             1702 src/IROperator.h     args.push_back(Expr(std::string(arg)));
Expr             1707 src/IROperator.h inline NO_INLINE void collect_print_args(std::vector<Expr> &args, const Expr &arg, Args&&... more_args) {
Expr             1718 src/IROperator.h EXPORT Expr print(const std::vector<Expr> &values);
Expr             1721 src/IROperator.h inline NO_INLINE Expr print(const Expr &a, Args&&... args) {
Expr             1722 src/IROperator.h     std::vector<Expr> collected_args = {a};
Expr             1731 src/IROperator.h EXPORT Expr print_when(const Expr &condition, const std::vector<Expr> &values);
Expr             1734 src/IROperator.h inline NO_INLINE Expr print_when(const Expr &condition, const Expr &a, Args&&... args) {
Expr             1735 src/IROperator.h     std::vector<Expr> collected_args = {a};
Expr             1763 src/IROperator.h EXPORT Expr require(const Expr &condition, const std::vector<Expr> &values);
Expr             1766 src/IROperator.h inline NO_INLINE Expr require(const Expr &condition, const Expr &value, Args&&... args) {
Expr             1767 src/IROperator.h     std::vector<Expr> collected_args = {value};
Expr             1793 src/IROperator.h inline Expr undef(Type t) {
Expr             1795 src/IROperator.h                                 std::vector<Expr>(),
Expr             1800 src/IROperator.h inline Expr undef() {
Expr             1805 src/IROperator.h EXPORT Expr memoize_tag_helper(const Expr &result, const std::vector<Expr> &cache_key_values);
Expr             1836 src/IROperator.h inline NO_INLINE Expr memoize_tag(const Expr &result, Args&&... args) {
Expr             1837 src/IROperator.h     std::vector<Expr> collected_args{std::forward<Args>(args)...};
Expr             1855 src/IROperator.h inline Expr likely(const Expr &e) {
Expr             1862 src/IROperator.h inline Expr likely_if_innermost(const Expr &e) {
Expr             1872 src/IROperator.h Expr saturating_cast(const Expr &e) {
Expr             1878 src/IROperator.h EXPORT Expr saturating_cast(Type t, Expr e);
Expr               43 src/IRPrinter.cpp ostream &operator<<(ostream &stream, const Expr &ir) {
Expr              103 src/IRPrinter.cpp     Expr x = Variable::make(Int(32), "x");
Expr              104 src/IRPrinter.cpp     Expr y = Variable::make(Int(32), "y");
Expr              111 src/IRPrinter.cpp     vector<Expr> args(1); args[0] = x % 3;
Expr              112 src/IRPrinter.cpp     Expr call = Call::make(i32, "buf", args, Call::Extern);
Expr              254 src/IRPrinter.cpp void IRPrinter::print(Expr ir) {
Expr              262 src/IRPrinter.cpp void IRPrinter::print_list(const std::vector<Expr> &exprs) {
Expr               26 src/IRPrinter.h EXPORT std::ostream &operator<<(std::ostream &stream, const Expr &);
Expr               74 src/IRPrinter.h     EXPORT void print(Expr);
Expr               81 src/IRPrinter.h     EXPORT void print_list(const std::vector<Expr> &exprs);
Expr              236 src/IRVisitor.cpp     for (Expr i : op->vectors) {
Expr              241 src/IRVisitor.cpp void IRGraphVisitor::include(const Expr &e) {
Expr              473 src/IRVisitor.cpp     for (Expr i : op->vectors) {
Expr               79 src/IRVisitor.h     EXPORT virtual void include(const Expr &);
Expr               23 src/ImageParam.cpp     std::vector<Expr> args_expr;
Expr               50 src/ImageParam.cpp Expr ImageParam::operator()(std::vector<Expr> args_passed) const {
Expr               54 src/ImageParam.cpp Expr ImageParam::operator()(std::vector<Var> args_passed) const {
Expr               59 src/ImageParam.h     NO_INLINE Expr operator()(Args&&... args) const {
Expr               62 src/ImageParam.h     EXPORT Expr operator()(std::vector<Expr>) const;
Expr               63 src/ImageParam.h     EXPORT Expr operator()(std::vector<Var>) const;
Expr               53 src/InferArguments.cpp     void visit_exprs(const vector<Expr>& v) {
Expr               54 src/InferArguments.cpp         for (Expr i : v) {
Expr               59 src/InferArguments.cpp     void visit_expr(Expr e) {
Expr               91 src/InferArguments.cpp         Expr def, min, max;
Expr               18 src/InjectHostDevBufferCopies.cpp Stmt call_extern_and_assert(const string& name, const vector<Expr>& args) {
Expr               19 src/InjectHostDevBufferCopies.cpp     Expr call = Call::make(Int(32), name, args, Call::Extern);
Expr               21 src/InjectHostDevBufferCopies.cpp     Expr call_result_var = Variable::make(Int(32), call_result_name);
Expr              190 src/InjectHostDevBufferCopies.cpp     Expr make_device_interface_call(DeviceAPI device_api) {
Expr              215 src/InjectHostDevBufferCopies.cpp         std::vector<Expr> no_args;
Expr              220 src/InjectHostDevBufferCopies.cpp         Expr buf = Variable::make(type_of<struct halide_buffer_t *>(), buf_name + ".buffer");
Expr              221 src/InjectHostDevBufferCopies.cpp         Expr device_interface = make_device_interface_call(target_device_api);
Expr              227 src/InjectHostDevBufferCopies.cpp                                       {Expr(is_device_and_host ? "halide_device_and_host_free_as_destructor"
Expr              240 src/InjectHostDevBufferCopies.cpp         std::vector<Expr> args;
Expr              241 src/InjectHostDevBufferCopies.cpp         Expr buffer = Variable::make(type_of<struct halide_buffer_t *>(), buf_name + ".buffer");
Expr              361 src/InjectHostDevBufferCopies.cpp             Expr buffer = Variable::make(type_of<struct halide_buffer_t *>(), i.first + ".buffer");
Expr              366 src/InjectHostDevBufferCopies.cpp                 Expr set_host_dirty = Call::make(Int(32), Call::buffer_set_host_dirty,
Expr              373 src/InjectHostDevBufferCopies.cpp                 Expr set_device_dirty = Call::make(Int(32), Call::buffer_set_device_dirty,
Expr              595 src/InjectHostDevBufferCopies.cpp             std::vector<Expr> create_buffer_args;
Expr              604 src/InjectHostDevBufferCopies.cpp             Expr buf = NullifyHostField(op->name).mutate(buffer_init_let->value);
Expr              633 src/InjectHostDevBufferCopies.cpp                 Expr value = NullifyHostField(buf_name).mutate(op->value);
Expr              645 src/InjectHostDevBufferCopies.cpp         Expr cond = mutate(op->condition);
Expr               16 src/InjectHostDevBufferCopies.h EXPORT Stmt call_extern_and_assert(const std::string& name, const std::vector<Expr>& args);
Expr               40 src/InjectImageIntrinsics.cpp         Expr value_arg = mutate(provide->values[0]);
Expr               41 src/InjectImageIntrinsics.cpp         vector<Expr> args = {
Expr               72 src/InjectImageIntrinsics.cpp         vector<Expr> padded_call_args = call->args;
Expr               82 src/InjectImageIntrinsics.cpp         vector<Expr> args(2);
Expr              105 src/InjectImageIntrinsics.cpp                 Expr min = Variable::make(Int(32), min_name);
Expr              117 src/InjectImageIntrinsics.cpp         Expr load_call =
Expr               28 src/InjectOpenGLIntrinsics.cpp             vector<Expr> call_args = call->args;
Expr               44 src/InjectOpenGLIntrinsics.cpp             vector<Expr> args(5);
Expr               69 src/InjectOpenGLIntrinsics.cpp             Expr c_coordinate = mutate(call_args[2 + 2 * 2]);
Expr               73 src/InjectOpenGLIntrinsics.cpp                               vector<Expr>(&args[0], &args[5]),
Expr               84 src/InjectOpenGLIntrinsics.cpp             vector<Expr> args(call->args);
Expr              102 src/Inline.cpp             vector<Expr> args(op->args.size());
Expr              107 src/Inline.cpp             Expr body = qualify(func.name() + ".", func.values()[op->value_index]);
Expr              156 src/Inline.cpp Expr inline_function(Expr e, Function f) {
Expr               18 src/Inline.h   Expr inline_function(Expr, Function);
Expr               20 src/InlineReductions.cpp     vector<Expr> call_args;
Expr               36 src/InlineReductions.cpp         Expr value = mutate(op->value);
Expr               38 src/InlineReductions.cpp         Expr body = mutate(op->body);
Expr              104 src/InlineReductions.cpp Expr sum(Expr e, const std::string &name) {
Expr              108 src/InlineReductions.cpp Expr sum(RDom r, Expr e, const std::string &name) {
Expr              119 src/InlineReductions.cpp Expr product(Expr e, const std::string &name) {
Expr              123 src/InlineReductions.cpp Expr product(RDom r, Expr e, const std::string &name) {
Expr              134 src/InlineReductions.cpp Expr maximum(Expr e, const std::string &name) {
Expr              138 src/InlineReductions.cpp Expr maximum(RDom r, Expr e, const std::string &name) {
Expr              150 src/InlineReductions.cpp Expr minimum(Expr e, const std::string &name) {
Expr              154 src/InlineReductions.cpp Expr minimum(RDom r, Expr e, const std::string &name) {
Expr              166 src/InlineReductions.cpp Tuple argmax(Expr e, const std::string &name) {
Expr              170 src/InlineReductions.cpp Tuple argmax(RDom r, Expr e, const std::string &name) {
Expr              178 src/InlineReductions.cpp     Tuple initial_tup(vector<Expr>(v.rdom.dimensions()+1));
Expr              179 src/InlineReductions.cpp     Tuple update_tup(vector<Expr>(v.rdom.dimensions()+1));
Expr              189 src/InlineReductions.cpp     Expr better = e > f(v.free_vars)[value_index];
Expr              195 src/InlineReductions.cpp Tuple argmin(Expr e, const std::string &name) {
Expr              199 src/InlineReductions.cpp Tuple argmin(RDom r, Expr e, const std::string &name) {
Expr              207 src/InlineReductions.cpp     Tuple initial_tup(vector<Expr>(v.rdom.dimensions()+1));
Expr              208 src/InlineReductions.cpp     Tuple update_tup(vector<Expr>(v.rdom.dimensions()+1));
Expr              218 src/InlineReductions.cpp     Expr better = e < f(v.free_vars)[value_index];
Expr               36 src/InlineReductions.h EXPORT Expr sum(Expr, const std::string &s = "sum");
Expr               37 src/InlineReductions.h EXPORT Expr product(Expr, const std::string &s = "product");
Expr               38 src/InlineReductions.h EXPORT Expr maximum(Expr, const std::string &s = "maximum");
Expr               39 src/InlineReductions.h EXPORT Expr minimum(Expr, const std::string &s = "minimum");
Expr               52 src/InlineReductions.h EXPORT Expr sum(RDom, Expr, const std::string &s = "sum");
Expr               53 src/InlineReductions.h EXPORT Expr product(RDom, Expr, const std::string &s = "product");
Expr               54 src/InlineReductions.h EXPORT Expr maximum(RDom, Expr, const std::string &s = "maximum");
Expr               55 src/InlineReductions.h EXPORT Expr minimum(RDom, Expr, const std::string &s = "minimum");
Expr               64 src/InlineReductions.h EXPORT Tuple argmax(Expr, const std::string &s = "argmax");
Expr               65 src/InlineReductions.h EXPORT Tuple argmin(Expr, const std::string &s = "argmin");
Expr               66 src/InlineReductions.h EXPORT Tuple argmax(RDom, Expr, const std::string &s = "argmax");
Expr               67 src/InlineReductions.h EXPORT Tuple argmin(RDom, Expr, const std::string &s = "argmin");
Expr               11 src/Interval.cpp Expr Interval::make_max(Expr a, Expr b) {
Expr               52 src/Interval.cpp Expr Interval::make_min(Expr a, Expr b) {
Expr               98 src/Interval.cpp void Interval::include(Expr e) {
Expr              116 src/Interval.cpp Expr Interval::pos_inf = Variable::make(Handle(), "pos_inf");
Expr              117 src/Interval.cpp Expr Interval::neg_inf = Variable::make(Handle(), "neg_inf");
Expr              133 src/Interval.cpp     Expr x = Variable::make(Int(32), "x");
Expr               17 src/Interval.h     static Expr pos_inf, neg_inf;
Expr               21 src/Interval.h     Expr min, max;
Expr               27 src/Interval.h     Interval(Expr min, Expr max) : min(min), max(max) {
Expr               38 src/Interval.h     static Interval single_point(Expr e) {return Interval(e, e);}
Expr               50 src/Interval.h     bool is_single_point(Expr e) const {return min.same_as(e) && max.same_as(e);}
Expr               68 src/Interval.h     EXPORT void include(Expr e);
Expr               77 src/Interval.h     EXPORT static Expr make_max(Expr a, Expr b);
Expr               80 src/Interval.h     EXPORT static Expr make_min(Expr a, Expr b);
Expr               17 src/Lambda.h   inline Func lambda(Expr e) {
Expr               27 src/Lambda.h   inline Func lambda(Var x, Expr e) {
Expr               37 src/Lambda.h   inline Func lambda(Var x, Var y, Expr e) {
Expr               47 src/Lambda.h   inline Func lambda(Var x, Var y, Var z, Expr e) {
Expr               57 src/Lambda.h   inline Func lambda(Var x, Var y, Var z, Var w, Expr e) {
Expr               67 src/Lambda.h   inline Func lambda(Var x, Var y, Var z, Var w, Var v, Expr e) {
Expr               11 src/Lerp.cpp   Expr lower_lerp(Expr zero_val, Expr one_val, Expr weight) {
Expr               13 src/Lerp.cpp       Expr result;
Expr               20 src/Lerp.cpp       Expr bias_value = make_zero(result_type);
Expr               40 src/Lerp.cpp           Expr half_weight;
Expr               49 src/Lerp.cpp           Expr typed_weight;
Expr               50 src/Lerp.cpp           Expr inverse_typed_weight;
Expr               61 src/Lerp.cpp                                      cast<double>(Expr(65535.0f)) * cast<double>(Expr(65537.0f)) *
Expr              143 src/Lerp.cpp                   Expr zero_expand = Cast::make(UInt(2 * bits, computation_type.lanes()),
Expr              145 src/Lerp.cpp                   Expr  one_expand = Cast::make(UInt(2 * bits, one_val.type().lanes()),
Expr              148 src/Lerp.cpp                   Expr rounding = Cast::make(UInt(2 * bits), 1) << Cast::make(UInt(2 * bits), (bits - 1));
Expr              149 src/Lerp.cpp                   Expr divisor  = Cast::make(UInt(2 * bits), 1) << Cast::make(UInt(2 * bits), bits);
Expr              151 src/Lerp.cpp                   Expr prod_sum = zero_expand * inverse_typed_weight +
Expr              153 src/Lerp.cpp                   Expr divided = ((prod_sum / divisor) + prod_sum) / divisor;
Expr               15 src/Lerp.h     Expr EXPORT lower_lerp(Expr zero_val, Expr one_val, Expr weight);
Expr               26 src/LoopCarry.cpp Expr is_linear(Expr e, const Scope<Expr> &linear) {
Expr               28 src/LoopCarry.cpp         return Expr();
Expr               39 src/LoopCarry.cpp         Expr la = is_linear(add->a, linear);
Expr               40 src/LoopCarry.cpp         Expr lb = is_linear(add->b, linear);
Expr               48 src/LoopCarry.cpp             return Expr();
Expr               51 src/LoopCarry.cpp         Expr la = is_linear(sub->a, linear);
Expr               52 src/LoopCarry.cpp         Expr lb = is_linear(sub->b, linear);
Expr               58 src/LoopCarry.cpp             return Expr();
Expr               61 src/LoopCarry.cpp         Expr la = is_linear(mul->a, linear);
Expr               62 src/LoopCarry.cpp         Expr lb = is_linear(mul->b, linear);
Expr               70 src/LoopCarry.cpp             return Expr();
Expr               73 src/LoopCarry.cpp         Expr la = is_linear(r->base, linear);
Expr               74 src/LoopCarry.cpp         Expr lb = is_linear(r->stride, linear);
Expr               78 src/LoopCarry.cpp             return Expr();
Expr               83 src/LoopCarry.cpp         return Expr();
Expr              126 src/LoopCarry.cpp Expr scratch_index(int i, Type t) {
Expr              139 src/LoopCarry.cpp     const Scope<Expr> &linear;
Expr              145 src/LoopCarry.cpp             Expr step = linear.get(op->name);
Expr              155 src/LoopCarry.cpp                 expr = Expr(op) + step;
Expr              166 src/LoopCarry.cpp     StepForwards(const Scope<Expr> &s) : linear(s) {}
Expr              169 src/LoopCarry.cpp Expr step_forwards(Expr e, const Scope<Expr> &linear) {
Expr              173 src/LoopCarry.cpp         return Expr();
Expr              187 src/LoopCarry.cpp     Scope<Expr> linear;
Expr              188 src/LoopCarry.cpp     vector<pair<string, Expr>> containing_lets;
Expr              201 src/LoopCarry.cpp         Expr value = mutate(op->value);
Expr              202 src/LoopCarry.cpp         Expr step = is_linear(value, linear);
Expr              271 src/LoopCarry.cpp                 if (graph_equal(Expr(load), Expr(v[0]))) {
Expr              282 src/LoopCarry.cpp         vector<Expr> indices, next_indices, predicates, next_predicates;
Expr              304 src/LoopCarry.cpp                              << i << ":  -> " << Expr(loads[i][0]) << "\n"
Expr              305 src/LoopCarry.cpp                              << j << ":  -> " << Expr(loads[j][0]) << "\n";
Expr              387 src/LoopCarry.cpp             vector<Expr> initial_scratch_values;
Expr              391 src/LoopCarry.cpp                 Expr scratch_idx = scratch_index(i, orig_load->type);
Expr              392 src/LoopCarry.cpp                 Expr load_from_scratch = Load::make(orig_load->type, scratch, scratch_idx,
Expr              418 src/LoopCarry.cpp             vector<pair<string, Expr>> initial_lets;
Expr              420 src/LoopCarry.cpp             Expr call = Call::make(Int(32), unique_name('b'), initial_scratch_values, Call::PureIntrinsic);
Expr              434 src/LoopCarry.cpp                 Expr scratch_idx = scratch_index(i, initial_scratch_values[i].type());
Expr              107 src/Memoization.cpp     void record(const Expr &expr) {
Expr              137 src/Memoization.cpp         Expr size_expr;
Expr              138 src/Memoization.cpp         Expr value_expr;
Expr              148 src/Memoization.cpp     Expr key_size_expr;
Expr              204 src/Memoization.cpp     Expr key_size() { return cast<int32_t>(key_size_expr); };
Expr              211 src/Memoization.cpp         Expr index = Expr(0);
Expr              262 src/Memoization.cpp     Expr generate_lookup(std::string key_allocation_name, std::string computed_bounds_name,
Expr              264 src/Memoization.cpp         std::vector<Expr> args;
Expr              269 src/Memoization.cpp         std::vector<Expr> buffers;
Expr              285 src/Memoization.cpp         std::vector<Expr> args;
Expr              290 src/Memoization.cpp         std::vector<Expr> buffers;
Expr              372 src/Memoization.cpp                 Expr min = Variable::make(Int(32), prefix + ".min");
Expr              373 src/Memoization.cpp                 Expr max = Variable::make(Int(32), prefix + ".max");
Expr              377 src/Memoization.cpp             Expr computed_bounds = builder.build();
Expr              403 src/Memoization.cpp             Expr cache_miss = Variable::make(Bool(), cache_miss_name);
Expr              489 src/Memoization.cpp                 std::vector<Expr> args = call->args;
Expr              503 src/Memoization.cpp             Expr value = mutate(let->value);
Expr              451 src/Module.cpp     std::vector<Expr> wrapper_args;
Expr              507 src/Module.cpp         Expr can_use = (target == base_target) ?
Expr              542 src/Module.cpp         Expr indirect_result = Call::make(Int(32), Call::call_cached_indirect_function, wrapper_args, Call::Intrinsic);
Expr              544 src/Module.cpp         Expr private_result_var = Variable::make(Int(32), private_result_name);
Expr               32 src/Module.h                       Expr _def = Expr(),
Expr               33 src/Module.h                       Expr _min = Expr(),
Expr               34 src/Module.h                       Expr _max = Expr()) : Argument(_name, _kind, _type, _dimensions, _def, _min, _max) {}
Expr               13 src/ModulusRemainder.cpp     ModulusRemainder analyze(Expr e);
Expr               66 src/ModulusRemainder.cpp ModulusRemainder modulus_remainder(Expr e) {
Expr               71 src/ModulusRemainder.cpp ModulusRemainder modulus_remainder(Expr e, const Scope<ModulusRemainder> &scope) {
Expr               78 src/ModulusRemainder.cpp bool reduce_expr_modulo(Expr expr, int modulus, int *remainder) {
Expr               95 src/ModulusRemainder.cpp bool reduce_expr_modulo(Expr expr, int modulus, int *remainder, const Scope<ModulusRemainder> &scope) {
Expr              106 src/ModulusRemainder.cpp ModulusRemainder ComputeModulusRemainder::analyze(Expr e) {
Expr              112 src/ModulusRemainder.cpp void check(Expr e, int m, int r) {
Expr              127 src/ModulusRemainder.cpp     Expr x = Variable::make(Int(32), "x");
Expr              128 src/ModulusRemainder.cpp     Expr y = Variable::make(Int(32), "y");
Expr               32 src/ModulusRemainder.h EXPORT ModulusRemainder modulus_remainder(Expr e);
Expr               37 src/ModulusRemainder.h EXPORT ModulusRemainder modulus_remainder(Expr e, const Scope<ModulusRemainder> &scope);
Expr               42 src/ModulusRemainder.h EXPORT bool reduce_expr_modulo(Expr e, int modulus, int *remainder);
Expr               43 src/ModulusRemainder.h EXPORT bool reduce_expr_modulo(Expr e, int modulus, int *remainder, const Scope<ModulusRemainder> &scope);
Expr              167 src/Monotonic.cpp     void visit_eq(Expr a, Expr b) {
Expr              187 src/Monotonic.cpp     void visit_lt(Expr a, Expr b) {
Expr              391 src/Monotonic.cpp Monotonic is_monotonic(Expr e, const std::string &var) {
Expr              399 src/Monotonic.cpp void check_increasing(Expr e) {
Expr              404 src/Monotonic.cpp void check_decreasing(Expr e) {
Expr              409 src/Monotonic.cpp void check_constant(Expr e) {
Expr              414 src/Monotonic.cpp void check_unknown(Expr e) {
Expr              422 src/Monotonic.cpp     Expr x = Variable::make(Int(32), "x");
Expr              423 src/Monotonic.cpp     Expr y = Variable::make(Int(32), "y");
Expr               19 src/Monotonic.h EXPORT Monotonic is_monotonic(Expr e, const std::string &var);
Expr               45 src/OutputImageParam.cpp Expr OutputImageParam::left() const {
Expr               50 src/OutputImageParam.cpp Expr OutputImageParam::right() const {
Expr               55 src/OutputImageParam.cpp Expr OutputImageParam::top() const {
Expr               60 src/OutputImageParam.cpp Expr OutputImageParam::bottom() const {
Expr               65 src/OutputImageParam.cpp Expr OutputImageParam::width() const {
Expr               70 src/OutputImageParam.cpp Expr OutputImageParam::height() const {
Expr               75 src/OutputImageParam.cpp Expr OutputImageParam::channels() const {
Expr               25 src/OutputImageParam.h     void add_implicit_args_if_placeholder(std::vector<Expr> &args,
Expr               26 src/OutputImageParam.h                                           Expr last_arg,
Expr               58 src/OutputImageParam.h     OutputImageParam set_min(int i, Expr e) {dim(i).set_min(e); return *this;}
Expr               60 src/OutputImageParam.h     OutputImageParam set_extent(int i, Expr e) {dim(i).set_extent(e); return *this;}
Expr               62 src/OutputImageParam.h     OutputImageParam set_bounds(int i, Expr a, Expr b) {dim(i).set_bounds(a, b); return *this;}
Expr               64 src/OutputImageParam.h     OutputImageParam set_stride(int i, Expr e) {dim(i).set_stride(e); return *this;}
Expr               66 src/OutputImageParam.h     Expr min(int i) const {return dim(i).min();}
Expr               68 src/OutputImageParam.h     Expr extent(int i) const {return dim(i).extent();}
Expr               70 src/OutputImageParam.h     Expr stride(int i) const {return dim(i).stride();}
Expr               85 src/OutputImageParam.h     EXPORT Expr left() const;
Expr               89 src/OutputImageParam.h     EXPORT Expr right() const;
Expr               93 src/OutputImageParam.h     EXPORT Expr top() const;
Expr               97 src/OutputImageParam.h     EXPORT Expr bottom() const;
Expr              101 src/OutputImageParam.h     EXPORT Expr width() const;
Expr              105 src/OutputImageParam.h     EXPORT Expr height() const;
Expr              109 src/OutputImageParam.h     EXPORT Expr channels() const;
Expr               45 src/ParallelRVar.cpp     vector<vector<Expr>> loads;
Expr               95 src/ParallelRVar.cpp     const vector<Expr> &values = r.values();
Expr               96 src/ParallelRVar.cpp     const vector<Expr> &args = r.args();
Expr              106 src/ParallelRVar.cpp     vector<Expr> other_store(args.size());
Expr              114 src/ParallelRVar.cpp     Expr distinct_v = (Variable::make(Int(32), v) !=
Expr              119 src/ParallelRVar.cpp     Expr hazard = const_true();
Expr              128 src/ParallelRVar.cpp         Expr check = const_true();
Expr              144 src/ParallelRVar.cpp     Expr pred = simplify(r.predicate());
Expr              146 src/ParallelRVar.cpp         Expr this_pred = pred;
Expr              147 src/ParallelRVar.cpp         Expr other_pred = renamer.mutate(pred);
Expr               68 src/Param.h        Param(T val, Expr min, Expr max) :
Expr               76 src/Param.h        Param(const std::string &n, T val, Expr min, Expr max) :
Expr              117 src/Param.h        void set_range(Expr min, Expr max) {
Expr              122 src/Param.h        void set_min_value(Expr min) {
Expr              129 src/Param.h        void set_max_value(Expr max) {
Expr              136 src/Param.h        Expr get_min_value() const {
Expr              140 src/Param.h        Expr get_max_value() const {
Expr              147 src/Param.h        operator Expr() const {
Expr              154 src/Param.h            return Expr(*this);
Expr              169 src/Param.h    inline Expr user_context_value() {
Expr               19 src/Parameter.cpp     std::vector<Expr> min_constraint;
Expr               20 src/Parameter.cpp     std::vector<Expr> extent_constraint;
Expr               21 src/Parameter.cpp     std::vector<Expr> stride_constraint;
Expr               22 src/Parameter.cpp     Expr min_value, max_value;
Expr              150 src/Parameter.cpp Expr Parameter::get_scalar_expr() const {
Expr              155 src/Parameter.cpp         case 32: return Expr(get_scalar<float>());
Expr              156 src/Parameter.cpp         case 64: return Expr(get_scalar<double>());
Expr              160 src/Parameter.cpp         case 8: return Expr(get_scalar<int8_t>());
Expr              161 src/Parameter.cpp         case 16: return Expr(get_scalar<int16_t>());
Expr              162 src/Parameter.cpp         case 32: return Expr(get_scalar<int32_t>());
Expr              163 src/Parameter.cpp         case 64: return Expr(get_scalar<int64_t>());
Expr              168 src/Parameter.cpp         case 8: return Expr(get_scalar<uint8_t>());
Expr              169 src/Parameter.cpp         case 16: return Expr(get_scalar<uint16_t>());
Expr              170 src/Parameter.cpp         case 32: return Expr(get_scalar<uint32_t>());
Expr              171 src/Parameter.cpp         case 64: return Expr(get_scalar<uint64_t>());
Expr              176 src/Parameter.cpp         case 64: return Expr(get_scalar<uint64_t>());
Expr              180 src/Parameter.cpp     return Expr();
Expr              215 src/Parameter.cpp void Parameter::set_min_constraint(int dim, Expr e) {
Expr              221 src/Parameter.cpp void Parameter::set_extent_constraint(int dim, Expr e) {
Expr              227 src/Parameter.cpp void Parameter::set_stride_constraint(int dim, Expr e) {
Expr              237 src/Parameter.cpp Expr Parameter::min_constraint(int dim) const {
Expr              243 src/Parameter.cpp Expr Parameter::extent_constraint(int dim) const {
Expr              249 src/Parameter.cpp Expr Parameter::stride_constraint(int dim) const {
Expr              258 src/Parameter.cpp void Parameter::set_min_value(Expr e) {
Expr              270 src/Parameter.cpp Expr Parameter::get_min_value() const {
Expr              275 src/Parameter.cpp void Parameter::set_max_value(Expr e) {
Expr              287 src/Parameter.cpp Expr Parameter::get_max_value() const {
Expr              302 src/Parameter.cpp Expr Dimension::min() const {
Expr              308 src/Parameter.cpp Expr Dimension::extent() const {
Expr              314 src/Parameter.cpp Expr Dimension::max() const {
Expr              318 src/Parameter.cpp Expr Dimension::stride() const {
Expr              324 src/Parameter.cpp Dimension Dimension::set_extent(Expr extent) {
Expr              329 src/Parameter.cpp Dimension Dimension::set_min(Expr min) {
Expr              334 src/Parameter.cpp Dimension Dimension::set_stride(Expr stride) {
Expr              340 src/Parameter.cpp Dimension Dimension::set_bounds(Expr min, Expr extent) {
Expr              352 src/Parameter.cpp void check_call_arg_types(const std::string &name, std::vector<Expr> *args, int dims) {
Expr               92 src/Parameter.h     EXPORT Expr get_scalar_expr() const;
Expr              128 src/Parameter.h     EXPORT void set_min_constraint(int dim, Expr e);
Expr              129 src/Parameter.h     EXPORT void set_extent_constraint(int dim, Expr e);
Expr              130 src/Parameter.h     EXPORT void set_stride_constraint(int dim, Expr e);
Expr              132 src/Parameter.h     EXPORT Expr min_constraint(int dim) const;
Expr              133 src/Parameter.h     EXPORT Expr extent_constraint(int dim) const;
Expr              134 src/Parameter.h     EXPORT Expr stride_constraint(int dim) const;
Expr              141 src/Parameter.h     EXPORT void set_min_value(Expr e);
Expr              142 src/Parameter.h     EXPORT Expr get_min_value() const;
Expr              143 src/Parameter.h     EXPORT void set_max_value(Expr e);
Expr              144 src/Parameter.h     EXPORT Expr get_max_value() const;
Expr              152 src/Parameter.h     EXPORT Expr min() const;
Expr              156 src/Parameter.h     EXPORT Expr extent() const;
Expr              160 src/Parameter.h     EXPORT Expr max() const;
Expr              164 src/Parameter.h     EXPORT Expr stride() const;
Expr              169 src/Parameter.h     EXPORT Dimension set_min(Expr e);
Expr              192 src/Parameter.h     EXPORT Dimension set_extent(Expr e);
Expr              198 src/Parameter.h     EXPORT Dimension set_stride(Expr e);
Expr              201 src/Parameter.h     EXPORT Dimension set_bounds(Expr min, Expr extent);
Expr              228 src/Parameter.h void check_call_arg_types(const std::string &name, std::vector<Expr> *args, int dims);
Expr               65 src/PartitionLoops.cpp         Expr index = mutate(op->index);
Expr               67 src/PartitionLoops.cpp         Expr value = mutate(op->value);
Expr               68 src/PartitionLoops.cpp         Expr predicate = mutate(op->predicate);
Expr              107 src/PartitionLoops.cpp bool has_likely_tag(Expr e) {
Expr              206 src/PartitionLoops.cpp     Expr condition;
Expr              208 src/PartitionLoops.cpp     Expr old_expr;
Expr              210 src/PartitionLoops.cpp     Expr likely_value;
Expr              213 src/PartitionLoops.cpp     Expr unlikely_value;
Expr              238 src/PartitionLoops.cpp bool expr_uses_invalid_buffers(Expr e, const Scope<int> &invalid_buffers) {
Expr              256 src/PartitionLoops.cpp     void new_simplification(Expr condition, Expr old, Expr likely_val, Expr unlikely_val) {
Expr              340 src/PartitionLoops.cpp                 Expr relaxed = and_condition_over_domain(s.condition, varying);
Expr              401 src/PartitionLoops.cpp     Expr mutate(Expr e) {
Expr              470 src/PartitionLoops.cpp         vector<Expr> min_vals, max_vals;
Expr              494 src/PartitionLoops.cpp                     Expr m = s.interval.min;
Expr              509 src/PartitionLoops.cpp                     Expr m = s.interval.max;
Expr              535 src/PartitionLoops.cpp         for (Expr min_val : min_vals) {
Expr              536 src/PartitionLoops.cpp             for (Expr max_val : max_vals) {
Expr              537 src/PartitionLoops.cpp                 Expr test = simplify(common_subexpression_elimination(min_val - 1 < max_val + 1));
Expr              596 src/PartitionLoops.cpp         Expr min_steady = op->min, max_steady = op->extent + op->min;
Expr              597 src/PartitionLoops.cpp         Expr prologue_val, epilogue_val;
Expr              651 src/PartitionLoops.cpp             Expr loop_var = Variable::make(Int(32), op->name);
Expr              707 src/PartitionLoops.cpp bool expr_contains_load(Expr e) {
Expr              723 src/PartitionLoops.cpp     vector<pair<string, Expr> > lifted_lets;
Expr              773 src/PartitionLoops.cpp             Expr new_var = Variable::make(op->value.type(), new_name);
Expr              848 src/PartitionLoops.cpp             Expr condition = Variable::make(op->condition.type(), condition_name);
Expr              888 src/PartitionLoops.cpp     bool is_trivial(Expr e) {
Expr              893 src/PartitionLoops.cpp         Expr condition   = mutate(op->condition);
Expr              894 src/PartitionLoops.cpp         Expr true_value  = mutate(op->true_value);
Expr              895 src/PartitionLoops.cpp         Expr false_value = mutate(op->false_value);
Expr              901 src/PartitionLoops.cpp                 Expr var = Variable::make(true_value.type(), var_name);
Expr              910 src/PartitionLoops.cpp                 Expr var = Variable::make(false_value.type(), var_name);
Expr               86 src/Prefetch.cpp             Expr buf_min_i = Variable::make(Int(32), name + ".min." + dim_name);
Expr               87 src/Prefetch.cpp             Expr buf_extent_i = Variable::make(Int(32), name + ".extent." + dim_name);
Expr               88 src/Prefetch.cpp             Expr buf_max_i = buf_min_i + buf_extent_i - 1;
Expr              108 src/Prefetch.cpp     bool should_substitute_let(Expr e) {
Expr              153 src/Prefetch.cpp         Expr let = visit_let<Let, Expr>(op);
Expr              170 src/Prefetch.cpp             Expr extent = box[i].max - box[i].min + 1;
Expr              196 src/Prefetch.cpp         Expr loop_var = Variable::make(Int(32), op->name);
Expr              213 src/Prefetch.cpp                 Expr fetch_at = loop_var + p.offset;
Expr              235 src/Prefetch.cpp                         Expr predicate = prefetch_box.used.defined() ? prefetch_box.used : const_true();
Expr              286 src/Prefetch.cpp             Expr new_offset = call->args[1];
Expr              288 src/Prefetch.cpp                 Expr stride = call->args[i+1];
Expr              294 src/Prefetch.cpp             vector<Expr> args = {base, new_offset};
Expr              305 src/Prefetch.cpp                      << "Before:\n" << Expr(call) << "\nAfter:\n" << stmt << "\n";
Expr              319 src/Prefetch.cpp     Expr max_byte_size;
Expr              334 src/Prefetch.cpp             vector<Expr> extents;
Expr              335 src/Prefetch.cpp             Expr new_offset = call->args[1];
Expr              337 src/Prefetch.cpp                 Expr extent = call->args[i];
Expr              338 src/Prefetch.cpp                 Expr stride = call->args[i+1];
Expr              339 src/Prefetch.cpp                 Expr stride_bytes = stride * elem_size;
Expr              344 src/Prefetch.cpp                 Expr is_negative_stride = (stride < 0);
Expr              345 src/Prefetch.cpp                 Expr outer_var = Variable::make(Int(32), index_name);
Expr              346 src/Prefetch.cpp                 Expr outer_extent;
Expr              354 src/Prefetch.cpp                     Expr abs_stride_bytes = Call::make(stride_bytes.type(), Call::abs, {stride_bytes}, Call::PureIntrinsic);
Expr              361 src/Prefetch.cpp             vector<Expr> args = {base, new_offset, Expr(1), simplify(max_byte_size / elem_size)};
Expr              368 src/Prefetch.cpp                      << "Before:\n" << Expr(call) << "\nAfter:\n" << stmt << "\n";
Expr              373 src/Prefetch.cpp     SplitPrefetch(Expr bytes) : max_byte_size(bytes) {}
Expr              384 src/Prefetch.cpp     Expr max_byte_size;
Expr               32 src/PrintLoopNest.cpp     Scope<Expr> constants;
Expr               85 src/PrintLoopNest.cpp         Expr min_val = op->min, extent_val = op->extent;
Expr               98 src/PrintLoopNest.cpp             Expr max_val = simplify(min_val + extent_val - 1);
Expr               43 src/Profiling.cpp         Expr size;
Expr               70 src/Profiling.cpp     Expr compute_allocation_size(const vector<Expr> &extents,
Expr               71 src/Profiling.cpp                                  const Expr &condition,
Expr               77 src/Profiling.cpp         Expr cond = simplify(condition);
Expr               95 src/Profiling.cpp         Expr size = cast<uint64_t>(extents[0]);
Expr              106 src/Profiling.cpp         vector<Expr> new_extents;
Expr              112 src/Profiling.cpp         Expr condition = mutate(op->condition);
Expr              115 src/Profiling.cpp         Expr size = compute_allocation_size(new_extents, condition, op->type, op->name, on_stack);
Expr              132 src/Profiling.cpp         Expr new_expr;
Expr              146 src/Profiling.cpp             Expr profiler_pipeline_state = Variable::make(Handle(), "profiler_pipeline_state");
Expr              148 src/Profiling.cpp             Expr set_task = Call::make(Int(32), "halide_profiler_memory_allocate",
Expr              164 src/Profiling.cpp             Expr profiler_pipeline_state = Variable::make(Handle(), "profiler_pipeline_state");
Expr              169 src/Profiling.cpp                     Expr set_task = Call::make(Int(32), "halide_profiler_memory_free",
Expr              199 src/Profiling.cpp         Expr profiler_token = Variable::make(Int(32), "profiler_token");
Expr              200 src/Profiling.cpp         Expr profiler_state = Variable::make(Handle(), "profiler_state");
Expr              203 src/Profiling.cpp         Expr set_task = Call::make(Int(32), "halide_profiler_set_current_func",
Expr              221 src/Profiling.cpp         Expr state = Variable::make(Handle(), "profiler_state");
Expr              247 src/Profiling.cpp             Expr get_state = Call::make(Handle(), "halide_profiler_get_state", {}, Call::Extern);
Expr              271 src/Profiling.cpp     Expr func_names_buf = Variable::make(Handle(), "profiling_func_names");
Expr              273 src/Profiling.cpp     Expr start_profiler = Call::make(Int(32), "halide_profiler_pipeline_start",
Expr              276 src/Profiling.cpp     Expr get_state = Call::make(Handle(), "halide_profiler_get_state", {}, Call::Extern);
Expr              278 src/Profiling.cpp     Expr get_pipeline_state = Call::make(Handle(), "halide_profiler_get_pipeline_state", {pipeline_name}, Call::Extern);
Expr              280 src/Profiling.cpp     Expr profiler_token = Variable::make(Int(32), "profiler_token");
Expr              282 src/Profiling.cpp     Expr stop_profiler = Call::make(Int(32), Call::register_destructor,
Expr              283 src/Profiling.cpp                                     {Expr("halide_profiler_pipeline_end"), get_state}, Call::Intrinsic);
Expr              287 src/Profiling.cpp         Expr func_stack_peak_buf = Variable::make(Handle(), "profiling_func_stack_peak_buf");
Expr              289 src/Profiling.cpp         Expr profiler_pipeline_state = Variable::make(Handle(), "profiler_pipeline_state");
Expr              295 src/Profiling.cpp     Expr profiler_state = Variable::make(Handle(), "profiler_state");
Expr               23 src/Qualify.cpp         Expr value = mutate(op->value);
Expr               24 src/Qualify.cpp         Expr body = mutate(op->body);
Expr               31 src/Qualify.cpp Expr qualify(const string &prefix, Expr value) {
Expr               15 src/Qualify.h  Expr qualify(const std::string &prefix, Expr value);
Expr               16 src/RDom.cpp   RVar::operator Expr() const {
Expr               24 src/RDom.cpp   Expr RVar::min() const {
Expr               28 src/RDom.cpp           return Expr();
Expr               32 src/RDom.cpp   Expr RVar::extent() const {
Expr               36 src/RDom.cpp           return Expr();
Expr              101 src/RDom.cpp   void RDom::initialize_from_ranges(const std::vector<std::pair<Expr, Expr>> &ranges, string name) {
Expr              194 src/RDom.cpp   RDom::operator Expr() const {
Expr              200 src/RDom.cpp       return Expr(x);
Expr              212 src/RDom.cpp   void RDom::where(Expr predicate) {
Expr              233 src/RDom.cpp       Expr pred = simplify(dom.domain().predicate());
Expr               46 src/RDom.h         EXPORT Expr min() const;
Expr               50 src/RDom.h         EXPORT Expr extent() const;
Expr               59 src/RDom.h         EXPORT operator Expr() const;
Expr              184 src/RDom.h         EXPORT void initialize_from_ranges(const std::vector<std::pair<Expr, Expr>> &ranges, std::string name = "");
Expr              187 src/RDom.h         NO_INLINE void initialize_from_ranges(std::vector<std::pair<Expr, Expr>> &ranges, Expr min, Expr extent, Args&&... args) {
Expr              199 src/RDom.h         NO_INLINE RDom(const std::vector<std::pair<Expr, Expr>> &ranges, std::string name = "") {
Expr              204 src/RDom.h         NO_INLINE RDom(Expr min, Expr extent, Args&&... args) {
Expr              207 src/RDom.h             std::vector<std::pair<Expr, Expr>> ranges;
Expr              244 src/RDom.h         EXPORT operator Expr() const;
Expr              309 src/RDom.h         EXPORT void where(Expr predicate);
Expr               20 src/Random.cpp Expr rng32(Expr x) {
Expr               66 src/Random.cpp Expr random_int(const vector<Expr> &e) {
Expr               70 src/Random.cpp     Expr result = rng32(cast(UInt(32), e[0]));
Expr               88 src/Random.cpp Expr random_float(const vector<Expr> &e) {
Expr               89 src/Random.cpp     Expr result = random_int(e);
Expr              101 src/Random.cpp             vector<Expr> args = op->args;
Expr              117 src/Random.cpp     vector<Expr> extra_args;
Expr              128 src/Random.cpp Expr lower_random(Expr e, const vector<string> &free_vars, int tag) {
Expr               16 src/Random.h   Expr random_float(const std::vector<Expr> &);
Expr               21 src/Random.h   Expr random_int(const std::vector<Expr> &);
Expr               26 src/Random.h   Expr lower_random(Expr e, const std::vector<std::string> &free_vars, int tag);
Expr               15 src/Reduction.cpp void check(Expr pred, std::vector<Expr> &expected) {
Expr               16 src/Reduction.cpp     std::vector<Expr> result;
Expr               47 src/Reduction.cpp     Expr x = Var("x"), y = Var("y"), z = Var("z"), w = Var("w");
Expr               50 src/Reduction.cpp         std::vector<Expr> expected;
Expr               56 src/Reduction.cpp         std::vector<Expr> expected;
Expr               62 src/Reduction.cpp         std::vector<Expr> expected;
Expr               69 src/Reduction.cpp         std::vector<Expr> expected;
Expr               77 src/Reduction.cpp         std::vector<Expr> expected;
Expr               83 src/Reduction.cpp         std::vector<Expr> expected;
Expr               95 src/Reduction.cpp     Expr predicate;
Expr              173 src/Reduction.cpp     Expr predicate;
Expr              175 src/Reduction.cpp     DropSelfReferences(Expr p, const ReductionDomain &d) :
Expr              180 src/Reduction.cpp void ReductionDomain::set_predicate(Expr p) {
Expr              186 src/Reduction.cpp void ReductionDomain::where(Expr predicate) {
Expr              190 src/Reduction.cpp Expr ReductionDomain::predicate() const {
Expr              194 src/Reduction.cpp std::vector<Expr> ReductionDomain::split_predicate() const {
Expr              195 src/Reduction.cpp     std::vector<Expr> predicates;
Expr               18 src/Reduction.h     Expr min, extent;
Expr               74 src/Reduction.h     EXPORT void where(Expr predicate);
Expr               77 src/Reduction.h     EXPORT Expr predicate() const;
Expr               80 src/Reduction.h     EXPORT void set_predicate(Expr);
Expr               85 src/Reduction.h     EXPORT std::vector<Expr> split_predicate() const;
Expr               15 src/RemoveUndef.cpp     Expr predicate;
Expr               23 src/RemoveUndef.cpp             expr = Expr();
Expr               31 src/RemoveUndef.cpp         Expr a = mutate(op->a);
Expr               33 src/RemoveUndef.cpp         Expr b = mutate(op->b);
Expr               45 src/RemoveUndef.cpp         Expr value = mutate(op->value);
Expr               71 src/RemoveUndef.cpp         Expr a = mutate(op->a);
Expr               80 src/RemoveUndef.cpp         Expr cond = mutate(op->condition);
Expr               81 src/RemoveUndef.cpp         Expr t = mutate(op->true_value);
Expr               82 src/RemoveUndef.cpp         Expr f = mutate(op->false_value);
Expr               85 src/RemoveUndef.cpp             expr = Expr();
Expr               90 src/RemoveUndef.cpp             expr = Expr();
Expr               99 src/RemoveUndef.cpp             f = Expr();
Expr              120 src/RemoveUndef.cpp         Expr pred = mutate(op->predicate);
Expr              121 src/RemoveUndef.cpp         Expr index = mutate(op->index);
Expr              131 src/RemoveUndef.cpp         Expr base = mutate(op->base);
Expr              133 src/RemoveUndef.cpp         Expr stride = mutate(op->stride);
Expr              144 src/RemoveUndef.cpp         Expr value = mutate(op->value);
Expr              152 src/RemoveUndef.cpp             expr = Expr();
Expr              156 src/RemoveUndef.cpp         vector<Expr> new_args(op->args.size());
Expr              161 src/RemoveUndef.cpp             Expr old_arg = op->args[i];
Expr              162 src/RemoveUndef.cpp             Expr new_arg = mutate(old_arg);
Expr              177 src/RemoveUndef.cpp         Expr value = mutate(op->value);
Expr              181 src/RemoveUndef.cpp         Expr body = mutate(op->body);
Expr              198 src/RemoveUndef.cpp         Expr value = mutate(op->value);
Expr              218 src/RemoveUndef.cpp         Expr condition = mutate(op->condition);
Expr              224 src/RemoveUndef.cpp         Expr message = mutate(op->message);
Expr              248 src/RemoveUndef.cpp         Expr min = mutate(op->min);
Expr              253 src/RemoveUndef.cpp         Expr extent = mutate(op->extent);
Expr              270 src/RemoveUndef.cpp         predicate = Expr();
Expr              272 src/RemoveUndef.cpp         Expr pred = mutate(op->predicate);
Expr              273 src/RemoveUndef.cpp         Expr value = mutate(op->value);
Expr              279 src/RemoveUndef.cpp         Expr index = mutate(op->index);
Expr              288 src/RemoveUndef.cpp             predicate = Expr();
Expr              299 src/RemoveUndef.cpp         predicate = Expr();
Expr              301 src/RemoveUndef.cpp         vector<Expr> new_args(op->args.size());
Expr              302 src/RemoveUndef.cpp         vector<Expr> new_values(op->values.size());
Expr              303 src/RemoveUndef.cpp         vector<Expr> args_predicates;
Expr              304 src/RemoveUndef.cpp         vector<Expr> values_predicates;
Expr              309 src/RemoveUndef.cpp             Expr old_arg = op->args[i];
Expr              310 src/RemoveUndef.cpp             predicate = Expr();
Expr              311 src/RemoveUndef.cpp             Expr new_arg = mutate(old_arg);
Expr              330 src/RemoveUndef.cpp             Expr old_value = op->values[i];
Expr              331 src/RemoveUndef.cpp             predicate = Expr();
Expr              332 src/RemoveUndef.cpp             Expr new_value = mutate(old_value);
Expr              357 src/RemoveUndef.cpp             predicate = Expr();
Expr              366 src/RemoveUndef.cpp         std::vector<Expr> new_extents;
Expr              379 src/RemoveUndef.cpp         Expr condition = mutate(op->condition);
Expr              382 src/RemoveUndef.cpp         Expr new_expr;
Expr              407 src/RemoveUndef.cpp             Expr old_min    = op->bounds[i].min;
Expr              408 src/RemoveUndef.cpp             Expr old_extent = op->bounds[i].extent;
Expr              409 src/RemoveUndef.cpp             Expr new_min    = mutate(old_min);
Expr              414 src/RemoveUndef.cpp             Expr new_extent = mutate(old_extent);
Expr              427 src/RemoveUndef.cpp         Expr condition = mutate(op->condition);
Expr              455 src/RemoveUndef.cpp         Expr condition = mutate(op->condition);
Expr              484 src/RemoveUndef.cpp         Expr v = mutate(op->value);
Expr              170 src/Schedule.h     Expr factor;
Expr              217 src/Schedule.h     Expr min, extent, modulus, remainder;
Expr              224 src/Schedule.h     Expr alignment;
Expr              225 src/Schedule.h     Expr fold_factor;
Expr              232 src/Schedule.h     Expr offset;
Expr               35 src/ScheduleFunctions.cpp     Expr value;
Expr               55 src/ScheduleFunctions.cpp bool contains_impure_call(const Expr &expr) {
Expr               65 src/ScheduleFunctions.cpp                                     const vector<Expr> &site,
Expr               66 src/ScheduleFunctions.cpp                                     const vector<Expr> &values,
Expr               67 src/ScheduleFunctions.cpp                                     const vector<Expr> &predicates,
Expr               82 src/ScheduleFunctions.cpp     map<string, Expr> dim_extent_alignment;
Expr              122 src/ScheduleFunctions.cpp         Container c = {Container::For, i, prefix + dim.var, Expr()};
Expr              145 src/ScheduleFunctions.cpp     for (Expr pred : predicates) {
Expr              211 src/ScheduleFunctions.cpp             Expr min = Variable::make(Int(32), nest[i].name + ".loop_min");
Expr              212 src/ScheduleFunctions.cpp             Expr extent = Variable::make(Int(32), nest[i].name + ".loop_extent");
Expr              223 src/ScheduleFunctions.cpp         vector<std::pair<string, Expr>> let_stmts = compute_loop_bounds_after_split(split, prefix);
Expr              240 src/ScheduleFunctions.cpp         Expr max = Variable::make(Int(32), var + ".max");
Expr              241 src/ScheduleFunctions.cpp         Expr min = Variable::make(Int(32), var + ".min"); // Inject instance name here? (compute instance names during lowering)
Expr              253 src/ScheduleFunctions.cpp         Expr rmin = Variable::make(Int(32), p + ".min");
Expr              254 src/ScheduleFunctions.cpp         Expr rmax = Variable::make(Int(32), p + ".max");
Expr              273 src/ScheduleFunctions.cpp     vector<Expr> site(def.args().size());
Expr              274 src/ScheduleFunctions.cpp     vector<Expr> values(def.values().size());
Expr              276 src/ScheduleFunctions.cpp         Expr v = def.values()[i];
Expr              284 src/ScheduleFunctions.cpp         Expr s = def.args()[i];
Expr              298 src/ScheduleFunctions.cpp         Expr c = s.condition;
Expr              307 src/ScheduleFunctions.cpp             Expr specialize_fail_error =
Expr              332 src/ScheduleFunctions.cpp         vector<Expr> extern_call_args;
Expr              337 src/ScheduleFunctions.cpp         vector<pair<string, Expr>> lets;
Expr              342 src/ScheduleFunctions.cpp         vector<pair<Expr, int>> buffers_to_annotate;
Expr              343 src/ScheduleFunctions.cpp         vector<Expr> buffers_contents_to_annotate;
Expr              355 src/ScheduleFunctions.cpp                     Expr buffer = Variable::make(type_of<struct halide_buffer_t *>(), buf_name);
Expr              364 src/ScheduleFunctions.cpp                 Expr buf = Variable::make(type_of<struct halide_buffer_t *>(), b.name() + ".buffer", p);
Expr              370 src/ScheduleFunctions.cpp                 Expr buf = Variable::make(type_of<struct halide_buffer_t *>(), p.name() + ".buffer", p);
Expr              394 src/ScheduleFunctions.cpp                 Expr buffer = Variable::make(type_of<struct halide_buffer_t *>(), buf_name);
Expr              415 src/ScheduleFunctions.cpp                 Expr src_buffer = Variable::make(type_of<struct halide_buffer_t *>(), src_buf_name);
Expr              417 src/ScheduleFunctions.cpp                 Expr alloca_size = Call::make(Int(32), Call::size_of_halide_buffer_t, {}, Call::Intrinsic);
Expr              418 src/ScheduleFunctions.cpp                 Expr output_buffer_t = Call::make(type_of<struct halide_buffer_t *>(), Call::alloca,
Expr              421 src/ScheduleFunctions.cpp                 vector<Expr> args(5);
Expr              427 src/ScheduleFunctions.cpp                 vector<Expr> mins, extents;
Expr              431 src/ScheduleFunctions.cpp                     Expr min = Variable::make(Int(32), var + ".min");
Expr              432 src/ScheduleFunctions.cpp                     Expr max = Variable::make(Int(32), var + ".max");
Expr              454 src/ScheduleFunctions.cpp                 Expr buffer = p.first;
Expr              458 src/ScheduleFunctions.cpp                 Expr sizeof_buffer_t = cast<uint64_t>(Call::make(Int(32), Call::size_of_halide_buffer_t, {}, Call::Intrinsic));
Expr              462 src/ScheduleFunctions.cpp                 Expr shape = Call::make(type_of<halide_dimension_t *>(), Call::buffer_get_shape, {buffer}, Call::Extern);
Expr              463 src/ScheduleFunctions.cpp                 Expr shape_size = Expr((uint64_t)(sizeof(halide_dimension_t) * dimensions));
Expr              487 src/ScheduleFunctions.cpp         Expr e = f.make_call_to_extern_definition(extern_call_args, target);
Expr              491 src/ScheduleFunctions.cpp         Expr result = Variable::make(Int(32), result_name);
Expr              492 src/ScheduleFunctions.cpp         Expr error = Call::make(Int(32), "halide_error_extern_stage_failed",
Expr              551 src/ScheduleFunctions.cpp             Expr min_var = Variable::make(Int(32), min_name);
Expr              552 src/ScheduleFunctions.cpp             Expr max_var = Variable::make(Int(32), max_name);
Expr              561 src/ScheduleFunctions.cpp             Expr max_val = (b.extent + b.min) - 1;
Expr              562 src/ScheduleFunctions.cpp             Expr min_val = b.min;
Expr              564 src/ScheduleFunctions.cpp             Expr check = (min_val <= min_var) && (max_val >= max_var);
Expr              565 src/ScheduleFunctions.cpp             Expr error_msg = Call::make(Int(32), "halide_error_explicit_bounds_too_small",
Expr              659 src/ScheduleFunctions.cpp                 Expr min = Variable::make(Int(32), name + "." + arg + ".min_realized");
Expr              660 src/ScheduleFunctions.cpp                 Expr extent = Variable::make(Int(32), name + "." + arg + ".extent_realized");
Expr              703 src/ScheduleFunctions.cpp         vector<pair<string, Expr>> lets;
Expr               35 src/ScheduleParam.h     operator Expr() const { 
Expr               75 src/ScheduleParam.h     Expr scalar_expr;
Expr               40 src/Simplify.cpp bool is_simple_const(const Expr &e) {
Expr               55 src/Simplify.cpp bool is_var_relop_simple_const(const Expr &e, string* name) {
Expr               75 src/Simplify.cpp bool is_var_simple_const_comparison(const Expr &e, string* name) {
Expr               94 src/Simplify.cpp Expr signed_integer_overflow_error(Type t) {
Expr              102 src/Simplify.cpp Expr indeterminate_expression_error(Type t) {
Expr              114 src/Simplify.cpp bool propagate_indeterminate_expression(const Expr &e, Type t, Expr *expr) {
Expr              127 src/Simplify.cpp bool propagate_indeterminate_expression(const Expr &e0, const Expr &e1, Type t, Expr *expr) {
Expr              132 src/Simplify.cpp bool propagate_indeterminate_expression(const Expr &e0, const Expr &e1, const Expr &e2, Type t, Expr *expr) {
Expr              164 src/Simplify.cpp bool expr_is_pure(const Expr &e) {
Expr              194 src/Simplify.cpp     Expr mutate(Expr e) {
Expr              198 src/Simplify.cpp         Expr new_e = IRMutator::mutate(e);
Expr              231 src/Simplify.cpp         Expr replacement;
Expr              266 src/Simplify.cpp     bool const_float(const Expr &e, double *f) {
Expr              277 src/Simplify.cpp     bool const_int(const Expr &e, int64_t *i) {
Expr              288 src/Simplify.cpp     bool const_uint(const Expr &e, uint64_t *u) {
Expr              305 src/Simplify.cpp     bool const_int_bounds(const Expr &e, int64_t *min_val, int64_t *max_val) {
Expr              446 src/Simplify.cpp     Expr is_round_up_div(const Expr &e, int64_t factor) {
Expr              447 src/Simplify.cpp         if (!no_overflow(e.type())) return Expr();
Expr              449 src/Simplify.cpp         if (!div) return Expr();
Expr              450 src/Simplify.cpp         if (!is_const(div->b, factor)) return Expr();
Expr              452 src/Simplify.cpp         if (!add) return Expr();
Expr              453 src/Simplify.cpp         if (!is_const(add->b, factor-1)) return Expr();
Expr              459 src/Simplify.cpp     Expr is_round_up(const Expr &e, int64_t *factor) {
Expr              460 src/Simplify.cpp         if (!no_overflow(e.type())) return Expr();
Expr              462 src/Simplify.cpp         if (!mul) return Expr();
Expr              463 src/Simplify.cpp         if (!const_int(mul->b, factor)) return Expr();
Expr              468 src/Simplify.cpp         Expr value = mutate(op->value);
Expr              588 src/Simplify.cpp         Expr a = mutate(op->a);
Expr              589 src/Simplify.cpp         Expr b = mutate(op->b);
Expr              945 src/Simplify.cpp             Expr ratio = make_const(a.type(), div_imp(ia, ib));
Expr              956 src/Simplify.cpp         Expr a = mutate(op->a);
Expr              957 src/Simplify.cpp         Expr b = mutate(op->b);
Expr             1359 src/Simplify.cpp             Expr x = add_a_a->a, a = add_a_a->b, b = add_b_a->b, c = div_a->b;
Expr             1376 src/Simplify.cpp             Expr x = div_a->a, b = add_b_a->b, c = div_a->b;
Expr             1387 src/Simplify.cpp             Expr x = add_a_a->a, a = add_a_a->b, c = div_a->b;
Expr             1398 src/Simplify.cpp             Expr x = div_a->a, b = sub_b_a->b, c = div_a->b;
Expr             1409 src/Simplify.cpp             Expr x = sub_a_a->a, a = sub_a_a->b, c = div_a->b;
Expr             1423 src/Simplify.cpp             Expr x = sub_a_a->a, a = sub_a_a->b, b = add_b_a->b, c = div_a->b;
Expr             1437 src/Simplify.cpp             Expr x = add_a_a->a, a = add_a_a->b, b = sub_b_a->b, c = div_a->b;
Expr             1447 src/Simplify.cpp         Expr a = mutate(op->a);
Expr             1448 src/Simplify.cpp         Expr b = mutate(op->b);
Expr             1513 src/Simplify.cpp             Expr m = broadcast_b->value;
Expr             1516 src/Simplify.cpp             Expr m = broadcast_a->value;
Expr             1550 src/Simplify.cpp         Expr a = mutate(op->a);
Expr             1551 src/Simplify.cpp         Expr b = mutate(op->b);
Expr             1719 src/Simplify.cpp             Expr ratio = make_const(op->type, div_imp(ia, ib));
Expr             1729 src/Simplify.cpp             Expr ratio = make_const(op->type, div_imp(ia, ib));
Expr             1740 src/Simplify.cpp             Expr ratio = make_const(op->type, div_imp(ia, ib));
Expr             1750 src/Simplify.cpp             Expr ratio = make_const(op->type, div_imp(ia, ib));
Expr             1762 src/Simplify.cpp             Expr ratio = make_const(op->type, div_imp(ia, ib));
Expr             1773 src/Simplify.cpp             Expr ratio = make_const(op->type, div_imp(ia, ib));
Expr             1784 src/Simplify.cpp             Expr ratio = make_const(op->type, div_imp(ia, ib));
Expr             1795 src/Simplify.cpp             Expr ratio = make_const(op->type, div_imp(ia, ib));
Expr             1806 src/Simplify.cpp             Expr ratio = make_const(op->type, div_imp(ia, ib));
Expr             1817 src/Simplify.cpp             Expr ratio = make_const(op->type, div_imp(ia, ib));
Expr             1828 src/Simplify.cpp             Expr ratio = make_const(op->type, div_imp(ia, ib));
Expr             1840 src/Simplify.cpp             Expr ratio = make_const(op->type, div_imp(ia, ib));
Expr             1849 src/Simplify.cpp             Expr ratio = make_const(op->type, div_imp(ia, ib));
Expr             1973 src/Simplify.cpp         Expr a = mutate(op->a);
Expr             1974 src/Simplify.cpp         Expr b = mutate(op->b);
Expr             2088 src/Simplify.cpp             Expr new_base = make_const(ramp_a->base.type(), mod_imp((int64_t)mod_rem.remainder, ib));
Expr             2100 src/Simplify.cpp             Expr new_base = make_const(t, mod_imp((int64_t)mod_rem.remainder, ib));
Expr             2110 src/Simplify.cpp         Expr a = mutate(op->a);
Expr             2111 src/Simplify.cpp         Expr b = mutate(op->b);
Expr             2159 src/Simplify.cpp         Expr a_round_up = is_round_up(a, &a_round_up_factor);
Expr             2160 src/Simplify.cpp         Expr b_round_up = is_round_up(b, &b_round_up_factor);
Expr             2431 src/Simplify.cpp             Expr factor = make_const(op->type, ia);
Expr             2443 src/Simplify.cpp             Expr factor = make_const(op->type, ia);
Expr             2456 src/Simplify.cpp             Expr ratio  = make_const(op->type, ib / ia);
Expr             2457 src/Simplify.cpp             Expr factor = make_const(op->type, ia);
Expr             2501 src/Simplify.cpp         Expr a = mutate(op->a), b = mutate(op->b);
Expr             2793 src/Simplify.cpp             Expr factor = make_const(op->type, ia);
Expr             2805 src/Simplify.cpp             Expr factor = make_const(op->type, ia);
Expr             2818 src/Simplify.cpp             Expr ratio = make_const(op->type, ib / ia);
Expr             2819 src/Simplify.cpp             Expr factor = make_const(op->type, ia);
Expr             2863 src/Simplify.cpp         Expr delta = mutate(op->a - op->b);
Expr             2874 src/Simplify.cpp         Expr zero = make_zero(delta.type());
Expr             2883 src/Simplify.cpp                 Expr deltai = extract_lane(delta, i);
Expr             2960 src/Simplify.cpp         Expr a = mutate(op->a), b = mutate(op->b);
Expr             2978 src/Simplify.cpp         Expr delta = mutate(a - b);
Expr             3044 src/Simplify.cpp                 Expr bases_lt = (ramp_a->base < ramp_b->base);
Expr             3132 src/Simplify.cpp                 Expr one = make_one(a.type());
Expr             3137 src/Simplify.cpp                 Expr lt_a = mutate(min_a->a < b);
Expr             3138 src/Simplify.cpp                 Expr lt_b = mutate(min_a->b < b);
Expr             3148 src/Simplify.cpp                 Expr lt_a = mutate(max_a->a < b);
Expr             3149 src/Simplify.cpp                 Expr lt_b = mutate(max_a->b < b);
Expr             3159 src/Simplify.cpp                 Expr lt_a = mutate(a < min_b->a);
Expr             3160 src/Simplify.cpp                 Expr lt_b = mutate(a < min_b->b);
Expr             3170 src/Simplify.cpp                 Expr lt_a = mutate(a < max_b->a);
Expr             3171 src/Simplify.cpp                 Expr lt_b = mutate(a < max_b->b);
Expr             3296 src/Simplify.cpp         Expr a = mutate(op->a);
Expr             3297 src/Simplify.cpp         Expr b = mutate(op->b);
Expr             3491 src/Simplify.cpp         Expr a = mutate(op->a), b = mutate(op->b);
Expr             3669 src/Simplify.cpp         Expr a = mutate(op->a);
Expr             3703 src/Simplify.cpp         Expr condition = mutate(op->condition);
Expr             3704 src/Simplify.cpp         Expr true_value = mutate(op->true_value);
Expr             3705 src/Simplify.cpp         Expr false_value = mutate(op->false_value);
Expr             3857 src/Simplify.cpp         Expr base = mutate(op->base);
Expr             3858 src/Simplify.cpp         Expr stride = mutate(op->stride);
Expr             3871 src/Simplify.cpp         Expr condition = mutate(op->condition);
Expr             3903 src/Simplify.cpp         vector<Expr> stack;
Expr             3907 src/Simplify.cpp             Expr next = stack.back();
Expr             3978 src/Simplify.cpp         Expr predicate = mutate(op->predicate);
Expr             3979 src/Simplify.cpp         Expr index = mutate(op->index);
Expr             3988 src/Simplify.cpp             Expr load = Load::make(op->type.element_of(), op->name, b_index->value, op->image, op->param, b_pred->value);
Expr             4005 src/Simplify.cpp             Expr a = mutate(op->args[0]), b = mutate(op->args[1]);
Expr             4044 src/Simplify.cpp             Expr a = mutate(op->args[0]), b = mutate(op->args[1]);
Expr             4069 src/Simplify.cpp             Expr a = mutate(op->args[0]), b = mutate(op->args[1]);
Expr             4080 src/Simplify.cpp             Expr a = mutate(op->args[0]);
Expr             4107 src/Simplify.cpp             Expr arg = mutate(op->args[0]);
Expr             4119 src/Simplify.cpp             vector<Expr> new_args;
Expr             4122 src/Simplify.cpp                 Expr arg = mutate(op->args[i]);
Expr             4168 src/Simplify.cpp             Expr arg = mutate(op->args[0]);
Expr             4181 src/Simplify.cpp             Expr arg = mutate(op->args[0]);
Expr             4194 src/Simplify.cpp             Expr arg = mutate(op->args[0]);
Expr             4207 src/Simplify.cpp             Expr arg0 = mutate(op->args[0]);
Expr             4208 src/Simplify.cpp             Expr arg1 = mutate(op->args[1]);
Expr             4225 src/Simplify.cpp             Expr arg = mutate(op->args[0]);
Expr             4257 src/Simplify.cpp             vector<Expr> args(op->args);
Expr             4271 src/Simplify.cpp                 Expr extent_0 = args[i];
Expr             4272 src/Simplify.cpp                 Expr stride_0 = args[i + 1];
Expr             4274 src/Simplify.cpp                     Expr extent_1 = args[j];
Expr             4275 src/Simplify.cpp                     Expr stride_1 = args[j + 1];
Expr             4278 src/Simplify.cpp                         Expr new_extent = mutate(extent_0 * extent_1);
Expr             4279 src/Simplify.cpp                         Expr new_stride = stride_0;
Expr             4317 src/Simplify.cpp         vector<Expr> new_vectors;
Expr             4319 src/Simplify.cpp         for (Expr vector : op->vectors) {
Expr             4320 src/Simplify.cpp             Expr new_vector = mutate(vector);
Expr             4330 src/Simplify.cpp             vector<Expr> load_predicates;
Expr             4331 src/Simplify.cpp             vector<Expr> load_indices;
Expr             4333 src/Simplify.cpp             for (Expr e : new_vectors) {
Expr             4346 src/Simplify.cpp                 Expr shuffled_index = Shuffle::make(load_indices, op->indices);
Expr             4349 src/Simplify.cpp                     Expr shuffled_predicate;
Expr             4373 src/Simplify.cpp                     Expr check = mutate(b1->value - b2->value);
Expr             4403 src/Simplify.cpp                     Expr diff = mutate(new_vectors[i] - new_vectors[i-1]);
Expr             4406 src/Simplify.cpp                         Expr check = mutate(b->value * terms - r->stride);
Expr             4465 src/Simplify.cpp                     Expr diff;
Expr             4472 src/Simplify.cpp                         Expr check = mutate(b->value - r->stride * new_vectors[i-1].type().lanes());
Expr             4487 src/Simplify.cpp                 Expr stride = mutate(new_vectors[1] - new_vectors[0]);
Expr             4494 src/Simplify.cpp                     Expr check = mutate(new_vectors[i] - new_vectors[i - 1] - stride);
Expr             4515 src/Simplify.cpp     Expr hoist_slice_vector(Expr e) {
Expr             4530 src/Simplify.cpp         const std::vector<Expr> &slices_a = shuffle_a->vectors;
Expr             4531 src/Simplify.cpp         const std::vector<Expr> &slices_b = shuffle_b->vectors;
Expr             4542 src/Simplify.cpp         vector<Expr> new_slices;
Expr             4557 src/Simplify.cpp         Expr value = mutate(op->value);
Expr             4561 src/Simplify.cpp         Expr new_value = value;
Expr             4563 src/Simplify.cpp         Expr new_var = Variable::make(new_value.type(), new_name);
Expr             4564 src/Simplify.cpp         Expr replacement = new_var;
Expr             4596 src/Simplify.cpp                 new_value = Expr();
Expr             4600 src/Simplify.cpp                 new_value = Expr();
Expr             4649 src/Simplify.cpp                 Expr op_a = var_a ? shuffle->vectors[0] : new_var;
Expr             4650 src/Simplify.cpp                 Expr op_b = var_a ? new_var : shuffle->vectors[1];
Expr             4660 src/Simplify.cpp             new_value = Expr();
Expr             4661 src/Simplify.cpp             replacement = Expr();
Expr             4748 src/Simplify.cpp             expr = simplify_let<Let, Expr>(op);
Expr             4785 src/Simplify.cpp         Expr new_min = mutate(op->min);
Expr             4786 src/Simplify.cpp         Expr new_extent = mutate(op->extent);
Expr             4822 src/Simplify.cpp         Expr predicate = mutate(op->predicate);
Expr             4823 src/Simplify.cpp         Expr value = mutate(op->value);
Expr             4824 src/Simplify.cpp         Expr index = mutate(op->index);
Expr             4846 src/Simplify.cpp         std::vector<Expr> new_extents;
Expr             4853 src/Simplify.cpp         Expr condition = mutate(op->condition);
Expr             4854 src/Simplify.cpp         Expr new_expr;
Expr             4881 src/Simplify.cpp         Expr value = mutate(op->value);
Expr             4884 src/Simplify.cpp         vector<pair<string, Expr>> lets;
Expr             4942 src/Simplify.cpp             Expr new_var = Variable::make(let_first->value.type(), var_name);
Expr             4985 src/Simplify.cpp Expr simplify(Expr e, bool simplify_lets,
Expr             5000 src/Simplify.cpp     Expr mutate(Expr e) {
Expr             5009 src/Simplify.cpp bool can_prove(Expr e) {
Expr             5017 src/Simplify.cpp void check(const Expr &a, const Expr &b) {
Expr             5019 src/Simplify.cpp     Expr simpler = simplify(a);
Expr             5041 src/Simplify.cpp void check_in_bounds(const Expr &a, const Expr &b, const Scope<Interval> &bi) {
Expr             5043 src/Simplify.cpp     Expr simpler = simplify(a, true, bi);
Expr             5054 src/Simplify.cpp Expr interleave_vectors(const vector<Expr> &e) {
Expr             5058 src/Simplify.cpp Expr concat_vectors(const vector<Expr> &e) {
Expr             5062 src/Simplify.cpp Expr slice(const Expr &e, int begin, int stride, int w) {
Expr             5066 src/Simplify.cpp Expr ramp(const Expr &base, const Expr &stride, int w) {
Expr             5070 src/Simplify.cpp Expr broadcast(const Expr &base, int w) {
Expr             5075 src/Simplify.cpp     Expr x = Var("x");
Expr             5118 src/Simplify.cpp     check(cast(Float(64), 0.5f), Expr(0.5));
Expr             5120 src/Simplify.cpp           (x + Expr(-0.5)) * (x + Expr(-0.5)));
Expr             5136 src/Simplify.cpp     Expr x = Var("x"), y = Var("y"), z = Var("z"), w = Var("w"), v = Var("v");
Expr             5137 src/Simplify.cpp     Expr xf = cast<float>(x);
Expr             5138 src/Simplify.cpp     Expr yf = cast<float>(y);
Expr             5139 src/Simplify.cpp     Expr t = const_true(), f = const_false();
Expr             5144 src/Simplify.cpp     check(Expr(ramp(x, 2, 3)) + Expr(ramp(y, 4, 3)), ramp(x+y, 6, 3));
Expr             5145 src/Simplify.cpp     check(Expr(broadcast(4.0f, 5)) + Expr(ramp(3.25f, 4.5f, 5)), ramp(7.25f, 4.5f, 5));
Expr             5146 src/Simplify.cpp     check(Expr(ramp(3.25f, 4.5f, 5)) + Expr(broadcast(4.0f, 5)), ramp(7.25f, 4.5f, 5));
Expr             5147 src/Simplify.cpp     check(Expr(broadcast(3, 3)) + Expr(broadcast(1, 3)), broadcast(4, 3));
Expr             5162 src/Simplify.cpp     check(Expr(ramp(x, 2, 3)) - Expr(ramp(y, 4, 3)), ramp(x-y, -2, 3));
Expr             5163 src/Simplify.cpp     check(Expr(broadcast(4.0f, 5)) - Expr(ramp(3.25f, 4.5f, 5)), ramp(0.75f, -4.5f, 5));
Expr             5164 src/Simplify.cpp     check(Expr(ramp(3.25f, 4.5f, 5)) - Expr(broadcast(4.0f, 5)), ramp(-0.75f, 4.5f, 5));
Expr             5165 src/Simplify.cpp     check(Expr(broadcast(3, 3)) - Expr(broadcast(1, 3)), broadcast(2, 3));
Expr             5202 src/Simplify.cpp     check(Expr(2.0f)*4.0f, 8.0f);
Expr             5203 src/Simplify.cpp     check(Expr(2)*4, 8);
Expr             5206 src/Simplify.cpp     check(Expr(broadcast(4.0f, 5)) * Expr(ramp(3.0f, 4.0f, 5)), ramp(12.0f, 16.0f, 5));
Expr             5207 src/Simplify.cpp     check(Expr(ramp(3.0f, 4.0f, 5)) * Expr(broadcast(2.0f, 5)), ramp(6.0f, 8.0f, 5));
Expr             5208 src/Simplify.cpp     check(Expr(broadcast(3, 3)) * Expr(broadcast(2, 3)), broadcast(6, 3));
Expr             5223 src/Simplify.cpp     check(Expr(7)/3, 2);
Expr             5224 src/Simplify.cpp     check(Expr(6.0f)/2.0f, 3.0f);
Expr             5314 src/Simplify.cpp     check(Expr(23) / 4, Expr(5));
Expr             5315 src/Simplify.cpp     check(Expr(-23) / 4, Expr(-6));
Expr             5316 src/Simplify.cpp     check(Expr(-23) / -4, Expr(6));
Expr             5317 src/Simplify.cpp     check(Expr(23) / -4, Expr(-5));
Expr             5318 src/Simplify.cpp     check(Expr(-2000000000) / 1000000001, Expr(-2));
Expr             5319 src/Simplify.cpp     check(Expr(23) % 4, Expr(3));
Expr             5320 src/Simplify.cpp     check(Expr(-23) % 4, Expr(1));
Expr             5321 src/Simplify.cpp     check(Expr(-23) % -4, Expr(1));
Expr             5322 src/Simplify.cpp     check(Expr(23) % -4, Expr(3));
Expr             5323 src/Simplify.cpp     check(Expr(-2000000000) % 1000000001, Expr(2));
Expr             5325 src/Simplify.cpp     check(Expr(3) + Expr(8), 11);
Expr             5326 src/Simplify.cpp     check(Expr(3.25f) + Expr(7.75f), 11.0f);
Expr             5328 src/Simplify.cpp     check(Expr(7) % 2, 1);
Expr             5329 src/Simplify.cpp     check(Expr(7.25f) % 2.0f, 1.25f);
Expr             5330 src/Simplify.cpp     check(Expr(-7.25f) % 2.0f, 0.75f);
Expr             5331 src/Simplify.cpp     check(Expr(-7.25f) % -2.0f, -1.25f);
Expr             5332 src/Simplify.cpp     check(Expr(7.25f) % -2.0f, -0.75f);
Expr             5336 src/Simplify.cpp     Expr x = Var("x"), y = Var("y"), z = Var("z");
Expr             5338 src/Simplify.cpp     check(Expr(broadcast(y, 4)) / Expr(broadcast(x, 4)),
Expr             5339 src/Simplify.cpp           Expr(broadcast(y/x, 4)));
Expr             5340 src/Simplify.cpp     check(Expr(ramp(x, 4, 4)) / 2, ramp(x/2, 2, 4));
Expr             5341 src/Simplify.cpp     check(Expr(ramp(x, -4, 7)) / 2, ramp(x/2, -2, 7));
Expr             5342 src/Simplify.cpp     check(Expr(ramp(x, 4, 5)) / -2, ramp(x/-2, -2, 5));
Expr             5343 src/Simplify.cpp     check(Expr(ramp(x, -8, 5)) / -2, ramp(x/-2, 4, 5));
Expr             5345 src/Simplify.cpp     check(Expr(ramp(4*x, 1, 4)) / 4, broadcast(x, 4));
Expr             5346 src/Simplify.cpp     check(Expr(ramp(x*4, 1, 3)) / 4, broadcast(x, 3));
Expr             5347 src/Simplify.cpp     check(Expr(ramp(x*8, 2, 4)) / 8, broadcast(x, 4));
Expr             5348 src/Simplify.cpp     check(Expr(ramp(x*8, 3, 3)) / 8, broadcast(x, 3));
Expr             5349 src/Simplify.cpp     check(Expr(ramp(0, 1, 8)) % 16, Expr(ramp(0, 1, 8)));
Expr             5350 src/Simplify.cpp     check(Expr(ramp(8, 1, 8)) % 16, Expr(ramp(8, 1, 8)));
Expr             5351 src/Simplify.cpp     check(Expr(ramp(9, 1, 8)) % 16, Expr(ramp(9, 1, 8)) % 16);
Expr             5352 src/Simplify.cpp     check(Expr(ramp(16, 1, 8)) % 16, Expr(ramp(0, 1, 8)));
Expr             5353 src/Simplify.cpp     check(Expr(ramp(0, 1, 8)) % 8, Expr(ramp(0, 1, 8)));
Expr             5354 src/Simplify.cpp     check(Expr(ramp(x*8+17, 1, 4)) % 8, Expr(ramp(1, 1, 4)));
Expr             5355 src/Simplify.cpp     check(Expr(ramp(x*8+17, 1, 8)) % 8, Expr(ramp(1, 1, 8) % 8));
Expr             5358 src/Simplify.cpp     check(Expr(broadcast(x, 4)) % Expr(broadcast(y, 4)),
Expr             5359 src/Simplify.cpp           Expr(broadcast(x % y, 4)));
Expr             5360 src/Simplify.cpp     check(Expr(ramp(x, 2, 4)) % (broadcast(2, 4)),
Expr             5362 src/Simplify.cpp     check(Expr(ramp(2*x+1, 4, 4)) % (broadcast(2, 4)),
Expr             5369 src/Simplify.cpp         Expr test = select(ramp(const_true(), const_true(), 2),
Expr             5373 src/Simplify.cpp         Expr expected = !(ramp(const_true(), const_true(), 2)) ||
Expr             5379 src/Simplify.cpp         Expr test = select(ramp(const_true(), const_true(), 2),
Expr             5383 src/Simplify.cpp         Expr expected = (!ramp(const_true(), const_true(), 2)) &&
Expr             5390 src/Simplify.cpp     Expr x = Var("x"), y = Var("y"), z = Var("z");
Expr             5392 src/Simplify.cpp     check(min(Expr(7), 3), 3);
Expr             5393 src/Simplify.cpp     check(min(Expr(4.25f), 1.25f), 1.25f);
Expr             5405 src/Simplify.cpp     check(max(Expr(7), 3), 7);
Expr             5406 src/Simplify.cpp     check(max(Expr(4.25f), 1.25f), 4.25f);
Expr             5583 src/Simplify.cpp         Expr one = broadcast(cast(Int(16), 1), 64);
Expr             5584 src/Simplify.cpp         Expr three = broadcast(cast(Int(16), 3), 64);
Expr             5585 src/Simplify.cpp         Expr four = broadcast(cast(Int(16), 4), 64);
Expr             5586 src/Simplify.cpp         Expr five = broadcast(cast(Int(16), 5), 64);
Expr             5587 src/Simplify.cpp         Expr v1 = Variable::make(Int(16).with_lanes(64), "x");
Expr             5588 src/Simplify.cpp         Expr v2 = Variable::make(Int(16).with_lanes(64), "y");
Expr             5591 src/Simplify.cpp         std::vector<Expr> clamped = {
Expr             5664 src/Simplify.cpp         Expr t1 = clamp(v1, one, four);
Expr             5665 src/Simplify.cpp         Expr t2 = clamp(v1, -five, -four);
Expr             5670 src/Simplify.cpp         Expr xv = Variable::make(Int(16).with_lanes(64), "x");
Expr             5671 src/Simplify.cpp         Expr yv = Variable::make(Int(16).with_lanes(64), "y");
Expr             5672 src/Simplify.cpp         Expr zv = Variable::make(Int(16).with_lanes(64), "z");
Expr             5695 src/Simplify.cpp     Expr x = Var("x"), y = Var("y"), z = Var("z"), w = Var("w");
Expr             5696 src/Simplify.cpp     Expr xf = cast<float>(x);
Expr             5697 src/Simplify.cpp     Expr yf = cast<float>(y);
Expr             5698 src/Simplify.cpp     Expr t = const_true(), f = const_false();
Expr             5699 src/Simplify.cpp     Expr b1 = Variable::make(Bool(), "b1");
Expr             5700 src/Simplify.cpp     Expr b2 = Variable::make(Bool(), "b2");
Expr             5750 src/Simplify.cpp     check(!Expr(broadcast(x > y, 4)),
Expr             5817 src/Simplify.cpp         Expr i = Variable::make(Int(32), "i");
Expr             5943 src/Simplify.cpp     Expr foo = x + 3*y;
Expr             5944 src/Simplify.cpp     Expr foo_simple = x + y*3;
Expr             5962 src/Simplify.cpp     Stmt then_clause = AssertStmt::make(b2, Expr(22));
Expr             5963 src/Simplify.cpp     Stmt else_clause = AssertStmt::make(b2, Expr(33));
Expr             6008 src/Simplify.cpp         Expr b[12];
Expr             6034 src/Simplify.cpp         Expr nasty = ((((((((((((((((((((((((((((((((((((((((((((b[0] && b[1]) || (b[2] && b[1])) || b[0]) || b[2]) || b[0]) || b[2]) && ((b[0] && b[6]) || (b[2] && b[6]))) || b[0]) || b[2]) || b[0]) || b[2]) && ((b[0] && b[3]) || (b[2] && b[3]))) || b[0]) || b[2]) || b[0]) || b[2]) && ((b[0] && b[7]) || (b[2] && b[7]))) || b[0]) || b[2]) || b[0]) || b[2]) && ((b[0] && b[4]) || (b[2] && b[4]))) || b[0]) || b[2]) || b[0]) || b[2]) && ((b[0] && b[8]) || (b[2] && b[8]))) || b[0]) || b[2]) || b[0]) || b[2]) && ((b[0] && b[5]) || (b[2] && b[5]))) || b[0]) || b[2]) || b[0]) || b[2]) && ((b[0] && b[10]) || (b[2] && b[10]))) || b[0]) || b[2]) || b[0]) || b[2]) && ((b[0] && b[9]) || (b[2] && b[9]))) || b[0]) || b[2]);
Expr             6058 src/Simplify.cpp     Expr overflowing[] = {
Expr             6078 src/Simplify.cpp     Expr not_overflowing[] = {
Expr             6095 src/Simplify.cpp     for (Expr e : overflowing) {
Expr             6099 src/Simplify.cpp     for (Expr e : not_overflowing) {
Expr             6105 src/Simplify.cpp void check_ind_expr(Expr e, bool expect_error) {
Expr             6106 src/Simplify.cpp     Expr e2 = simplify(e);
Expr             6115 src/Simplify.cpp void check_indeterminate_ops(Expr e, bool e_is_zero, bool e_is_indeterminate) {
Expr             6116 src/Simplify.cpp     Expr b = cast<bool>(e);
Expr             6117 src/Simplify.cpp     Expr t = const_true(), f = const_false();
Expr             6118 src/Simplify.cpp     Expr one = cast(e.type(), 1);
Expr             6119 src/Simplify.cpp     Expr zero = cast(e.type(), 0);
Expr             6193 src/Simplify.cpp         check_indeterminate_ops(Expr(i1), !i1, false);
Expr             6196 src/Simplify.cpp                 Expr e1(i1), e2(i2);
Expr             6197 src/Simplify.cpp                 Expr r = (e1 / e2);
Expr             6204 src/Simplify.cpp                     Expr m = (e1 % e2);
Expr             6213 src/Simplify.cpp                 Expr e1(u1), e2(u2);
Expr             6214 src/Simplify.cpp                 Expr r = (e1 / e2);
Expr             6221 src/Simplify.cpp                     Expr m = (e1 % e2);
Expr             6234 src/Simplify.cpp     Expr x = Var("x"), y = Var("y"), z = Var("z"), w = Var("w"), v = Var("v");
Expr             6235 src/Simplify.cpp     Expr xf = cast<float>(x);
Expr             6236 src/Simplify.cpp     Expr yf = cast<float>(y);
Expr             6237 src/Simplify.cpp     Expr t = const_true(), f = const_false();
Expr             6257 src/Simplify.cpp     check(cast(UInt(32), x) & Expr((uint32_t)0xaaaaaaaa),
Expr             6258 src/Simplify.cpp           cast(UInt(32), x) & Expr((uint32_t)0xaaaaaaaa));
Expr             6270 src/Simplify.cpp     check(Let::make("v", ramp(x*2+7, 3, 4), v + Expr(broadcast(2, 4))),
Expr             6274 src/Simplify.cpp     check(Let::make("v", broadcast(x, 4), v + Expr(broadcast(2, 4))),
Expr             6298 src/Simplify.cpp         Expr base = Variable::make(Handle(), "buf");
Expr             6349 src/Simplify.cpp         Expr vec = ramp(x, 1, 16);
Expr             6360 src/Simplify.cpp         Expr e = interleave_vectors({ramp(x, 2, 4), ramp(x, 2, 4)});
Expr             6381 src/Simplify.cpp         Expr load1 = Load::make(Float(32, 4), "buf", ramp(x, 2, 4), Buffer<>(), Parameter(), const_true(4));
Expr             6382 src/Simplify.cpp         Expr load2 = Load::make(Float(32, 4), "buf", ramp(x+1, 2, 4), Buffer<>(), Parameter(), const_true(4));
Expr             6383 src/Simplify.cpp         Expr load12 = Load::make(Float(32, 8), "buf", ramp(x, 1, 8), Buffer<>(), Parameter(), const_true(8));
Expr             6387 src/Simplify.cpp         Expr e = interleave_vectors({load2, load1});
Expr             6391 src/Simplify.cpp         Expr load3 = Load::make(Float(32, 4), "buf2", ramp(x+1, 2, 4), Buffer<>(), Parameter(), const_true(4));
Expr             6399 src/Simplify.cpp         std::vector<Expr> loads;
Expr             6410 src/Simplify.cpp         Expr e = x;
Expr             6419 src/Simplify.cpp         Expr e = Broadcast::make(-16, 2) < (ramp(Cast::make(UInt(16), 7), Cast::make(UInt(16), 11), 2) - Broadcast::make(1, 2));
Expr             6420 src/Simplify.cpp         Expr expected = Broadcast::make(-16, 2) < (ramp(make_const(UInt(16), 7), make_const(UInt(16), 11), 2) - Broadcast::make(1, 2));
Expr             6425 src/Simplify.cpp         Expr pred = ramp(x*y + x*z, 2, 8) > 2;
Expr             6426 src/Simplify.cpp         Expr index = ramp(x + y, 1, 8);
Expr             6427 src/Simplify.cpp         Expr value = Load::make(index.type(), "f", index, Buffer<>(), Parameter(), const_true(index.type().lanes()));
Expr             6436 src/Simplify.cpp         Expr one = cast<uint16_t>(1);
Expr             6438 src/Simplify.cpp         Expr r1, r2, r3;
Expr             6445 src/Simplify.cpp         r3 = min(one, Expr(two), one);
Expr             6453 src/Simplify.cpp         r3 = max(one, Expr(two), one);
Expr             6458 src/Simplify.cpp         Expr x = Variable::make(UInt(32), "x");
Expr             6459 src/Simplify.cpp         Expr y = Variable::make(UInt(32), "y");
Expr             6462 src/Simplify.cpp         Expr e = simplify(max(ramp(x, y, 2), broadcast(x, 2)) - max(broadcast(y, 2), ramp(y, y, 2)));
Expr             6463 src/Simplify.cpp         Expr expected = max(ramp(x, y, 2), broadcast(x, 2)) - max(ramp(y, y, 2), broadcast(y, 2));
Expr               27 src/Simplify.h EXPORT Expr simplify(Expr, bool simplify_lets = true,
Expr               34 src/Simplify.h EXPORT bool can_prove(Expr e);
Expr               21 src/SimplifySpecializations.cpp void substitute_value_in_var(const string &var, Expr value, vector<Definition> &definitions) {
Expr               36 src/SimplifySpecializations.cpp     Expr mutate(Expr e) {
Expr               53 src/SimplifySpecializations.cpp     Expr fact;
Expr               54 src/SimplifySpecializations.cpp     SimplifyUsingFact(Expr f) : fact(f) {}
Expr               57 src/SimplifySpecializations.cpp void simplify_using_fact(Expr fact, vector<Definition> &definitions) {
Expr               84 src/SimplifySpecializations.cpp         Expr old_c = it->condition;
Expr               85 src/SimplifySpecializations.cpp         Expr c = simplify(it->condition);
Expr              125 src/SimplifySpecializations.cpp         Expr c = specializations[i-1].condition;
Expr               45 src/SkipStages.cpp     Expr predicate;
Expr               85 src/SkipStages.cpp     void visit_let(const std::string &name, Expr value, T body) {
Expr              124 src/SkipStages.cpp     Expr make_and(Expr a, Expr b) {
Expr              136 src/SkipStages.cpp     Expr make_or(Expr a, Expr b) {
Expr              148 src/SkipStages.cpp     Expr make_select(Expr a, Expr b, Expr c) {
Expr              166 src/SkipStages.cpp     Expr make_not(Expr a) {
Expr              177 src/SkipStages.cpp     void visit_conditional(Expr condition, T true_case, T false_case) {
Expr              178 src/SkipStages.cpp         Expr old_predicate = predicate;
Expr              182 src/SkipStages.cpp         Expr true_predicate = predicate;
Expr              186 src/SkipStages.cpp         Expr false_predicate = predicate;
Expr              240 src/SkipStages.cpp     ProductionGuarder(const string &b, Expr compute_p, Expr alloc_p):
Expr              244 src/SkipStages.cpp     Expr compute_predicate;
Expr              245 src/SkipStages.cpp     Expr alloc_predicate;
Expr              355 src/SkipStages.cpp             Expr compute_predicate = simplify(common_subexpression_elimination(find_compute.predicate));
Expr              373 src/SkipStages.cpp                 Expr alloc_predicate = simplify(common_subexpression_elimination(find_alloc.predicate));
Expr               45 src/SlidingWindow.cpp bool expr_depends_on_var(Expr e, string v) {
Expr               54 src/SlidingWindow.cpp     const Scope<Expr> &scope;
Expr               66 src/SlidingWindow.cpp     ExpandExpr(const Scope<Expr> &s) : scope(s) {}
Expr               71 src/SlidingWindow.cpp Expr expand_expr(Expr e, const Scope<Expr> &scope) {
Expr               73 src/SlidingWindow.cpp     Expr result = ee.mutate(e);
Expr               85 src/SlidingWindow.cpp     Expr loop_min;
Expr               86 src/SlidingWindow.cpp     Scope<Expr> scope;
Expr               88 src/SlidingWindow.cpp     map<string, Expr> replacements;
Expr              121 src/SlidingWindow.cpp             Expr min_required, max_required;
Expr              133 src/SlidingWindow.cpp                 Expr min_req = scope.get(var + ".min");
Expr              134 src/SlidingWindow.cpp                 Expr max_req = scope.get(var + ".max");
Expr              143 src/SlidingWindow.cpp                         min_required = Expr();
Expr              144 src/SlidingWindow.cpp                         max_required = Expr();
Expr              210 src/SlidingWindow.cpp             Expr loop_var_expr = Variable::make(Int(32), loop_var);
Expr              212 src/SlidingWindow.cpp             Expr prev_max_plus_one = substitute(loop_var, loop_var_expr - 1, max_required) + 1;
Expr              213 src/SlidingWindow.cpp             Expr prev_min_minus_one = substitute(loop_var, loop_var_expr - 1, min_required) - 1;
Expr              227 src/SlidingWindow.cpp             Expr new_min, new_max;
Expr              236 src/SlidingWindow.cpp             Expr early_stages_min_required = new_min;
Expr              237 src/SlidingWindow.cpp             Expr early_stages_max_required = new_max;
Expr              266 src/SlidingWindow.cpp                     Expr var = Variable::make(Int(32), n);
Expr              270 src/SlidingWindow.cpp                     Expr var = Variable::make(Int(32), n);
Expr              280 src/SlidingWindow.cpp         Expr min = expand_expr(op->min, scope);
Expr              281 src/SlidingWindow.cpp         Expr extent = expand_expr(op->extent, scope);
Expr              306 src/SlidingWindow.cpp         Expr value = op->value;
Expr              308 src/SlidingWindow.cpp         map<string, Expr>::iterator iter = replacements.find(op->name);
Expr              323 src/SlidingWindow.cpp     SlidingWindowOnFunctionAndLoop(Function f, string v, Expr v_min) : func(f), loop_var(v), loop_min(v_min) {}
Expr               31 src/Solve.cpp      SolveExpression(const string &v, const Scope<Expr> &es) :
Expr               36 src/Solve.cpp      Expr mutate(Expr e) {
Expr               37 src/Solve.cpp          map<Expr, CacheEntry, ExprCompare>::iterator iter = cache.find(e);
Expr               43 src/Solve.cpp              Expr new_e = IRMutator::mutate(e);
Expr               71 src/Solve.cpp          Expr expr;
Expr               74 src/Solve.cpp      map<Expr, CacheEntry, ExprCompare> cache;
Expr               80 src/Solve.cpp      const Scope<Expr> &external_scope;
Expr               84 src/Solve.cpp      Expr negate(Expr e) {
Expr              104 src/Solve.cpp      void fail(Expr e) {
Expr              114 src/Solve.cpp          Expr a = mutate(op->a);
Expr              120 src/Solve.cpp          Expr b = mutate(op->b);
Expr              139 src/Solve.cpp          expr = Expr();
Expr              200 src/Solve.cpp          Expr a = mutate(op->a);
Expr              206 src/Solve.cpp          Expr b = mutate(op->b);
Expr              219 src/Solve.cpp          expr = Expr();
Expr              291 src/Solve.cpp          Expr a = mutate(op->a);
Expr              299 src/Solve.cpp          Expr b = mutate(op->b);
Expr              315 src/Solve.cpp          expr = Expr();
Expr              363 src/Solve.cpp          Expr a = mutate(op->a);
Expr              369 src/Solve.cpp          Expr b = mutate(op->b);
Expr              390 src/Solve.cpp          expr = Expr();
Expr              476 src/Solve.cpp          Expr a = mutate(op->a);
Expr              482 src/Solve.cpp          Expr b = mutate(op->b);
Expr              497 src/Solve.cpp          expr = Expr();
Expr              547 src/Solve.cpp          Expr a = mutate(op->a);
Expr              553 src/Solve.cpp          Expr b = mutate(op->b);
Expr              569 src/Solve.cpp          bool is_eq = Expr(op).as<EQ>() != nullptr;
Expr              570 src/Solve.cpp          bool is_ne = Expr(op).as<NE>() != nullptr;
Expr              571 src/Solve.cpp          bool is_lt = Expr(op).as<LT>() != nullptr;
Expr              572 src/Solve.cpp          bool is_le = Expr(op).as<LE>() != nullptr;
Expr              573 src/Solve.cpp          bool is_ge = Expr(op).as<GE>() != nullptr;
Expr              574 src/Solve.cpp          bool is_gt = Expr(op).as<GT>() != nullptr;
Expr              576 src/Solve.cpp          expr = Expr();
Expr              606 src/Solve.cpp                      Expr div = Div::make(b, mul_a->b);
Expr              607 src/Solve.cpp                      Expr rem = Mod::make(b, mul_a->b);
Expr              707 src/Solve.cpp              Expr e = external_scope.get(op->name);
Expr              720 src/Solve.cpp          Expr value = mutate(op->value);
Expr              743 src/Solve.cpp      Scope<Expr> scope;
Expr              804 src/Solve.cpp              debug(3) << "And intersecting: " << Expr(op) << "\n"
Expr              809 src/Solve.cpp              debug(3) << "And union:" << Expr(op) << "\n"
Expr              822 src/Solve.cpp              debug(3) << "Or intersecting:" << Expr(op) << "\n"
Expr              827 src/Solve.cpp              debug(3) << "Or union:" << Expr(op) << "\n"
Expr              879 src/Solve.cpp          Expr cond = lt->a <= (lt->b - 1);
Expr              885 src/Solve.cpp          Expr cond = gt->a >= (gt->b + 1);
Expr              896 src/Solve.cpp      std::map<Expr, Interval, IRDeepCompare> cache_f, cache_t;
Expr              899 src/Solve.cpp      void cached_solve(Expr cond) {
Expr              936 src/Solve.cpp              Expr a = max_a->a, b = max_a->b, c = le->b;
Expr              941 src/Solve.cpp              Expr b_var = Variable::make(b.type(), b_name);
Expr              942 src/Solve.cpp              Expr c_var = Variable::make(c.type(), c_name);
Expr              954 src/Solve.cpp              Expr a = min_a->a, b = min_a->b, c = le->b;
Expr              955 src/Solve.cpp              Expr b_var = Variable::make(b.type(), b_name);
Expr              956 src/Solve.cpp              Expr c_var = Variable::make(c.type(), c_name);
Expr              994 src/Solve.cpp              Expr a = max_a->a, b = max_a->b, c = ge->b;
Expr              995 src/Solve.cpp              Expr b_var = Variable::make(b.type(), b_name);
Expr              996 src/Solve.cpp              Expr c_var = Variable::make(c.type(), c_name);
Expr             1008 src/Solve.cpp              Expr a = min_a->a, b = min_a->b, c = ge->b;
Expr             1009 src/Solve.cpp              Expr b_var = Variable::make(b.type(), b_name);
Expr             1010 src/Solve.cpp              Expr c_var = Variable::make(c.type(), c_name);
Expr             1026 src/Solve.cpp          Expr cond;
Expr             1039 src/Solve.cpp          Expr cond;
Expr             1076 src/Solve.cpp      Scope<Expr> bound_vars;
Expr             1087 src/Solve.cpp      Interval get_bounds(Expr a) {
Expr             1097 src/Solve.cpp      Expr make_bigger(Expr a) {
Expr             1101 src/Solve.cpp      Expr make_smaller(Expr a) {
Expr             1123 src/Solve.cpp          Expr a, b;
Expr             1164 src/Solve.cpp              Expr delta = simplify(op->a - op->b);
Expr             1229 src/Solve.cpp          Expr body;
Expr             1232 src/Solve.cpp              Expr value = mutate(op->value);
Expr             1234 src/Solve.cpp              Expr flipped_value = mutate(op->value);
Expr             1248 src/Solve.cpp              Expr min_var, max_var;
Expr             1314 src/Solve.cpp  SolverResult solve_expression(Expr e, const std::string &variable, const Scope<Expr> &scope) {
Expr             1316 src/Solve.cpp      Expr new_e = solver.mutate(e);
Expr             1326 src/Solve.cpp  Interval solve_for_inner_interval(Expr c, const std::string &var) {
Expr             1340 src/Solve.cpp  Interval solve_for_outer_interval(Expr c, const std::string &var) {
Expr             1354 src/Solve.cpp  Expr and_condition_over_domain(Expr e, const Scope<Interval> &varying) {
Expr             1363 src/Solve.cpp  void check_solve(Expr a, Expr b) {
Expr             1371 src/Solve.cpp  void check_interval(Expr a, Interval i, bool outer) {
Expr             1388 src/Solve.cpp  void check_outer_interval(Expr a, Expr min, Expr max) {
Expr             1392 src/Solve.cpp  void check_inner_interval(Expr a, Expr min, Expr max) {
Expr             1396 src/Solve.cpp  void check_and_condition(Expr orig, Expr result, Interval i) {
Expr             1399 src/Solve.cpp      Expr cond = and_condition_over_domain(orig, s);
Expr             1408 src/Solve.cpp      Expr x = Variable::make(Int(32), "x");
Expr             1409 src/Solve.cpp      Expr y = Variable::make(Int(32), "y");
Expr             1410 src/Solve.cpp      Expr z = Variable::make(Int(32), "z");
Expr             1430 src/Solve.cpp          Expr e = y+1;
Expr             1444 src/Solve.cpp              Expr in[] = {x*den < num, x*den <= num, x*den == num, x*den != num, x*den >= num, x*den > num,
Expr             1449 src/Solve.cpp                  Expr out = simplify(solved.result);
Expr             1451 src/Solve.cpp                      Expr in_val = substitute("x", i, in[j]);
Expr             1452 src/Solve.cpp                      Expr out_val = substitute("x", i, out);
Expr             1465 src/Solve.cpp      Expr e = x + y;
Expr             1490 src/Solve.cpp      Expr c = Variable::make(Bool(), "c");
Expr             1540 src/Solve.cpp          Expr a16 = Load::make(Int(16), "a", {x}, Buffer<>(), Parameter(), const_true());
Expr             1541 src/Solve.cpp          Expr b16 = Load::make(Int(16), "b", {x}, Buffer<>(), Parameter(), const_true());
Expr             1542 src/Solve.cpp          Expr lhs = pow(cast<int32_t>(a16), 2) + pow(cast<int32_t>(b16), 2);
Expr             1546 src/Solve.cpp          Expr cond = and_condition_over_domain(lhs < 0, s);
Expr             1552 src/Solve.cpp          Expr t = Variable::make(Int(32), "t");
Expr             1553 src/Solve.cpp          Expr test = (x <= min(max((y - min(((z*x) + t), t)), 1), 0));
Expr             1559 src/Solve.cpp          Expr t = Variable::make(Int(32), "t");
Expr             1576 src/Solve.cpp          Expr x = Variable::make(UInt(32), "x");
Expr             1577 src/Solve.cpp          Expr y = Variable::make(UInt(32), "y");
Expr             1578 src/Solve.cpp          Expr z = Variable::make(UInt(32), "z");
Expr             1584 src/Solve.cpp          Expr expr = Add::make(z, Sub::make(x, y));
Expr               14 src/Solve.h            Expr result;
Expr               27 src/Solve.h            Expr e, const std::string &variable,
Expr               28 src/Solve.h            const Scope<Expr> &scope = Scope<Expr>::empty_scope());
Expr               34 src/Solve.h    EXPORT Interval solve_for_outer_interval(Expr c, const std::string &variable);
Expr               38 src/Solve.h    EXPORT Interval solve_for_inner_interval(Expr c, const std::string &variable);
Expr               47 src/Solve.h    Expr and_condition_over_domain(Expr c, const Scope<Interval> &varying);
Expr              114 src/SplitTuples.cpp             vector<Expr> args;
Expr              115 src/SplitTuples.cpp             for (Expr e : op->args) {
Expr              155 src/SplitTuples.cpp         vector<Expr> args;
Expr              156 src/SplitTuples.cpp         for (Expr e : op->args) {
Expr              168 src/SplitTuples.cpp         vector<pair<string, Expr>> lets;
Expr              173 src/SplitTuples.cpp             Expr val = mutate(op->values[i]);
Expr              112 src/StmtToHtml.cpp     void print_list(const std::vector<Expr> &args) {
Expr              120 src/StmtToHtml.cpp     void print_list(const string &l, const std::vector<Expr> &args, const string &r) {
Expr              142 src/StmtToHtml.cpp         stream << Expr(op);
Expr              148 src/StmtToHtml.cpp         stream << Expr(op);
Expr              154 src/StmtToHtml.cpp         stream << Expr(op);
Expr              210 src/StmtToHtml.cpp     void visit_binary_op(Expr a, Expr b, const char *op) {
Expr              272 src/StmtToHtml.cpp         print_list(symbol("ramp") + "(", {op->base, op->stride, Expr(op->lanes)}, ")");
Expr              321 src/StmtToHtml.cpp         std::vector<Expr> args;
Expr              573 src/StmtToHtml.cpp             std::vector<Expr> args = op->vectors;
Expr              577 src/StmtToHtml.cpp             std::vector<Expr> args = op->vectors;
Expr              583 src/StmtToHtml.cpp             std::vector<Expr> args = op->vectors;
Expr              593 src/StmtToHtml.cpp     void print(Expr ir) {
Expr               39 src/StorageFlattening.cpp     Expr flatten_args(const string &name, const vector<Expr> &args,
Expr               42 src/StorageFlattening.cpp         Expr idx = target.has_feature(Target::LargeBuffers) ? make_zero(Int(64)) : 0;
Expr               43 src/StorageFlattening.cpp         vector<Expr> mins(args.size()), strides(args.size());
Expr               79 src/StorageFlattening.cpp             Expr base = target.has_feature(Target::LargeBuffers) ? make_zero(Int(64)) : 0;
Expr              103 src/StorageFlattening.cpp         vector<Expr> extents;
Expr              108 src/StorageFlattening.cpp         Expr condition = mutate(op->condition);
Expr              123 src/StorageFlattening.cpp                         Expr alignment = storage_dims[i].alignment;
Expr              147 src/StorageFlattening.cpp         vector<Expr> min_var(dims), extent_var(dims), stride_var(dims);
Expr              173 src/StorageFlattening.cpp             Expr stride = stride_var[prev_j] * extent_var[prev_j];
Expr              209 src/StorageFlattening.cpp         Expr idx = mutate(flatten_args(op->name, op->args, Buffer<>(), output_buf));
Expr              210 src/StorageFlattening.cpp         Expr value = mutate(op->values[0]);
Expr              218 src/StorageFlattening.cpp             Expr idx = mutate(flatten_args(op->name, op->args, op->image, op->param));
Expr              230 src/StorageFlattening.cpp         vector<Expr> prefetch_min(op->bounds.size());
Expr              231 src/StorageFlattening.cpp         vector<Expr> prefetch_extent(op->bounds.size());
Expr              232 src/StorageFlattening.cpp         vector<Expr> prefetch_stride(op->bounds.size());
Expr              239 src/StorageFlattening.cpp         Expr base_offset = mutate(flatten_args(op->name, prefetch_min, Buffer<>(), op->param));
Expr              240 src/StorageFlattening.cpp         Expr base_address = Variable::make(Handle(), op->name);
Expr              241 src/StorageFlattening.cpp         vector<Expr> args = {base_address, base_offset};
Expr              325 src/StorageFlattening.cpp             vector<Expr> extents;
Expr              326 src/StorageFlattening.cpp             for (Expr e : op->extents) {
Expr               57 src/StorageFolding.cpp     Expr factor;
Expr               66 src/StorageFolding.cpp             vector<Expr> args = op->args;
Expr               79 src/StorageFolding.cpp             vector<Expr> args = op->args;
Expr               86 src/StorageFolding.cpp     FoldStorageOfFunction(string f, int d, Expr e) :
Expr              125 src/StorageFolding.cpp             Expr min = simplify(box[i-1].min);
Expr              126 src/StorageFolding.cpp             Expr max = simplify(box[i-1].max);
Expr              129 src/StorageFolding.cpp             Expr explicit_factor;
Expr              154 src/StorageFolding.cpp                 Expr condition;
Expr              155 src/StorageFolding.cpp                 Expr loop_var = Variable::make(Int(32), op->name);
Expr              157 src/StorageFolding.cpp                     Expr min_next = substitute(op->name, loop_var + 1, min);
Expr              164 src/StorageFolding.cpp                     Expr max_next = substitute(op->name, loop_var + 1, max);
Expr              171 src/StorageFolding.cpp                 Expr error = Call::make(Int(32), "halide_error_bad_fold",
Expr              181 src/StorageFolding.cpp                 Expr extent = simplify(max - min + 1);
Expr              182 src/StorageFolding.cpp                 Expr factor;
Expr              184 src/StorageFolding.cpp                     Expr error = Call::make(Int(32), "halide_error_fold_factor_too_small",
Expr              195 src/StorageFolding.cpp                     Expr max_extent = simplify(bounds_of_expr_in_scope(extent, scope).max);
Expr              218 src/StorageFolding.cpp                     Expr next_var = Variable::make(Int(32), op->name) + 1;
Expr              219 src/StorageFolding.cpp                     Expr next_min = substitute(op->name, next_var, min);
Expr              257 src/StorageFolding.cpp         Expr factor;
Expr              333 src/StorageFolding.cpp                     Expr f = folder.dims_folded[i].factor;
Expr              354 src/StorageFolding.cpp     Scope<Expr> scope;
Expr              356 src/StorageFolding.cpp         Expr value = simplify(mutate(op->value));
Expr               13 src/Substitute.cpp     const map<string, Expr> &replace;
Expr               16 src/Substitute.cpp     Expr find_replacement(const string &s) {
Expr               17 src/Substitute.cpp         map<string, Expr>::const_iterator iter = replace.find(s);
Expr               21 src/Substitute.cpp             return Expr();
Expr               26 src/Substitute.cpp     Substitute(const map<string, Expr> &m) : replace(m) {}
Expr               31 src/Substitute.cpp         Expr r = find_replacement(v->name);
Expr               40 src/Substitute.cpp         Expr new_value = mutate(op->value);
Expr               42 src/Substitute.cpp         Expr new_body = mutate(op->body);
Expr               54 src/Substitute.cpp         Expr new_value = mutate(op->value);
Expr               69 src/Substitute.cpp         Expr new_min = mutate(op->min);
Expr               70 src/Substitute.cpp         Expr new_extent = mutate(op->extent);
Expr               86 src/Substitute.cpp Expr substitute(const string &name, const Expr &replacement, const Expr &expr) {
Expr               87 src/Substitute.cpp     map<string, Expr> m;
Expr               93 src/Substitute.cpp Stmt substitute(const string &name, const Expr &replacement, const Stmt &stmt) {
Expr               94 src/Substitute.cpp     map<string, Expr> m;
Expr              100 src/Substitute.cpp Expr substitute(const map<string, Expr> &m, const Expr &expr) {
Expr              105 src/Substitute.cpp Stmt substitute(const map<string, Expr> &m, const Stmt &stmt) {
Expr              113 src/Substitute.cpp     Expr find, replacement;
Expr              117 src/Substitute.cpp     Expr mutate(Expr e) {
Expr              126 src/Substitute.cpp Expr substitute(const Expr &find, const Expr &replacement, const Expr &expr) {
Expr              133 src/Substitute.cpp Stmt substitute(const Expr &find, const Expr &replacement, const Stmt &stmt) {
Expr              143 src/Substitute.cpp     Expr value;
Expr              157 src/Substitute.cpp     GraphSubstitute(const string &var, const Expr &value) : var(var), value(value) {}
Expr              163 src/Substitute.cpp     Expr find, replace;
Expr              168 src/Substitute.cpp     Expr mutate(Expr e) {
Expr              173 src/Substitute.cpp     GraphSubstituteExpr(const Expr &find, const Expr &replace) : find(find), replace(replace) {}
Expr              176 src/Substitute.cpp Expr graph_substitute(const string &name, const Expr &replacement, const Expr &expr) {
Expr              180 src/Substitute.cpp Stmt graph_substitute(const string &name, const Expr &replacement, const Stmt &stmt) {
Expr              184 src/Substitute.cpp Expr graph_substitute(const Expr &find, const Expr &replacement, const Expr &expr) {
Expr              188 src/Substitute.cpp Stmt graph_substitute(const Expr &find, const Expr &replacement, const Stmt &stmt) {
Expr              197 src/Substitute.cpp         Expr value = mutate(op->value);
Expr              198 src/Substitute.cpp         Expr body = mutate(op->body);
Expr              203 src/Substitute.cpp Expr substitute_in_all_lets(const Expr &expr) {
Expr               22 src/Substitute.h EXPORT Expr substitute(const std::string &name, const Expr &replacement, const Expr &expr);
Expr               26 src/Substitute.h EXPORT Stmt substitute(const std::string &name, const Expr &replacement, const Stmt &stmt);
Expr               30 src/Substitute.h EXPORT Expr substitute(const std::map<std::string, Expr> &replacements, const Expr &expr);
Expr               31 src/Substitute.h EXPORT Stmt substitute(const std::map<std::string, Expr> &replacements, const Stmt &stmt);
Expr               36 src/Substitute.h EXPORT Expr substitute(const Expr &find, const Expr &replacement, const Expr &expr);
Expr               37 src/Substitute.h EXPORT Stmt substitute(const Expr &find, const Expr &replacement, const Stmt &stmt);
Expr               43 src/Substitute.h Expr graph_substitute(const std::string &name, const Expr &replacement, const Expr &expr);
Expr               44 src/Substitute.h Stmt graph_substitute(const std::string &name, const Expr &replacement, const Stmt &stmt);
Expr               45 src/Substitute.h Expr graph_substitute(const Expr &find, const Expr &replacement, const Expr &expr);
Expr               46 src/Substitute.h Stmt graph_substitute(const Expr &find, const Expr &replacement, const Stmt &stmt);
Expr               55 src/Substitute.h Expr substitute_in_all_lets(const Expr &expr);
Expr               16 src/Tracing.cpp     vector<Expr> value;
Expr               17 src/Tracing.cpp     vector<Expr> coordinates;
Expr               20 src/Tracing.cpp     Expr parent_id, value_index, dimensions;
Expr               22 src/Tracing.cpp     Expr build() {
Expr               23 src/Tracing.cpp         Expr values = Call::make(type_of<void *>(), Call::make_struct,
Expr               25 src/Tracing.cpp         Expr coords = Call::make(type_of<int32_t *>(), Call::make_struct,
Expr               27 src/Tracing.cpp         Expr idx = value_index;
Expr               32 src/Tracing.cpp         vector<Expr> args = {Expr(func),
Expr               74 src/Tracing.cpp         Expr trace_parent;
Expr               88 src/Tracing.cpp             Expr value_var = Variable::make(op->type, value_var_name);
Expr               98 src/Tracing.cpp             Expr trace = builder.build();
Expr              119 src/Tracing.cpp             const vector<Expr> &values = op->values;
Expr              120 src/Tracing.cpp             vector<Expr> traces(op->values.size());
Expr              130 src/Tracing.cpp                 Expr value_var = Variable::make(t, value_var_name);
Expr              135 src/Tracing.cpp                 Expr trace = builder.build();
Expr              145 src/Tracing.cpp             vector<Expr> args = op->args;
Expr              146 src/Tracing.cpp             vector<pair<string, Expr>> lets;
Expr              183 src/Tracing.cpp             Expr call_before = builder.build();
Expr              186 src/Tracing.cpp             Expr call_after = builder.build();
Expr              216 src/Tracing.cpp                 Expr min = Variable::make(Int(32), f.name() + ".s0." + f_args[i] + ".min");
Expr              217 src/Tracing.cpp                 Expr max = Variable::make(Int(32), f.name() + ".s0." + f_args[i] + ".max");
Expr              218 src/Tracing.cpp                 Expr extent = (max + 1) - min;
Expr              226 src/Tracing.cpp             Expr begin_op_call = builder.build();
Expr              231 src/Tracing.cpp             Expr end_op_call = builder.build();
Expr              273 src/Tracing.cpp             Expr min = Variable::make(Int(32), output_buf.name() + ".min." + d);
Expr              274 src/Tracing.cpp             Expr extent = Variable::make(Int(32), output_buf.name() + ".extent." + d);
Expr              293 src/Tracing.cpp         Expr pipeline_start = builder.build();
Expr              297 src/Tracing.cpp         Expr pipeline_end = builder.build();
Expr               58 src/TrimNoOps.cpp bool loads_from_buffer(Expr e, string buf) {
Expr               68 src/TrimNoOps.cpp     Expr make_and(Expr a, Expr b) {
Expr               74 src/TrimNoOps.cpp     Expr make_or(Expr a, Expr b) {
Expr               98 src/TrimNoOps.cpp             Expr equivalent_load = Load::make(op->value.type(), op->name, op->index,
Expr              100 src/TrimNoOps.cpp             Expr is_no_op = equivalent_load == op->value;
Expr              117 src/TrimNoOps.cpp         Expr old_condition = condition;
Expr              133 src/TrimNoOps.cpp         Expr total_condition = condition;
Expr              174 src/TrimNoOps.cpp     Expr condition = const_true();
Expr              187 src/TrimNoOps.cpp     bool provably_true_over_domain(Expr test) {
Expr              238 src/TrimNoOps.cpp             Expr a = mutate(op->a);
Expr              239 src/TrimNoOps.cpp             Expr b = mutate(op->b);
Expr              240 src/TrimNoOps.cpp             Expr test = a <= b;
Expr              255 src/TrimNoOps.cpp             Expr a = mutate(op->a);
Expr              256 src/TrimNoOps.cpp             Expr b = mutate(op->b);
Expr              303 src/TrimNoOps.cpp         Expr value = mutate(op->value);
Expr              311 src/TrimNoOps.cpp         expr = visit_let<Expr, Let>(op);
Expr              320 src/TrimNoOps.cpp         Expr min = mutate(op->min);
Expr              321 src/TrimNoOps.cpp         Expr extent = mutate(op->extent);
Expr              393 src/TrimNoOps.cpp         Expr new_min_var = Variable::make(Int(32), new_min_name);
Expr              394 src/TrimNoOps.cpp         Expr new_max_var = Variable::make(Int(32), new_max_name);
Expr              395 src/TrimNoOps.cpp         Expr old_max_var = Variable::make(Int(32), old_max_name);
Expr              404 src/TrimNoOps.cpp         Expr old_max = op->min + op->extent;
Expr              405 src/TrimNoOps.cpp         Expr new_min, new_max;
Expr              417 src/TrimNoOps.cpp         Expr new_extent = new_max_var - new_min_var;
Expr               21 src/Tuple.h        std::vector<Expr> exprs;
Expr               27 src/Tuple.h        Expr &operator[](size_t x) {
Expr               33 src/Tuple.h        Expr operator[](size_t x) const {
Expr               39 src/Tuple.h        explicit Tuple(Expr e) {
Expr               46 src/Tuple.h        Tuple(Expr a, Expr b, Args&&... args) {
Expr               47 src/Tuple.h            exprs = std::vector<Expr>{a, b, std::forward<Args>(args)...};
Expr               52 src/Tuple.h        explicit NO_INLINE Tuple(const std::vector<Expr> &e) : exprs(e) {
Expr               60 src/Tuple.h        const std::vector<Expr> &as_vector() const {
Expr              115 src/Tuple.h        Tuple result(std::vector<Expr>(condition.size()));
Expr              122 src/Tuple.h    inline Tuple tuple_select(Expr condition, const Tuple &true_value, const Tuple &false_value) {
Expr              123 src/Tuple.h        Tuple result(std::vector<Expr>(true_value.size()));
Expr               27 src/Type.cpp   Halide::Expr Type::max() const {
Expr               51 src/Type.cpp   Halide::Expr Type::min() const {
Expr              278 src/Type.h     struct Expr;
Expr              420 src/Type.h         EXPORT Expr max() const;
Expr              423 src/Type.h         EXPORT Expr min() const;
Expr               15 src/UnifyDuplicateLets.cpp     map<Expr, string, IRDeepCompare> scope;
Expr               22 src/UnifyDuplicateLets.cpp     Expr mutate(Expr e) {
Expr               25 src/UnifyDuplicateLets.cpp             map<Expr, string, IRDeepCompare>::iterator iter = scope.find(e);
Expr               32 src/UnifyDuplicateLets.cpp             expr = Expr();
Expr               74 src/UnifyDuplicateLets.cpp         Expr value = mutate(op->value);
Expr               81 src/UnifyDuplicateLets.cpp             map<Expr, string, IRDeepCompare>::iterator iter = scope.find(value);
Expr               42 src/UniquifyVariableNames.cpp         Expr value = mutate(op->value);
Expr               59 src/UniquifyVariableNames.cpp         Expr value = mutate(op->value);
Expr               62 src/UniquifyVariableNames.cpp         Expr body = mutate(op->body);
Expr               76 src/UniquifyVariableNames.cpp         Expr min = mutate(op->min);
Expr               77 src/UniquifyVariableNames.cpp         Expr extent = mutate(op->extent);
Expr               17 src/UnpackBuffers.cpp     Expr handle;
Expr               71 src/UnpackBuffers.cpp     vector<pair<string, Expr>> lets;
Expr               76 src/UnpackBuffers.cpp         vector<Expr> args = {info.handle};
Expr               79 src/UnpackBuffers.cpp         Expr host_val = Call::make(type_of<void *>(), Call::buffer_get_host, args, Call::Extern);
Expr               83 src/UnpackBuffers.cpp         Expr dev_val = Call::make(type_of<uint64_t>(), Call::buffer_get_device, args, Call::Extern);
Expr               87 src/UnpackBuffers.cpp         Expr dev_interface_val = Call::make(type_of<const halide_device_interface_t *>(),
Expr               92 src/UnpackBuffers.cpp         Expr type_code_val = Call::make(UInt(8), Call::buffer_get_type_code, args, Call::Extern);
Expr               96 src/UnpackBuffers.cpp         Expr type_bits_val = Call::make(UInt(8), Call::buffer_get_type_bits, args, Call::Extern);
Expr              100 src/UnpackBuffers.cpp         Expr type_lanes_val = Call::make(UInt(16), Call::buffer_get_type_lanes, args, Call::Extern);
Expr              104 src/UnpackBuffers.cpp         Expr host_dirty_val = Call::make(Bool(), Call::buffer_get_host_dirty, args, Call::Extern);
Expr              108 src/UnpackBuffers.cpp         Expr dev_dirty_val = Call::make(Bool(), Call::buffer_get_device_dirty, args, Call::Extern);
Expr              112 src/UnpackBuffers.cpp             vector<Expr> args = {info.handle, i};
Expr              115 src/UnpackBuffers.cpp             Expr min_val = Call::make(Int(32), Call::buffer_get_min, args, Call::Extern);
Expr              119 src/UnpackBuffers.cpp             Expr extent_val = Call::make(Int(32), Call::buffer_get_extent, args, Call::Extern);
Expr              123 src/UnpackBuffers.cpp             Expr stride_val = Call::make(Int(32), Call::buffer_get_stride, args, Call::Extern);
Expr              129 src/UnpackBuffers.cpp         pair<string, Expr> l = lets.back();
Expr              138 src/UnpackBuffers.cpp         Expr buf = p.second.handle;
Expr              139 src/UnpackBuffers.cpp         Expr cond = reinterpret<uint64_t>(buf) != 0;
Expr              140 src/UnpackBuffers.cpp         Expr error = Call::make(Int(32), "halide_error_buffer_argument_is_null",
Expr               18 src/UnrollLoops.cpp             Expr extent = simplify(for_loop->extent);
Expr              148 src/Var.h          operator Expr() const {
Expr               38 src/VaryingAttributes.cpp     Expr tag_linear_expression(Expr e, const std::string &name = unique_name('a')) {
Expr               49 src/VaryingAttributes.cpp         Expr intrinsic = Call::make(e.type(), Call::glsl_varying,
Expr               59 src/VaryingAttributes.cpp         std::vector<Expr> new_args = op->args;
Expr               93 src/VaryingAttributes.cpp         Expr mutated_value = mutate(op->value);
Expr               98 src/VaryingAttributes.cpp         Expr mutated_body = mutate(op->body);
Expr              163 src/VaryingAttributes.cpp         Expr mutated_value = mutate(op->value);
Expr              183 src/VaryingAttributes.cpp         Expr a = mutate(op->a);
Expr              185 src/VaryingAttributes.cpp         Expr b = mutate(op->b);
Expr              208 src/VaryingAttributes.cpp         Expr a = mutate(op->a);
Expr              210 src/VaryingAttributes.cpp         Expr b = mutate(op->b);
Expr              230 src/VaryingAttributes.cpp         Expr a = mutate(op->a);
Expr              232 src/VaryingAttributes.cpp         Expr b = mutate(op->b);
Expr              260 src/VaryingAttributes.cpp         Expr a = mutate(op->a);
Expr              262 src/VaryingAttributes.cpp         Expr b = mutate(op->b);
Expr              300 src/VaryingAttributes.cpp         Expr a = mutate(op->a);
Expr              311 src/VaryingAttributes.cpp         Expr a = mutate(op->value);
Expr              338 src/VaryingAttributes.cpp         Expr mutated_condition = mutate(op->condition);
Expr              341 src/VaryingAttributes.cpp         Expr mutated_true_value = mutate(op->true_value);
Expr              344 src/VaryingAttributes.cpp         Expr mutated_false_value = mutate(op->false_value);
Expr              392 src/VaryingAttributes.cpp     FindVaryingAttributeTags(std::map<std::string, Expr>& varyings_) : varyings(varyings_) { }
Expr              404 src/VaryingAttributes.cpp     std::map<std::string, Expr>& varyings;
Expr              473 src/VaryingAttributes.cpp void prune_varying_attributes(Stmt loop_stmt, std::map<std::string, Expr>& varying)
Expr              480 src/VaryingAttributes.cpp     for (const std::pair<std::string, Expr> &i : varying) {
Expr              509 src/VaryingAttributes.cpp             Expr v = Variable::make(Float(32), op->name);
Expr              534 src/VaryingAttributes.cpp             expr = Expr(op) - 0.5f;
Expr              546 src/VaryingAttributes.cpp     Type float_type(Expr e) {
Expr              552 src/VaryingAttributes.cpp         Expr mutated_a = mutate(op->a);
Expr              553 src/VaryingAttributes.cpp         Expr mutated_b = mutate(op->b);
Expr              588 src/VaryingAttributes.cpp         Expr mutated_condition = mutate(op->condition);
Expr              589 src/VaryingAttributes.cpp         Expr mutated_true_value = mutate(op->true_value);
Expr              590 src/VaryingAttributes.cpp         Expr mutated_false_value = mutate(op->false_value);
Expr              609 src/VaryingAttributes.cpp         Expr mutated_base = mutate(op->base);
Expr              610 src/VaryingAttributes.cpp         Expr mutated_stride = mutate(op->stride);
Expr              631 src/VaryingAttributes.cpp         Expr mutated_value = mutate(op->value);
Expr              638 src/VaryingAttributes.cpp         Expr mutated_body = mutate(op->body);
Expr              648 src/VaryingAttributes.cpp         Expr mutated_value = mutate(op->value);
Expr              667 src/VaryingAttributes.cpp     Scope<Expr> scope;
Expr              679 src/VaryingAttributes.cpp     virtual Stmt mutate(Expr expr);
Expr              728 src/VaryingAttributes.cpp Stmt IRFilter::mutate(Expr e) {
Expr              818 src/VaryingAttributes.cpp         Expr old_arg = op->args[i];
Expr              895 src/VaryingAttributes.cpp         Expr old_min    = op->bounds[i].min;
Expr              896 src/VaryingAttributes.cpp         Expr old_extent = op->bounds[i].extent;
Expr              950 src/VaryingAttributes.cpp             Expr offset_expression = Variable::make(Int(32), "gpu.vertex_offset") +
Expr             1003 src/VaryingAttributes.cpp             const std::vector<Expr>& dim = dims[op->name];
Expr             1008 src/VaryingAttributes.cpp             Expr loop_variable = Variable::make(Int(32),name);
Expr             1014 src/VaryingAttributes.cpp             Expr coord_expr = select(loop_variable == 0, dim[0], dim[1]);
Expr             1027 src/VaryingAttributes.cpp                 Expr gpu_varying_offset = Variable::make(Int(32), "gpu.vertex_offset");
Expr             1030 src/VaryingAttributes.cpp                 Expr coord1 = cast<float>(Variable::make(Int(32),for_loops[0]->name));
Expr             1031 src/VaryingAttributes.cpp                 Expr coord0 = cast<float>(Variable::make(Int(32),for_loops[1]->name));
Expr             1066 src/VaryingAttributes.cpp                 Expr offset_expression = (loop_variables[0] * num_padded_attributes * 2) +
Expr             1089 src/VaryingAttributes.cpp     typedef std::map<std::string, std::vector<Expr>> DimsType;
Expr             1104 src/VaryingAttributes.cpp     std::vector<Expr> loop_variables;
Expr             1121 src/VaryingAttributes.cpp Expr dont_simplify(Expr v_) {
Expr             1151 src/VaryingAttributes.cpp             std::map<std::string, Expr> varyings;
Expr             1165 src/VaryingAttributes.cpp             for (const std::pair<std::string, Expr> &v : varyings) {
Expr             1175 src/VaryingAttributes.cpp             Expr loop0_max = Add::make(loop0->min, loop0->extent);
Expr             1176 src/VaryingAttributes.cpp             Expr loop1_max = Add::make(loop1->min, loop1->extent);
Expr             1178 src/VaryingAttributes.cpp             std::vector<std::vector<Expr>> coords(2);
Expr               54 src/VectorizeLoops.cpp Interval bounds_of_lanes(Expr e) {
Expr              135 src/VectorizeLoops.cpp         Expr last_lane_idx = make_const(r->base.type(), r->lanes-1);
Expr              165 src/VectorizeLoops.cpp     Expr min_lane = extract_lane(e, 0);
Expr              166 src/VectorizeLoops.cpp     Expr max_lane = min_lane;
Expr              168 src/VectorizeLoops.cpp         Expr next_lane = extract_lane(e, i);
Expr              185 src/VectorizeLoops.cpp     Expr var;
Expr              191 src/VectorizeLoops.cpp     Expr mutate_index(string a, Expr index) {
Expr              228 src/VectorizeLoops.cpp bool uses_gpu_vars(Expr s) {
Expr              237 src/VectorizeLoops.cpp     Expr vector_predicate;
Expr              260 src/VectorizeLoops.cpp     Expr merge_predicate(Expr pred, Expr new_pred) {
Expr              262 src/VectorizeLoops.cpp             Expr res = simplify(pred && new_pred);
Expr              276 src/VectorizeLoops.cpp         Expr predicate, index;
Expr              307 src/VectorizeLoops.cpp         Expr predicate, value, index;
Expr              341 src/VectorizeLoops.cpp     PredicateLoadStore(string v, Expr vpred, bool in_hexagon, const Target &t) :
Expr              359 src/VectorizeLoops.cpp     Expr replacement;
Expr              370 src/VectorizeLoops.cpp     Scope<Expr> scope;
Expr              374 src/VectorizeLoops.cpp     vector<pair<string, Expr>> containing_lets;
Expr              377 src/VectorizeLoops.cpp     Expr widen(Expr e, int lanes) {
Expr              385 src/VectorizeLoops.cpp         return Expr();
Expr              391 src/VectorizeLoops.cpp         Expr value = mutate(op->value);
Expr              415 src/VectorizeLoops.cpp         Expr a = mutate(op->a), b = mutate(op->b);
Expr              441 src/VectorizeLoops.cpp         Expr condition = mutate(op->condition);
Expr              442 src/VectorizeLoops.cpp         Expr true_value = mutate(op->true_value);
Expr              443 src/VectorizeLoops.cpp         Expr false_value = mutate(op->false_value);
Expr              459 src/VectorizeLoops.cpp         Expr predicate = mutate(op->predicate);
Expr              460 src/VectorizeLoops.cpp         Expr index = mutate(op->index);
Expr              475 src/VectorizeLoops.cpp         vector<Expr> new_args(op->args.size());
Expr              481 src/VectorizeLoops.cpp             Expr old_arg = op->args[i];
Expr              482 src/VectorizeLoops.cpp             Expr new_arg = mutate(old_arg);
Expr              500 src/VectorizeLoops.cpp                 vector<Expr> call_args(call->args.size());
Expr              527 src/VectorizeLoops.cpp         Expr mutated_value = mutate(op->value);
Expr              539 src/VectorizeLoops.cpp         Expr mutated_body = mutate(op->body);
Expr              553 src/VectorizeLoops.cpp         Expr mutated_value = mutate(op->value);
Expr              618 src/VectorizeLoops.cpp         vector<Expr> new_args(op->args.size());
Expr              619 src/VectorizeLoops.cpp         vector<Expr> new_values(op->values.size());
Expr              625 src/VectorizeLoops.cpp             Expr old_arg = op->args[i];
Expr              626 src/VectorizeLoops.cpp             Expr new_arg = mutate(old_arg);
Expr              633 src/VectorizeLoops.cpp             Expr old_value = op->values[i];
Expr              634 src/VectorizeLoops.cpp             Expr new_value = mutate(old_value);
Expr              655 src/VectorizeLoops.cpp         Expr predicate = mutate(op->predicate);
Expr              656 src/VectorizeLoops.cpp         Expr value = mutate(op->value);
Expr              657 src/VectorizeLoops.cpp         Expr index = mutate(op->index);
Expr              677 src/VectorizeLoops.cpp         Expr cond = mutate(op->condition);
Expr              717 src/VectorizeLoops.cpp                 Expr all_true = bounds_of_lanes(c->args[0]).min;
Expr              774 src/VectorizeLoops.cpp         Expr min = mutate(op->min);
Expr              775 src/VectorizeLoops.cpp         Expr extent = mutate(op->extent);
Expr              781 src/VectorizeLoops.cpp             Expr var = Variable::make(Int(32), op->name);
Expr              794 src/VectorizeLoops.cpp             Expr var = Variable::make(Int(32), op->name);
Expr              811 src/VectorizeLoops.cpp         std::vector<Expr> new_extents;
Expr              812 src/VectorizeLoops.cpp         Expr new_expr;
Expr              820 src/VectorizeLoops.cpp             Expr extent = mutate(op->extents[i]);
Expr              876 src/VectorizeLoops.cpp     Expr scalarize(Expr e) {
Expr              880 src/VectorizeLoops.cpp         Expr result;
Expr              886 src/VectorizeLoops.cpp             for (Scope<Expr>::iterator iter = scope.begin(); iter != scope.end(); ++iter) {
Expr              888 src/VectorizeLoops.cpp                 Expr lane = extract_lane(iter.value(), i);
Expr              899 src/VectorizeLoops.cpp                 Expr cond = (replacement == Broadcast::make(i, lanes));
Expr              910 src/VectorizeLoops.cpp     VectorSubs(string v, Expr r, bool in_hexagon, const Target &t) :
Expr              939 src/VectorizeLoops.cpp             Expr for_var = Variable::make(Int(32), for_loop->name);
Expr              940 src/VectorizeLoops.cpp             Expr replacement = Ramp::make(for_loop->min, 1, extent->value);
Expr               21 src/WrapExternStages.cpp Stmt make_checked_call(Expr call) {
Expr               24 src/WrapExternStages.cpp     Expr result_var = Variable::make(Int(32), result_var_name);
Expr               68 src/WrapExternStages.cpp         vector<pair<string, Expr>> old_buffers;
Expr               69 src/WrapExternStages.cpp         vector<Expr> call_args;
Expr               73 src/WrapExternStages.cpp                 Expr new_buffer_var = Variable::make(a.type, a.name + ".buffer");
Expr               77 src/WrapExternStages.cpp                 Expr old_buffer_var = Variable::make(type_of<struct buffer_t *>(), old_buffer_name);
Expr               78 src/WrapExternStages.cpp                 Expr old_buffer = Call::make(type_of<struct buffer_t *>(), Call::alloca,
Expr               84 src/WrapExternStages.cpp                 Expr downgrade_call = Call::make(Int(32), "halide_downgrade_buffer_t",
Expr               92 src/WrapExternStages.cpp                 Expr upgrade_call = Call::make(Int(32), "halide_upgrade_buffer_t",
Expr              102 src/WrapExternStages.cpp         Expr inner_call = Call::make(op->type, op->name, call_args, op->call_type);
Expr              128 src/WrapExternStages.cpp                 vector<Expr> new_args;
Expr              129 src/WrapExternStages.cpp                 for (Expr e : op->args) {
Expr              167 src/WrapExternStages.cpp     vector<Expr> call_args;
Expr              168 src/WrapExternStages.cpp     vector<pair<string, Expr>> new_buffers;
Expr              178 src/WrapExternStages.cpp             Expr new_buffer_var = Variable::make(type_of<struct halide_buffer_t *>(), new_buffer_name);
Expr              180 src/WrapExternStages.cpp             Expr old_buffer_var = Variable::make(type_of<struct buffer_t *>(), arg.name);
Expr              186 src/WrapExternStages.cpp             Expr new_buffer = builder.build();
Expr              193 src/WrapExternStages.cpp             Expr downgrade_call = Call::make(Int(32), "halide_downgrade_buffer_t",
Expr              199 src/WrapExternStages.cpp             Expr downgrade_device_call = Call::make(Int(32), "halide_downgrade_buffer_t_device_fields",
Expr              204 src/WrapExternStages.cpp             Expr bounds_query = Call::make(Bool(), Call::buffer_is_bounds_query,
Expr              212 src/WrapExternStages.cpp             Expr upgrade_call = Call::make(Int(32), "halide_upgrade_buffer_t",
Expr              227 src/WrapExternStages.cpp     Expr inner_call = Call::make(Int(32), fn.name, call_args, call_type);
Expr               19 test/correctness/argmax.cpp     Expr best_so_far = f(clamp(arg_max_f(), 0, 100));
Expr              107 test/correctness/bitwise_ops.cpp     Expr a = reinterpret<int>(input(x));
Expr              108 test/correctness/bitwise_ops.cpp     Expr b = reinterpret<int>(input(x+1));
Expr              123 test/correctness/bitwise_ops.cpp     Expr a32 = cast<int32_t>(input(x));
Expr              124 test/correctness/bitwise_ops.cpp     Expr b8  = min(31, cast<uint8_t>(input(x+1)));
Expr              141 test/correctness/bitwise_ops.cpp     Expr a8 = cast<int8_t>(input(x));
Expr              209 test/correctness/boundary_conditions.cpp             repeat_edge(input, Expr(), Expr(), 0, H),
Expr              214 test/correctness/boundary_conditions.cpp             repeat_edge(input, 0, W, Expr(), Expr()),
Expr              247 test/correctness/boundary_conditions.cpp             constant_exterior(input, exterior, Expr(), Expr(), 0, H),
Expr              252 test/correctness/boundary_conditions.cpp             constant_exterior(input, exterior, 0, W, Expr(), Expr()),
Expr              283 test/correctness/boundary_conditions.cpp             repeat_image(input, Expr(), Expr(), 0, H),
Expr              288 test/correctness/boundary_conditions.cpp             repeat_image(input, 0, W, Expr(), Expr()),
Expr              319 test/correctness/boundary_conditions.cpp             mirror_image(input, Expr(), Expr(), 0, H),
Expr              324 test/correctness/boundary_conditions.cpp             mirror_image(input, 0, W, Expr(), Expr()),
Expr              355 test/correctness/boundary_conditions.cpp             mirror_interior(input, Expr(), Expr(), 0, H),
Expr              360 test/correctness/boundary_conditions.cpp             mirror_interior(input, 0, W, Expr(), Expr()),
Expr               21 test/correctness/bounds_inference_outer_split.cpp     Expr result;
Expr               37 test/correctness/bounds_of_abs.cpp     Expr reflect_x = 100 - cast<int>(abs(100 - (x % 200)));
Expr                9 test/correctness/cast.cpp     Expr int_expr[4], uint_expr[4], double_expr, float_expr;
Expr               30 test/correctness/cast.cpp         Expr a = int_expr[i];
Expr               24 test/correctness/code_explosion.cpp     std::vector<Expr> e(size);
Expr               15 test/correctness/constant_expr.cpp bool scalar_from_constant_expr(Expr e, T *val) {
Expr               43 test/correctness/constant_expr.cpp     Expr e = make_const(t, value);
Expr               19 test/correctness/constant_type.cpp     Expr add_one = im(_) + 1;
Expr               25 test/correctness/constant_type.cpp     Expr one_add = 1 + im(_);
Expr               18 test/correctness/custom_lowering_pass.cpp             std::cerr << "Found floating-point division by constant: " << Expr(op) << "\n";
Expr               13 test/correctness/dynamic_reduction_bounds.cpp     Expr hard_to_reason_about = cast<int>(hypot(input.width(), input.height()));
Expr               73 test/correctness/exception.cpp         Expr e;
Expr              114 test/correctness/exception.cpp         Expr a, b;
Expr               59 test/correctness/extern_bounds_inference.cpp         args[1] = Expr(3);
Expr               60 test/correctness/extern_bounds_inference.cpp         args[2] = Expr(7);
Expr               78 test/correctness/extern_bounds_inference.cpp         args[1] = Expr(3);
Expr               79 test/correctness/extern_bounds_inference.cpp         args[2] = Expr(7);
Expr               83 test/correctness/extern_bounds_inference.cpp         args[1] = Expr(8);
Expr               84 test/correctness/extern_bounds_inference.cpp         args[2] = Expr(17);
Expr              109 test/correctness/extern_bounds_inference.cpp         args[1] = Expr(3);
Expr              110 test/correctness/extern_bounds_inference.cpp         args[2] = Expr(7);
Expr               21 test/correctness/float16_t_implicit_upcast.cpp     f(x, y) = 0.25f + Expr(float16_t(0.75));
Expr               10 test/correctness/fuse.cpp     Expr e = x*3 + y;
Expr               24 test/correctness/fuzz_simplify.cpp Expr random_var() {
Expr               37 test/correctness/fuzz_simplify.cpp Expr random_leaf(Type T, bool overflow_undef = false, bool imm_only = false) {
Expr               68 test/correctness/fuzz_simplify.cpp Expr random_expr(Type T, int depth, bool overflow_undef = false);
Expr               70 test/correctness/fuzz_simplify.cpp Expr random_condition(Type T, int depth, bool maybe_scalar) {
Expr               71 test/correctness/fuzz_simplify.cpp     typedef Expr (*make_bin_op_fn)(const Expr &, const Expr &);
Expr               86 test/correctness/fuzz_simplify.cpp     Expr a = random_expr(T, depth);
Expr               87 test/correctness/fuzz_simplify.cpp     Expr b = random_expr(T, depth);
Expr               92 test/correctness/fuzz_simplify.cpp Expr random_expr(Type T, int depth, bool overflow_undef) {
Expr               93 test/correctness/fuzz_simplify.cpp     typedef Expr (*make_bin_op_fn)(const Expr &, const Expr &);
Expr              176 test/correctness/fuzz_simplify.cpp         Expr a = random_expr(T, depth, overflow_undef);
Expr              177 test/correctness/fuzz_simplify.cpp         Expr b = random_expr(T, depth, overflow_undef);
Expr              184 test/correctness/fuzz_simplify.cpp bool test_simplification(Expr a, Expr b, Type T, const map<string, Expr> &vars) {
Expr              186 test/correctness/fuzz_simplify.cpp         Expr a_j = a;
Expr              187 test/correctness/fuzz_simplify.cpp         Expr b_j = b;
Expr              193 test/correctness/fuzz_simplify.cpp         Expr a_j_v = simplify(substitute(vars, a_j));
Expr              194 test/correctness/fuzz_simplify.cpp         Expr b_j_v = simplify(substitute(vars, b_j));
Expr              201 test/correctness/fuzz_simplify.cpp             for(map<string, Expr>::const_iterator i = vars.begin(); i != vars.end(); i++) {
Expr              216 test/correctness/fuzz_simplify.cpp bool test_expression(Expr test, int samples) {
Expr              217 test/correctness/fuzz_simplify.cpp     Expr simplified = simplify(test);
Expr              219 test/correctness/fuzz_simplify.cpp     map<string, Expr> vars;
Expr              221 test/correctness/fuzz_simplify.cpp         vars[fuzz_var(i)] = Expr();
Expr              225 test/correctness/fuzz_simplify.cpp         for (std::map<string, Expr>::iterator v = vars.begin(); v != vars.end(); v++) {
Expr              236 test/correctness/fuzz_simplify.cpp Expr ramp(Expr b, Expr s, int w) { return Ramp::make(b, s, w); }
Expr              237 test/correctness/fuzz_simplify.cpp Expr x1(Expr x) { return Broadcast::make(x, 2); }
Expr              238 test/correctness/fuzz_simplify.cpp Expr x2(Expr x) { return Broadcast::make(x, 2); }
Expr              239 test/correctness/fuzz_simplify.cpp Expr x4(Expr x) { return Broadcast::make(x, 2); }
Expr              240 test/correctness/fuzz_simplify.cpp Expr uint1(Expr x) { return Cast::make(UInt(1), x); }
Expr              241 test/correctness/fuzz_simplify.cpp Expr uint8(Expr x) { return Cast::make(UInt(8), x); }
Expr              242 test/correctness/fuzz_simplify.cpp Expr uint16(Expr x) { return Cast::make(UInt(16), x); }
Expr              243 test/correctness/fuzz_simplify.cpp Expr uint32(Expr x) { return Cast::make(UInt(32), x); }
Expr              244 test/correctness/fuzz_simplify.cpp Expr int8(Expr x) { return Cast::make(Int(8), x); }
Expr              245 test/correctness/fuzz_simplify.cpp Expr int16(Expr x) { return Cast::make(Int(16), x); }
Expr              246 test/correctness/fuzz_simplify.cpp Expr int32(Expr x) { return Cast::make(Int(32), x); }
Expr              247 test/correctness/fuzz_simplify.cpp Expr uint1x2(Expr x) { return Cast::make(UInt(1).with_lanes(2), x); }
Expr              248 test/correctness/fuzz_simplify.cpp Expr uint8x2(Expr x) { return Cast::make(UInt(8).with_lanes(2), x); }
Expr              249 test/correctness/fuzz_simplify.cpp Expr uint16x2(Expr x) { return Cast::make(UInt(16).with_lanes(2), x); }
Expr              250 test/correctness/fuzz_simplify.cpp Expr uint32x2(Expr x) { return Cast::make(UInt(32).with_lanes(2), x); }
Expr              251 test/correctness/fuzz_simplify.cpp Expr int8x2(Expr x) { return Cast::make(Int(8).with_lanes(2), x); }
Expr              252 test/correctness/fuzz_simplify.cpp Expr int16x2(Expr x) { return Cast::make(Int(16).with_lanes(2), x); }
Expr              253 test/correctness/fuzz_simplify.cpp Expr int32x2(Expr x) { return Cast::make(Int(32).with_lanes(2), x); }
Expr              255 test/correctness/fuzz_simplify.cpp Expr a(Variable::make(Int(0), fuzz_var(0)));
Expr              256 test/correctness/fuzz_simplify.cpp Expr b(Variable::make(Int(0), fuzz_var(1)));
Expr              257 test/correctness/fuzz_simplify.cpp Expr c(Variable::make(Int(0), fuzz_var(2)));
Expr              258 test/correctness/fuzz_simplify.cpp Expr d(Variable::make(Int(0), fuzz_var(3)));
Expr              259 test/correctness/fuzz_simplify.cpp Expr e(Variable::make(Int(0), fuzz_var(4)));
Expr              283 test/correctness/fuzz_simplify.cpp                 Expr test = random_expr(VT, depth);
Expr                6 test/correctness/gameoflife.cpp Expr u8(Expr a) {
Expr               21 test/correctness/gameoflife.cpp     Expr w = input.width(), h = input.height();
Expr               22 test/correctness/gameoflife.cpp     Expr W = (x+w-1) % w, E = (x+1) % w, N = (y+h-1) % h, S = (y+1) % h;
Expr               23 test/correctness/gameoflife.cpp     Expr livingNeighbors = (in(W, N) + in(x, N) +
Expr               27 test/correctness/gameoflife.cpp     Expr alive = in(x, y) != 0;
Expr               97 test/correctness/gameoflife.cpp         Expr w = input.width(), h = input.height();
Expr               99 test/correctness/gameoflife.cpp         Expr lastT = (t.z+1)%2;
Expr              100 test/correctness/gameoflife.cpp         Expr W = (t.x+w-1) % w, E = (t.x+1) % w, N = (t.y+h-1) % h, S = (t.y+1) % h;
Expr              101 test/correctness/gameoflife.cpp         Expr alive = life(t.x, t.y, lastT) != u8(0);
Expr              102 test/correctness/gameoflife.cpp         Expr livingNeighbors = (life(W, N, lastT) + life(t.x, N, lastT) +
Expr               43 test/correctness/gpu_mixed_shared_mem_types.cpp     Expr e = cast(result_type, 0);
Expr               30 test/correctness/gpu_non_contiguous_copy.cpp     Expr test = ((x >= x_off) && (x < x_off + x_size*2) &&
Expr               50 test/correctness/gpu_non_contiguous_copy.cpp     f.output_buffer().dim(0).set_stride(Expr());
Expr               55 test/correctness/gpu_non_contiguous_copy.cpp     Expr change_out_of_subregion = select(test, undef<int>(), 4*x + 3*y + 2*z + w);
Expr               19 test/correctness/gpu_sum_scan.cpp     Expr blocks = im.width() / B;
Expr               30 test/correctness/host_alignment.cpp     Expr left, right;
Expr               49 test/correctness/host_alignment.cpp         Expr m = op->message;
Expr               53 test/correctness/host_alignment.cpp             Expr c = op->condition;
Expr               60 test/correctness/host_alignment.cpp                 Expr name =  reinterpret_call->args[0];
Expr               27 test/correctness/image_io.cpp     std::vector<Expr> args;
Expr               48 test/correctness/implicit_args.cpp     g(_) = f(2, 2, _) + im2(Expr(1), _);
Expr                8 test/correctness/infer_arguments.cpp bool constant_expr_equals(Expr expr, T expected) {
Expr               10 test/correctness/infer_arguments.cpp             is_one(simplify(expr == Expr(expected))));
Expr               27 test/correctness/infer_arguments.cpp         Param<uint64_t> z_unsigned("z_unsigned", 0xdeadbeef, 0x01, Expr(kU64));
Expr               17 test/correctness/inline_reduction.cpp     Expr input_val = input(x+r.x, y+r.y);
Expr               18 test/correctness/inline_reduction.cpp     Expr local_mean = sum(input_val) / 9.0f;
Expr               18 test/correctness/integer_powers.cpp     Expr xf = x/256.0f;
Expr               26 test/correctness/integer_powers.cpp         Expr y1 = 0.0f;
Expr               38 test/correctness/integer_powers.cpp         Expr y2 = 1.0f;
Expr               74 test/correctness/integer_powers.cpp         Expr y1 = 0.0f;
Expr               83 test/correctness/integer_powers.cpp         Expr y2 = 0.0f;
Expr               45 test/correctness/interleave.cpp void define(FuncRef f, std::vector<Expr> values) {
Expr               53 test/correctness/interleave.cpp void define(FuncRef f, Expr value, int count) {
Expr               54 test/correctness/interleave.cpp     std::vector<Expr> values;
Expr               61 test/correctness/interleave.cpp Expr element(FuncRef f, int i) {
Expr               90 test/correctness/interleave.cpp         std::vector<Expr> f_def, g_def;
Expr               97 test/correctness/interleave.cpp         std::vector<Expr> h_def;
Expr              300 test/correctness/interleave.cpp             std::vector<Expr> rdef0, rdef1;
Expr               38 test/correctness/inverse.cpp     Expr v = x*1.34f + 1.0142f;
Expr               11 test/correctness/isnan.cpp     Expr e = sqrt(x - y);
Expr               27 test/correctness/iterate_over_circle.cpp     Expr t = cast<int>(ceil(sqrt(10*10 - y*y)));
Expr               44 test/correctness/legal_race_condition.cpp         Expr permuted = (38*r*r + 193*r + 32) % 256;
Expr              192 test/correctness/likely.cpp         Expr e[N];
Expr              198 test/correctness/likely.cpp         Expr nasty = cast<bool>(1);
Expr                6 test/correctness/logical.cpp Expr u8(Expr a) {
Expr               10 test/correctness/logical.cpp Expr u16(Expr a) {
Expr               59 test/correctness/logical.cpp         Expr common_cond = input(x, y) > 10;
Expr              121 test/correctness/logical.cpp         Expr ten = 10;
Expr               34 test/correctness/loop_invariant_extern_calls.cpp     f(x, y) = my_func(0, Expr(0)) + my_func(1, y) + my_func(2, x*32 + y);
Expr               64 test/correctness/loop_invariant_extern_calls.cpp     g(x, y) = my_func(3, Expr(0));
Expr               43 test/correctness/make_struct.cpp     Expr a = cast<double>(3.0f);
Expr               44 test/correctness/make_struct.cpp     Expr b = cast<int32_t>(1234567);
Expr               45 test/correctness/make_struct.cpp     Expr c = cast<int16_t>(1234);
Expr               46 test/correctness/make_struct.cpp     Expr d = std::string("Test global string\n");
Expr               48 test/correctness/make_struct.cpp     Expr s = Call::make(Handle(), Call::make_struct, {a, b, c, d}, Call::Intrinsic);
Expr               11 test/correctness/many_dimensions.cpp     Expr e = 0;
Expr               27 test/correctness/many_dimensions.cpp     std::vector<Expr> site1(vars.size()), site2(vars.size());
Expr               11 test/correctness/median3x3.cpp Expr mid3(Expr a, Expr b, Expr c) {
Expr               12 test/correctness/min_extent.cpp     Expr factor("factor");
Expr              325 test/correctness/mul_div_mod.cpp                 Expr ae = cast<RT>(Expr(ai));
Expr              326 test/correctness/mul_div_mod.cpp                 Expr be = cast<RT>(Expr(bi));
Expr              327 test/correctness/mul_div_mod.cpp                 Expr re = simplify(ae*be);
Expr              332 test/correctness/mul_div_mod.cpp                     if (!Internal::equal(re, Expr(ri)) && (ecount++) < 10) {
Expr              424 test/correctness/mul_div_mod.cpp                 Expr ae = Expr(ai);
Expr              425 test/correctness/mul_div_mod.cpp                 Expr be = Expr(bi);
Expr              426 test/correctness/mul_div_mod.cpp                 Expr qe = simplify(ae/be);
Expr              427 test/correctness/mul_div_mod.cpp                 Expr re = simplify(ae%be);
Expr              429 test/correctness/mul_div_mod.cpp                 if (!Internal::equal(qe, Expr(qi)) && (ecount++) < 10) {
Expr              435 test/correctness/mul_div_mod.cpp                 } else if (!Internal::equal(re, Expr(ri)) && (ecount++) < 10) {
Expr              486 test/correctness/mul_div_mod.cpp             Expr in_e = cast<T>((float) arg_a) % cast<T>((float) arg_b);
Expr              487 test/correctness/mul_div_mod.cpp             Expr e = simplify(in_e);
Expr              488 test/correctness/mul_div_mod.cpp             Expr eout = cast<T>((float) v);
Expr              490 test/correctness/mul_div_mod.cpp                 Expr diff = simplify(e - eout);
Expr              491 test/correctness/mul_div_mod.cpp                 Expr smalldiff = simplify(diff < (float) (0.000001) && diff > (float) (-0.000001));
Expr               16 test/correctness/multi_pass_reduction.cpp         Expr xl = r1; // left to right pass
Expr               17 test/correctness/multi_pass_reduction.cpp         Expr xr = 10 - r1; // right to left pass
Expr               39 test/correctness/multiple_outputs.cpp         Expr best_x = g()[0], best_y = g()[1], best_so_far = g()[2];
Expr               40 test/correctness/multiple_outputs.cpp         Expr next_value = f(r.x, r.y);
Expr               24 test/correctness/newtons_method.cpp     Expr value = sin(f());
Expr               25 test/correctness/newtons_method.cpp     Expr deriv = cos(f());
Expr               41 test/correctness/newtons_method.cpp     Expr x1 = g()[0], y1 = g()[1];
Expr               42 test/correctness/newtons_method.cpp     Expr x2 = g()[2], y2 = g()[3];
Expr               43 test/correctness/newtons_method.cpp     Expr x0 = x1 - y1 * (x1 - x2) / (y1 - y2);
Expr               46 test/correctness/newtons_method.cpp     Expr baseline = abs(y2 - y1);
Expr               52 test/correctness/newtons_method.cpp     Expr y0 = sin(x0);
Expr               64 test/correctness/parallel_reductions.cpp         Expr x = i % chunk_size, y = i / chunk_size;
Expr               24 test/correctness/partition_loops_bug.cpp     Buffer<double> img = lambda(x, y, Expr(1.0)).realize(4, 4);
Expr               96 test/correctness/print.cpp         std::vector<Expr> args;
Expr              107 test/correctness/print.cpp             Expr dn = cast<double>((float)(n));
Expr              133 test/correctness/print.cpp         Expr e = reinterpret(Float(32), random_uint());
Expr               26 test/correctness/random.cpp         Expr val = g(r.x, r.y);
Expr               33 test/correctness/random.cpp         Expr dx = g(r.x, r.y) - g((r.x + 1) % 1024, r.y);
Expr               34 test/correctness/random.cpp         Expr dy = g(r.x, r.y) - g(r.x, (r.y + 1) % 1024);
Expr               95 test/correctness/random.cpp         Expr v1 = im1(r.x, r.y);
Expr               96 test/correctness/random.cpp         Expr v2 = im2(r.x, r.y);
Expr               97 test/correctness/random.cpp         Expr v3 = im3(r.x, r.y);
Expr              123 test/correctness/random.cpp         Expr val = f(r.x, r.y);
Expr              135 test/correctness/random.cpp         Expr val2 = val ^ (val * 2);
Expr              147 test/correctness/random.cpp         Expr r1 = cast<double>(random_float());
Expr              148 test/correctness/random.cpp         Expr r2 = cast<double>(random_float());
Expr              161 test/correctness/random.cpp         Expr f_val = f(r.x, r.y);
Expr              162 test/correctness/random.cpp         Expr g_val = g(r.x, r.y);
Expr              572 test/correctness/reduction_non_rectangular.cpp     Expr e1 = random_float() < 0.5f;
Expr              613 test/correctness/reduction_non_rectangular.cpp     Expr not_converged = abs(inverse(x)[0] * (x+1) - 1) > 0.001f;
Expr              784 test/correctness/reduction_non_rectangular.cpp     Expr w = (f.output_buffer().width()/2)*2;
Expr              785 test/correctness/reduction_non_rectangular.cpp     Expr h = (f.output_buffer().height()/2)*2;
Expr               26 test/correctness/reduction_schedule.cpp     Expr xm = max(r.x - 1, 0), xp = min(r.x + 1, noise.width() - 1);
Expr               33 test/correctness/reorder_rvars.cpp         Expr check = sum(abs(f(r3.x, r3.y) - g(r3.x, r3.y)));
Expr              230 test/correctness/rfactor.cpp         Expr x_clamped = clamp(a(r.x, r.y, r.z), 0, 19);
Expr              231 test/correctness/rfactor.cpp         Expr y_clamped = clamp(b(r.x, r.y, r.z), 0, 29);
Expr              242 test/correctness/rfactor.cpp         Expr x_clamped = clamp(a(r.x, r.y, r.z), 0, 19);
Expr              243 test/correctness/rfactor.cpp         Expr y_clamped = clamp(b(r.x, r.y, r.z), 0, 29);
Expr                9 test/correctness/round.cpp bool test(Expr e, const char *funcname, int vector_width, int N, Buffer<T> &input, T *result) {
Expr               29 test/correctness/round.cpp bool test(Expr e, const char *funcname, int N, Buffer<T> &input, T *result) {
Expr                9 test/correctness/saturating_casts.cpp typedef Expr (*cast_maker_t)(Expr);
Expr               13 test/correctness/shared_self_references.cpp             Expr e = f(2);
Expr               47 test/correctness/side_effects.cpp     Complex(Expr real, Expr imag) : t(real, imag) {}
Expr               50 test/correctness/side_effects.cpp     Expr real() const {return t[0];}
Expr               51 test/correctness/side_effects.cpp     Expr imag() const {return t[1];}
Expr               76 test/correctness/side_effects.cpp Expr magnitude(Complex a) {
Expr               27 test/correctness/simd_op_check.cpp const Expr max_u32 = UInt(32).max();
Expr               40 test/correctness/simd_op_check.cpp     Expr expr;
Expr              113 test/correctness/simd_op_check.cpp                 Expr r;
Expr              189 test/correctness/simd_op_check.cpp     TestResult check_one(const string &op, const string &name, int vector_width, Expr e) const {
Expr              257 test/correctness/simd_op_check.cpp     void check(string op, int vector_width, Expr e) {
Expr              281 test/correctness/simd_op_check.cpp         Expr f64_1 = in_f64(x), f64_2 = in_f64(x+16), f64_3 = in_f64(x+32);
Expr              282 test/correctness/simd_op_check.cpp         Expr f32_1 = in_f32(x), f32_2 = in_f32(x+16), f32_3 = in_f32(x+32);
Expr              283 test/correctness/simd_op_check.cpp         Expr i8_1  = in_i8(x),  i8_2  = in_i8(x+16),  i8_3  = in_i8(x+32);
Expr              284 test/correctness/simd_op_check.cpp         Expr u8_1  = in_u8(x),  u8_2  = in_u8(x+16),  u8_3  = in_u8(x+32);
Expr              285 test/correctness/simd_op_check.cpp         Expr i16_1 = in_i16(x), i16_2 = in_i16(x+16), i16_3 = in_i16(x+32);
Expr              286 test/correctness/simd_op_check.cpp         Expr u16_1 = in_u16(x), u16_2 = in_u16(x+16), u16_3 = in_u16(x+32);
Expr              287 test/correctness/simd_op_check.cpp         Expr i32_1 = in_i32(x), i32_2 = in_i32(x+16), i32_3 = in_i32(x+32);
Expr              288 test/correctness/simd_op_check.cpp         Expr u32_1 = in_u32(x), u32_2 = in_u32(x+16), u32_3 = in_u32(x+32);
Expr              289 test/correctness/simd_op_check.cpp         Expr i64_1 = in_i64(x), i64_2 = in_i64(x+16), i64_3 = in_i64(x+32);
Expr              290 test/correctness/simd_op_check.cpp         Expr u64_1 = in_u64(x), u64_2 = in_u64(x+16), u64_3 = in_u64(x+32);
Expr              291 test/correctness/simd_op_check.cpp         Expr bool_1 = (f32_1 > 0.3f), bool_2 = (f32_1 < -0.3f), bool_3 = (f32_1 != -0.34f);
Expr              661 test/correctness/simd_op_check.cpp         Expr f64_1 = in_f64(x), f64_2 = in_f64(x+16), f64_3 = in_f64(x+32);
Expr              662 test/correctness/simd_op_check.cpp         Expr f32_1 = in_f32(x), f32_2 = in_f32(x+16), f32_3 = in_f32(x+32);
Expr              663 test/correctness/simd_op_check.cpp         Expr i8_1  = in_i8(x),  i8_2  = in_i8(x+16),  i8_3  = in_i8(x+32);
Expr              664 test/correctness/simd_op_check.cpp         Expr u8_1  = in_u8(x),  u8_2  = in_u8(x+16),  u8_3  = in_u8(x+32);
Expr              665 test/correctness/simd_op_check.cpp         Expr i16_1 = in_i16(x), i16_2 = in_i16(x+16), i16_3 = in_i16(x+32);
Expr              666 test/correctness/simd_op_check.cpp         Expr u16_1 = in_u16(x), u16_2 = in_u16(x+16), u16_3 = in_u16(x+32);
Expr              667 test/correctness/simd_op_check.cpp         Expr i32_1 = in_i32(x), i32_2 = in_i32(x+16), i32_3 = in_i32(x+32);
Expr              668 test/correctness/simd_op_check.cpp         Expr u32_1 = in_u32(x), u32_2 = in_u32(x+16), u32_3 = in_u32(x+32);
Expr              669 test/correctness/simd_op_check.cpp         Expr i64_1 = in_i64(x), i64_2 = in_i64(x+16), i64_3 = in_i64(x+32);
Expr              670 test/correctness/simd_op_check.cpp         Expr u64_1 = in_u64(x), u64_2 = in_u64(x+16), u64_3 = in_u64(x+32);
Expr              671 test/correctness/simd_op_check.cpp         Expr bool_1 = (f32_1 > 0.3f), bool_2 = (f32_1 < -0.3f), bool_3 = (f32_1 != -0.34f);
Expr             1142 test/correctness/simd_op_check.cpp                                                                     (Expr(int64_t(1)) << 31)));
Expr             1355 test/correctness/simd_op_check.cpp                     Expr e = (tmp1(x/2)*2 + 7)/4;
Expr             1431 test/correctness/simd_op_check.cpp         Expr f32_1 = in_f32(x), f32_2 = in_f32(x+16), f32_3 = in_f32(x+32);
Expr             1432 test/correctness/simd_op_check.cpp         Expr f64_1 = in_f64(x), f64_2 = in_f64(x+16), f64_3 = in_f64(x+32);
Expr             1433 test/correctness/simd_op_check.cpp         Expr i8_1  = in_i8(x),  i8_2  = in_i8(x+16),  i8_3  = in_i8(x+32), i8_4 = in_i8(x + 48);
Expr             1434 test/correctness/simd_op_check.cpp         Expr u8_1  = in_u8(x),  u8_2  = in_u8(x+16),  u8_3  = in_u8(x+32), u8_4 = in_u8(x + 48);
Expr             1435 test/correctness/simd_op_check.cpp         Expr u8_even = in_u8(2*x), u8_odd = in_u8(2*x+1);
Expr             1436 test/correctness/simd_op_check.cpp         Expr i16_1 = in_i16(x), i16_2 = in_i16(x+16), i16_3 = in_i16(x+32);
Expr             1437 test/correctness/simd_op_check.cpp         Expr u16_1 = in_u16(x), u16_2 = in_u16(x+16), u16_3 = in_u16(x+32);
Expr             1438 test/correctness/simd_op_check.cpp         Expr i32_1 = in_i32(x), i32_2 = in_i32(x+16), i32_3 = in_i32(x+32);
Expr             1439 test/correctness/simd_op_check.cpp         Expr u32_1 = in_u32(x), u32_2 = in_u32(x+16), u32_3 = in_u32(x+32);
Expr             1440 test/correctness/simd_op_check.cpp         Expr i64_1 = in_i64(x), i64_2 = in_i64(x+16), i64_3 = in_i64(x+32);
Expr             1441 test/correctness/simd_op_check.cpp         Expr u64_1 = in_u64(x), u64_2 = in_u64(x+16), u64_3 = in_u64(x+32);
Expr             1442 test/correctness/simd_op_check.cpp         Expr bool_1 = (f32_1 > 0.3f), bool_2 = (f32_1 < -0.3f), bool_3 = (f32_1 != -0.34f);
Expr             1916 test/correctness/simd_op_check.cpp         Expr u8_4x4[] = {
Expr             1941 test/correctness/simd_op_check.cpp         Expr f32_1 = in_f32(x), f32_2 = in_f32(x+16), f32_3 = in_f32(x+32);
Expr             1942 test/correctness/simd_op_check.cpp         Expr f64_1 = in_f64(x), f64_2 = in_f64(x+16), f64_3 = in_f64(x+32);
Expr             1943 test/correctness/simd_op_check.cpp         Expr i8_1  = in_i8(x),  i8_2  = in_i8(x+16),  i8_3  = in_i8(x+32);
Expr             1944 test/correctness/simd_op_check.cpp         Expr u8_1  = in_u8(x),  u8_2  = in_u8(x+16),  u8_3  = in_u8(x+32);
Expr             1945 test/correctness/simd_op_check.cpp         Expr i16_1 = in_i16(x), i16_2 = in_i16(x+16), i16_3 = in_i16(x+32);
Expr             1946 test/correctness/simd_op_check.cpp         Expr u16_1 = in_u16(x), u16_2 = in_u16(x+16), u16_3 = in_u16(x+32);
Expr             1947 test/correctness/simd_op_check.cpp         Expr i32_1 = in_i32(x), i32_2 = in_i32(x+16), i32_3 = in_i32(x+32);
Expr             1948 test/correctness/simd_op_check.cpp         Expr u32_1 = in_u32(x), u32_2 = in_u32(x+16), u32_3 = in_u32(x+32);
Expr             1949 test/correctness/simd_op_check.cpp         Expr i64_1 = in_i64(x), i64_2 = in_i64(x+16), i64_3 = in_i64(x+32);
Expr             1950 test/correctness/simd_op_check.cpp         Expr u64_1 = in_u64(x), u64_2 = in_u64(x+16), u64_3 = in_u64(x+32);
Expr                5 test/correctness/sort_exprs.cpp void sort2(Expr &a, Expr &b) {
Expr               11 test/correctness/sort_exprs.cpp         Expr tmp = min(a, b);
Expr               18 test/correctness/sort_exprs.cpp std::vector<Expr> bitonic_sort_inner(std::vector<Expr> v, bool flipped) {
Expr               24 test/correctness/sort_exprs.cpp     std::vector<Expr>::iterator middle = v.begin() + half_size;
Expr               25 test/correctness/sort_exprs.cpp     std::vector<Expr> a, b;
Expr               54 test/correctness/sort_exprs.cpp std::vector<Expr> bitonic_sort(std::vector<Expr> v) {
Expr               57 test/correctness/sort_exprs.cpp         v.push_back(Expr());
Expr               68 test/correctness/sort_exprs.cpp Expr median(std::vector<Expr> v) {
Expr               81 test/correctness/sort_exprs.cpp     std::vector<Expr> exprs;
Expr               84 test/correctness/specialize.cpp         Expr cond = (f.output_buffer().width() >= 4);
Expr              214 test/correctness/specialize.cpp         im.dim(0).set_stride(Expr()); // unconstrain the stride
Expr              336 test/correctness/specialize.cpp         Expr cond = f.output_buffer().width() >= 4;
Expr              372 test/correctness/specialize.cpp         Expr w = out.output_buffer().dim(0).extent();
Expr              452 test/correctness/specialize.cpp         Expr test = (p > 73) || (p*p + p + 1 == 0);
Expr              490 test/correctness/specialize.cpp         Expr test = (p > 73);
Expr              528 test/correctness/specialize.cpp         Expr const_false = Expr(0) == Expr(1);
Expr              529 test/correctness/specialize.cpp         Expr const_true = Expr(0) == Expr(0);
Expr              530 test/correctness/specialize.cpp         Expr different_const_true = Expr(1) == Expr(1);
Expr              567 test/correctness/specialize.cpp         Expr const_false = Expr(0) == Expr(1);
Expr              568 test/correctness/specialize.cpp         Expr const_true = Expr(0) == Expr(0);
Expr              569 test/correctness/specialize.cpp         Expr different_const_true = Expr(1) == Expr(1);
Expr              615 test/correctness/specialize.cpp         Expr const_true = Expr(0) == Expr(0);
Expr              616 test/correctness/specialize.cpp         Expr different_const_true = Expr(1) == Expr(1);
Expr               27 test/correctness/stream_compaction.cpp     Expr bin = clamp(cum_sum(r), 0, 1000);
Expr              123 test/correctness/trim_no_ops.cpp             Expr xi = r[0] + r[2]*10, yi = r[1] + r[3]*10;
Expr               23 test/correctness/truncated_pyramid.cpp     vector<pair<Expr, Expr> > sizes(levels);
Expr              109 test/correctness/tuple_undef.cpp         Expr arg_0 = clamp(select(r.x < 2, 13, undef<int>()), 0, 100);
Expr              110 test/correctness/tuple_undef.cpp         Expr arg_1 = clamp(select(r.x < 2, 23, undef<int>()), 0, 100);
Expr               55 test/correctness/undef.cpp     Expr left = max(rx-1, 0);
Expr               56 test/correctness/undef.cpp     Expr right = min(rx+1, 99);
Expr               13 test/correctness/unsafe_dedup_lets.cpp     Expr a = max(pa, pb), b = min(pa, pb);
Expr              215 test/correctness/vector_math.cpp     Expr xCoord = clamp(cast<int>(input(x, y)), 0, W-1);
Expr              216 test/correctness/vector_math.cpp     Expr yCoord = clamp(cast<int>(input(x+1, y)), 0, H-1);
Expr              342 test/correctness/vector_math.cpp 	f10(x, y) = (input(x, y)) / cast<A>(Expr(c));
Expr              458 test/correctness/vector_math.cpp         Expr a = input(x, y) * 0.5f;
Expr              459 test/correctness/vector_math.cpp         Expr b = input((x+1)%W, y) * 0.5f;
Expr              567 test/correctness/vector_math.cpp     Expr weight = input(x+2, y);
Expr                8 test/error/overflow_during_constant_folding.cpp     f(x) = Expr(0x12345678) * Expr(0x76543210);
Expr               14 test/error/tuple_arg_select_undef.cpp     Expr arg_0 = clamp(select(r.x < 2, 13, undef<int>()), 0, 20);
Expr               15 test/error/tuple_arg_select_undef.cpp     Expr arg_1 = clamp(select(r.x < 5, 23, undef<int>()), 0, 20);
Expr                6 test/generator/blur2x2_generator.cpp Halide::Expr is_interleaved(const T &p, int channels = 3) {
Expr               11 test/generator/blur2x2_generator.cpp Halide::Expr is_planar(const T &p, int channels = 3) {
Expr               45 test/generator/blur2x2_generator.cpp         input.dim(0).set_stride(Expr());
Expr               46 test/generator/blur2x2_generator.cpp         blur.dim(0).set_stride(Expr());
Expr               37 test/generator/cxx_mangling_define_extern_generator.cpp         args.push_back(Expr(11.0));
Expr                4 test/generator/cxx_mangling_generator.cpp Halide::Expr extract_value_global(Halide::Expr arg) {
Expr               10 test/generator/cxx_mangling_generator.cpp Halide::Expr extract_value_ns(Halide::Expr arg) {
Expr               68 test/generator/cxx_mangling_generator.cpp         Expr offset = offset_i8 + offset_u8 + offset_i16 + offset_u16 +
Expr               11 test/generator/mandelbrot_generator.cpp     Complex(Expr real, Expr imag) : t(real, imag) {}
Expr               14 test/generator/mandelbrot_generator.cpp     Expr real() const { return t[0]; }
Expr               15 test/generator/mandelbrot_generator.cpp     Expr imag() const { return t[1]; }
Expr               32 test/generator/mandelbrot_generator.cpp Expr magnitude(Complex a) { return (a * conjugate(a)).real(); }
Expr               11 test/generator/memory_profiler_mandelbrot_generator.cpp     Complex(Expr real, Expr imag) : t(real, imag) {}
Expr               14 test/generator/memory_profiler_mandelbrot_generator.cpp     Expr real() const { return t[0]; }
Expr               15 test/generator/memory_profiler_mandelbrot_generator.cpp     Expr imag() const { return t[1]; }
Expr               32 test/generator/memory_profiler_mandelbrot_generator.cpp Expr magnitude(Complex a) { return (a * conjugate(a)).real(); }
Expr               56 test/generator/metadata_tester_generator.cpp         Expr zero1 = array_input[1](x, y, c) - array_input[0](x, y, c);
Expr               57 test/generator/metadata_tester_generator.cpp         Expr zero2 = array_i32[1] - array_i32[0];
Expr               28 test/generator/msan_generator.cpp         msan_output.dim(0).set_stride(Expr()).set_extent(4)
Expr                6 test/generator/stubtest_jittest.cpp using Halide::Expr;
Expr               66 test/generator/stubtest_jittest.cpp     std::vector<Expr> int_args_expr(int_args.begin(), int_args.end());
Expr                8 test/generator/tiled_blur_generator.cpp Halide::Expr is_interleaved(const T &p, int channels = 3) {
Expr               13 test/generator/tiled_blur_generator.cpp Halide::Expr is_planar(const T &p, int channels = 3) {
Expr               23 test/generator/tiled_blur_generator.cpp         Expr input_float = cast<float>(input(x, y, c)) / 255.f;
Expr               36 test/generator/tiled_blur_generator.cpp         Expr tiled_blur_brightened = tiled_blur(x, y, c) * 1.2f;
Expr               54 test/generator/tiled_blur_generator.cpp         input.dim(0).set_stride(Expr());
Expr               55 test/generator/tiled_blur_generator.cpp         output.dim(0).set_stride(Expr());
Expr               26 test/opengl/conv_select.cpp     Expr coordx = clamp(x + r, 0, input.width() - 1);
Expr               29 test/opengl/conv_select.cpp     Expr R = select(f(x, y, c) > 9.0f, 1.0f, 0.0f);
Expr               30 test/opengl/conv_select.cpp     Expr G = select(f(x, y, c) > 9.0f, 0.f, 1.0f);
Expr               43 test/opengl/lut.cpp     Expr e = cast<int>(8.0f * cast<float>(input(x, y, c)) / 255.0f);
Expr               35 test/opengl/produce.cpp     Expr e = cast<int>(8.0f * cast<float>(input(x, y, c)) / 255.0f);
Expr              138 test/opengl/select.cpp     Expr temp = cast<uint8_t>(select(x == 0, 1, 2));
Expr              174 test/opengl/select.cpp     Expr temp = cast<uint8_t>(select(x - c > 0, 1, 2));
Expr               16 test/opengl/special_funcs.cpp void test_function(Expr e, Buffer<T> &cpu_result, Buffer<T> &gpu_result) {
Expr               32 test/opengl/special_funcs.cpp bool test_exact(Expr r, Expr g, Expr b) {
Expr               33 test/opengl/special_funcs.cpp     Expr e = cast<T>(select(c == T(0), r,
Expr               63 test/opengl/special_funcs.cpp bool test_approx(Expr r, Expr g, Expr b, double rms_error) {
Expr               64 test/opengl/special_funcs.cpp     Expr e = cast<T>(select(c == 0, r, c == 1, g, b));
Expr              118 test/opengl/special_funcs.cpp     Expr r = (256 * x + y) / ceilf(65536.f / (2 * 3.1415926536f));
Expr               23 test/opengl/sum_reduction.cpp     Expr coordx = clamp(x + r, 0, input.width() - 1);
Expr              169 test/opengl/varying.cpp     Expr foo = p;
Expr               59 test/performance/fast_pow.cpp     Expr fast_delta = correct_result(r.x, r.y) - fast_result(r.x, r.y);
Expr               60 test/performance/fast_pow.cpp     Expr faster_delta = correct_result(r.x, r.y) - faster_result(r.x, r.y);
Expr               15 test/performance/parallel_performance.cpp     Expr math = cast<float>(x+y);
Expr               27 test/performance/profiler.cpp             Expr e = f[i-1](c, x);
Expr               19 test/performance/sort.cpp             Expr chunk_start = (x/(2*chunk_size))*(2*chunk_size);
Expr               20 test/performance/sort.cpp             Expr chunk_end = (x/(2*chunk_size) + 1)*(2*chunk_size);
Expr               21 test/performance/sort.cpp             Expr chunk_middle = chunk_start + chunk_size;
Expr               22 test/performance/sort.cpp             Expr chunk_index = x - chunk_start;
Expr               25 test/performance/sort.cpp                 Expr partner = 2*chunk_middle - x - 1;
Expr               35 test/performance/sort.cpp                 Expr partner = chunk_start + (chunk_index + chunk_size) % (chunk_size*2);
Expr               70 test/performance/sort.cpp         Expr a0 = input(4*y);
Expr               71 test/performance/sort.cpp         Expr a1 = input(4*y+1);
Expr               72 test/performance/sort.cpp         Expr a2 = input(4*y+2);
Expr               73 test/performance/sort.cpp         Expr a3 = input(4*y+3);
Expr               75 test/performance/sort.cpp         Expr b0 = min(a0, a1);
Expr               76 test/performance/sort.cpp         Expr b1 = max(a0, a1);
Expr               77 test/performance/sort.cpp         Expr b2 = min(a2, a3);
Expr               78 test/performance/sort.cpp         Expr b3 = max(a2, a3);
Expr              113 test/performance/sort.cpp         Expr candidate_a = merge_rows(r-1, y)[0];
Expr              114 test/performance/sort.cpp         Expr candidate_b = merge_rows(r-1, y)[1];
Expr              115 test/performance/sort.cpp         Expr valid_a = candidate_a < chunk_size;
Expr              116 test/performance/sort.cpp         Expr valid_b = candidate_b < chunk_size;
Expr              117 test/performance/sort.cpp         Expr value_a = result(clamp(candidate_a, 0, chunk_size-1), 2*y);
Expr              118 test/performance/sort.cpp         Expr value_b = result(clamp(candidate_b, 0, chunk_size-1), 2*y+1);
Expr               40 test/performance/vectorize.cpp     Expr e = input(x, y);
Expr               36 test/performance/vectorize_pred.cpp     Expr e = input(r.x, r.y);
Expr               39 test/performance/wrap.cpp         Expr prev = (i == 0) ? Expr(0) : Expr(f[i-1](x, y));
Expr               40 test/performance/wrap.cpp         Expr stencil = 0;
Expr               83 test/performance/wrap.cpp         Expr prev = (i == 0) ? Expr(0) : Expr(f[i-1](x, y));
Expr               84 test/performance/wrap.cpp         Expr stencil = 0;
Expr               49 tutorial/lesson_01_basics.cpp     Halide::Expr e = x + y;
Expr               51 tutorial/lesson_02_input_image.cpp     Halide::Expr value = input(x, y, c);
Expr              109 tutorial/lesson_04_debugging_2.cpp         Expr e = cos(y);
Expr              130 tutorial/lesson_04_debugging_2.cpp         Expr e = cos(y);
Expr              153 tutorial/lesson_04_debugging_2.cpp         Expr e = 1;
Expr              110 tutorial/lesson_07_multi_stage_pipelines.cpp         Expr clamped_x = clamp(x, 0, input.width()-1);
Expr              114 tutorial/lesson_07_multi_stage_pipelines.cpp         Expr clamped_y = clamp(y, 0, input.height()-1);
Expr              766 tutorial/lesson_09_update_definitions.cpp         Expr x_clamped = clamp(x, 0, input.width()-1);
Expr              767 tutorial/lesson_09_update_definitions.cpp         Expr y_clamped = clamp(y, 0, input.height()-1);
Expr              131 tutorial/lesson_13_tuples.cpp     Expr integer_part = multi_valued_2(x, y)[0];
Expr              132 tutorial/lesson_13_tuples.cpp     Expr floating_part = multi_valued_2(x, y)[1];
Expr              156 tutorial/lesson_13_tuples.cpp         Expr old_index = arg_max()[0];
Expr              157 tutorial/lesson_13_tuples.cpp         Expr old_max   = arg_max()[1];
Expr              158 tutorial/lesson_13_tuples.cpp         Expr new_index = select(old_max < input(r), r, old_index);
Expr              159 tutorial/lesson_13_tuples.cpp         Expr new_max   = max(input(r), old_max);
Expr              203 tutorial/lesson_13_tuples.cpp             Expr real, imag;
Expr              209 tutorial/lesson_13_tuples.cpp             Complex(Expr r, Expr i) : real(r), imag(i) {}
Expr              231 tutorial/lesson_13_tuples.cpp             Expr magnitude() const {
Expr              266 tutorial/lesson_13_tuples.cpp         Expr escape_condition = Complex(mandelbrot(x, y, r)).magnitude() < 16.0f;
Expr               25 tutorial/lesson_14_types.cpp Expr average(Expr a, Expr b);
Expr               68 tutorial/lesson_14_types.cpp         assert(Expr(x).type() == Int(32));
Expr               99 tutorial/lesson_14_types.cpp         Expr u8 = cast<uint8_t>(x);
Expr              100 tutorial/lesson_14_types.cpp         Expr u16 = cast<uint16_t>(x);
Expr              101 tutorial/lesson_14_types.cpp         Expr u32 = cast<uint32_t>(x);
Expr              102 tutorial/lesson_14_types.cpp         Expr u64 = cast<uint64_t>(x);
Expr              103 tutorial/lesson_14_types.cpp         Expr s8 = cast<int8_t>(x);
Expr              104 tutorial/lesson_14_types.cpp         Expr s16 = cast<int16_t>(x);
Expr              105 tutorial/lesson_14_types.cpp         Expr s32 = cast<int32_t>(x);
Expr              106 tutorial/lesson_14_types.cpp         Expr s64 = cast<int64_t>(x);
Expr              107 tutorial/lesson_14_types.cpp         Expr f32 = cast<float>(x);
Expr              108 tutorial/lesson_14_types.cpp         Expr f64 = cast<double>(x);
Expr              119 tutorial/lesson_14_types.cpp             Expr e = cast(t, x);
Expr              217 tutorial/lesson_14_types.cpp Expr average(Expr a, Expr b) {
Expr              156 tutorial/lesson_16_rgb_generate.cpp             input.dim(0).set_stride(Expr()); // Use a default-constructed
Expr              160 tutorial/lesson_16_rgb_generate.cpp             brighter.output_buffer().dim(0).set_stride(Expr());
Expr              169 tutorial/lesson_16_rgb_generate.cpp             input.dim(0).set_stride(Expr()); // Use an undefined Expr to
Expr              173 tutorial/lesson_16_rgb_generate.cpp             brighter.output_buffer().dim(0).set_stride(Expr());
Expr              179 tutorial/lesson_16_rgb_generate.cpp             Expr input_is_planar =
Expr              181 tutorial/lesson_16_rgb_generate.cpp             Expr input_is_interleaved =
Expr              186 tutorial/lesson_16_rgb_generate.cpp             Expr output_is_planar =
Expr              188 tutorial/lesson_16_rgb_generate.cpp             Expr output_is_interleaved =