type 89 apps/HelloAndroid/jni/hello_wrapper.cpp srcBuf.type = halide_type_of<uint8_t>(); type 106 apps/HelloAndroid/jni/hello_wrapper.cpp dstBuf.type = halide_type_of<uint8_t>(); type 78 apps/HelloAndroidGL/src/org/halide_lang/hellohalidegl/HelloHalideGL.java private int compileShader(int type, String source) { type 79 apps/HelloAndroidGL/src/org/halide_lang/hellohalidegl/HelloHalideGL.java int shader = gl.glCreateShader(type); type 42 apps/camera_pipe/camera_pipe_generator.cpp Type wider = a.type().with_bits(a.type().bits() * 2); type 43 apps/camera_pipe/camera_pipe_generator.cpp return cast(a.type(), (cast(wider, a) + b + 1)/2); type 111 apps/fft/complex.h inline ComplexExpr cast(Halide::Type type, ComplexExpr z) { type 112 apps/fft/complex.h return ComplexExpr(Halide::cast(type, re(z)), Halide::cast(type, im(z))); type 110 apps/fft/fft.cpp Type type = f.output_types()[0]; type 113 apps/fft/fft.cpp F(f.args()) = undef_z(type); type 125 apps/fft/fft.cpp Type type = f.output_types()[0]; type 128 apps/fft/fft.cpp F(f.args()) = undef_z(type); type 159 apps/fft/fft.cpp Type type = f.output_types()[0]; type 162 apps/fft/fft.cpp F(f.args()) = undef_z(type); type 190 apps/fft/fft.cpp Type type = f.output_types()[0]; type 193 apps/fft/fft.cpp F(f.args()) = undef_z(type); type 200 apps/linear_algebra/benchmarks/cblas_benchmarks.cpp char type = subroutine[0]; type 204 apps/linear_algebra/benchmarks/cblas_benchmarks.cpp if (type == 's') { type 206 apps/linear_algebra/benchmarks/cblas_benchmarks.cpp } else if (type == 'd') { type 111 apps/linear_algebra/benchmarks/eigen_benchmarks.cpp char type = subroutine[0]; type 115 apps/linear_algebra/benchmarks/eigen_benchmarks.cpp if (type == 's') { type 117 apps/linear_algebra/benchmarks/eigen_benchmarks.cpp } else if (type == 'd') { type 178 apps/linear_algebra/benchmarks/halide_benchmarks.cpp char type = subroutine[0]; type 182 apps/linear_algebra/benchmarks/halide_benchmarks.cpp if (type == 's') { type 184 apps/linear_algebra/benchmarks/halide_benchmarks.cpp } else if (type == 'd') { type 15 apps/linear_algebra/benchmarks/macros.h #define L1Benchmark(benchmark, type, code) \ type 25 apps/linear_algebra/benchmarks/macros.h << std::setw(15) << type << #benchmark \ type 33 apps/linear_algebra/benchmarks/macros.h #define L2Benchmark(benchmark, type, code) \ type 46 apps/linear_algebra/benchmarks/macros.h << std::setw(15) << type << #benchmark \ type 54 apps/linear_algebra/benchmarks/macros.h #define L3Benchmark(benchmark, type, code) \ type 65 apps/linear_algebra/benchmarks/macros.h << std::setw(15) << type << #benchmark \ type 36 apps/linear_algebra/src/blas_l3_generators.cpp const int vec = natural_vector_size(a_.type()); type 56 apps/simd_op_check/driver.cpp buf.type = halide_type_of<T>(); type 7 apps/templates/tests/example_generator.cpp GeneratorParam<Halide::Type> type{ "type", UInt(8) }; type 13 apps/templates/tests/example_generator.cpp input = ImageParam(type, input.dimensions(), input.name()); type 182 python_bindings/numpy/ndarray.hpp typename boost::enable_if<boost::is_integral<typename Container::value_type>>::type *enabled = NULL) { type 63 python_bindings/python/Argument.cpp .def_readonly("type", &Argument::type, type 43 python_bindings/python/Expr.cpp const h::Type &t = expr.type(); type 87 python_bindings/python/Expr.cpp .def("type", &Expr::type, p::arg("self"), type 192 python_bindings/python/IROperator.cpp h::Expr undef0(h::Type type) { type 193 python_bindings/python/IROperator.cpp return h::undef(type); type 243 python_bindings/python/Image.cpp void defineBuffer_impl(const std::string suffix, const h::Type type) { type 416 python_bindings/python/Image.cpp if (im.type() == h::UInt(8)) { type 417 python_bindings/python/Image.cpp p::manage_new_object::apply<h::Buffer<uint8_t> *>::type converter; type 419 python_bindings/python/Image.cpp } else if (im.type() == h::UInt(16)) { type 420 python_bindings/python/Image.cpp p::manage_new_object::apply<h::Buffer<uint16_t> *>::type converter; type 422 python_bindings/python/Image.cpp } else if (im.type() == h::UInt(32)) { type 423 python_bindings/python/Image.cpp p::manage_new_object::apply<h::Buffer<uint32_t> *>::type converter; type 425 python_bindings/python/Image.cpp } else if (im.type() == h::Int(8)) { type 426 python_bindings/python/Image.cpp p::manage_new_object::apply<h::Buffer<int8_t> *>::type converter; type 428 python_bindings/python/Image.cpp } else if (im.type() == h::Int(16)) { type 429 python_bindings/python/Image.cpp p::manage_new_object::apply<h::Buffer<int16_t> *>::type converter; type 431 python_bindings/python/Image.cpp } else if (im.type() == h::Int(32)) { type 432 python_bindings/python/Image.cpp p::manage_new_object::apply<h::Buffer<int32_t> *>::type converter; type 434 python_bindings/python/Image.cpp } else if (im.type() == h::Float(32)) { type 435 python_bindings/python/Image.cpp p::manage_new_object::apply<h::Buffer<float> *>::type converter; type 437 python_bindings/python/Image.cpp } else if (im.type() == h::Float(64)) { type 438 python_bindings/python/Image.cpp p::manage_new_object::apply<h::Buffer<double> *>::type converter; type 533 python_bindings/python/Image.cpp stride[i] = im.dim(i).stride() * im.type().bytes(); type 538 python_bindings/python/Image.cpp type_to_dtype(im.type()), type 551 python_bindings/python/Image.cpp typedef typename p::manage_new_object::apply<BufferType *>::type converter_t; type 571 python_bindings/python/Image.cpp static p::object create_buffer0(h::Type type) { type 572 python_bindings/python/Image.cpp return create_buffer_impl(type); type 575 python_bindings/python/Image.cpp static p::object create_buffer1(h::Type type, int x) { type 576 python_bindings/python/Image.cpp return create_buffer_impl(type, x); type 579 python_bindings/python/Image.cpp static p::object create_buffer2(h::Type type, int x, int y) { type 580 python_bindings/python/Image.cpp return create_buffer_impl(type, x, y); type 583 python_bindings/python/Image.cpp static p::object create_buffer3(h::Type type, int x, int y, int z) { type 584 python_bindings/python/Image.cpp return create_buffer_impl(type, x, y, z); type 587 python_bindings/python/Image.cpp static p::object create_buffer4(h::Type type, int x, int y, int z, int w) { type 588 python_bindings/python/Image.cpp return create_buffer_impl(type, x, y, z, w); type 591 python_bindings/python/Image.cpp static p::object create_buffer_from_realization(h::Type type, h::Realization &r) { type 592 python_bindings/python/Image.cpp return create_buffer_impl(type, r); type 596 python_bindings/python/Image.cpp return create_buffer_impl(b.type, b); type 42 python_bindings/python/Param.cpp const h::Type &t = param.type(); type 286 python_bindings/python/Param.cpp const h::Type &t = param.type(); type 294 python_bindings/python/Param.cpp void defineParam_impl(const std::string suffix, const h::Type type) { type 340 python_bindings/python/Param.cpp .def("type", &Param<T>::type, p::arg("self"), type 400 python_bindings/python/Param.cpp typedef typename p::manage_new_object::apply<ParamType *>::type converter_t; type 410 python_bindings/python/Param.cpp p::object create_param0_impl(h::Type type, std::string name) { type 411 python_bindings/python/Param.cpp if (h::type_of<T>() == type) { type 418 python_bindings/python/Param.cpp return create_param0_impl<Types...>(type, name); // keep recursing type 423 python_bindings/python/Param.cpp p::object create_param0_impl<end_of_recursion_t>(h::Type type, std::string /*name*/) { // end of recursion, did not find a matching type type 424 python_bindings/python/Param.cpp printf("create_param0_impl<end_of_recursion_t> received %s\n", type_repr(type).c_str()); type 504 python_bindings/python/Param.cpp p::object operator()(h::Type type, p::object val, Args... args) { type 505 python_bindings/python/Param.cpp typedef typename boost::mpl::front<PixelTypes>::type pixel_t; type 506 python_bindings/python/Param.cpp if (h::type_of<pixel_t>() == type) { type 512 python_bindings/python/Param.cpp printf("create_param1_impl type == %s\n", type_repr(type).c_str()); type 519 python_bindings/python/Param.cpp typedef typename boost::mpl::pop_front<PixelTypes>::type pixels_types_tail_t; type 520 python_bindings/python/Param.cpp return create_param1_impl_t<pixels_types_tail_t, Args...>()(type, val, args...); type 553 python_bindings/python/Param.cpp struct create_param1_impl_t<boost::mpl::l_end::type, Args...> { type 554 python_bindings/python/Param.cpp p::object operator()(h::Type type, p::object val, Args... args) { type 556 python_bindings/python/Param.cpp printf("create_param1_impl<end_of_recursion_t> received %s\n", type_repr(type).c_str()); type 563 python_bindings/python/Param.cpp static p::object create_param0(h::Type type) { type 567 python_bindings/python/Param.cpp float, double>(type, ""); type 570 python_bindings/python/Param.cpp static p::object create_param1(h::Type type, std::string name) { type 574 python_bindings/python/Param.cpp float, double>(type, name); type 577 python_bindings/python/Param.cpp static p::object create_param2(h::Type type, p::object val) { type 578 python_bindings/python/Param.cpp return create_param1_impl_t<pixel_types_t>()(type, val); type 581 python_bindings/python/Param.cpp static p::object create_param3(h::Type type, std::string name, p::object val) { type 582 python_bindings/python/Param.cpp return create_param1_impl_t<pixel_types_t, std::string>()(type, val, name); type 585 python_bindings/python/Param.cpp static p::object create_param4(h::Type type, p::object val, h::Expr min, h::Expr max) { type 586 python_bindings/python/Param.cpp return create_param1_impl_t<pixel_types_t, h::Expr, h::Expr>()(type, val, min, max); type 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) { type 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); type 22 src/AddImageChecks.cpp Type type; type 36 src/AddImageChecks.cpp r.type = op->type.element_of(); type 42 src/AddImageChecks.cpp r.type = op->type.element_of(); type 54 src/AddImageChecks.cpp r.type = op->param.type(); type 80 src/AddImageChecks.cpp output_buffer.type = f.values()[i].type(); type 144 src/AddImageChecks.cpp Type type = buf.second.type; type 230 src/AddImageChecks.cpp type_code, make_const(UInt(8), (int)type.code()), type 231 src/AddImageChecks.cpp type_bits, make_const(UInt(8), type.bits()), type 232 src/AddImageChecks.cpp type_lanes, make_const(UInt(16), type.lanes())}, type 235 src/AddImageChecks.cpp AssertStmt::make((type_code == type.code()) && type 236 src/AddImageChecks.cpp (type_bits == type.bits()) && type 237 src/AddImageChecks.cpp (type_lanes == type.lanes()), error)); type 356 src/AddImageChecks.cpp builder.type = type; type 499 src/AddImageChecks.cpp if (param.defined() && param.host_alignment() != param.type().bytes()) { type 57 src/AddParameterChecks.cpp Expr constrained_var = Variable::make(param.type(), constrained_name); type 58 src/AddParameterChecks.cpp Expr constrained_value = Variable::make(param.type(), i.first, param); type 101 src/AddParameterChecks.cpp Type wider = p.value.type().with_bits(64); type 38 src/AlignLoads.cpp return mutate(Load::make(load->type.with_lanes(index.type().lanes()), load->name, type 39 src/AlignLoads.cpp index, load->image, load->param, const_true(index.type().lanes()))); type 49 src/AlignLoads.cpp if (!op->type.is_vector()) { type 71 src/AlignLoads.cpp int native_lanes = required_alignment / op->type.bytes(); type 158 src/AlignLoads.cpp if (op->value.type() == Int(32)) { type 165 src/AlignLoads.cpp if (op->value.type() == Int(32)) { type 104 src/AllocationBoundsInference.cpp internal_assert(min_var.type() == min.type()); type 105 src/AllocationBoundsInference.cpp internal_assert(max_var.type() == max.type()); type 30 src/ApplySplit.h Type type; type 33 src/ApplySplit.h : name(n), value(val), type(t) {} type 34 src/ApplySplit.h ApplySplitResult(Expr val) : name(""), value(val), type(Predicate) {} type 36 src/ApplySplit.h bool is_substitution() const {return (type == Substitution);} type 37 src/ApplySplit.h bool is_let() const {return (type == LetStmt);} type 38 src/ApplySplit.h bool is_predicate() const {return (type == Predicate);} type 54 src/Argument.h Type type; type 65 src/Argument.h name(_name), kind(_kind), dimensions((uint8_t) _dimensions), type(_type), def(_def), min(_min), max(_max) { type 82 src/Argument.h type(im.type()) {} type 94 src/Argument.h type == rhs.type && type 82 src/AssociativeOpsTable.cpp ValType type; type 85 src/AssociativeOpsTable.cpp TableKey(ValType t, RootExpr r, size_t d) : type(t), root(r), dim(d) {} type 88 src/AssociativeOpsTable.cpp return (type == other.type) && (root == other.root) && (dim == other.dim); type 91 src/AssociativeOpsTable.cpp if (type < other.type) { type 93 src/AssociativeOpsTable.cpp } else if (type > other.type) { type 327 src/AssociativeOpsTable.cpp user_assert(exprs[i-1].type() == exprs[i].type()) type 338 src/AssociativeOpsTable.cpp debug(5) << "Returning Add root table for type " << exprs[0].type() << "\n"; type 341 src/AssociativeOpsTable.cpp debug(5) << "Returning Sub root table for type " << exprs[0].type() << "\n"; type 344 src/AssociativeOpsTable.cpp debug(5) << "Returning Mul root table for type " << exprs[0].type() << "\n"; type 350 src/AssociativeOpsTable.cpp debug(5) << "Returning Max root table for type " << exprs[0].type() << "\n"; type 353 src/AssociativeOpsTable.cpp debug(5) << "Returning Select root table for type " << exprs[0].type() << "\n"; type 356 src/AssociativeOpsTable.cpp debug(5) << "Returning And root table for type " << exprs[0].type() << "\n"; type 359 src/AssociativeOpsTable.cpp debug(5) << "Returning Or root table for type " << exprs[0].type() << "\n"; type 362 src/AssociativeOpsTable.cpp debug(5) << "Returning Cast root table for type " << exprs[0].type() << "\n"; type 367 src/AssociativeOpsTable.cpp const vector<AssociativePattern> &table = get_ops_table_helper(exprs[0].type(), root, exprs.size()); type 75 src/Associativity.cpp expr = Variable::make(op->type, op_x_names[op->value_index]); type 203 src/Associativity.cpp replacement.push_back({y_part, Variable::make(y_part.type(), op_y_names[index])}); type 233 src/Associativity.cpp Type t = exprs[0].type(); type 499 src/Associativity.cpp replacement.emplace(assoc_op.xs[i].var, Variable::make(result.xs[i].expr.type(), result.xs[i].var)); type 502 src/Associativity.cpp replacement.emplace(assoc_op.ys[i].var, Variable::make(result.ys[i].expr.type(), result.ys[i].var)); type 104 src/BoundaryConditions.h typename std::enable_if<Halide::Internal::all_are_convertible<Expr, Bounds...>::value>::type* = nullptr> type 112 src/BoundaryConditions.h typename std::enable_if<Halide::Internal::all_are_convertible<Expr, Bounds...>::value>::type* = nullptr> type 147 src/BoundaryConditions.h typename std::enable_if<Halide::Internal::all_are_convertible<Expr, Bounds...>::value>::type* = nullptr> type 182 src/BoundaryConditions.h typename std::enable_if<Halide::Internal::all_are_convertible<Expr, Bounds...>::value>::type* = nullptr> type 217 src/BoundaryConditions.h typename std::enable_if<Halide::Internal::all_are_convertible<Expr, Bounds...>::value>::type* = nullptr> type 255 src/BoundaryConditions.h typename std::enable_if<Halide::Internal::all_are_convertible<Expr, Bounds...>::value>::type* = nullptr> type 32 src/Bounds.cpp Expr zero = make_zero(x.type()); type 72 src/Bounds.cpp return simplify(Cast::make(cast->type, a)); type 143 src/Bounds.cpp Type to = op->type.element_of(); type 144 src/Bounds.cpp Type from = op->value.type().element_of(); type 208 src/Bounds.cpp } else if (op->type.is_vector()) { type 210 src/Bounds.cpp bounds_of_type(op->type); type 236 src/Bounds.cpp if (!op->type.is_float() && op->type.bits() < 32) { type 240 src/Bounds.cpp bounds_of_type(op->type); type 247 src/Bounds.cpp bounds_of_type(op->type); type 275 src/Bounds.cpp if (!op->type.is_float() && op->type.bits() < 32) { type 279 src/Bounds.cpp bounds_of_type(op->type); type 286 src/Bounds.cpp bounds_of_type(op->type); type 293 src/Bounds.cpp if (op->type.is_uint() && type 296 src/Bounds.cpp bounds_of_type(op->type); type 323 src/Bounds.cpp } else if (is_positive_const(b.min) || op->type.is_uint()) { type 329 src/Bounds.cpp Expr cmp = b.min >= make_zero(b.min.type().element_of()); type 344 src/Bounds.cpp if (op->type.bits() < 32 && !op->type.is_float()) { type 352 src/Bounds.cpp bounds_of_type(op->type); type 355 src/Bounds.cpp bounds_of_type(op->type); type 375 src/Bounds.cpp if (is_positive_const(b.min) || op->type.is_uint()) { type 383 src/Bounds.cpp Expr cmp = b.min > make_zero(b.min.type().element_of()); type 423 src/Bounds.cpp Type t = op->type.element_of(); type 429 src/Bounds.cpp if (b.max.type().is_uint() || (b.max.type().is_int() && is_positive_const(b.min))) { type 432 src/Bounds.cpp } else if (b.max.type().is_int()) { type 479 src/Bounds.cpp bounds_of_type(op->type); type 483 src/Bounds.cpp bounds_of_type(op->type); type 487 src/Bounds.cpp bounds_of_type(op->type); type 491 src/Bounds.cpp bounds_of_type(op->type); type 495 src/Bounds.cpp bounds_of_type(op->type); type 499 src/Bounds.cpp bounds_of_type(op->type); type 503 src/Bounds.cpp bounds_of_type(op->type); type 507 src/Bounds.cpp bounds_of_type(op->type); type 511 src/Bounds.cpp bounds_of_type(op->type); type 528 src/Bounds.cpp (op->condition.type().is_scalar() && type 553 src/Bounds.cpp Load::make(op->type.element_of(), op->name, interval.min, type 558 src/Bounds.cpp bounds_of_type(op->type); type 565 src/Bounds.cpp Expr var = Variable::make(op->base.type(), var_name); type 567 src/Bounds.cpp scope.push(var_name, Interval(make_const(var.type(), 0), type 568 src/Bounds.cpp make_const(var.type(), op->lanes-1))); type 594 src/Bounds.cpp Type t = op->type.element_of(); type 613 src/Bounds.cpp } else if (op->args[0].type().is_int() && op->args[0].type().bits() >= 32) { type 676 src/Bounds.cpp bounds_of_func(op->name, op->value_index, op->type); type 700 src/Bounds.cpp var.min = Variable::make(op->value.type().element_of(), min_name); type 710 src/Bounds.cpp var.max = Variable::make(op->value.type().element_of(), max_name); type 789 src/Bounds.cpp internal_assert(b.interval.min.type().is_scalar()) type 794 src/Bounds.cpp internal_assert(b.interval.max.type().is_scalar()) type 1072 src/Bounds.cpp scope.push(op->name, Interval(Variable::make(op->value.type(), min_name), type 1073 src/Bounds.cpp Variable::make(op->value.type(), max_name))); type 1137 src/Bounds.cpp if (a.defined() && b.defined() && a.type() == Int(32)) { type 156 src/BoundsInference.cpp Expr cond_val = Call::make(val.type(), type 158 src/BoundsInference.cpp {likely(predicates[0]), val, make_zero(val.type())}, type 161 src/BoundsInference.cpp cond_val = Call::make(cond_val.type(), type 163 src/BoundsInference.cpp {likely(predicates[i]), cond_val, make_zero(cond_val.type())}, type 499 src/BoundsInference.cpp builder.type = input.output_types()[k]; type 541 src/BoundsInference.cpp builder.type = func.output_types()[j]; type 22 src/Buffer.cpp user_assert(Int(32).can_represent(e.type())) type 30 src/Buffer.cpp } else if (e.type() == Int(32)) { type 39 src/Buffer.h typename = typename std::enable_if<!std::is_convertible<T, std::string>::value>::type> type 80 src/Buffer.h using add_const_if_T_is_const = typename std::conditional<std::is_const<T>::value, const T2, T2>::type; type 142 src/Buffer.h typename = typename std::enable_if<Internal::all_ints_and_optional_name<Args...>::value>::type> type 157 src/Buffer.h typename = typename std::enable_if<Internal::all_ints_and_optional_name<Args...>::value>::type> type 177 src/Buffer.h typename = typename std::enable_if<Internal::all_ints_and_optional_name<Args...>::value>::type> type 185 src/Buffer.h typename = typename std::enable_if<Internal::all_ints_and_optional_name<Args...>::value>::type> type 383 src/Buffer.h Type type() const { type 384 src/Buffer.h return contents->buf.type(); type 130 src/CPlusPlusMangle.cpp const Type &type; type 136 src/CPlusPlusMangle.cpp QualsState(const Type &type, const std::string &base_mode) : type(type), base_mode(base_mode) { } type 146 src/CPlusPlusMangle.cpp type.handle_type->reference_type == halide_handle_cplusplus_type::NotReference)) { type 152 src/CPlusPlusMangle.cpp if (last_is_pointer && (is_pointer || type.handle_type->reference_type != halide_handle_cplusplus_type::NotReference)) { type 170 src/CPlusPlusMangle.cpp if (type.handle_type->reference_type == halide_handle_cplusplus_type::LValueReference) { type 172 src/CPlusPlusMangle.cpp } else if (type.handle_type->reference_type == halide_handle_cplusplus_type::RValueReference) { type 182 src/CPlusPlusMangle.cpp std::string mangle_indirection_and_cvr_quals(const Type &type, const Target &target) { type 183 src/CPlusPlusMangle.cpp QualsState state(type, (target.bits == 64) ? "E" : ""); type 184 src/CPlusPlusMangle.cpp for (uint8_t modifier : type.handle_type->cpp_type_modifiers) { type 192 src/CPlusPlusMangle.cpp MangledNamePart mangle_inner_name(const Type &type, const Target &target, PreviousDeclarations &prev_decls) { type 195 src/CPlusPlusMangle.cpp std::string quals = mangle_indirection_and_cvr_quals(type, target); type 196 src/CPlusPlusMangle.cpp if (type.handle_type->inner_name.cpp_type_type == halide_cplusplus_type_name::Simple) { type 197 src/CPlusPlusMangle.cpp return quals + simple_type_to_mangle_char(type.handle_type->inner_name.name, target); type 200 src/CPlusPlusMangle.cpp if (type.handle_type->inner_name.cpp_type_type == halide_cplusplus_type_name::Struct) { type 202 src/CPlusPlusMangle.cpp } else if (type.handle_type->inner_name.cpp_type_type == halide_cplusplus_type_name::Class) { type 204 src/CPlusPlusMangle.cpp } else if (type.handle_type->inner_name.cpp_type_type == halide_cplusplus_type_name::Union) { type 206 src/CPlusPlusMangle.cpp } else if (type.handle_type->inner_name.cpp_type_type == halide_cplusplus_type_name::Enum) { type 209 src/CPlusPlusMangle.cpp result.full_name = quals + code + type.handle_type->inner_name.name + "@"; type 210 src/CPlusPlusMangle.cpp result.with_substitutions = quals + code + prev_decls.check_and_enter_name(type.handle_type->inner_name.name); type 212 src/CPlusPlusMangle.cpp for (size_t i = type.handle_type->enclosing_types.size(); i > 0; i--) { type 213 src/CPlusPlusMangle.cpp result.full_name += type.handle_type->enclosing_types[i - 1].name + "@"; type 214 src/CPlusPlusMangle.cpp result.with_substitutions += prev_decls.check_and_enter_name(type.handle_type->enclosing_types[i - 1].name); type 217 src/CPlusPlusMangle.cpp for (size_t i = type.handle_type->namespaces.size(); i > 0; i--) { type 218 src/CPlusPlusMangle.cpp result.full_name += type.handle_type->namespaces[i - 1] + "@"; type 219 src/CPlusPlusMangle.cpp result.with_substitutions += prev_decls.check_and_enter_name(type.handle_type->namespaces[i - 1]); type 229 src/CPlusPlusMangle.cpp MangledNamePart mangle_type(const Type &type, const Target &target, PreviousDeclarations &prev_decls) { type 230 src/CPlusPlusMangle.cpp if (type.is_int()) { type 231 src/CPlusPlusMangle.cpp switch (type.bits()) { type 241 src/CPlusPlusMangle.cpp internal_error << "Unexpected integer size: " << type.bits() << ".\n"; type 243 src/CPlusPlusMangle.cpp } else if (type.is_uint()) { type 244 src/CPlusPlusMangle.cpp switch (type.bits()) { type 256 src/CPlusPlusMangle.cpp internal_error << "Unexpected unsigned integer size: " << type.bits() << "\n"; type 258 src/CPlusPlusMangle.cpp } else if (type.is_float()) { type 259 src/CPlusPlusMangle.cpp if (type.bits() == 32) { type 261 src/CPlusPlusMangle.cpp } else if (type.bits() == 64) { type 264 src/CPlusPlusMangle.cpp internal_error << "Unexpected floating-point type size: " << type.bits() << ".\n"; type 266 src/CPlusPlusMangle.cpp } else if (type.is_handle()) { type 267 src/CPlusPlusMangle.cpp return mangle_inner_name((type.handle_type != nullptr) ? type : non_null_void_star_type(), type 270 src/CPlusPlusMangle.cpp internal_error << "Unexpected kind of type. Code: " << type.code() << "\n"; type 295 src/CPlusPlusMangle.cpp result += prev_decls.check_and_enter_type(mangle_type(arg.is_expr() ? arg.expr.type() : type_of<struct halide_buffer_t *>(), target, prev_decls)); type 418 src/CPlusPlusMangle.cpp MangledNamePart apply_indirection_and_cvr_quals(const Type &type, MangledNamePart &name_part, type 420 src/CPlusPlusMangle.cpp for (uint8_t modifier : type.handle_type->cpp_type_modifiers) { type 424 src/CPlusPlusMangle.cpp type.handle_type->reference_type == halide_handle_cplusplus_type::NotReference) { type 451 src/CPlusPlusMangle.cpp if (type.handle_type->reference_type == halide_handle_cplusplus_type::LValueReference) { type 453 src/CPlusPlusMangle.cpp } else if (type.handle_type->reference_type == halide_handle_cplusplus_type::RValueReference) { type 507 src/CPlusPlusMangle.cpp std::string mangle_inner_name(const Type &type, const Target &target, PrevPrefixes &prevs) { type 508 src/CPlusPlusMangle.cpp if (type.handle_type->inner_name.cpp_type_type == halide_cplusplus_type_name::Simple) { type 509 src/CPlusPlusMangle.cpp MangledNamePart result = simple_type_to_mangle_char(type.handle_type->inner_name.name, target); type 510 src/CPlusPlusMangle.cpp return apply_indirection_and_cvr_quals(type, result, prevs).full_name; type 512 src/CPlusPlusMangle.cpp MangledNamePart mangled = mangle_qualified_name(type.handle_type->inner_name.name, type.handle_type->namespaces, type 513 src/CPlusPlusMangle.cpp type.handle_type->enclosing_types, true, prevs); type 514 src/CPlusPlusMangle.cpp return apply_indirection_and_cvr_quals(type, mangled, prevs).full_name; type 518 src/CPlusPlusMangle.cpp std::string mangle_type(const Type &type, const Target &target, PrevPrefixes &prevs) { type 519 src/CPlusPlusMangle.cpp if (type.is_int()) { type 520 src/CPlusPlusMangle.cpp switch (type.bits()) { type 536 src/CPlusPlusMangle.cpp internal_error << "Unexpected integer size: " << type.bits() << ".\n"; type 538 src/CPlusPlusMangle.cpp } else if (type.is_uint()) { type 539 src/CPlusPlusMangle.cpp switch (type.bits()) { type 557 src/CPlusPlusMangle.cpp internal_error << "Unexpected unsigned integer size: " << type.bits() << "\n"; type 559 src/CPlusPlusMangle.cpp } else if (type.is_float()) { type 560 src/CPlusPlusMangle.cpp if (type.bits() == 32) { type 562 src/CPlusPlusMangle.cpp } else if (type.bits() == 64) { type 565 src/CPlusPlusMangle.cpp internal_error << "Unexpected floating-point type size: " << type.bits() << ".\n"; type 567 src/CPlusPlusMangle.cpp } else if (type.is_handle()) { type 568 src/CPlusPlusMangle.cpp return mangle_inner_name((type.handle_type != nullptr) ? type : non_null_void_star_type(), type 571 src/CPlusPlusMangle.cpp internal_error << "Unexpected kind of type. Code: " << type.code() << "\n"; type 588 src/CPlusPlusMangle.cpp result += mangle_type(arg.is_expr() ? arg.expr.type() : type_of<struct halide_buffer_t *>(), target, prevs); type 101 src/CSE.cpp internal_assert(entries[number].expr.type() == e.type()); type 110 src/CSE.cpp internal_assert(entries[number].expr.type() == e.type()); type 120 src/CSE.cpp internal_assert(entries[number].expr.type() == e.type()); type 134 src/CSE.cpp internal_assert(entries[number].expr.type() == old_e.type()); type 144 src/CSE.cpp internal_assert(e.type() == old_e.type()); type 177 src/CSE.cpp expr = Load::make(op->type, op->name, index, op->image, op->param, predicate); type 292 src/CSE.cpp replacements[e.expr] = Variable::make(e.expr.type(), name); type 341 src/CSE.cpp expr = Variable::make(var->type, iter->second); type 491 src/CSE.cpp Expr t0 = Variable::make(handle_b.type(), "t0"); type 41 src/Closure.cpp void Closure::found_buffer_ref(const string &name, Type type, type 46 src/Closure.cpp ref.type = type.element_of(); // TODO: Validate type is the same as existing refs? type 63 src/Closure.cpp found_buffer_ref(op->name, op->type, true, false, op->image); type 70 src/Closure.cpp found_buffer_ref(op->name, op->value.type(), false, true, Halide::Buffer<>()); type 90 src/Closure.cpp vars[op->name] = op->type; type 42 src/Closure.h Type type; type 60 src/Closure.h void found_buffer_ref(const std::string &name, Type type, type 253 src/CodeGen_ARM.cpp Type t = op->type; type 263 src/CodeGen_ARM.cpp if (pattern.type == Pattern::Simple) { type 266 src/CodeGen_ARM.cpp } else if (pattern.type == Pattern::NarrowArgs) { type 270 src/CodeGen_ARM.cpp internal_assert(matches[i].type().bits() == t.bits() * 2); type 271 src/CodeGen_ARM.cpp internal_assert(matches[i].type().lanes() == t.lanes()); type 279 src/CodeGen_ARM.cpp internal_assert(matches[i].type() == t); type 291 src/CodeGen_ARM.cpp if (power_of_two && shift_amount < matches[0].type().bits()) { type 292 src/CodeGen_ARM.cpp if (target.bits == 32 && pattern.type == Pattern::RightShift) { type 298 src/CodeGen_ARM.cpp if (target.bits == 64 && pattern.type == Pattern::RightShift) { type 301 src/CodeGen_ARM.cpp shift = ConstantInt::get(llvm_type_of(matches[0].type()), shift_amount); type 319 src/CodeGen_ARM.cpp op->value.type().is_int() && type 320 src/CodeGen_ARM.cpp t.bits() == op->value.type().bits() / 2) { type 335 src/CodeGen_ARM.cpp (op->value.type().is_int() || op->value.type().is_uint()) && type 336 src/CodeGen_ARM.cpp t.bits() == op->value.type().bits() * 2) { type 342 src/CodeGen_ARM.cpp ss << "vabdl_" << (c->args[0].type().is_int() ? 'i' : 'u') << t.bits() / 2 << 'x' << intrin_lanes; type 359 src/CodeGen_ARM.cpp if (op->type.is_scalar() || op->type.is_float()) { type 388 src/CodeGen_ARM.cpp internal_assert(pattern.type == Pattern::LeftShift); type 390 src/CodeGen_ARM.cpp llvm::Type *t_arg = llvm_type_of(matches[0].type()); type 391 src/CodeGen_ARM.cpp llvm::Type *t_result = llvm_type_of(op->type); type 409 src/CodeGen_ARM.cpp Type ty = a.type(); type 417 src/CodeGen_ARM.cpp op->type.is_vector() && is_two(op->b) && type 422 src/CodeGen_ARM.cpp value = call_pattern(averagings[i], op->type, matches); type 442 src/CodeGen_ARM.cpp if (op->type.is_vector() && type 444 src/CodeGen_ARM.cpp value = call_pattern(negations[i], op->type, matches); type 450 src/CodeGen_ARM.cpp if (op->type.is_float() && is_zero(op->a)) { type 452 src/CodeGen_ARM.cpp if (op->type.bits() == 32) { type 454 src/CodeGen_ARM.cpp } else if (op->type.bits() == 64) { type 458 src/CodeGen_ARM.cpp internal_error << "Unknown bit width for floating point type: " << op->type << "\n"; type 463 src/CodeGen_ARM.cpp if (op->type.lanes() > 1) { type 464 src/CodeGen_ARM.cpp a = ConstantVector::getSplat(op->type.lanes(), a); type 475 src/CodeGen_ARM.cpp if (op->type.is_int() && type 476 src/CodeGen_ARM.cpp op->type.is_vector() && type 493 src/CodeGen_ARM.cpp if (op->type == Float(32)) { type 530 src/CodeGen_ARM.cpp bool match = op->type == patterns[i].t; type 533 src/CodeGen_ARM.cpp if (op->type.is_vector() && patterns[i].t.lanes() * patterns[i].t.bits() == 128) { type 534 src/CodeGen_ARM.cpp match = match || (op->type.element_of() == patterns[i].t.element_of()); type 540 src/CodeGen_ARM.cpp intrin = (string("llvm.arm.neon.") + (op->type.is_uint() ? "vminu." : "vmins.")) + patterns[i].op; type 543 src/CodeGen_ARM.cpp if (op->type.is_int()) { type 545 src/CodeGen_ARM.cpp } else if (op->type.is_float()) { type 552 src/CodeGen_ARM.cpp value = call_intrin(op->type, patterns[i].t.lanes(), intrin, {op->a, op->b}); type 566 src/CodeGen_ARM.cpp if (op->type == Float(32)) { type 603 src/CodeGen_ARM.cpp bool match = op->type == patterns[i].t; type 606 src/CodeGen_ARM.cpp if (op->type.is_vector() && patterns[i].t.lanes() * patterns[i].t.bits() == 128) { type 607 src/CodeGen_ARM.cpp match = match || (op->type.element_of() == patterns[i].t.element_of()); type 613 src/CodeGen_ARM.cpp intrin = (string("llvm.arm.neon.") + (op->type.is_uint() ? "vmaxu." : "vmaxs.")) + patterns[i].op; type 616 src/CodeGen_ARM.cpp if (op->type.is_int()) { type 618 src/CodeGen_ARM.cpp } else if (op->type.is_float()) { type 625 src/CodeGen_ARM.cpp value = call_intrin(op->type, patterns[i].t.lanes(), intrin, {op->a, op->b}); type 667 src/CodeGen_ARM.cpp Type t = shuffle->vectors[0].type(); type 692 src/CodeGen_ARM.cpp Type t = shuffle->vectors[0].type(); type 747 src/CodeGen_ARM.cpp Value *ptr = codegen_buffer_pointer(op->name, shuffle->vectors[0].type().element_of(), slice_base); type 790 src/CodeGen_ARM.cpp << (op->value.type().is_float() ? 'f' : 'i') type 791 src/CodeGen_ARM.cpp << op->value.type().bits() type 792 src/CodeGen_ARM.cpp << 'x' << op->value.type().lanes(); type 796 src/CodeGen_ARM.cpp Value *base = codegen_buffer_pointer(op->name, op->value.type().element_of(), ramp->base); type 797 src/CodeGen_ARM.cpp Value *stride = codegen(ramp->stride * op->value.type().bytes()); type 869 src/CodeGen_ARM.cpp int alignment = op->type.bytes(); type 879 src/CodeGen_ARM.cpp int bit_width = op->type.bits() * op->type.lanes(); type 882 src/CodeGen_ARM.cpp intrin_lanes = 128 / op->type.bits(); type 884 src/CodeGen_ARM.cpp intrin_lanes = 64 / op->type.bits(); type 890 src/CodeGen_ARM.cpp llvm::Type *load_return_type = llvm_type_of(op->type.with_lanes(intrin_lanes*stride->value)); type 901 src/CodeGen_ARM.cpp for (int i = 0; i < op->type.lanes(); i += intrin_lanes) { type 904 src/CodeGen_ARM.cpp Value *ptr = codegen_buffer_pointer(op->name, op->type.element_of(), slice_base); type 922 src/CodeGen_ARM.cpp << (op->type.is_float() ? 'f' : 'i') type 923 src/CodeGen_ARM.cpp << op->type.bits() type 924 src/CodeGen_ARM.cpp << 'x' << op->type.lanes(); type 928 src/CodeGen_ARM.cpp Value *base = codegen_buffer_pointer(op->name, op->type.element_of(), ramp->base); type 929 src/CodeGen_ARM.cpp Value *stride = codegen(ramp->stride * op->type.bytes()); type 943 src/CodeGen_ARM.cpp if (op->is_intrinsic(Call::abs) && op->type.is_uint()) { type 949 src/CodeGen_ARM.cpp Type narrow = UInt(a.type().bits()/2, a.type().lanes()); type 964 src/CodeGen_ARM.cpp absd = Cast::make(op->type, absd); type 51 src/CodeGen_ARM.h PatternType type; type 56 src/CodeGen_ARM.h intrin_lanes(l), pattern(p), type(t) {} type 223 src/CodeGen_C.cpp string type_to_c_type(Type type, bool include_space, bool c_plus_plus = true) { type 226 src/CodeGen_C.cpp user_assert(type.lanes() == 1) << "Can't use vector types when compiling to C (yet)\n"; type 227 src/CodeGen_C.cpp if (type.is_float()) { type 228 src/CodeGen_C.cpp if (type.bits() == 32) { type 230 src/CodeGen_C.cpp } else if (type.bits() == 64) { type 233 src/CodeGen_C.cpp user_error << "Can't represent a float with this many bits in C: " << type << "\n"; type 236 src/CodeGen_C.cpp } else if (type.is_handle()) { type 241 src/CodeGen_C.cpp if (type.handle_type == NULL || type 243 src/CodeGen_C.cpp (!type.handle_type->namespaces.empty() || type 244 src/CodeGen_C.cpp !type.handle_type->enclosing_types.empty() || type 245 src/CodeGen_C.cpp type.handle_type->inner_name.cpp_type_type == halide_cplusplus_type_name::Class))) { type 248 src/CodeGen_C.cpp if (type.handle_type->inner_name.cpp_type_type == type 253 src/CodeGen_C.cpp if (!type.handle_type->namespaces.empty() || type 254 src/CodeGen_C.cpp !type.handle_type->enclosing_types.empty()) { type 256 src/CodeGen_C.cpp for (size_t i = 0; i < type.handle_type->namespaces.size(); i++) { type 257 src/CodeGen_C.cpp oss << type.handle_type->namespaces[i] << "::"; type 259 src/CodeGen_C.cpp for (size_t i = 0; i < type.handle_type->enclosing_types.size(); i++) { type 260 src/CodeGen_C.cpp oss << type.handle_type->enclosing_types[i].name << "::"; type 263 src/CodeGen_C.cpp oss << type.handle_type->inner_name.name; type 264 src/CodeGen_C.cpp if (type.handle_type->reference_type == halide_handle_cplusplus_type::LValueReference) { type 266 src/CodeGen_C.cpp } else if (type.handle_type->reference_type == halide_handle_cplusplus_type::LValueReference) { type 269 src/CodeGen_C.cpp for (auto modifier : type.handle_type->cpp_type_modifiers) { type 285 src/CodeGen_C.cpp switch (type.bits()) { type 290 src/CodeGen_C.cpp if (type.is_uint()) oss << 'u'; type 291 src/CodeGen_C.cpp oss << "int" << type.bits() << "_t"; type 294 src/CodeGen_C.cpp user_error << "Can't represent an integer with this many bits in C: " << type << "\n"; type 317 src/CodeGen_C.cpp string CodeGen_C::print_type(Type type, AppendSpaceIfNeeded space_option) { type 318 src/CodeGen_C.cpp return type_to_c_type(type, space_option == AppendSpace); type 321 src/CodeGen_C.cpp string CodeGen_C::print_reinterpret(Type type, Expr e) { type 323 src/CodeGen_C.cpp if (type.is_handle()) { type 325 src/CodeGen_C.cpp oss << "(" << print_type(type) << ")"; type 327 src/CodeGen_C.cpp oss << "reinterpret<" << print_type(type) << ">"; type 388 src/CodeGen_C.cpp stream << type_to_c_type(op->type, true) << " " << name << "("; type 402 src/CodeGen_C.cpp stream << type_to_c_type(op->args[i].type(), true); type 493 src/CodeGen_C.cpp auto handle_type = args[i].type.handle_type; type 575 src/CodeGen_C.cpp stream << print_type(args[i].type, AppendSpace) type 643 src/CodeGen_C.cpp for (size_t i = 0; i < num_elems * b.type.bytes(); i++) { type 661 src/CodeGen_C.cpp Type t = buffer.type(); type 725 src/CodeGen_C.cpp print_assignment(op->type, "(" + print_type(op->type) + ")(" + print_expr(op->value) + ")"); type 735 src/CodeGen_C.cpp visit_binop(op->type, op->a, op->b, "+"); type 739 src/CodeGen_C.cpp visit_binop(op->type, op->a, op->b, "-"); type 743 src/CodeGen_C.cpp visit_binop(op->type, op->a, op->b, "*"); type 751 src/CodeGen_C.cpp print_assignment(op->type, oss.str()); type 752 src/CodeGen_C.cpp } else if (op->type.is_int()) { type 755 src/CodeGen_C.cpp visit_binop(op->type, op->a, op->b, "/"); type 764 src/CodeGen_C.cpp print_assignment(op->type, oss.str()); type 765 src/CodeGen_C.cpp } else if (op->type.is_int()) { type 768 src/CodeGen_C.cpp visit_binop(op->type, op->a, op->b, "%"); type 773 src/CodeGen_C.cpp print_expr(Call::make(op->type, "max", {op->a, op->b}, Call::Extern)); type 777 src/CodeGen_C.cpp print_expr(Call::make(op->type, "min", {op->a, op->b}, Call::Extern)); type 781 src/CodeGen_C.cpp visit_binop(op->type, op->a, op->b, "=="); type 785 src/CodeGen_C.cpp visit_binop(op->type, op->a, op->b, "!="); type 789 src/CodeGen_C.cpp visit_binop(op->type, op->a, op->b, "<"); type 793 src/CodeGen_C.cpp visit_binop(op->type, op->a, op->b, "<="); type 797 src/CodeGen_C.cpp visit_binop(op->type, op->a, op->b, ">"); type 801 src/CodeGen_C.cpp visit_binop(op->type, op->a, op->b, ">="); type 805 src/CodeGen_C.cpp visit_binop(op->type, op->a, op->b, "||"); type 809 src/CodeGen_C.cpp visit_binop(op->type, op->a, op->b, "&&"); type 813 src/CodeGen_C.cpp print_assignment(op->type, "!(" + print_expr(op->a) + ")"); type 817 src/CodeGen_C.cpp if (op->type == Int(32)) { type 820 src/CodeGen_C.cpp print_assignment(op->type, "(" + print_type(op->type) + ")(" + std::to_string(op->value) + ")"); type 825 src/CodeGen_C.cpp print_assignment(op->type, "(" + print_type(op->type) + ")(" + std::to_string(op->value) + ")"); type 916 src/CodeGen_C.cpp rhs << print_reinterpret(op->type, op->args[0]); type 948 src/CodeGen_C.cpp stream << print_type(op->args[1].type(), AppendSpace) type 972 src/CodeGen_C.cpp rhs << print_expr(cast(op->type, select(a0 > 0, a0, -a0))); type 979 src/CodeGen_C.cpp internal_assert(op->type.is_handle()); type 981 src/CodeGen_C.cpp if (op->type == type_of<struct halide_buffer_t *>() && type 993 src/CodeGen_C.cpp rhs << "(" << print_type(op->type) << ")(&" << array_name << ")"; type 1011 src/CodeGen_C.cpp stream << "const " << print_type(op->args[i].type()) << " f_" << i << "; "; type 1022 src/CodeGen_C.cpp if (op->type.handle_type) { type 1023 src/CodeGen_C.cpp rhs << "(" << print_type(op->type) << ")"; type 1032 src/CodeGen_C.cpp Type t = op->args[i].type(); type 1098 src/CodeGen_C.cpp internal_assert(base && base->type.is_handle()); type 1100 src/CodeGen_C.cpp << "((" << print_type(op->type) << " *)" << print_name(base->name) type 1129 src/CodeGen_C.cpp print_assignment(op->type, rhs.str()); type 1134 src/CodeGen_C.cpp Type t = op->type; type 1137 src/CodeGen_C.cpp allocations.get(op->name).type != t; type 1142 src/CodeGen_C.cpp << print_type(op->type) type 1153 src/CodeGen_C.cpp print_assignment(op->type, rhs.str()); type 1158 src/CodeGen_C.cpp Type t = op->value.type(); type 1163 src/CodeGen_C.cpp allocations.get(op->name).type != t; type 1190 src/CodeGen_C.cpp if (op->value.type().is_handle()) { type 1194 src/CodeGen_C.cpp stream << print_type(op->value.type()) type 1198 src/CodeGen_C.cpp Expr new_var = Variable::make(op->value.type(), id_value); type 1209 src/CodeGen_C.cpp rhs << "(" << print_type(op->type) << ")" type 1214 src/CodeGen_C.cpp print_assignment(op->type, rhs.str()); type 1220 src/CodeGen_C.cpp if (op->value.type().is_handle()) { type 1224 src/CodeGen_C.cpp stream << print_type(op->value.type()) type 1228 src/CodeGen_C.cpp Expr new_var = Variable::make(op->value.type(), id_value); type 1304 src/CodeGen_C.cpp alloc.type = op->type; type 1308 src/CodeGen_C.cpp stream << print_type(op->type) << "*" << print_name(op->name) << " = (" << print_expr(op->new_expr) << ");\n"; type 1312 src/CodeGen_C.cpp int64_t stack_bytes = constant_size * op->type.bytes(); type 1343 src/CodeGen_C.cpp " * sizeof(" << print_type(op->type) << ")) > ((int64_t(1) << 31) - 1)))\n"; type 1368 src/CodeGen_C.cpp alloc.type = op->type; type 1372 src/CodeGen_C.cpp stream << print_type(op->type) << ' '; type 1381 src/CodeGen_C.cpp << print_type(op->type) type 1385 src/CodeGen_C.cpp << print_type(op->type) type 117 src/CodeGen_C.h Type type; type 88 src/CodeGen_GPU_Host.cpp internal_assert(allocate->type == UInt(8) && allocate->extents.size() == 1); type 299 src/CodeGen_GPU_Host.cpp } else if (closure_args[i].type.is_float()) { type 301 src/CodeGen_GPU_Host.cpp } else if (closure_args[i].type.is_int()) { type 393 src/CodeGen_GPU_Host.cpp int size_bytes = (closure_args[i].is_buffer) ? 8 : closure_args[i].type.bytes(); type 97 src/CodeGen_Hexagon.cpp uses_hvx = uses_hvx || op->type.is_vector(); type 100 src/CodeGen_Hexagon.cpp uses_hvx = uses_hvx || op->type.is_vector(); type 106 src/CodeGen_Hexagon.cpp uses_hvx = uses_hvx || op->type.is_vector(); type 163 src/CodeGen_Hexagon.cpp for (int i = 1; i < op->type.lanes(); i++) { type 166 src/CodeGen_Hexagon.cpp predicate = Broadcast::make(condition, predicate.type().lanes()); type 168 src/CodeGen_Hexagon.cpp expr = Load::make(op->type, op->name, index, op->image, op->param, predicate); type 1198 src/CodeGen_Hexagon.cpp string type_suffix(Type type, bool signed_variants = true) { type 1199 src/CodeGen_Hexagon.cpp string prefix = type.is_vector() ? ".v" : "."; type 1200 src/CodeGen_Hexagon.cpp if (type.is_int() || !signed_variants) { type 1201 src/CodeGen_Hexagon.cpp switch (type.bits()) { type 1206 src/CodeGen_Hexagon.cpp } else if (type.is_uint()) { type 1207 src/CodeGen_Hexagon.cpp switch (type.bits()) { type 1213 src/CodeGen_Hexagon.cpp internal_error << "Unsupported HVX type: " << type << "\n"; type 1218 src/CodeGen_Hexagon.cpp return type_suffix(a.type(), signed_variants); type 1308 src/CodeGen_Hexagon.cpp if (op->type.is_vector()) { type 1309 src/CodeGen_Hexagon.cpp value = call_intrin(op->type, type 1318 src/CodeGen_Hexagon.cpp if (op->type.is_vector()) { type 1319 src/CodeGen_Hexagon.cpp value = call_intrin(op->type, type 1341 src/CodeGen_Hexagon.cpp if (op->type.is_vector()) { type 1342 src/CodeGen_Hexagon.cpp value = call_intrin(op->type, type 1353 src/CodeGen_Hexagon.cpp value = call_intrin(op->type, type 1361 src/CodeGen_Hexagon.cpp Type wide = op->type.with_bits(op->type.bits()*2); type 1362 src/CodeGen_Hexagon.cpp value = call_intrin(llvm_type_of(op->type), type 1369 src/CodeGen_Hexagon.cpp << op->a.type() << "*" << op->b.type() << "\n" type 1377 src/CodeGen_Hexagon.cpp Type ty = a.type(); type 1402 src/CodeGen_Hexagon.cpp Type ty = a.type(); type 1442 src/CodeGen_Hexagon.cpp user_assert(op->type.lanes() % (native_vector_bits() * 2 / op->type.bits()) == 0) type 1451 src/CodeGen_Hexagon.cpp value = call_intrin(op->type, op->name, op->args); type 1455 src/CodeGen_Hexagon.cpp if (op->type.is_vector()) { type 1460 src/CodeGen_Hexagon.cpp value = call_intrin(op->type, intrin, op->args, true /*maybe*/); type 1468 src/CodeGen_Hexagon.cpp value = call_intrin(op->type, type 1487 src/CodeGen_Hexagon.cpp value = call_intrin(op->type, type 1499 src/CodeGen_Hexagon.cpp if (op->args[0].type().is_vector()) { type 1506 src/CodeGen_Hexagon.cpp Expr equiv = -Cast::make(op->type, op->args[0]); type 1523 src/CodeGen_Hexagon.cpp args.push_back(codegen_buffer_pointer(codegen(op->args[0]), op->type, op->args[1])); type 1525 src/CodeGen_Hexagon.cpp Expr extent_0_bytes = op->args[2] * op->args[3] * op->type.bytes(); type 1534 src/CodeGen_Hexagon.cpp Expr stride_1_bytes = op->args[5] * op->type.bytes(); type 1553 src/CodeGen_Hexagon.cpp if (op->lanes * op->type.bits() <= 32) { type 1559 src/CodeGen_Hexagon.cpp if (target.has_feature(Target::HVX_v62) && (op->value.type().bits() == 8 || op->value.type().bits() == 16)) type 1562 src/CodeGen_Hexagon.cpp value = call_intrin(op->type, type 1569 src/CodeGen_Hexagon.cpp if (op->type.is_vector()) { type 1570 src/CodeGen_Hexagon.cpp value = call_intrin(op->type, type 1576 src/CodeGen_Hexagon.cpp Call::make(op->type, Call::select_mask, {op->a > op->b, op->a, op->b}, Call::PureIntrinsic); type 1586 src/CodeGen_Hexagon.cpp if (op->type.is_vector()) { type 1587 src/CodeGen_Hexagon.cpp value = call_intrin(op->type, type 1593 src/CodeGen_Hexagon.cpp Call::make(op->type, Call::select_mask, {op->a > op->b, op->b, op->a}, Call::PureIntrinsic); type 1603 src/CodeGen_Hexagon.cpp internal_assert(op->condition.type().is_scalar()) << Expr(op) << "\n"; type 1605 src/CodeGen_Hexagon.cpp if (op->type.is_vector()) { type 1607 src/CodeGen_Hexagon.cpp value = codegen(Call::make(op->type, Call::if_then_else, type 1616 src/CodeGen_Hexagon.cpp if (op->type.is_vector()) { type 1617 src/CodeGen_Hexagon.cpp value = call_intrin(eliminated_bool_type(op->type, op->a.type()), type 1626 src/CodeGen_Hexagon.cpp if (op->type.is_vector()) { type 1627 src/CodeGen_Hexagon.cpp value = call_intrin(eliminated_bool_type(op->type, op->a.type()), type 1636 src/CodeGen_Hexagon.cpp if (op->type.is_vector()) { type 1646 src/CodeGen_Hexagon.cpp if (op->type.is_vector()) { type 1656 src/CodeGen_Hexagon.cpp if (op->type.is_vector()) { type 1665 src/CodeGen_Hexagon.cpp if (op->type.is_vector()) { type 68 src/CodeGen_Hexagon.h int allocation_padding(Type type) const { type 69 src/CodeGen_Hexagon.h return CodeGen_Posix::allocation_padding(type) + native_vector_bits()/8; type 25 src/CodeGen_Internal.cpp res.push_back(llvm_type_of(&context, b.second.type)->getPointerTo()); type 41 src/CodeGen_Internal.cpp void pack_closure(llvm::StructType *type, type 50 src/CodeGen_Internal.cpp llvm::Type *t = type->elements()[idx]; type 51 src/CodeGen_Internal.cpp Value *ptr = builder->CreateConstInBoundsGEP2_32(type, dst, 0, idx++); type 62 src/CodeGen_Internal.cpp llvm::Type *t = type->elements()[idx]; type 63 src/CodeGen_Internal.cpp Value *ptr = builder->CreateConstInBoundsGEP2_32(type, dst, 0, idx++); type 70 src/CodeGen_Internal.cpp Value *ptr = builder->CreateConstInBoundsGEP2_32(type, dst, 0, idx++); type 85 src/CodeGen_Internal.cpp llvm::StructType *type, type 91 src/CodeGen_Internal.cpp Value *ptr = builder->CreateConstInBoundsGEP2_32(type, src, 0, idx++); type 98 src/CodeGen_Internal.cpp Value *ptr = builder->CreateConstInBoundsGEP2_32(type, src, 0, idx++); type 104 src/CodeGen_Internal.cpp Value *ptr = builder->CreateConstInBoundsGEP2_32(type, src, 0, idx++); type 218 src/CodeGen_Internal.cpp internal_assert(a.type() == b.type()); type 221 src/CodeGen_Internal.cpp Expr q = Call::make(a.type(), Call::div_round_to_zero, {a, b}, Call::PureIntrinsic); type 222 src/CodeGen_Internal.cpp if (a.type().is_int()) { type 239 src/CodeGen_Internal.cpp Expr bs = b >> (a.type().bits() - 1); type 240 src/CodeGen_Internal.cpp Expr rs = r >> (a.type().bits() - 1); type 249 src/CodeGen_Internal.cpp internal_assert(a.type() == b.type()); type 252 src/CodeGen_Internal.cpp Expr r = Call::make(a.type(), Call::mod_round_to_zero, {a, b}, Call::PureIntrinsic); type 253 src/CodeGen_Internal.cpp if (a.type().is_int()) { type 261 src/CodeGen_Internal.cpp Expr sign_mask = r >> (a.type().bits()-1); type 285 src/CodeGen_Internal.cpp Expr unpredicated_load = Load::make(op->type, op->name, index, op->image, op->param, type 286 src/CodeGen_Internal.cpp const_true(op->type.lanes())); type 287 src/CodeGen_Internal.cpp expr = Call::make(op->type, Call::if_then_else, {scalar_pred->value, unpredicated_load, make_zero(op->type)}, type 291 src/CodeGen_Internal.cpp Expr index_var = Variable::make(index.type(), index_name); type 293 src/CodeGen_Internal.cpp Expr predicate_var = Variable::make(predicate.type(), predicate_name); type 297 src/CodeGen_Internal.cpp for (int i = 0; i < op->type.lanes(); i++) { type 300 src/CodeGen_Internal.cpp Expr unpredicated_load = Load::make(op->type.element_of(), op->name, idx_i, op->image, op->param, type 302 src/CodeGen_Internal.cpp lanes.push_back(Call::make(op->type.element_of(), Call::if_then_else, {pred_i, unpredicated_load, type 303 src/CodeGen_Internal.cpp make_zero(unpredicated_load.type())}, Call::PureIntrinsic)); type 323 src/CodeGen_Internal.cpp Stmt unpredicated_store = Store::make(op->name, value, index, op->param, const_true(value.type().lanes())); type 327 src/CodeGen_Internal.cpp Expr value_var = Variable::make(value.type(), value_name); type 329 src/CodeGen_Internal.cpp Expr index_var = Variable::make(index.type(), index_name); type 331 src/CodeGen_Internal.cpp Expr predicate_var = Variable::make(predicate.type(), predicate_name); type 334 src/CodeGen_Internal.cpp for (int i = 0; i < predicate.type().lanes(); i++) { type 30 src/CodeGen_Internal.h void pack_closure(llvm::StructType *type, type 43 src/CodeGen_Internal.h llvm::StructType *type, type 461 src/CodeGen_LLVM.cpp mangle_args.push_back(ExternFuncArgument(make_zero(arg.type))); type 572 src/CodeGen_LLVM.cpp arg_types[i] = llvm_type_of(args[i].type); type 795 src/CodeGen_LLVM.cpp ConstantInt::get(i8_t, buf.type().code()), type 796 src/CodeGen_LLVM.cpp ConstantInt::get(i8_t, buf.type().bits()), type 797 src/CodeGen_LLVM.cpp ConstantInt::get(i16_t, buf.type().lanes()) type 847 src/CodeGen_LLVM.cpp internal_assert(!e.type().is_handle()) << "Should never see Handle types here."; type 915 src/CodeGen_LLVM.cpp ConstantInt::get(i8_t, args[arg].type.code()), type 916 src/CodeGen_LLVM.cpp ConstantInt::get(i8_t, args[arg].type.bits()), type 919 src/CodeGen_LLVM.cpp Constant *type = ConstantStruct::get(type_t_type, type_fields); type 924 src/CodeGen_LLVM.cpp if (args[arg].type.is_handle()) { type 933 src/CodeGen_LLVM.cpp type, type 1091 src/CodeGen_LLVM.cpp debug(4) << "Codegen: " << e.type() << ", " << e << "\n"; type 1106 src/CodeGen_LLVM.cpp value = ConstantInt::getSigned(llvm_type_of(op->type), op->value); type 1110 src/CodeGen_LLVM.cpp value = ConstantInt::get(llvm_type_of(op->type), op->value); type 1114 src/CodeGen_LLVM.cpp value = ConstantFP::get(llvm_type_of(op->type), op->value); type 1122 src/CodeGen_LLVM.cpp Halide::Type src = op->value.type(); type 1123 src/CodeGen_LLVM.cpp Halide::Type dst = op->type; type 1169 src/CodeGen_LLVM.cpp if (op->type.is_float()) { type 1171 src/CodeGen_LLVM.cpp } else if (op->type.is_int() && op->type.bits() >= 32) { type 1181 src/CodeGen_LLVM.cpp if (op->type.is_float()) { type 1183 src/CodeGen_LLVM.cpp } else if (op->type.is_int() && op->type.bits() >= 32) { type 1193 src/CodeGen_LLVM.cpp if (op->type.is_float()) { type 1195 src/CodeGen_LLVM.cpp } else if (op->type.is_int() && op->type.bits() >= 32) { type 1205 src/CodeGen_LLVM.cpp Type ty = a.type(); type 1226 src/CodeGen_LLVM.cpp if (op->type.is_float()) { type 1229 src/CodeGen_LLVM.cpp (op->type.is_int() || op->type.is_uint())) { type 1232 src/CodeGen_LLVM.cpp op->type.is_int() && type 1233 src/CodeGen_LLVM.cpp (op->type.bits() == 8 || op->type.bits() == 16 || op->type.bits() == 32) && type 1235 src/CodeGen_LLVM.cpp ((op->type.bits() > 8 && *const_int_divisor < 256) || *const_int_divisor < 128)) { type 1238 src/CodeGen_LLVM.cpp if (op->type.bits() == 32) { type 1241 src/CodeGen_LLVM.cpp } else if (op->type.bits() == 16) { type 1252 src/CodeGen_LLVM.cpp Expr sign = num >> make_const(op->type, op->type.bits() - 1); type 1255 src/CodeGen_LLVM.cpp num = cast(num.type().with_code(Type::UInt), num); type 1260 src/CodeGen_LLVM.cpp Expr mult = make_const(num.type(), multiplier); type 1269 src/CodeGen_LLVM.cpp op->type.is_uint() && type 1270 src/CodeGen_LLVM.cpp (op->type.bits() == 8 || op->type.bits() == 16 || op->type.bits() == 32) && type 1274 src/CodeGen_LLVM.cpp if (op->type.bits() == 32) { type 1278 src/CodeGen_LLVM.cpp } else if (op->type.bits() == 16) { type 1293 src/CodeGen_LLVM.cpp Expr mult = make_const(num.type(), multiplier); type 1302 src/CodeGen_LLVM.cpp val = val >> make_const(op->type, shift); type 1318 src/CodeGen_LLVM.cpp if (op->type.is_float()) { type 1323 src/CodeGen_LLVM.cpp op->type.is_int() && type 1324 src/CodeGen_LLVM.cpp (op->type.bits() == 8 || op->type.bits() == 16 || op->type.bits() == 32) && type 1326 src/CodeGen_LLVM.cpp ((op->type.bits() > 8 && *const_int_divisor < 256) || *const_int_divisor < 128)) { type 1330 src/CodeGen_LLVM.cpp op->type.is_uint() && type 1331 src/CodeGen_LLVM.cpp (op->type.bits() == 8 || op->type.bits() == 16 || op->type.bits() == 32) && type 1345 src/CodeGen_LLVM.cpp Expr a = Variable::make(op->a.type(), a_name); type 1346 src/CodeGen_LLVM.cpp Expr b = Variable::make(op->b.type(), b_name); type 1355 src/CodeGen_LLVM.cpp Expr a = Variable::make(op->a.type(), a_name); type 1356 src/CodeGen_LLVM.cpp Expr b = Variable::make(op->b.type(), b_name); type 1365 src/CodeGen_LLVM.cpp Halide::Type t = op->a.type(); type 1376 src/CodeGen_LLVM.cpp Halide::Type t = op->a.type(); type 1388 src/CodeGen_LLVM.cpp Halide::Type t = op->a.type(); type 1401 src/CodeGen_LLVM.cpp Halide::Type t = op->a.type(); type 1414 src/CodeGen_LLVM.cpp Halide::Type t = op->a.type(); type 1427 src/CodeGen_LLVM.cpp Halide::Type t = op->a.type(); type 1451 src/CodeGen_LLVM.cpp if (op->type == Int(32)) { type 1488 src/CodeGen_LLVM.cpp Value *CodeGen_LLVM::codegen_buffer_pointer(string buffer, Halide::Type type, Expr index) { type 1491 src/CodeGen_LLVM.cpp return codegen_buffer_pointer(base_address, type, index); type 1494 src/CodeGen_LLVM.cpp Value *CodeGen_LLVM::codegen_buffer_pointer(Value *base_address, Halide::Type type, Expr index) { type 1502 src/CodeGen_LLVM.cpp if (type.is_handle()) { type 1503 src/CodeGen_LLVM.cpp return codegen_buffer_pointer(base_address, UInt(64, type.lanes()), index); type 1505 src/CodeGen_LLVM.cpp return codegen_buffer_pointer(base_address, type, codegen(index)); type 1509 src/CodeGen_LLVM.cpp Value *CodeGen_LLVM::codegen_buffer_pointer(string buffer, Halide::Type type, Value *index) { type 1512 src/CodeGen_LLVM.cpp return codegen_buffer_pointer(base_address, type, index); type 1515 src/CodeGen_LLVM.cpp Value *CodeGen_LLVM::codegen_buffer_pointer(Value *base_address, Halide::Type type, Value *index) { type 1519 src/CodeGen_LLVM.cpp llvm::Type *load_type = llvm_type_of(type)->getPointerTo(address_space); type 1617 src/CodeGen_LLVM.cpp if (op->type.is_handle()) { type 1618 src/CodeGen_LLVM.cpp codegen(reinterpret(op->type, Load::make(UInt(64, op->type.lanes()), op->name, type 1630 src/CodeGen_LLVM.cpp if (op->type.is_scalar()) { type 1632 src/CodeGen_LLVM.cpp Value *ptr = codegen_buffer_pointer(op->name, op->type, op->index); type 1633 src/CodeGen_LLVM.cpp LoadInst *load = builder->CreateAlignedLoad(ptr, op->type.bytes()); type 1645 src/CodeGen_LLVM.cpp Expr stride_a = make_one(base_a.type()); type 1646 src/CodeGen_LLVM.cpp Expr stride_b = make_one(base_b.type()); type 1676 src/CodeGen_LLVM.cpp Expr load_a = Load::make(op->type, op->name, ramp_a, op->image, op->param, op->predicate); type 1677 src/CodeGen_LLVM.cpp Expr load_b = Load::make(op->type, op->name, ramp_b, op->image, op->param, op->predicate); type 1694 src/CodeGen_LLVM.cpp Expr flipped_stride = make_one(flipped_base.type()); type 1696 src/CodeGen_LLVM.cpp Expr flipped_load = Load::make(op->type, op->name, flipped_index, op->image, op->param, op->predicate); type 1708 src/CodeGen_LLVM.cpp Value *ptr = codegen_buffer_pointer(op->name, op->type.element_of(), ramp->base); type 1710 src/CodeGen_LLVM.cpp value = UndefValue::get(llvm_type_of(op->type)); type 1724 src/CodeGen_LLVM.cpp Value *vec = UndefValue::get(llvm_type_of(op->type)); type 1725 src/CodeGen_LLVM.cpp for (int i = 0; i < op->type.lanes(); i++) { type 1727 src/CodeGen_LLVM.cpp Value *ptr = codegen_buffer_pointer(op->name, op->type.element_of(), idx); type 1736 src/CodeGen_LLVM.cpp Value *vec = UndefValue::get(llvm_type_of(op->type)); type 1737 src/CodeGen_LLVM.cpp for (int i = 0; i < op->type.lanes(); i++) { type 1739 src/CodeGen_LLVM.cpp Value *ptr = codegen_buffer_pointer(op->name, op->type.element_of(), idx); type 1757 src/CodeGen_LLVM.cpp Expr ramp = Ramp::make(make_zero(op->base.type()), op->stride, op->lanes); type 1765 src/CodeGen_LLVM.cpp value = UndefValue::get(llvm_type_of(op->type)); type 1766 src/CodeGen_LLVM.cpp for (int i = 0; i < op->type.lanes(); i++) { type 1768 src/CodeGen_LLVM.cpp if (op->type.is_float()) { type 1770 src/CodeGen_LLVM.cpp } else if (op->type.is_int() && op->type.bits() >= 32) { type 1795 src/CodeGen_LLVM.cpp if (e.type().is_vector()) { type 1876 src/CodeGen_LLVM.cpp llvm::Type *result_type = llvm_type_of(e.type()); type 1880 src/CodeGen_LLVM.cpp for (int i = 0; i < e.type().lanes(); i++) { type 1892 src/CodeGen_LLVM.cpp Halide::Type value_type = op->value.type(); type 1925 src/CodeGen_LLVM.cpp Expr slice_stride = make_one(slice_base.type()); type 1937 src/CodeGen_LLVM.cpp Type value_type = op->value.type().element_of(); type 1941 src/CodeGen_LLVM.cpp for (int i = 0; i < op->index.type().lanes(); i++) { type 1975 src/CodeGen_LLVM.cpp int alignment = load->type.bytes(); // The size of a single element type 2006 src/CodeGen_LLVM.cpp int load_lanes = load->type.lanes(); type 2007 src/CodeGen_LLVM.cpp int native_lanes = native_bits / load->type.bits(); type 2012 src/CodeGen_LLVM.cpp Expr slice_stride = make_one(slice_base.type()); type 2014 src/CodeGen_LLVM.cpp llvm::Type *slice_type = VectorType::get(llvm_type_of(load->type.element_of()), slice_lanes); type 2015 src/CodeGen_LLVM.cpp Value *elt_ptr = codegen_buffer_pointer(load->name, load->type.element_of(), slice_base); type 2051 src/CodeGen_LLVM.cpp Expr flipped_stride = make_one(flipped_base.type()); type 2053 src/CodeGen_LLVM.cpp Expr flipped_load = Load::make(op->type, op->name, flipped_index, op->image, type 2054 src/CodeGen_LLVM.cpp op->param, const_true(op->type.lanes())); type 2059 src/CodeGen_LLVM.cpp Expr load_expr = Load::make(op->type, op->name, op->index, op->image, type 2060 src/CodeGen_LLVM.cpp op->param, const_true(op->type.lanes())); type 2062 src/CodeGen_LLVM.cpp Expr pred_load = Call::make(load_expr.type(), type 2064 src/CodeGen_LLVM.cpp {op->predicate, load_expr, make_zero(load_expr.type())}, type 2115 src/CodeGen_LLVM.cpp Type dst = op->type; type 2116 src/CodeGen_LLVM.cpp Type src = op->args[0].type(); type 2157 src/CodeGen_LLVM.cpp if (op->type.is_int()) { type 2167 src/CodeGen_LLVM.cpp Type t = op->args[0].type(); type 2170 src/CodeGen_LLVM.cpp find_vector_runtime_function(name, op->type.lanes()).first; type 2173 src/CodeGen_LLVM.cpp codegen(Call::make(op->type, name, op->args, Call::Extern)); type 2177 src/CodeGen_LLVM.cpp Expr x = Variable::make(op->args[0].type(), x_name); type 2188 src/CodeGen_LLVM.cpp Type t = a.type(); type 2200 src/CodeGen_LLVM.cpp find_vector_runtime_function(name, op->type.lanes()).first; type 2203 src/CodeGen_LLVM.cpp codegen(Call::make(op->type, name, op->args, Call::Extern)); type 2208 src/CodeGen_LLVM.cpp Expr a_var = Variable::make(op->args[0].type(), a_name); type 2209 src/CodeGen_LLVM.cpp Expr b_var = Variable::make(op->args[1].type(), b_name); type 2218 src/CodeGen_LLVM.cpp if (op->type.is_int()) { type 2220 src/CodeGen_LLVM.cpp } else if (op->type.is_uint()) { type 2229 src/CodeGen_LLVM.cpp if (op->type.is_int()) { type 2231 src/CodeGen_LLVM.cpp } else if (op->type.is_uint()) { type 2242 src/CodeGen_LLVM.cpp arg_type[0] = llvm_type_of(op->args[0].type()); type 2250 src/CodeGen_LLVM.cpp arg_type[0] = llvm_type_of(op->args[0].type()); type 2268 src/CodeGen_LLVM.cpp if (cond.type().is_vector()) { type 2296 src/CodeGen_LLVM.cpp if (op->type.is_vector()) { type 2303 src/CodeGen_LLVM.cpp value = ConstantPointerNull::get(dyn_cast<PointerType>(llvm_type_of(op->type))); type 2337 src/CodeGen_LLVM.cpp if (op->type.is_vector()) { type 2344 src/CodeGen_LLVM.cpp Type t = op->args[i].type(); type 2391 src/CodeGen_LLVM.cpp Type t = op->args[i].type(); type 2445 src/CodeGen_LLVM.cpp if (op->type == type_of<struct halide_buffer_t *>() && type 2451 src/CodeGen_LLVM.cpp if (op->type == type_of<struct halide_dimension_t *>()) { type 2463 src/CodeGen_LLVM.cpp internal_assert(arg.type().is_handle()); type 2537 src/CodeGen_LLVM.cpp llvm::Type *result_type = llvm_type_of(op->type); type 2622 src/CodeGen_LLVM.cpp args.push_back(codegen_buffer_pointer(codegen(op->args[0]), op->type, op->args[1])); type 2677 src/CodeGen_LLVM.cpp name = cplusplus_function_mangled_name(name, namespaces, op->type, mangle_args, get_target()); type 2690 src/CodeGen_LLVM.cpp llvm::Type *result_type = llvm_type_of(op->type); type 2738 src/CodeGen_LLVM.cpp if (halide_arg.type().is_handle()) { type 2744 src/CodeGen_LLVM.cpp if (halide_arg.type().is_vector() && type 2746 src/CodeGen_LLVM.cpp t = VectorType::get(t, halide_arg.type().lanes()); type 2758 src/CodeGen_LLVM.cpp if (op->type.is_scalar()) { type 2770 src/CodeGen_LLVM.cpp find_vector_runtime_function(name, op->type.lanes()); type 2775 src/CodeGen_LLVM.cpp value = call_intrin(llvm_type_of(op->type), w, type 2782 src/CodeGen_LLVM.cpp for (int i = 0; i < op->type.lanes(); i++) { type 2812 src/CodeGen_LLVM.cpp if (op->value.type() == Int(32)) { type 2816 src/CodeGen_LLVM.cpp if (op->value.type() == Int(32)) { type 2825 src/CodeGen_LLVM.cpp if (op->value.type() == Int(32)) { type 2831 src/CodeGen_LLVM.cpp if (op->value.type() == Int(32)) { type 2859 src/CodeGen_LLVM.cpp llvm::Type *type = ArrayType::get(i8_t, data.size()); type 2860 src/CodeGen_LLVM.cpp GlobalVariable *global = new GlobalVariable(*module, type, type 2869 src/CodeGen_LLVM.cpp Constant *ptr = ConstantExpr::getInBoundsGetElementPtr(type, global, zeros); type 2875 src/CodeGen_LLVM.cpp internal_assert(!message.defined() || message.type() == Int(32)) type 3078 src/CodeGen_LLVM.cpp if (op->value.type().is_handle()) { type 3079 src/CodeGen_LLVM.cpp Expr v = reinterpret(UInt(64, op->value.type().lanes()), op->value); type 3090 src/CodeGen_LLVM.cpp Halide::Type value_type = op->value.type(); type 3135 src/CodeGen_LLVM.cpp Expr slice_stride = make_one(slice_base.type()); type 3246 src/CodeGen_LLVM.cpp if (op->type.is_scalar()) { type 285 src/CodeGen_LLVM.h llvm::Value *codegen_buffer_pointer(std::string buffer, Type type, llvm::Value *index); type 286 src/CodeGen_LLVM.h llvm::Value *codegen_buffer_pointer(std::string buffer, Type type, Expr index); type 287 src/CodeGen_LLVM.h llvm::Value *codegen_buffer_pointer(llvm::Value *base_address, Type type, Expr index); type 288 src/CodeGen_LLVM.h llvm::Value *codegen_buffer_pointer(llvm::Value *base_address, Type type, llvm::Value *index); type 388 src/CodeGen_LLVM.h llvm::Value *create_alloca_at_entry(llvm::Type *type, int n, type 23 src/CodeGen_Metal_Dev.cpp string CodeGen_Metal_Dev::CodeGen_Metal_C::print_type_maybe_storage(Type type, bool storage, AppendSpaceIfNeeded space) { type 27 src/CodeGen_Metal_Dev.cpp if (storage && type.lanes() != 1) { type 30 src/CodeGen_Metal_Dev.cpp if (type.is_float()) { type 31 src/CodeGen_Metal_Dev.cpp if (type.bits() == 16) { type 33 src/CodeGen_Metal_Dev.cpp } else if (type.bits() == 32) { type 35 src/CodeGen_Metal_Dev.cpp } else if (type.bits() == 64) { type 38 src/CodeGen_Metal_Dev.cpp user_error << "Can't represent a float with this many bits in Metal C: " << type << "\n"; type 42 src/CodeGen_Metal_Dev.cpp if (type.is_uint() && type.bits() > 1) oss << 'u'; type 43 src/CodeGen_Metal_Dev.cpp switch (type.bits()) { type 60 src/CodeGen_Metal_Dev.cpp user_error << "Can't represent an integer with this many bits in Metal C: " << type << "\n"; type 63 src/CodeGen_Metal_Dev.cpp if (type.lanes() != 1) { type 64 src/CodeGen_Metal_Dev.cpp switch (type.lanes()) { type 70 src/CodeGen_Metal_Dev.cpp oss << type.lanes(); type 73 src/CodeGen_Metal_Dev.cpp user_error << "Unsupported vector width in Metal C: " << type << "\n"; type 82 src/CodeGen_Metal_Dev.cpp string CodeGen_Metal_Dev::CodeGen_Metal_C::print_type(Type type, AppendSpaceIfNeeded space) { type 83 src/CodeGen_Metal_Dev.cpp return print_type_maybe_storage(type, false, space); type 86 src/CodeGen_Metal_Dev.cpp string CodeGen_Metal_Dev::CodeGen_Metal_C::print_storage_type(Type type) { type 87 src/CodeGen_Metal_Dev.cpp return print_type_maybe_storage(type, true, DoNotAppendSpace); type 90 src/CodeGen_Metal_Dev.cpp string CodeGen_Metal_Dev::CodeGen_Metal_C::print_reinterpret(Type type, Expr e) { type 96 src/CodeGen_Metal_Dev.cpp stream << print_type(e.type()) << " " << temp << " = " << expr << ";\n"; type 97 src/CodeGen_Metal_Dev.cpp oss << "*(" << print_type(type) << " thread *)(&" << temp << ")"; type 132 src/CodeGen_Metal_Dev.cpp print_assignment(op->type, oss.str()); type 133 src/CodeGen_Metal_Dev.cpp } else if (op->type.is_int()) { type 136 src/CodeGen_Metal_Dev.cpp visit_binop(op->type, op->a, op->b, "/"); type 145 src/CodeGen_Metal_Dev.cpp print_assignment(op->type, oss.str()); type 146 src/CodeGen_Metal_Dev.cpp } else if (op->type.is_int()) { type 149 src/CodeGen_Metal_Dev.cpp visit_binop(op->type, op->a, op->b, "%"); type 178 src/CodeGen_Metal_Dev.cpp << print_type(op->type.with_lanes(op->lanes)) << "(0"; type 184 src/CodeGen_Metal_Dev.cpp print_assignment(op->type.with_lanes(op->lanes), rhs.str()); type 191 src/CodeGen_Metal_Dev.cpp rhs << print_type(op->type.with_lanes(op->lanes)) << "(" << id_value << ")"; type 193 src/CodeGen_Metal_Dev.cpp print_assignment(op->type.with_lanes(op->lanes), rhs.str()); type 224 src/CodeGen_Metal_Dev.cpp internal_assert(op->type.is_vector()); type 228 src/CodeGen_Metal_Dev.cpp rhs << "*(" << get_memory_space(op->name) << " " << print_storage_type(op->type) << " *)((" type 229 src/CodeGen_Metal_Dev.cpp << get_memory_space(op->name) << " " << print_type(op->type.element_of()) << " *)" << print_name(op->name) type 231 src/CodeGen_Metal_Dev.cpp print_assignment(op->type, rhs.str()); type 240 src/CodeGen_Metal_Dev.cpp allocations.get(op->name).type == op->type); type 244 src/CodeGen_Metal_Dev.cpp << print_storage_type(op->type) << " *)" type 258 src/CodeGen_Metal_Dev.cpp if (op->index.type().is_vector()) { type 260 src/CodeGen_Metal_Dev.cpp internal_assert(op->type.is_vector()); type 269 src/CodeGen_Metal_Dev.cpp stream << print_type(op->type) type 272 src/CodeGen_Metal_Dev.cpp for (int i = 0; i < op->type.lanes(); ++i) { type 277 src/CodeGen_Metal_Dev.cpp << print_type(op->type.element_of()) << "*)" type 282 src/CodeGen_Metal_Dev.cpp print_assignment(op->type, rhs.str()); type 290 src/CodeGen_Metal_Dev.cpp Type t = op->value.type(); type 295 src/CodeGen_Metal_Dev.cpp internal_assert(op->value.type().is_vector()); type 302 src/CodeGen_Metal_Dev.cpp } else if (op->index.type().is_vector()) { type 319 src/CodeGen_Metal_Dev.cpp allocations.get(op->name).type == t); type 347 src/CodeGen_Metal_Dev.cpp rhs << "(" << print_type(op->type) << ")" type 352 src/CodeGen_Metal_Dev.cpp print_assignment(op->type, rhs.str()); type 376 src/CodeGen_Metal_Dev.cpp stream << print_storage_type(op->type) << ' ' type 382 src/CodeGen_Metal_Dev.cpp alloc.type = op->type; type 407 src/CodeGen_Metal_Dev.cpp print_assignment(op->type, print_type(op->type) + "(" + print_expr(op->value) + ")"); type 500 src/CodeGen_Metal_Dev.cpp stream << print_type(args[i].type) type 525 src/CodeGen_Metal_Dev.cpp stream << print_storage_type(args[i].type) << " *" type 528 src/CodeGen_Metal_Dev.cpp alloc.type = args[i].type; type 541 src/CodeGen_Metal_Dev.cpp stream << print_type(args[i].type) type 54 src/CodeGen_Metal_Dev.h std::string print_type(Type type, AppendSpaceIfNeeded space_option = DoNotAppendSpace); type 62 src/CodeGen_Metal_Dev.h std::string print_storage_type(Type type); type 63 src/CodeGen_Metal_Dev.h std::string print_type_maybe_storage(Type type, bool storage, AppendSpaceIfNeeded space); type 64 src/CodeGen_Metal_Dev.h std::string print_reinterpret(Type type, Expr e); type 23 src/CodeGen_OpenCL_Dev.cpp string CodeGen_OpenCL_Dev::CodeGen_OpenCL_C::print_type(Type type, AppendSpaceIfNeeded space) { type 25 src/CodeGen_OpenCL_Dev.cpp if (type.is_float()) { type 26 src/CodeGen_OpenCL_Dev.cpp if (type.bits() == 16) { type 28 src/CodeGen_OpenCL_Dev.cpp } else if (type.bits() == 32) { type 30 src/CodeGen_OpenCL_Dev.cpp } else if (type.bits() == 64) { type 33 src/CodeGen_OpenCL_Dev.cpp user_error << "Can't represent a float with this many bits in OpenCL C: " << type << "\n"; type 37 src/CodeGen_OpenCL_Dev.cpp if (type.is_uint() && type.bits() > 1) oss << 'u'; type 38 src/CodeGen_OpenCL_Dev.cpp switch (type.bits()) { type 40 src/CodeGen_OpenCL_Dev.cpp internal_assert(type.lanes() == 1) << "Encountered vector of bool\n"; type 56 src/CodeGen_OpenCL_Dev.cpp user_error << "Can't represent an integer with this many bits in OpenCL C: " << type << "\n"; type 59 src/CodeGen_OpenCL_Dev.cpp if (type.lanes() != 1) { type 60 src/CodeGen_OpenCL_Dev.cpp switch (type.lanes()) { type 66 src/CodeGen_OpenCL_Dev.cpp oss << type.lanes(); type 69 src/CodeGen_OpenCL_Dev.cpp user_error << "Unsupported vector width in OpenCL C: " << type << "\n"; type 78 src/CodeGen_OpenCL_Dev.cpp string CodeGen_OpenCL_Dev::CodeGen_OpenCL_C::print_reinterpret(Type type, Expr e) { type 80 src/CodeGen_OpenCL_Dev.cpp oss << "as_" << print_type(type) << "(" << print_expr(e) << ")"; type 135 src/CodeGen_OpenCL_Dev.cpp << print_type(op->type.with_lanes(op->lanes)) << ")(0"; type 141 src/CodeGen_OpenCL_Dev.cpp print_assignment(op->type.with_lanes(op->lanes), rhs.str()); type 147 src/CodeGen_OpenCL_Dev.cpp print_assignment(op->type.with_lanes(op->lanes), id_value); type 177 src/CodeGen_OpenCL_Dev.cpp if (op->args[0].type().is_vector()) { type 185 src/CodeGen_OpenCL_Dev.cpp Expr equiv = -Cast::make(op->type, op->args[0]); type 190 src/CodeGen_OpenCL_Dev.cpp Expr equiv = Cast::make(op->type, op->args[0]); type 202 src/CodeGen_OpenCL_Dev.cpp print_assignment(op->type, rhs.str()); type 204 src/CodeGen_OpenCL_Dev.cpp if (op->type.is_float()) { type 206 src/CodeGen_OpenCL_Dev.cpp rhs << "abs_f" << op->type.bits() << "(" << print_expr(op->args[0]) << ")"; type 207 src/CodeGen_OpenCL_Dev.cpp print_assignment(op->type, rhs.str()); type 211 src/CodeGen_OpenCL_Dev.cpp print_assignment(op->type, rhs.str()); type 216 src/CodeGen_OpenCL_Dev.cpp print_assignment(op->type, rhs.str()); type 228 src/CodeGen_OpenCL_Dev.cpp internal_assert(op->type.is_vector()); type 232 src/CodeGen_OpenCL_Dev.cpp rhs << "vload" << op->type.lanes() type 234 src/CodeGen_OpenCL_Dev.cpp << print_type(op->type.element_of()) << "*)" type 237 src/CodeGen_OpenCL_Dev.cpp print_assignment(op->type, rhs.str()); type 245 src/CodeGen_OpenCL_Dev.cpp allocations.get(op->name).type == op->type); type 249 src/CodeGen_OpenCL_Dev.cpp << print_type(op->type) << " *)" type 263 src/CodeGen_OpenCL_Dev.cpp if (op->index.type().is_vector()) { type 265 src/CodeGen_OpenCL_Dev.cpp internal_assert(op->type.is_vector()); type 271 src/CodeGen_OpenCL_Dev.cpp stream << print_type(op->type) type 274 src/CodeGen_OpenCL_Dev.cpp for (int i = 0; i < op->type.lanes(); ++i) { type 279 src/CodeGen_OpenCL_Dev.cpp << print_type(op->type.element_of()) << "*)" type 284 src/CodeGen_OpenCL_Dev.cpp print_assignment(op->type, rhs.str()); type 292 src/CodeGen_OpenCL_Dev.cpp Type t = op->value.type(); type 297 src/CodeGen_OpenCL_Dev.cpp internal_assert(op->value.type().is_vector()); type 308 src/CodeGen_OpenCL_Dev.cpp } else if (op->index.type().is_vector()) { type 325 src/CodeGen_OpenCL_Dev.cpp allocations.get(op->name).type == t); type 352 src/CodeGen_OpenCL_Dev.cpp visit_binop(eliminated_bool_type(op->type, op->a.type()), op->a, op->b, "=="); type 356 src/CodeGen_OpenCL_Dev.cpp visit_binop(eliminated_bool_type(op->type, op->a.type()), op->a, op->b, "!="); type 360 src/CodeGen_OpenCL_Dev.cpp visit_binop(eliminated_bool_type(op->type, op->a.type()), op->a, op->b, "<"); type 364 src/CodeGen_OpenCL_Dev.cpp visit_binop(eliminated_bool_type(op->type, op->a.type()), op->a, op->b, "<="); type 368 src/CodeGen_OpenCL_Dev.cpp visit_binop(eliminated_bool_type(op->type, op->a.type()), op->a, op->b, ">"); type 372 src/CodeGen_OpenCL_Dev.cpp visit_binop(eliminated_bool_type(op->type, op->a.type()), op->a, op->b, ">="); type 376 src/CodeGen_OpenCL_Dev.cpp if (op->type.is_vector()) { type 377 src/CodeGen_OpenCL_Dev.cpp print_assignment(op->type, "convert_" + print_type(op->type) + "(" + print_expr(op->value) + ")"); type 384 src/CodeGen_OpenCL_Dev.cpp internal_assert(op->condition.type().is_scalar()); type 411 src/CodeGen_OpenCL_Dev.cpp stream << print_type(op->type) << ' ' type 417 src/CodeGen_OpenCL_Dev.cpp alloc.type = op->type; type 448 src/CodeGen_OpenCL_Dev.cpp int op_lanes = op->type.lanes(); type 450 src/CodeGen_OpenCL_Dev.cpp int arg_lanes = op->vectors[0].type().lanes(); type 454 src/CodeGen_OpenCL_Dev.cpp print_assignment(op->type, print_expr(op->vectors[0])); type 458 src/CodeGen_OpenCL_Dev.cpp internal_assert(op->vectors[1].type().lanes() == arg_lanes); type 464 src/CodeGen_OpenCL_Dev.cpp stream << print_type(op->type) << " " << id << ";\n"; type 472 src/CodeGen_OpenCL_Dev.cpp int dest_lanes = op->type.lanes(); type 477 src/CodeGen_OpenCL_Dev.cpp internal_assert(op->vectors[i].type().lanes() == arg_lanes); type 483 src/CodeGen_OpenCL_Dev.cpp stream << print_type(op->type) << " " << id; type 484 src/CodeGen_OpenCL_Dev.cpp stream << " = (" << print_type(op->type) << ")("; type 593 src/CodeGen_OpenCL_Dev.cpp stream << print_type(args[i].type) << " *" type 597 src/CodeGen_OpenCL_Dev.cpp alloc.type = args[i].type; type 600 src/CodeGen_OpenCL_Dev.cpp Type t = args[i].type; type 54 src/CodeGen_OpenCL_Dev.h std::string print_type(Type type, AppendSpaceIfNeeded append_space = DoNotAppendSpace); type 55 src/CodeGen_OpenCL_Dev.h std::string print_reinterpret(Type type, Expr e); type 29 src/CodeGen_OpenGLCompute_Dev.cpp Type map_type(const Type &type) { type 30 src/CodeGen_OpenGLCompute_Dev.cpp Type result = type; type 31 src/CodeGen_OpenGLCompute_Dev.cpp if (type.is_scalar()) { type 32 src/CodeGen_OpenGLCompute_Dev.cpp if (type.is_float()) { type 33 src/CodeGen_OpenGLCompute_Dev.cpp user_assert(type.bits() <= 32) type 34 src/CodeGen_OpenGLCompute_Dev.cpp << "GLSL: Can't represent a float with " << type.bits() << " bits.\n"; type 36 src/CodeGen_OpenGLCompute_Dev.cpp } else if (type.bits() == 1) { type 38 src/CodeGen_OpenGLCompute_Dev.cpp } else if (type == Int(32) || type == UInt(32)) { type 41 src/CodeGen_OpenGLCompute_Dev.cpp user_error << "GLSL: Can't represent type '"<< type << "'.\n"; type 44 src/CodeGen_OpenGLCompute_Dev.cpp user_assert(type.lanes() <= 4) type 46 src/CodeGen_OpenGLCompute_Dev.cpp user_assert(type.is_bool() || type.is_int() || type.is_uint() || type.is_float()) type 47 src/CodeGen_OpenGLCompute_Dev.cpp << "GLSL: Can't represent vector type '"<< type << "'.\n"; type 48 src/CodeGen_OpenGLCompute_Dev.cpp Type scalar_type = type.element_of(); type 49 src/CodeGen_OpenGLCompute_Dev.cpp result = map_type(scalar_type).with_lanes(type.lanes()); type 55 src/CodeGen_OpenGLCompute_Dev.cpp string CodeGen_OpenGLCompute_Dev::CodeGen_OpenGLCompute_C::print_type(Type type, AppendSpaceIfNeeded space) { type 56 src/CodeGen_OpenGLCompute_Dev.cpp Type mapped_type = map_type(type); type 64 src/CodeGen_OpenGLCompute_Dev.cpp return CodeGen_GLSLBase::print_type(type, space); type 104 src/CodeGen_OpenGLCompute_Dev.cpp Type value_type = op->value.type(); type 107 src/CodeGen_OpenGLCompute_Dev.cpp if (map_type(op->type) != map_type(value_type)) { type 108 src/CodeGen_OpenGLCompute_Dev.cpp Type target_type = map_type(op->type); type 161 src/CodeGen_OpenGLCompute_Dev.cpp rhs << print_type(op->type) << "("; type 173 src/CodeGen_OpenGLCompute_Dev.cpp print_assignment(op->base.type(), rhs.str()); type 179 src/CodeGen_OpenGLCompute_Dev.cpp oss << print_type(op->type.with_lanes(op->lanes)) << "(" << id_value << ")"; type 180 src/CodeGen_OpenGLCompute_Dev.cpp print_assignment(op->type.with_lanes(op->lanes), oss.str()); type 186 src/CodeGen_OpenGLCompute_Dev.cpp internal_assert(op->type.is_scalar()); type 195 src/CodeGen_OpenGLCompute_Dev.cpp print_assignment(op->type, oss.str()); type 201 src/CodeGen_OpenGLCompute_Dev.cpp internal_assert(op->value.type().is_scalar()); type 211 src/CodeGen_OpenGLCompute_Dev.cpp stream << "[" << id_index << "] = " << print_type(op->value.type()) << "(" << id_value << ");\n"; type 223 src/CodeGen_OpenGLCompute_Dev.cpp rhs << print_type(op->type) type 228 src/CodeGen_OpenGLCompute_Dev.cpp print_assignment(op->type, rhs.str()); type 281 src/CodeGen_OpenGLCompute_Dev.cpp << print_type(args[i].type) << " data[]; } " type 284 src/CodeGen_OpenGLCompute_Dev.cpp stream << "uniform " << print_type(args[i].type) type 295 src/CodeGen_OpenGLCompute_Dev.cpp << print_type(op->type) << " " type 326 src/CodeGen_OpenGLCompute_Dev.cpp debug(2) << "OpenGLCompute: Allocate " << op->name << " of type " << op->type << " on device\n"; type 330 src/CodeGen_OpenGLCompute_Dev.cpp alloc.type = op->type; type 344 src/CodeGen_OpenGLCompute_Dev.cpp stream << print_type(op->type) << " " type 50 src/CodeGen_OpenGLCompute_Dev.h std::string print_type(Type type, AppendSpaceIfNeeded space_option = DoNotAppendSpace); type 33 src/CodeGen_OpenGL_Dev.cpp Type map_type(const Type &type) { type 34 src/CodeGen_OpenGL_Dev.cpp Type result = type; type 35 src/CodeGen_OpenGL_Dev.cpp if (type.is_scalar()) { type 36 src/CodeGen_OpenGL_Dev.cpp if (type.is_float()) { type 37 src/CodeGen_OpenGL_Dev.cpp user_assert(type.bits() <= 32) type 38 src/CodeGen_OpenGL_Dev.cpp << "GLSL: Can't represent a float with " << type.bits() << " bits.\n"; type 40 src/CodeGen_OpenGL_Dev.cpp } else if (type.bits() == 1) { type 42 src/CodeGen_OpenGL_Dev.cpp } else if (type == Int(32)) { type 44 src/CodeGen_OpenGL_Dev.cpp } else if (type == UInt(32)) { type 47 src/CodeGen_OpenGL_Dev.cpp } else if (type.bits() <= 16) { type 52 src/CodeGen_OpenGL_Dev.cpp user_error << "GLSL: Can't represent type '"<< type << "'.\n"; type 55 src/CodeGen_OpenGL_Dev.cpp user_assert(type.lanes() <= 4) type 57 src/CodeGen_OpenGL_Dev.cpp user_assert(type.is_bool() || type.is_int() || type.is_uint() || type.is_float()) type 58 src/CodeGen_OpenGL_Dev.cpp << "GLSL: Can't represent vector type '"<< type << "'.\n"; type 59 src/CodeGen_OpenGL_Dev.cpp Type scalar_type = type.element_of(); type 60 src/CodeGen_OpenGL_Dev.cpp result = map_type(scalar_type).with_lanes(type.lanes()); type 77 src/CodeGen_OpenGL_Dev.cpp if (!args[i].type().is_float()) { type 168 src/CodeGen_OpenGL_Dev.cpp print_expr(call_builtin(op->type, "max", {op->a, op->b})); type 172 src/CodeGen_OpenGL_Dev.cpp print_expr(call_builtin(op->type, "min", {op->a, op->b})); type 176 src/CodeGen_OpenGL_Dev.cpp if (op->type.is_int()) { type 180 src/CodeGen_OpenGL_Dev.cpp Type float_type = Float(32, op->type.lanes()); type 182 src/CodeGen_OpenGL_Dev.cpp print_expr(call_builtin(op->type, "floor_f32", {val})); type 184 src/CodeGen_OpenGL_Dev.cpp visit_binop(op->type, op->a, op->b, "/"); type 189 src/CodeGen_OpenGL_Dev.cpp print_expr(call_builtin(op->type, "mod", {op->a, op->b})); type 204 src/CodeGen_OpenGL_Dev.cpp print_assignment(op->type, rhs.str()); type 207 src/CodeGen_OpenGL_Dev.cpp string CodeGen_GLSLBase::print_type(Type type, AppendSpaceIfNeeded space_option) { type 209 src/CodeGen_OpenGL_Dev.cpp type = map_type(type); type 210 src/CodeGen_OpenGL_Dev.cpp if (type.is_scalar()) { type 211 src/CodeGen_OpenGL_Dev.cpp if (type.is_float()) { type 213 src/CodeGen_OpenGL_Dev.cpp } else if (type.is_bool()) { type 215 src/CodeGen_OpenGL_Dev.cpp } else if (type.is_int()) { type 218 src/CodeGen_OpenGL_Dev.cpp internal_error << "GLSL: invalid type '" << type << "' encountered.\n"; type 221 src/CodeGen_OpenGL_Dev.cpp if (type.is_float()) { type 223 src/CodeGen_OpenGL_Dev.cpp } else if (type.is_bool()) { type 225 src/CodeGen_OpenGL_Dev.cpp } else if (type.is_int()) { type 228 src/CodeGen_OpenGL_Dev.cpp internal_error << "GLSL: invalid type '" << type << "' encountered.\n"; type 230 src/CodeGen_OpenGL_Dev.cpp oss << "vec" << type.lanes(); type 243 src/CodeGen_OpenGL_Dev.cpp if (op->type.is_vector()) { type 244 src/CodeGen_OpenGL_Dev.cpp print_expr(Call::make(op->type, "equal", {op->a, op->b}, Call::Extern)); type 251 src/CodeGen_OpenGL_Dev.cpp if (op->type.is_vector()) { type 252 src/CodeGen_OpenGL_Dev.cpp print_expr(Call::make(op->type, "notEqual", {op->a, op->b}, Call::Extern)); type 259 src/CodeGen_OpenGL_Dev.cpp if (op->type.is_vector()) { type 260 src/CodeGen_OpenGL_Dev.cpp print_expr(Call::make(op->type, "lessThan", {op->a, op->b}, Call::Extern)); type 267 src/CodeGen_OpenGL_Dev.cpp if (op->type.is_vector()) { type 268 src/CodeGen_OpenGL_Dev.cpp print_expr(Call::make(op->type, "lessThanEqual", {op->a, op->b}, Call::Extern)); type 275 src/CodeGen_OpenGL_Dev.cpp if (op->type.is_vector()) { type 276 src/CodeGen_OpenGL_Dev.cpp print_expr(Call::make(op->type, "greaterThan", {op->a, op->b}, Call::Extern)); type 283 src/CodeGen_OpenGL_Dev.cpp if (op->type.is_vector()) { type 284 src/CodeGen_OpenGL_Dev.cpp print_expr(Call::make(op->type, "greaterThanEqual", {op->a, op->b}, Call::Extern)); type 297 src/CodeGen_OpenGL_Dev.cpp int shuffle_lanes = op->type.lanes(); type 310 src/CodeGen_OpenGL_Dev.cpp print_assignment(op->type, expr + "." + swizzle); type 339 src/CodeGen_OpenGL_Dev.cpp if (op->type == Int(32)) { type 342 src/CodeGen_OpenGL_Dev.cpp id = print_type(op->type) + "(" + std::to_string(op->value) + ")"; type 347 src/CodeGen_OpenGL_Dev.cpp id = print_type(op->type) + "(" + std::to_string(op->value) + ")"; type 351 src/CodeGen_OpenGL_Dev.cpp Type value_type = op->value.type(); type 354 src/CodeGen_OpenGL_Dev.cpp if (map_type(op->type) == map_type(value_type)) { type 361 src/CodeGen_OpenGL_Dev.cpp if (op->type.code() == Type::UInt) { type 363 src/CodeGen_OpenGL_Dev.cpp } else if (op->type.code() == Type::Int) { type 370 src/CodeGen_OpenGL_Dev.cpp Type target_type = map_type(op->type); type 412 src/CodeGen_OpenGL_Dev.cpp const int lanes = op->type.lanes(); type 430 src/CodeGen_OpenGL_Dev.cpp if (op->condition.type().is_scalar()) { type 433 src/CodeGen_OpenGL_Dev.cpp stream << print_type(op->type) << " " << id_value << ";\n"; type 459 src/CodeGen_OpenGL_Dev.cpp internal_assert(op->condition.type().lanes() == op->type.lanes()); type 460 src/CodeGen_OpenGL_Dev.cpp int lanes = op->type.lanes(); type 468 src/CodeGen_OpenGL_Dev.cpp stream << print_type(op->type) << " " << id_value << " = " type 469 src/CodeGen_OpenGL_Dev.cpp << print_type(op->type) << "("; type 493 src/CodeGen_OpenGL_Dev.cpp internal_assert(e.type().is_scalar()); type 495 src/CodeGen_OpenGL_Dev.cpp if (e.type() != Int(32)) { type 503 src/CodeGen_OpenGL_Dev.cpp int l = e.type().lanes(); type 504 src/CodeGen_OpenGL_Dev.cpp internal_assert(e.type().is_vector()); type 531 src/CodeGen_OpenGL_Dev.cpp } else if (op->type.is_scalar()) { type 533 src/CodeGen_OpenGL_Dev.cpp print_assignment(op->type, print_name(op->name) + "[" + idx + "]"); type 537 src/CodeGen_OpenGL_Dev.cpp rhs << print_type(op->type) << "("; type 538 src/CodeGen_OpenGL_Dev.cpp for (int i = 0; i < op->type.lanes(); i++) { type 545 src/CodeGen_OpenGL_Dev.cpp print_assignment(op->type, rhs.str()); type 561 src/CodeGen_OpenGL_Dev.cpp } else if (op->value.type().is_scalar()) { type 569 src/CodeGen_OpenGL_Dev.cpp for (int i = 0; i < op->value.type().lanes(); i++) { type 603 src/CodeGen_OpenGL_Dev.cpp internal_assert((op->type.code() == Type::UInt || op->type.code() == Type::Float) && type 604 src/CodeGen_OpenGL_Dev.cpp (op->type.lanes() >= 1 && op->type.lanes() <= 4)); type 606 src/CodeGen_OpenGL_Dev.cpp if (op->type.is_vector()) { type 623 src/CodeGen_OpenGL_Dev.cpp switch (op->type.lanes()) { type 644 src/CodeGen_OpenGL_Dev.cpp rhs << print_type(op->type) << "("; type 645 src/CodeGen_OpenGL_Dev.cpp for (int i = 0; i < op->type.lanes(); i++) { type 668 src/CodeGen_OpenGL_Dev.cpp if (op->type.is_uint()) { type 669 src/CodeGen_OpenGL_Dev.cpp rhs << " * " << print_expr(cast<float>(op->type.max())); type 679 src/CodeGen_OpenGL_Dev.cpp if (op->args[5].type().is_uint()) { type 680 src/CodeGen_OpenGL_Dev.cpp stream << " / " << print_expr(cast<float>(op->args[5].type().max())); type 702 src/CodeGen_OpenGL_Dev.cpp internal_assert(weight.type().is_uint() || weight.type().is_float()); type 703 src/CodeGen_OpenGL_Dev.cpp if (weight.type().is_uint()) { type 705 src/CodeGen_OpenGL_Dev.cpp internal_assert(weight.type().bits() < 32); type 707 src/CodeGen_OpenGL_Dev.cpp Cast::make(Float(32), weight.type().max())); type 708 src/CodeGen_OpenGL_Dev.cpp } else if (op->type.is_uint()) { type 711 src/CodeGen_OpenGL_Dev.cpp internal_assert(op->type.bits() < 32); type 712 src/CodeGen_OpenGL_Dev.cpp weight = floor(weight * op->type.max()) / op->type.max(); type 715 src/CodeGen_OpenGL_Dev.cpp Type result_type = Float(32, op->type.lanes()); type 718 src/CodeGen_OpenGL_Dev.cpp if (!op->type.is_float()) { type 720 src/CodeGen_OpenGL_Dev.cpp e = Cast::make(op->type, floor(e + 0.5f)); type 726 src/CodeGen_OpenGL_Dev.cpp print_expr(call_builtin(op->type, op->name, op->args)); type 737 src/CodeGen_OpenGL_Dev.cpp print_assignment(op->type, rhs.str()); type 776 src/CodeGen_OpenGL_Dev.cpp stream << print_type(op->type) << " " << print_name(op->name) << ";\n"; type 782 src/CodeGen_OpenGL_Dev.cpp stream << print_type(op->type.with_lanes(size)) << " " << print_name(op->name) << ";\n"; type 787 src/CodeGen_OpenGL_Dev.cpp stream << print_type(op->type) << " " << print_name(op->name) << "[" << size << "];\n"; type 801 src/CodeGen_OpenGL_Dev.cpp rhs << print_type(op->type) << "("; type 813 src/CodeGen_OpenGL_Dev.cpp print_assignment(op->type, rhs.str()); type 818 src/CodeGen_OpenGL_Dev.cpp rhs << print_type(op->type) << "(" << print_expr(op->value) << ")"; type 819 src/CodeGen_OpenGL_Dev.cpp print_assignment(op->type, rhs.str()); type 850 src/CodeGen_OpenGL_Dev.cpp Type t = args[i].type.element_of(); type 873 src/CodeGen_OpenGL_Dev.cpp } else if (args[i].type.is_float()) { type 875 src/CodeGen_OpenGL_Dev.cpp << CodeGen_C::print_type(args[i].type) << " " type 878 src/CodeGen_OpenGL_Dev.cpp } else if (args[i].type.is_int()) { type 880 src/CodeGen_OpenGL_Dev.cpp << CodeGen_C::print_type(args[i].type) << " " type 938 src/CodeGen_OpenGL_Dev.cpp } else if (args[i].type.is_float()) { type 940 src/CodeGen_OpenGL_Dev.cpp stream << print_type(args[i].type) << " " type 944 src/CodeGen_OpenGL_Dev.cpp } else if (args[i].type.is_int()) { type 946 src/CodeGen_OpenGL_Dev.cpp stream << print_type(args[i].type) << " " type 58 src/CodeGen_OpenGL_Dev.h std::string print_type(Type type, AppendSpaceIfNeeded space_option = DoNotAppendSpace); type 60 src/CodeGen_PTX_Dev.cpp arg_types[i] = llvm_type_of(args[i].type); type 210 src/CodeGen_PTX_Dev.cpp Value *ptr = builder->CreateAlloca(llvm_type_of(alloc->type), ConstantInt::get(i32_t, size)); type 27 src/CodeGen_Posix.cpp Value *CodeGen_Posix::codegen_allocation_size(const std::string &name, Type type, const std::vector<Expr> &extents) { type 31 src/CodeGen_Posix.cpp Expr total_size = make_const(UInt(64), type.lanes() * type.bytes()); type 75 src/CodeGen_Posix.cpp int CodeGen_Posix::allocation_padding(Type type) const { type 79 src/CodeGen_Posix.cpp return type.bytes(); type 82 src/CodeGen_Posix.cpp CodeGen_Posix::Allocation CodeGen_Posix::create_allocation(const std::string &name, Type type, type 89 src/CodeGen_Posix.cpp constant_bytes *= type.bytes(); type 100 src/CodeGen_Posix.cpp llvm_size = codegen_allocation_size(name, type, extents); type 109 src/CodeGen_Posix.cpp Value *padding = ConstantInt::get(llvm_size->getType(), allocation_padding(type)); type 121 src/CodeGen_Posix.cpp allocation.type = type; type 130 src/CodeGen_Posix.cpp allocation.ptr = create_alloca_at_entry(llvm_type_of(type), 1, false, name); type 144 src/CodeGen_Posix.cpp free->type == type && type 165 src/CodeGen_Posix.cpp int64_t stack_size = (stack_bytes + type.bytes() - 1) / type.bytes(); type 168 src/CodeGen_Posix.cpp llvm_type_of(type.is_handle() ? UInt(64, type.lanes()) : type); type 188 src/CodeGen_Posix.cpp << " of size " << type.bytes(); type 198 src/CodeGen_Posix.cpp call = builder->CreatePointerCast(call, llvm_type_of(type)->getPointerTo()); type 267 src/CodeGen_Posix.cpp Allocation allocation = create_allocation(alloc->name, alloc->type, type 37 src/CodeGen_Posix.h virtual int allocation_padding(Type type) const; type 51 src/CodeGen_Posix.h Type type; type 88 src/CodeGen_Posix.h llvm::Value *codegen_allocation_size(const std::string &name, Type type, const std::vector<Expr> &extents); type 103 src/CodeGen_Posix.h Allocation create_allocation(const std::string &name, Type type, type 44 src/CodeGen_PowerPC.cpp if (!op->type.is_vector()) { type 55 src/CodeGen_PowerPC.cpp Type type; type 111 src/CodeGen_PowerPC.cpp matches[i] = lossless_cast(op->type, matches[i]); type 116 src/CodeGen_PowerPC.cpp value = call_intrin(op->type, pattern.type.lanes(), pattern.intrin, matches); type 126 src/CodeGen_PowerPC.cpp if (!op->type.is_vector()) { type 134 src/CodeGen_PowerPC.cpp const Type& element_type = op->type.element_of(); type 139 src/CodeGen_PowerPC.cpp value = call_intrin(op->type, (128 / element_type.bits()), type 142 src/CodeGen_PowerPC.cpp } else if (op->type.element_of() == Float(32)) { type 143 src/CodeGen_PowerPC.cpp value = call_intrin(op->type, 4, "llvm.ppc.altivec.vminfp", {op->a, op->b}); type 144 src/CodeGen_PowerPC.cpp } else if (vsx && op->type.element_of() == Float(64)) { type 145 src/CodeGen_PowerPC.cpp value = call_intrin(op->type, 2, "llvm.ppc.vsx.xvmindp", {op->a, op->b}); type 152 src/CodeGen_PowerPC.cpp if (!op->type.is_vector()) { type 160 src/CodeGen_PowerPC.cpp const Type& element_type = op->type.element_of(); type 165 src/CodeGen_PowerPC.cpp value = call_intrin(op->type, (128 / element_type.bits()), type 168 src/CodeGen_PowerPC.cpp } else if (op->type.element_of() == Float(32)) { type 169 src/CodeGen_PowerPC.cpp value = call_intrin(op->type, 4, "llvm.ppc.altivec.vmaxfp", {op->a, op->b}); type 170 src/CodeGen_PowerPC.cpp } else if (vsx && op->type.element_of() == Float(64)) { type 171 src/CodeGen_PowerPC.cpp value = call_intrin(op->type, 2, "llvm.ppc.vsx.xvmaxdp", {op->a, op->b}); type 39 src/CodeGen_X86.cpp Type t = a.type(); type 40 src/CodeGen_X86.cpp internal_assert(b.type() == t); type 69 src/CodeGen_X86.cpp codegen(Call::make(op->type, "pmaddwd", matches, Call::Extern)); type 85 src/CodeGen_X86.cpp codegen(Call::make(op->type, "pmaddwd", matches, Call::Extern)); type 92 src/CodeGen_X86.cpp if (op->type.is_vector()) { type 96 src/CodeGen_X86.cpp Type t = op->a.type(); type 104 src/CodeGen_X86.cpp for (int i = 0; i < op->type.lanes(); i += slice_size) { type 127 src/CodeGen_X86.cpp if (op->type.is_vector()) { type 131 src/CodeGen_X86.cpp Type t = op->a.type(); type 139 src/CodeGen_X86.cpp for (int i = 0; i < op->type.lanes(); i += slice_size) { type 175 src/CodeGen_X86.cpp if (op->condition.type().is_vector()) { type 180 src/CodeGen_X86.cpp Type t = op->true_value.type(); type 204 src/CodeGen_X86.cpp if (!op->type.is_vector()) { type 215 src/CodeGen_X86.cpp Type type; type 270 src/CodeGen_X86.cpp if (op->type.lanes() < pattern.min_lanes) { type 279 src/CodeGen_X86.cpp matches[i] = lossless_cast(op->type, matches[i]); type 284 src/CodeGen_X86.cpp value = call_intrin(op->type, pattern.type.lanes(), pattern.intrin, matches); type 295 src/CodeGen_X86.cpp if (op->value.type().element_of() == UInt(32) && type 296 src/CodeGen_X86.cpp op->type.is_float() && type 297 src/CodeGen_X86.cpp op->type.is_vector() && type 299 src/CodeGen_X86.cpp Type signed_type = Int(32, op->type.lanes()); type 303 src/CodeGen_X86.cpp top_bits = cast(op->type, top_bits); type 307 src/CodeGen_X86.cpp bottom_bit = cast(op->type, bottom_bit); type 320 src/CodeGen_X86.cpp Type ty = a.type(); type 338 src/CodeGen_X86.cpp if (LLVM_VERSION >= 39 || op->type.is_scalar()) { type 344 src/CodeGen_X86.cpp if (op->type.element_of() == UInt(8)) { type 345 src/CodeGen_X86.cpp value = call_intrin(op->type, 16, "llvm.x86.sse2.pminu.b", {op->a, op->b}); type 346 src/CodeGen_X86.cpp } else if (use_sse_41 && op->type.element_of() == Int(8)) { type 347 src/CodeGen_X86.cpp value = call_intrin(op->type, 16, "llvm.x86.sse41.pminsb", {op->a, op->b}); type 348 src/CodeGen_X86.cpp } else if (op->type.element_of() == Int(16)) { type 349 src/CodeGen_X86.cpp value = call_intrin(op->type, 8, "llvm.x86.sse2.pmins.w", {op->a, op->b}); type 350 src/CodeGen_X86.cpp } else if (use_sse_41 && op->type.element_of() == UInt(16)) { type 351 src/CodeGen_X86.cpp value = call_intrin(op->type, 8, "llvm.x86.sse41.pminuw", {op->a, op->b}); type 352 src/CodeGen_X86.cpp } else if (use_sse_41 && op->type.element_of() == Int(32)) { type 353 src/CodeGen_X86.cpp value = call_intrin(op->type, 4, "llvm.x86.sse41.pminsd", {op->a, op->b}); type 354 src/CodeGen_X86.cpp } else if (use_sse_41 && op->type.element_of() == UInt(32)) { type 355 src/CodeGen_X86.cpp value = call_intrin(op->type, 4, "llvm.x86.sse41.pminud", {op->a, op->b}); type 362 src/CodeGen_X86.cpp if (LLVM_VERSION >= 39 || op->type.is_scalar()) { type 368 src/CodeGen_X86.cpp if (op->type.element_of() == UInt(8)) { type 369 src/CodeGen_X86.cpp value = call_intrin(op->type, 16, "llvm.x86.sse2.pmaxu.b", {op->a, op->b}); type 370 src/CodeGen_X86.cpp } else if (use_sse_41 && op->type.element_of() == Int(8)) { type 371 src/CodeGen_X86.cpp value = call_intrin(op->type, 16, "llvm.x86.sse41.pmaxsb", {op->a, op->b}); type 372 src/CodeGen_X86.cpp } else if (op->type.element_of() == Int(16)) { type 373 src/CodeGen_X86.cpp value = call_intrin(op->type, 8, "llvm.x86.sse2.pmaxs.w", {op->a, op->b}); type 374 src/CodeGen_X86.cpp } else if (use_sse_41 && op->type.element_of() == UInt(16)) { type 375 src/CodeGen_X86.cpp value = call_intrin(op->type, 8, "llvm.x86.sse41.pmaxuw", {op->a, op->b}); type 376 src/CodeGen_X86.cpp } else if (use_sse_41 && op->type.element_of() == Int(32)) { type 377 src/CodeGen_X86.cpp value = call_intrin(op->type, 4, "llvm.x86.sse41.pmaxsd", {op->a, op->b}); type 378 src/CodeGen_X86.cpp } else if (use_sse_41 && op->type.element_of() == UInt(32)) { type 379 src/CodeGen_X86.cpp value = call_intrin(op->type, 4, "llvm.x86.sse41.pmaxud", {op->a, op->b}); type 389 src/CodeGen_X86.cpp op->type.is_vector() && type 390 src/CodeGen_X86.cpp op->type.is_int() && type 391 src/CodeGen_X86.cpp op->type.bits() < 32 && type 402 src/CodeGen_X86.cpp Type wider = op->type.with_bits(32); type 403 src/CodeGen_X86.cpp Expr equiv = cast(op->type, type 19 src/ConciseCasts.h return cast(Float(64, e.type().lanes()), e); type 23 src/ConciseCasts.h return cast(Float(32, e.type().lanes()), e); type 27 src/ConciseCasts.h return cast(Int(64, e.type().lanes()), e); type 31 src/ConciseCasts.h return cast(Int(32, e.type().lanes()), e); type 35 src/ConciseCasts.h return cast(Int(16, e.type().lanes()), e); type 39 src/ConciseCasts.h return cast(Int(8, e.type().lanes()), e); type 43 src/ConciseCasts.h return cast(UInt(64, e.type().lanes()), e); type 47 src/ConciseCasts.h return cast(UInt(32, e.type().lanes()), e); type 51 src/ConciseCasts.h return cast(UInt(16, e.type().lanes()), e); type 55 src/ConciseCasts.h return cast(UInt(8, e.type().lanes()), e); type 59 src/ConciseCasts.h return saturating_cast(Int(8, e.type().lanes()), e); type 63 src/ConciseCasts.h return saturating_cast(UInt(8, e.type().lanes()), e); type 67 src/ConciseCasts.h return saturating_cast(Int(16, e.type().lanes()), e); type 71 src/ConciseCasts.h return saturating_cast(UInt(16, e.type().lanes()), e); type 75 src/ConciseCasts.h return saturating_cast(Int(32, e.type().lanes()), e); type 79 src/ConciseCasts.h return saturating_cast(UInt(32, e.type().lanes()), e); type 83 src/ConciseCasts.h return saturating_cast(Int(64, e.type().lanes()), e); type 87 src/ConciseCasts.h return saturating_cast(UInt(64, e.type().lanes()), e); type 16 src/DebugArguments.cpp Expr scalar_var = Variable::make(arg.type, arg.name); type 21 src/DebugArguments.cpp name << " Input " << arg.type << ' ' << arg.name << ':'; type 170 src/Deinterleave.cpp if (op->type.is_scalar()) { type 173 src/Deinterleave.cpp Type t = op->type.with_lanes(new_lanes); type 180 src/Deinterleave.cpp internal_assert(expr.type() == op->base.type()); type 187 src/Deinterleave.cpp if (op->type.is_scalar()) { type 191 src/Deinterleave.cpp Type t = op->type.with_lanes(new_lanes); type 227 src/Deinterleave.cpp if (op->type.is_scalar()) { type 230 src/Deinterleave.cpp Type t = op->type.with_lanes(new_lanes); type 236 src/Deinterleave.cpp Type t = op->type.with_lanes(new_lanes); type 239 src/Deinterleave.cpp if (op->type.is_scalar()) { type 269 src/Deinterleave.cpp if (op->type.is_vector()) { type 272 src/Deinterleave.cpp Type new_type = new_value.type(); type 322 src/Deinterleave.cpp internal_assert(e.type().lanes() % 2 == 0); type 326 src/Deinterleave.cpp d.new_lanes = e.type().lanes()/2; type 332 src/Deinterleave.cpp internal_assert(e.type().lanes() % 2 == 0); type 336 src/Deinterleave.cpp d.new_lanes = (e.type().lanes()+1)/2; type 342 src/Deinterleave.cpp internal_assert(e.type().lanes() % 2 == 0); type 348 src/Deinterleave.cpp internal_assert(e.type().lanes() % 2 == 0); type 354 src/Deinterleave.cpp internal_assert(e.type().lanes() % 3 == 0); type 358 src/Deinterleave.cpp d.new_lanes = (e.type().lanes()+2)/3; type 367 src/Deinterleave.cpp d.lane_stride = e.type().lanes(); type 384 src/Deinterleave.cpp if (e.type().lanes() <= num_lanes) { type 413 src/Deinterleave.cpp if (value.type() == Int(32)) { type 417 src/Deinterleave.cpp if (value.type().is_vector()) { type 421 src/Deinterleave.cpp if (value.type().is_vector()) { type 424 src/Deinterleave.cpp if (value.type() == Int(32)) { type 436 src/Deinterleave.cpp if (value.type().is_vector()) { type 437 src/Deinterleave.cpp if (value.type().lanes() % 2 == 0) { type 441 src/Deinterleave.cpp if (value.type().lanes() % 3 == 0) { type 464 src/Deinterleave.cpp (r->type.lanes() % i) == 0) { type 478 src/Deinterleave.cpp (r->type.lanes() % i) == 0) { type 503 src/Deinterleave.cpp expr = Load::make(op->type, op->name, idx, op->image, op->param, predicate); type 509 src/Deinterleave.cpp expr = Load::make(op->type, op->name, idx, op->image, op->param, predicate); type 514 src/Deinterleave.cpp expr = Load::make(op->type, op->name, idx, op->image, op->param, predicate); type 516 src/Deinterleave.cpp expr = Load::make(op->type, op->name, idx, op->image, op->param, predicate); type 601 src/Deinterleave.cpp Type t = store->value.type(); type 690 src/Deinterleave.cpp Expr index = Ramp::make(base, make_one(base.type()), t.lanes()); type 750 src/Deinterleave.cpp check(Load::make(ramp.type(), "buf", ramp, Buffer<>(), Parameter(), const_true(ramp.type().lanes())), type 751 src/Deinterleave.cpp Load::make(ramp_a.type(), "buf", ramp_a, Buffer<>(), Parameter(), const_true(ramp_a.type().lanes())), type 752 src/Deinterleave.cpp Load::make(ramp_b.type(), "buf", ramp_b, Buffer<>(), Parameter(), const_true(ramp_b.type().lanes()))); type 26 src/DeviceArgument.cpp DeviceArgument arg(b.first, true, b.second.type, b.second.dimensions, b.second.size); type 53 src/DeviceArgument.cpp ref.type = op->type; type 47 src/DeviceArgument.h Type type; type 78 src/DeviceArgument.h type(_type), type 164 src/EarlyFree.cpp stmt = Allocate::make(alloc->name, alloc->type, alloc->extents, alloc->condition, type 162 src/Elf.cpp static addr_t make_info(uint32_t type, uint32_t sym) { type 164 src/Elf.cpp return (uint64_t)type | ((uint64_t)sym << 32); type 166 src/Elf.cpp return (type & 0xff) | (sym << 8); type 170 src/Elf.cpp void set_r_type(uint32_t type) { type 171 src/Elf.cpp r_info = make_info(type, r_sym()); type 181 src/Elf.cpp Rel(addr_t offset, uint32_t type, uint32_t sym) type 182 src/Elf.cpp : r_offset(offset), r_info(make_info(type, sym)) {} type 195 src/Elf.cpp Rela(addr_t offset, uint32_t type, uint32_t sym, addr_off_t addend) type 196 src/Elf.cpp : Rel<T>(offset, type, sym), r_addend(addend) {} type 214 src/Elf.cpp static uint8_t make_info(uint8_t binding, uint8_t type) { type 215 src/Elf.cpp return (binding << 4) | (type & 0xf); type 221 src/Elf.cpp void set_type(uint8_t type) { type 222 src/Elf.cpp st_info = make_info(get_binding(), type); type 434 src/Elf.cpp Object::section_iterator Object::add_section(const std::string &name, Section::Type type) { type 435 src/Elf.cpp secs.emplace_back(name, type); type 76 src/Elf.h Type type = STT_NOTYPE; type 94 src/Elf.h Symbol &set_type(Type type) { type 95 src/Elf.h this->type = type; type 98 src/Elf.h Type get_type() const { return type; } type 134 src/Elf.h uint32_t type = 0; type 141 src/Elf.h Relocation(uint32_t type, uint64_t offset, int64_t addend, const Symbol *symbol) type 142 src/Elf.h : type(type), offset(offset), addend(addend), symbol(symbol) {} type 147 src/Elf.h Relocation &set_type(uint32_t type) { type 148 src/Elf.h this->type = type; type 151 src/Elf.h uint32_t get_type() const { return type; } type 217 src/Elf.h Type type = SHT_NULL; type 227 src/Elf.h Section(const std::string &name, Type type) : name(name), type(type) {} type 235 src/Elf.h Section &set_type(Type type) { type 236 src/Elf.h this->type = type; type 239 src/Elf.h Type get_type() const { return type; } type 352 src/Elf.h virtual Relocation relocate(uint64_t fixup_offset, char *fixup_addr, uint64_t type, type 385 src/Elf.h Type type = ET_NONE; type 397 src/Elf.h Type get_type() const { return type; } type 403 src/Elf.h Object &set_type(Type type) { type 404 src/Elf.h this->type = type; type 440 src/Elf.h section_iterator add_section(const std::string &name, Section::Type type); type 27 src/EliminateBoolVectors.cpp Type t = a.type(); type 32 src/EliminateBoolVectors.cpp if (t.lanes() > 1 && t.bits() != b.type().bits()) { type 33 src/EliminateBoolVectors.cpp internal_assert(t.is_int() && b.type().is_int()); type 35 src/EliminateBoolVectors.cpp t = t.with_bits(std::max(t.bits(), b.type().bits())); type 36 src/EliminateBoolVectors.cpp if (t != a.type()) { type 39 src/EliminateBoolVectors.cpp if (t != b.type()) { type 69 src/EliminateBoolVectors.cpp Type ta = a.type(); type 70 src/EliminateBoolVectors.cpp Type tb = b.type(); type 74 src/EliminateBoolVectors.cpp if (t != a.type()) { type 77 src/EliminateBoolVectors.cpp if (t != b.type()) { type 99 src/EliminateBoolVectors.cpp if (a.type().lanes() > 1) { type 101 src/EliminateBoolVectors.cpp expr = Call::make(a.type(), Call::bitwise_not, {a}, Call::PureIntrinsic); type 110 src/EliminateBoolVectors.cpp if (op->value.type().is_bool() && op->value.type().is_vector()) { type 113 src/EliminateBoolVectors.cpp make_one(op->type), type 114 src/EliminateBoolVectors.cpp make_zero(op->type))); type 115 src/EliminateBoolVectors.cpp } else if (op->type.is_bool() && op->type.is_vector()) { type 117 src/EliminateBoolVectors.cpp expr = mutate(op->value != make_zero(op->value.type())); type 126 src/EliminateBoolVectors.cpp if (op->value.type().is_bool()) { type 127 src/EliminateBoolVectors.cpp Type ty = UInt(8, op->value.type().lanes()); type 146 src/EliminateBoolVectors.cpp Type cond_ty = cond.type(); type 154 src/EliminateBoolVectors.cpp internal_assert(true_value.type().bits() == false_value.type().bits()); type 155 src/EliminateBoolVectors.cpp if (true_value.type().bits() != cond_ty.bits()) { type 156 src/EliminateBoolVectors.cpp cond_ty = cond_ty.with_bits(true_value.type().bits()); type 160 src/EliminateBoolVectors.cpp expr = Call::make(true_value.type(), Call::select_mask, {cond, true_value, false_value}, Call::PureIntrinsic); type 172 src/EliminateBoolVectors.cpp if (op->type.bits() == 1) { type 183 src/EliminateBoolVectors.cpp if (op->is_extract_element() && op->type.is_bool()) { type 201 src/EliminateBoolVectors.cpp if (value.type() != op->value.type()) { type 202 src/EliminateBoolVectors.cpp lets.push(op->name, value.type()); type 205 src/EliminateBoolVectors.cpp if (value.type() != op->value.type()) { type 115 src/Expr.h Type type; type 185 src/Expr.h node->type = t; type 208 src/Expr.h node->type = t; type 224 src/Expr.h node->type = t; type 251 src/Expr.h node->type = type_of<const char *>(); type 291 src/Expr.h Type type() const { type 292 src/Expr.h return ((const Internal::BaseExprNode *)ptr)->type; type 15 src/Extern.h _halide_user_assert(e.type() == t) << "Type mismatch for argument " << n << " to extern function " << #name << ". Type expected is " << t << " but the argument " << e << " has type " << e.type() << ".\n"; type 121 src/FastIntegerDivide.cpp user_assert(denominator.type() == UInt(8)) type 123 src/FastIntegerDivide.cpp Type t = numerator.type(); type 225 src/FastIntegerDivide.cpp internal_assert(result.type() == t); type 1114 src/Func.cpp user_assert(condition.type().is_bool()) << "Argument passed to specialize must be of type bool\n"; type 1937 src/Func.cpp user_assert(!min.defined() || Int(32).can_represent(min.type())) << "Can't represent min bound in int32\n"; type 1939 src/Func.cpp user_assert(Int(32).can_represent(extent.type())) << "Can't represent extent bound in int32\n"; type 1971 src/Func.cpp user_assert(Int(32).can_represent(modulus.type())) << "Can't represent modulus as int32\n"; type 1972 src/Func.cpp user_assert(Int(32).can_represent(remainder.type())) << "Can't represent remainder as int32\n"; type 2554 src/Func.cpp init_values[i] = cast(e[i].type(), init_val); type 2569 src/Func.cpp FuncRef self_ref = define_base_case(func, expanded_args, cast(e.type(), init_val))(expanded_args); type 2696 src/Func.cpp Type t = func_ref.function().values()[i].type(); type 196 src/Func.h NO_INLINE typename std::enable_if<Internal::all_are_convertible<VarOrRVar, Args...>::value, Stage &>::type type 977 src/Func.h NO_INLINE typename std::enable_if<Internal::all_are_convertible<Var, Args...>::value, FuncRef>::type type 994 src/Func.h NO_INLINE typename std::enable_if<Internal::all_are_convertible<Expr, Args...>::value, FuncRef>::type type 1206 src/Func.h NO_INLINE typename std::enable_if<Internal::all_are_convertible<VarOrRVar, Args...>::value, Func &>::type type 1608 src/Func.h NO_INLINE typename std::enable_if<Internal::all_are_convertible<Var, Args...>::value, Func &>::type type 1976 src/Func.h using T = typename std::remove_pointer<typename std::remove_reference<Last>::type>::type; type 1977 src/Func.h user_assert(t[idx].type() == type_of<T>()) type 1979 src/Func.h << t[idx] << " of type " << t[idx].type() type 1991 src/Func.h using T = typename std::remove_pointer<typename std::remove_reference<Last>::type>::type; type 2008 src/Func.h user_assert(e.type() == type_of<T>()) type 2010 src/Func.h << e << " of type " << e.type() type 2051 src/Func.h user_assert(e.type() == type_of<T>()) type 2053 src/Func.h << e << " of type " << e.type() type 212 src/Function.cpp expr = Call::make(c->type, c->name, c->args, c->call_type, type 461 src/Function.cpp contents->output_types[i] = values[i].type(); type 469 src/Function.cpp Parameter output(values[i].type(), true, args.size(), buffer_name); type 508 src/Function.cpp Type pure_type = pure_def_vals[i].type(); type 509 src/Function.cpp if (pure_type != values[i].type()) { type 517 src/Function.cpp err << values[i].type() << ", but pure definition has type " << pure_type; type 235 src/FuseGPUThreadLoops.cpp Type type; type 242 src/FuseGPUThreadLoops.cpp AllocGroup(const SharedAllocation &alloc) : max_type_bytes(alloc.type.bytes()) { type 243 src/FuseGPUThreadLoops.cpp max_size_bytes = simplify(alloc.type.bytes() * alloc.size); type 248 src/FuseGPUThreadLoops.cpp max_type_bytes = std::max(max_type_bytes, alloc.type.bytes()); type 249 src/FuseGPUThreadLoops.cpp max_size_bytes = simplify(max(max_size_bytes, simplify(alloc.size * alloc.type.bytes()))); type 343 src/FuseGPUThreadLoops.cpp alloc.type = op->type; type 361 src/FuseGPUThreadLoops.cpp expr = Load::make(op->type, shared_mem_name + "_" + op->name, type 365 src/FuseGPUThreadLoops.cpp expr = Load::make(op->type, shared_mem_name, base + index, type 451 src/FuseGPUThreadLoops.cpp Expr size = alloc_size * alloc.type.bytes(); type 528 src/FuseGPUThreadLoops.cpp alloc.type, {alloc.size}, const_true(), s); type 548 src/FuseGPUThreadLoops.cpp sentinel.type = UInt(8); type 563 src/FuseGPUThreadLoops.cpp int new_elem_size = alloc.type.bytes(); type 13 src/FuzzFloatStores.cpp Type t = op->value.type(); type 18 src/FuzzFloatStores.cpp value = reinterpret(mask.type(), value); type 108 src/Generator.cpp param.type(), param.dimensions(), def, min, max); type 572 src/Generator.cpp std::string type = p->get_template_type(); type 574 src/Generator.cpp if (type == "float" || type == "double") { type 582 src/Generator.cpp stream << indent() << comma << type << " " << p->name << " = " << value << "\n"; type 594 src/Generator.cpp std::string type = p->get_template_type(); type 595 src/Generator.cpp if (type == "typename") { type 597 src/Generator.cpp } else if (type == "float" || type == "double") { type 993 src/Generator.cpp void GeneratorParamBase::fail_wrong_type(const char *type) { type 994 src/Generator.cpp user_error << "The GeneratorParam " << name << " cannot be set with a value of type " << type << ".\n"; type 1561 src/Generator.cpp user_assert(f.output_types()[0] == type()) type 1562 src/Generator.cpp << "Expected type " << type() type 1569 src/Generator.cpp user_assert(e.type() == type()) type 1570 src/Generator.cpp << "Expected type " << type() type 1571 src/Generator.cpp << " but got " << e.type() type 1642 src/Generator.cpp parameters_.emplace_back(type(), kind() != IOKind::Scalar, dimensions(), array_name(i), true, false); type 1669 src/Generator.cpp Expr e = Internal::Variable::make(type(), array_name(i), parameters_[i]); type 1693 src/Generator.cpp check_matching_type_and_dim({p.type()}, p.dimensions()); type 1708 src/Generator.cpp check_matching_type_and_dim({e.type()}, 0); type 1710 src/Generator.cpp parameters_.emplace_back(e.type(), false, 0, array_name(i), true, false); type 314 src/Generator.h using type = T; type 318 src/Generator.h struct select_type : std::conditional<First::value, typename First::type, typename select_type<Rest...>::type> { }; type 321 src/Generator.h struct select_type<First> { using type = typename std::conditional<First::value, typename First::type, void>::type; }; type 397 src/Generator.h EXPORT void fail_wrong_type(const char *type); type 414 src/Generator.h using type = T; type 449 src/Generator.h template <typename T2, typename std::enable_if<std::is_convertible<T2, T>::value>::type * = nullptr> type 464 src/Generator.h template <typename T2, typename std::enable_if<!std::is_convertible<T2, T>::value>::type * = nullptr> type 689 src/Generator.h >::type; type 932 src/Generator.h Buffer<> other(p.type(), nullptr, std::vector<int>(p.dimensions(), 1)); type 939 src/Generator.h Parameter p(b.type(), true, b.dimensions()); type 1099 src/Generator.h EXPORT Type type() const; type 1210 src/Generator.h using TBase = typename std::remove_all_extents<T>::type; type 1219 src/Generator.h >::type * = nullptr> type 1227 src/Generator.h >::type * = nullptr> type 1235 src/Generator.h >::type * = nullptr> type 1241 src/Generator.h template <typename T2 = T, typename std::enable_if<std::is_array<T2>::value>::type * = nullptr> type 1246 src/Generator.h template <typename T2 = T, typename std::enable_if<std::is_array<T2>::value>::type * = nullptr> type 1251 src/Generator.h template <typename T2 = T, typename std::enable_if<std::is_array<T2>::value>::type * = nullptr> type 1256 src/Generator.h template <typename T2 = T, typename std::enable_if<std::is_array<T2>::value>::type * = nullptr> type 1261 src/Generator.h template <typename T2 = T, typename std::enable_if<std::is_array<T2>::value>::type * = nullptr> type 1503 src/Generator.h struct has_static_halide_type_method<T2, typename type_sink<decltype(T2::static_halide_type())>::type> : std::true_type {}; type 1505 src/Generator.h template<typename T, typename TBase = typename std::remove_all_extents<T>::type> type 1512 src/Generator.h >::type; type 1532 src/Generator.h >::type; type 1702 src/Generator.h using TBase = typename std::remove_all_extents<T>::type; type 1712 src/Generator.h >::type * = nullptr> type 1720 src/Generator.h >::type * = nullptr> type 1728 src/Generator.h >::type * = nullptr> type 1734 src/Generator.h template <typename... Args, typename T2 = T, typename std::enable_if<!std::is_array<T2>::value>::type * = nullptr> type 1739 src/Generator.h template <typename ExprOrVar, typename T2 = T, typename std::enable_if<!std::is_array<T2>::value>::type * = nullptr> type 1744 src/Generator.h template <typename T2 = T, typename std::enable_if<!std::is_array<T2>::value>::type * = nullptr> type 1749 src/Generator.h template <typename T2 = T, typename std::enable_if<std::is_array<T2>::value>::type * = nullptr> type 1754 src/Generator.h template <typename T2 = T, typename std::enable_if<std::is_array<T2>::value>::type * = nullptr> type 1759 src/Generator.h template <typename T2 = T, typename std::enable_if<std::is_array<T2>::value>::type * = nullptr> type 1764 src/Generator.h template <typename T2 = T, typename std::enable_if<std::is_array<T2>::value>::type * = nullptr> type 1769 src/Generator.h template <typename T2 = T, typename std::enable_if<std::is_array<T2>::value>::type * = nullptr> type 1777 src/Generator.h >::type * = nullptr> type 1846 src/Generator.h user_assert(Type(buffer.type()) == this->type()) type 1847 src/Generator.h << "Output should have type=" << this->type() << " but saw type=" << Type(buffer.type()) << "\n"; type 1881 src/Generator.h user_assert(output_types.at(0) == this->type()) type 1882 src/Generator.h << "Output should have type=" << this->type() << " but saw type=" << output_types.at(0) << "\n"; type 1922 src/Generator.h template <typename T2 = T, typename std::enable_if<!std::is_array<T2>::value>::type * = nullptr> type 1933 src/Generator.h template <typename T2 = T, typename std::enable_if<std::is_array<T2>::value>::type * = nullptr> type 1939 src/Generator.h template <typename T2 = T, typename std::enable_if<std::is_array<T2>::value>::type * = nullptr> type 1963 src/Generator.h template<typename T, typename TBase = typename std::remove_all_extents<T>::type> type 1969 src/Generator.h >::type; type 2085 src/Generator.h template <typename T2 = T, typename std::enable_if<std::is_same<T2, ::Halide::Type>::value>::type * = nullptr> type 2091 src/Generator.h template <typename T2 = T, typename std::enable_if<std::is_integral<T2>::value>::type * = nullptr> type 2308 src/Generator.h template <typename... Args, typename std::enable_if<NoRealizations<Args...>::value>::type * = nullptr> type 2562 src/Generator.h typename std::enable_if<std::is_arithmetic<T>::value>::type * = nullptr> type 2575 src/Generator.h typename std::enable_if<std::is_arithmetic<T>::value>::type * = nullptr> type 2690 src/Generator.h struct has_generate_method<T2, typename type_sink<decltype(std::declval<T2>().generate())>::type> : std::true_type {}; type 2696 src/Generator.h struct has_schedule_method<T2, typename type_sink<decltype(std::declval<T2>().schedule())>::type> : std::true_type {}; type 2699 src/Generator.h typename std::enable_if<!has_generate_method<T2>::value>::type * = nullptr> type 2708 src/Generator.h typename std::enable_if<has_generate_method<T2>::value>::type * = nullptr> type 2719 src/Generator.h typename std::enable_if<!has_generate_method<T2>::value>::type * = nullptr> type 2725 src/Generator.h typename std::enable_if<has_generate_method<T2>::value>::type * = nullptr> type 2738 src/Generator.h typename std::enable_if<!has_schedule_method<T2>::value>::type * = nullptr> type 2744 src/Generator.h typename std::enable_if<has_schedule_method<T2>::value>::type * = nullptr> type 2837 src/Generator.h template <typename... Args, typename std::enable_if<NoRealizations<Args...>::value>::type * = nullptr> type 310 src/HexagonOffload.cpp void do_relocation(uint32_t fixup_offset, char *fixup_addr, uint32_t type, type 350 src/HexagonOffload.cpp switch (type) { type 362 src/HexagonOffload.cpp internal_error << "Not pic code " << type << "\n"; type 366 src/HexagonOffload.cpp internal_error << "Not pic code " << type << "\n"; type 370 src/HexagonOffload.cpp internal_error << "Not pic code " << type << "\n"; type 374 src/HexagonOffload.cpp internal_error << "Not pic code " << type << "\n"; type 378 src/HexagonOffload.cpp internal_error << "Not pic code " << type << "\n"; type 382 src/HexagonOffload.cpp internal_error << "Not pic code " << type << "\n"; type 386 src/HexagonOffload.cpp internal_error << "Not pic code " << type << "\n"; type 390 src/HexagonOffload.cpp internal_error << "Not pic code " << type << "\n"; type 394 src/HexagonOffload.cpp internal_error << "Not pic code " << type << "\n"; type 398 src/HexagonOffload.cpp internal_error << "Not pic code " << type << "\n"; type 412 src/HexagonOffload.cpp internal_error << "Not pic code " << type << "\n"; type 431 src/HexagonOffload.cpp internal_error << "Not pic code " << type << "\n"; type 435 src/HexagonOffload.cpp internal_error << "Not pic code " << type << "\n"; type 444 src/HexagonOffload.cpp internal_error << "Not pic code " << type << "\n"; type 463 src/HexagonOffload.cpp internal_error << "Unhandled relocation type " << type << "\n"; type 553 src/HexagonOffload.cpp Relocation relocate(uint64_t fixup_offset, char *fixup_addr, uint64_t type, type 556 src/HexagonOffload.cpp if (type == R_HEX_32) { type 560 src/HexagonOffload.cpp do_relocation(fixup_offset, fixup_addr, type, sym, sym_offset, addend, got); type 579 src/HexagonOffload.cpp expr = Load::make(op->type, op->name, mutate(op->index), op->image, type 614 src/HexagonOffload.cpp Expr state_var(const std::string& name, Type type) { type 615 src/HexagonOffload.cpp return Let::make(name, state_var_ptr(name, type), type 620 src/HexagonOffload.cpp Expr state_var_ptr(const std::string& name, Type type) { type 685 src/HexagonOffload.cpp output_buffers.push_back(LoweredArgument(i.first, kind, i.second.type, i.second.dimensions)); type 688 src/HexagonOffload.cpp input_buffers.push_back(LoweredArgument(i.first, kind, i.second.type, i.second.dimensions)); type 692 src/HexagonOffload.cpp Parameter p(i.second.type, true, i.second.dimensions); type 748 src/HexagonOffload.cpp arg_sizes.push_back(Expr((uint64_t)(pseudo_buffer.type().bytes()))); type 782 src/HexagonOffload.cpp if (op->value.type() == Int(32)) { type 788 src/HexagonOffload.cpp if (op->value.type() == Int(32)) { type 794 src/HexagonOffload.cpp if (op->value.type() == Int(32)) { type 800 src/HexagonOffload.cpp if (op->value.type() == Int(32)) { type 27 src/HexagonOptimize.cpp switch (x.type().bits()) { type 31 src/HexagonOptimize.cpp default: internal_error << "Cannot interleave native vectors of type " << x.type() << "\n"; type 33 src/HexagonOptimize.cpp return Call::make(x.type(), fn, {x}, Call::PureExtern); type 38 src/HexagonOptimize.cpp switch (x.type().bits()) { type 42 src/HexagonOptimize.cpp default: internal_error << "Cannot deinterleave native vectors of type " << x.type() << "\n"; type 44 src/HexagonOptimize.cpp return Call::make(x.type(), fn, {x}, Call::PureExtern); type 76 src/HexagonOptimize.cpp if (op->type.lanes() != lanes) { type 77 src/HexagonOptimize.cpp expr = Cast::make(with_lanes(op->type), mutate(op->value)); type 84 src/HexagonOptimize.cpp if (op->type.lanes() != lanes) { type 85 src/HexagonOptimize.cpp expr = Variable::make(with_lanes(op->type), op->name); type 92 src/HexagonOptimize.cpp if (op->type.lanes() != lanes) { type 196 src/HexagonOptimize.cpp Type t = matches[i].type(); type 214 src/HexagonOptimize.cpp matches[i] = cast(matches[i].type().with_lanes(1), pow); type 225 src/HexagonOptimize.cpp internal_assert(matches[i].type().is_vector()); type 241 src/HexagonOptimize.cpp x = Call::make(x.type(), p.intrin, matches, Call::PureExtern); type 342 src/HexagonOptimize.cpp if (op->type.is_vector()) { type 377 src/HexagonOptimize.cpp if (ty.lanes() == 1 && x.type().lanes() > 1) { type 382 src/HexagonOptimize.cpp if (ty.lanes() != x.type().lanes()) { type 401 src/HexagonOptimize.cpp if (op.type().bits() == mpy_bits*2) { type 403 src/HexagonOptimize.cpp if (cast->value.type().bits() == mpy_bits) { type 466 src/HexagonOptimize.cpp if (op->type.is_vector() && (op->type.bits() == 16 || op->type.bits() == 32)) { type 467 src/HexagonOptimize.cpp int lanes = op->type.lanes(); type 476 src/HexagonOptimize.cpp if (op->type.is_uint()) { type 492 src/HexagonOptimize.cpp if (op->type.bits() == 32 || !a0123.as<Shuffle>()) { type 495 src/HexagonOptimize.cpp b0123 = reinterpret(Type(b0123.type().code(), 32, 1), b0123); type 496 src/HexagonOptimize.cpp Expr new_expr = halide_hexagon_add_4mpy(op->type, suffix, a0123, b0123); type 497 src/HexagonOptimize.cpp if (op->type.bits() == 16) { type 503 src/HexagonOptimize.cpp new_expr = Call::make(op->type, "halide.hexagon.pack.vw", {new_expr}, Call::PureExtern); type 516 src/HexagonOptimize.cpp if (op->type.is_uint()) { type 534 src/HexagonOptimize.cpp if (op->type.bits() == 32 || (!a0123.as<Shuffle>() && !b0123.as<Shuffle>())) { type 535 src/HexagonOptimize.cpp Expr new_expr = halide_hexagon_add_4mpy(op->type, suffix, a0123, b0123); type 536 src/HexagonOptimize.cpp if (op->type.bits() == 16) { type 542 src/HexagonOptimize.cpp new_expr = Call::make(op->type, "halide.hexagon.pack.vw", {new_expr}, Call::PureExtern); type 554 src/HexagonOptimize.cpp if (op->type.is_vector() && (op->type.bits() == 16 || op->type.bits() == 32)) { type 555 src/HexagonOptimize.cpp int lanes = op->type.lanes(); type 564 src/HexagonOptimize.cpp if (op->type.bits() == 16) { type 568 src/HexagonOptimize.cpp } else if (op->type.bits() == 32) { type 584 src/HexagonOptimize.cpp b01 = reinterpret(Type(b01.type().code(), 16, 1), b01); type 585 src/HexagonOptimize.cpp new_expr = halide_hexagon_add_2mpy(op->type, vdmpy_suffix, a01, b01); type 587 src/HexagonOptimize.cpp new_expr = halide_hexagon_add_2mpy(op->type, vmpa_suffix, mpys[0].first, mpys[1].first, mpys[0].second, mpys[1].second); type 663 src/HexagonOptimize.cpp if (op->type.is_vector()) { type 674 src/HexagonOptimize.cpp if (op->type.is_vector()) { type 702 src/HexagonOptimize.cpp if (op->type.is_vector()) { type 713 src/HexagonOptimize.cpp expr = Call::make(op->type, i.first, {matches[0]}, Call::PureExtern) + 1; type 854 src/HexagonOptimize.cpp if (op->type.is_vector()) { type 869 src/HexagonOptimize.cpp Expr replacement = with_lanes(i.second, op->type.lanes()); type 887 src/HexagonOptimize.cpp Type src_type = op->args[0].type(); type 888 src/HexagonOptimize.cpp Type dst_type = op->type; type 958 src/HexagonOptimize.cpp if (x.type().is_scalar() || x.as<Broadcast>()) { type 996 src/HexagonOptimize.cpp } else if (x.type().is_scalar() || x.as<Broadcast>()) { type 1002 src/HexagonOptimize.cpp return Variable::make(var->type, var->name + ".deinterleaved"); type 1004 src/HexagonOptimize.cpp return Variable::make(var->type, var->name + ".weak_deinterleaved"); type 1029 src/HexagonOptimize.cpp if (expr.type().bits() == 1) { type 1059 src/HexagonOptimize.cpp internal_assert(op->type.is_scalar()); type 1063 src/HexagonOptimize.cpp internal_assert(op->type.is_scalar()); type 1067 src/HexagonOptimize.cpp internal_assert(op->type.is_scalar()); type 1075 src/HexagonOptimize.cpp internal_assert(op->condition.type().is_scalar()); type 1149 src/HexagonOptimize.cpp Expr interleaved = Variable::make(deinterleaved.type(), deinterleaved_name); type 1182 src/HexagonOptimize.cpp if (op->type.bits() == op->value.type().bits()) { type 1188 src/HexagonOptimize.cpp expr = native_interleave(Cast::make(op->type, value)); type 1190 src/HexagonOptimize.cpp expr = Cast::make(op->type, value); type 1233 src/HexagonOptimize.cpp if (i.type().is_scalar()) continue; type 1234 src/HexagonOptimize.cpp if (i.type().bits() != op->type.bits() || i.type().lanes() != op->type.lanes()) { type 1248 src/HexagonOptimize.cpp expr = Call::make(op->type, Call::bool_to_mask, {arg}, Call::PureIntrinsic); type 1313 src/HexagonOptimize.cpp expr = Call::make(op->type, op->name, args, op->call_type, type 1325 src/HexagonOptimize.cpp expr = Call::make(op->type, deinterleaving_alts[op->name], args, op->call_type); type 1332 src/HexagonOptimize.cpp expr = Call::make(op->type, interleaving_alts[op->name], { arg }, op->call_type, type 1335 src/HexagonOptimize.cpp expr = Call::make(op->type, op->name, args, op->call_type, type 1372 src/HexagonOptimize.cpp stmt = Allocate::make(op->name, op->type, op->extents, condition, body, type 1424 src/HexagonOptimize.cpp if ((op->type.lanes()*op->type.bits()) % (native_vector_bits*2) == 0) { type 1478 src/HexagonOptimize.cpp expr = Call::make(op->type, i.second, args, Call::PureExtern); type 1529 src/HexagonOptimize.cpp if (op->value.type().is_vector()) { type 1533 src/HexagonOptimize.cpp if (op->value.type().is_vector()) { type 1551 src/HexagonOptimize.cpp if (!op->type.is_vector() || op->index.as<Ramp>()) { type 1563 src/HexagonOptimize.cpp int align = lut_alignment / op->type.bytes(); type 1584 src/HexagonOptimize.cpp Expr lut = Load::make(op->type.with_lanes(const_extent), op->name, type 1591 src/HexagonOptimize.cpp index = simplify(cast(UInt(8).with_lanes(op->type.lanes()), index - base)); type 1593 src/HexagonOptimize.cpp expr = Call::make(op->type, "dynamic_shuffle", {lut, index, 0, const_extent - 1}, Call::PureIntrinsic); type 1599 src/HexagonOptimize.cpp expr = Load::make(op->type, op->name, index, op->image, op->param, op->predicate); type 10 src/IR.cpp internal_assert(t.lanes() == v.type().lanes()) << "Cast may not change vector widths\n"; type 13 src/IR.cpp node->type = t; type 21 src/IR.cpp internal_assert(a.type() == b.type()) << "Add of mismatched types\n"; type 24 src/IR.cpp node->type = a.type(); type 33 src/IR.cpp internal_assert(a.type() == b.type()) << "Sub of mismatched types\n"; type 36 src/IR.cpp node->type = a.type(); type 45 src/IR.cpp internal_assert(a.type() == b.type()) << "Mul of mismatched types\n"; type 48 src/IR.cpp node->type = a.type(); type 57 src/IR.cpp internal_assert(a.type() == b.type()) << "Div of mismatched types\n"; type 60 src/IR.cpp node->type = a.type(); type 69 src/IR.cpp internal_assert(a.type() == b.type()) << "Mod of mismatched types\n"; type 72 src/IR.cpp node->type = a.type(); type 81 src/IR.cpp internal_assert(a.type() == b.type()) << "Min of mismatched types\n"; type 84 src/IR.cpp node->type = a.type(); type 93 src/IR.cpp internal_assert(a.type() == b.type()) << "Max of mismatched types\n"; type 96 src/IR.cpp node->type = a.type(); type 105 src/IR.cpp internal_assert(a.type() == b.type()) << "EQ of mismatched types\n"; type 108 src/IR.cpp node->type = Bool(a.type().lanes()); type 117 src/IR.cpp internal_assert(a.type() == b.type()) << "NE of mismatched types\n"; type 120 src/IR.cpp node->type = Bool(a.type().lanes()); type 129 src/IR.cpp internal_assert(a.type() == b.type()) << "LT of mismatched types\n"; type 132 src/IR.cpp node->type = Bool(a.type().lanes()); type 142 src/IR.cpp internal_assert(a.type() == b.type()) << "LE of mismatched types\n"; type 145 src/IR.cpp node->type = Bool(a.type().lanes()); type 154 src/IR.cpp internal_assert(a.type() == b.type()) << "GT of mismatched types\n"; type 157 src/IR.cpp node->type = Bool(a.type().lanes()); type 167 src/IR.cpp internal_assert(a.type() == b.type()) << "GE of mismatched types\n"; type 170 src/IR.cpp node->type = Bool(a.type().lanes()); type 179 src/IR.cpp internal_assert(a.type().is_bool()) << "lhs of And is not a bool\n"; type 180 src/IR.cpp internal_assert(b.type().is_bool()) << "rhs of And is not a bool\n"; type 181 src/IR.cpp internal_assert(a.type() == b.type()) << "And of mismatched types\n"; type 184 src/IR.cpp node->type = Bool(a.type().lanes()); type 193 src/IR.cpp internal_assert(a.type().is_bool()) << "lhs of Or is not a bool\n"; type 194 src/IR.cpp internal_assert(b.type().is_bool()) << "rhs of Or is not a bool\n"; type 195 src/IR.cpp internal_assert(a.type() == b.type()) << "Or of mismatched types\n"; type 198 src/IR.cpp node->type = Bool(a.type().lanes()); type 206 src/IR.cpp internal_assert(a.type().is_bool()) << "argument of Not is not a bool\n"; type 209 src/IR.cpp node->type = Bool(a.type().lanes()); type 218 src/IR.cpp internal_assert(condition.type().is_bool()) << "First argument to Select is not a bool: " << condition.type() << "\n"; type 219 src/IR.cpp internal_assert(false_value.type() == true_value.type()) << "Select of mismatched types\n"; type 220 src/IR.cpp internal_assert(condition.type().is_scalar() || type 221 src/IR.cpp condition.type().lanes() == true_value.type().lanes()) type 225 src/IR.cpp node->type = true_value.type(); type 232 src/IR.cpp Expr Load::make(Type type, const std::string &name, const Expr &index, Buffer<> image, Parameter param, const Expr &predicate) { type 235 src/IR.cpp internal_assert(type.lanes() == index.type().lanes()) << "Vector lanes of Load must match vector lanes of index\n"; type 236 src/IR.cpp internal_assert(type.lanes() == predicate.type().lanes()) type 240 src/IR.cpp node->type = type; type 252 src/IR.cpp internal_assert(base.type().is_scalar()) << "Ramp with vector base\n"; type 253 src/IR.cpp internal_assert(stride.type().is_scalar()) << "Ramp with vector stride\n"; type 255 src/IR.cpp internal_assert(stride.type() == base.type()) << "Ramp of mismatched types\n"; type 258 src/IR.cpp node->type = base.type().with_lanes(lanes); type 267 src/IR.cpp internal_assert(value.type().is_scalar()) << "Broadcast of vector\n"; type 271 src/IR.cpp node->type = value.type().with_lanes(lanes); type 282 src/IR.cpp node->type = body.type(); type 302 src/IR.cpp internal_assert(message.type() == Int(32)) << "AssertStmt message must be an int:" << message << "\n"; type 331 src/IR.cpp internal_assert(min.type().is_scalar()) << "For with vector min\n"; type 332 src/IR.cpp internal_assert(extent.type().is_scalar()) << "For with vector extent\n"; type 349 src/IR.cpp internal_assert(value.type().lanes() == index.type().lanes()) << "Vector lanes of Store must match vector lanes of index\n"; type 350 src/IR.cpp internal_assert(value.type().lanes() == predicate.type().lanes()) type 378 src/IR.cpp Stmt Allocate::make(const std::string &name, Type type, const std::vector<Expr> &extents, type 383 src/IR.cpp internal_assert(extents[i].type().is_scalar() == 1) << "Allocate of vector extent\n"; type 387 src/IR.cpp internal_assert(condition.type().is_bool()) << "Allocate condition is not boolean\n"; type 391 src/IR.cpp node->type = type; type 445 src/IR.cpp internal_assert(bounds[i].min.type().is_scalar()) << "Realize of vector size\n"; type 446 src/IR.cpp internal_assert(bounds[i].extent.type().is_scalar()) << "Realize of vector size\n"; type 451 src/IR.cpp internal_assert(condition.type().is_bool()) << "Realize condition is not boolean\n"; type 466 src/IR.cpp internal_assert(bounds[i].min.type().is_scalar()) << "Prefetch of vector size\n"; type 467 src/IR.cpp internal_assert(bounds[i].extent.type().is_scalar()) << "Prefetch of vector size\n"; type 537 src/IR.cpp Expr Call::make(Type type, const std::string &name, const std::vector<Expr> &args, CallType call_type, type 549 src/IR.cpp internal_assert(args[i].type() == Int(32)) type 556 src/IR.cpp internal_assert(args[i].type() == Int(32)) type 562 src/IR.cpp node->type = type; type 573 src/IR.cpp Expr Variable::make(Type type, const std::string &name, Buffer<> image, Parameter param, ReductionDomain reduction_domain) { type 576 src/IR.cpp node->type = type; type 588 src/IR.cpp Type element_ty = vectors.front().type().element_of(); type 591 src/IR.cpp internal_assert(i.type().element_of() == element_ty) << "Shuffle of vectors of mismatched types.\n"; type 592 src/IR.cpp input_lanes += i.type().lanes(); type 599 src/IR.cpp node->type = element_ty.with_lanes((int)indices.size()); type 612 src/IR.cpp int lanes = vectors.front().type().lanes(); type 615 src/IR.cpp internal_assert(i.type().lanes() == lanes) type 639 src/IR.cpp for (int j = 0; j < vectors[i].type().lanes(); j++) { type 648 src/IR.cpp if (begin == 0 && size == vector.type().lanes() && stride == 1) { type 665 src/IR.cpp int lanes = vectors.front().type().lanes(); type 673 src/IR.cpp if (i.type().lanes() != lanes) { type 712 src/IR.cpp input_lanes += i.type().lanes(); type 723 src/IR.cpp input_lanes += i.type().lanes(); type 210 src/IR.h EXPORT static Expr make(Type type, const std::string &name, type 344 src/IR.h Type type; type 359 src/IR.h EXPORT static Stmt make(const std::string &name, Type type, const std::vector<Expr> &extents, type 389 src/IR.h internal_assert(min.type() == extent.type()) << "Region min and extent must have same type\n"; type 559 src/IR.h EXPORT static Expr make(Type type, const std::string &name, const std::vector<Expr> &args, CallType call_type, type 568 src/IR.h return make(image.type(), image.name(), args, Image, nullptr, 0, image, Parameter()); type 573 src/IR.h return make(param.type(), param.name(), args, Image, nullptr, 0, Buffer<>(), param); type 614 src/IR.h static Expr make(Type type, const std::string &name) { type 615 src/IR.h return make(type, name, Buffer<>(), Parameter(), ReductionDomain()); type 618 src/IR.h static Expr make(Type type, const std::string &name, Parameter param) { type 619 src/IR.h return make(type, name, Buffer<>(), param, ReductionDomain()); type 622 src/IR.h static Expr make(Type type, const std::string &name, Buffer<> image) { type 623 src/IR.h return make(type, name, image, Parameter(), ReductionDomain()); type 626 src/IR.h static Expr make(Type type, const std::string &name, ReductionDomain reduction_domain) { type 627 src/IR.h return make(type, name, Buffer<>(), Parameter(), reduction_domain); type 630 src/IR.h EXPORT static Expr make(Type type, const std::string &name, Buffer<> image, type 143 src/IREquality.cpp if (compare_types(a.type(), b.type()) != Equal) { type 77 src/IRMatch.cpp !types_match(op->type, e->type)) { type 86 src/IRMatch.cpp !types_match(op->type, e->type)) { type 98 src/IRMatch.cpp !types_match(op->type, e->type)) { type 105 src/IRMatch.cpp if (result && e && types_match(op->type, e->type)) { type 118 src/IRMatch.cpp if (!types_match(op->type, expr.type())) { type 192 src/IRMatch.cpp if (result && e && types_match(op->type, e->type) && e->name == op->name) { type 216 src/IRMatch.cpp if (result && e && types_match(op->type, e->type)) { type 227 src/IRMatch.cpp types_match(op->type, e->type) && type 76 src/IRMutator.cpp expr = Cast::make(op->type, value); type 121 src/IRMutator.cpp expr = Load::make(op->type, op->name, index, op->image, op->param, predicate); type 157 src/IRMutator.cpp expr = Call::make(op->type, op->name, new_args, op->call_type, type 274 src/IRMutator.cpp stmt = Allocate::make(op->name, op->type, new_extents, condition, body, new_expr, op->free_function); type 129 src/IROperator.cpp if (!(e.type().is_int() || e.type().is_uint())) return false; type 196 src/IROperator.cpp return is_negative_negatable_const(c->value, c->type); type 209 src/IROperator.cpp return is_negative_negatable_const(e, e.type()); type 244 src/IROperator.cpp if (e.type().bits() < 2) return false; type 313 src/IROperator.cpp if (t == e.type()) { type 315 src/IROperator.cpp } else if (t.can_represent(e.type())) { type 320 src/IROperator.cpp if (t.can_represent(c->value.type())) { type 380 src/IROperator.cpp if (a.type() == b.type()) return; type 382 src/IROperator.cpp user_assert(!a.type().is_handle() && !b.type().is_handle()) type 387 src/IROperator.cpp if (a.type().is_scalar() && b.type().is_vector()) { type 388 src/IROperator.cpp a = Broadcast::make(a, b.type().lanes()); type 389 src/IROperator.cpp } else if (a.type().is_vector() && b.type().is_scalar()) { type 390 src/IROperator.cpp b = Broadcast::make(b, a.type().lanes()); type 392 src/IROperator.cpp internal_assert(a.type().lanes() == b.type().lanes()) << "Can't match types of differing widths"; type 395 src/IROperator.cpp Type ta = a.type(), tb = b.type(); type 417 src/IROperator.cpp int lanes = a.type().lanes(); type 429 src/IROperator.cpp Type type = input.type(); type 430 src/IROperator.cpp Type int_type = Int(32, type.lanes()); type 454 src/IROperator.cpp *reduced = reinterpret(type, blended); type 458 src/IROperator.cpp Type type = x_full.type(); type 459 src/IROperator.cpp internal_assert(type.element_of() == Float(32)); type 461 src/IROperator.cpp Expr nan = Call::make(type, "nan_f32", {}, Call::PureExtern); type 462 src/IROperator.cpp Expr neg_inf = Call::make(type, "neg_inf_f32", {}, Call::PureExtern); type 470 src/IROperator.cpp Expr patched = select(exceptional, make_one(type), x_full); type 491 src/IROperator.cpp result += cast(type, exponent) * logf(2.0); type 502 src/IROperator.cpp Type type = x_full.type(); type 503 src/IROperator.cpp internal_assert(type.element_of() == Float(32)); type 511 src/IROperator.cpp Expr k = cast(Int(32, type.lanes()), k_real); type 531 src/IROperator.cpp Expr inf = Call::make(type, "inf_f32", {}, Call::PureExtern); type 535 src/IROperator.cpp Expr two_to_the_n = reinterpret(type, biased << 23); type 540 src/IROperator.cpp result = select(biased > 0, result, make_zero(type)); type 549 src/IROperator.cpp user_assert(x_full.type() == Float(32)) << "halide_erf only works for Float(32)"; type 591 src/IROperator.cpp result = make_one(e.type()); type 595 src/IROperator.cpp result = make_one(e.type()) / raise_to_integer_power(e, -p); type 609 src/IROperator.cpp internal_assert(cond.type().is_bool()) << "Should be a boolean condition\n"; type 655 src/IROperator.cpp args[5] = (int)type.code(); type 656 src/IROperator.cpp args[6] = type.bits(); type 680 src/IROperator.cpp internal_assert(e.type() == Int(32)) type 717 src/IROperator.cpp user_assert(x.type() == Float(32)) << "fast_log only works for Float(32)"; type 741 src/IROperator.cpp user_assert(x_full.type() == Float(32)) << "fast_exp only works for Float(32)"; type 798 src/IROperator.cpp Internal::Call::make(args[0].type(), Internal::Call::return_second, type 805 src/IROperator.cpp return Internal::Call::make(p.type(), type 813 src/IROperator.cpp user_assert(condition.type().is_bool()) << "Require condition must be a boolean type\n"; type 824 src/IROperator.cpp Expr failure_value = cast(args[0].type(), requirement_failed_error); type 825 src/IROperator.cpp return Internal::Call::make(args[0].type(), type 837 src/IROperator.cpp return Internal::Call::make(result.type(), Internal::Call::memoize_expr, type 845 src/IROperator.cpp if (t.is_float() && e.type().is_float()) { type 846 src/IROperator.cpp if (t.bits() < e.type().bits()) { type 851 src/IROperator.cpp } else if (e.type() != t) { type 853 src/IROperator.cpp if (e.type().is_float() && !t.is_float() && t.bits() >= e.type().bits()) { type 859 src/IROperator.cpp e = select(e >= cast(e.type(), t.max()), t.max(), cast(t, e)); type 862 src/IROperator.cpp if (!e.type().is_uint()) { type 863 src/IROperator.cpp min_bound = lossless_cast(e.type(), t.min()); type 865 src/IROperator.cpp Expr max_bound = lossless_cast(e.type(), t.max()); type 184 src/IROperator.h Type type; type 202 src/IROperator.h if (a.type() == t) return a; type 204 src/IROperator.h if (t.is_handle() && !a.type().is_handle()) { type 208 src/IROperator.h } else if (a.type().is_handle() && !t.is_handle()) { type 226 src/IROperator.h if (a.type().is_scalar()) { type 250 src/IROperator.h Internal::check_representable(a.type(), b); type 251 src/IROperator.h return Internal::Add::make(a, Internal::make_const(a.type(), b)); type 259 src/IROperator.h Internal::check_representable(b.type(), a); type 260 src/IROperator.h return Internal::Add::make(Internal::make_const(b.type(), a), b); type 268 src/IROperator.h a = Internal::Add::make(a, cast(a.type(), b)); type 285 src/IROperator.h Internal::check_representable(a.type(), b); type 286 src/IROperator.h return Internal::Sub::make(a, Internal::make_const(a.type(), b)); type 294 src/IROperator.h Internal::check_representable(b.type(), a); type 295 src/IROperator.h return Internal::Sub::make(Internal::make_const(b.type(), a), b); type 305 src/IROperator.h return Internal::Sub::make(Internal::make_zero(a.type()), a); type 313 src/IROperator.h a = Internal::Sub::make(a, cast(a.type(), b)); type 330 src/IROperator.h Internal::check_representable(a.type(), b); type 331 src/IROperator.h return Internal::Mul::make(a, Internal::make_const(a.type(), b)); type 339 src/IROperator.h Internal::check_representable(b.type(), a); type 340 src/IROperator.h return Internal::Mul::make(Internal::make_const(b.type(), a), b); type 348 src/IROperator.h a = Internal::Mul::make(a, cast(a.type(), b)); type 369 src/IROperator.h a = Internal::Div::make(a, cast(a.type(), b)); type 380 src/IROperator.h Internal::check_representable(a.type(), b); type 381 src/IROperator.h return Internal::Div::make(a, Internal::make_const(a.type(), b)); type 389 src/IROperator.h Internal::check_representable(b.type(), a); type 390 src/IROperator.h return Internal::Div::make(Internal::make_const(b.type(), a), b); type 412 src/IROperator.h Internal::check_representable(a.type(), b); type 413 src/IROperator.h return Internal::Mod::make(a, Internal::make_const(a.type(), b)); type 421 src/IROperator.h Internal::check_representable(b.type(), a); type 422 src/IROperator.h return Internal::Mod::make(Internal::make_const(b.type(), a), b); type 440 src/IROperator.h Internal::check_representable(a.type(), b); type 441 src/IROperator.h return Internal::GT::make(a, Internal::make_const(a.type(), b)); type 450 src/IROperator.h Internal::check_representable(b.type(), a); type 451 src/IROperator.h return Internal::GT::make(Internal::make_const(b.type(), a), b); type 469 src/IROperator.h Internal::check_representable(a.type(), b); type 470 src/IROperator.h return Internal::LT::make(a, Internal::make_const(a.type(), b)); type 479 src/IROperator.h Internal::check_representable(b.type(), a); type 480 src/IROperator.h return Internal::LT::make(Internal::make_const(b.type(), a), b); type 498 src/IROperator.h Internal::check_representable(a.type(), b); type 499 src/IROperator.h return Internal::LE::make(a, Internal::make_const(a.type(), b)); type 508 src/IROperator.h Internal::check_representable(b.type(), a); type 509 src/IROperator.h return Internal::LE::make(Internal::make_const(b.type(), a), b); type 527 src/IROperator.h Internal::check_representable(a.type(), b); type 528 src/IROperator.h return Internal::GE::make(a, Internal::make_const(a.type(), b)); type 537 src/IROperator.h Internal::check_representable(b.type(), a); type 538 src/IROperator.h return Internal::GE::make(Internal::make_const(b.type(), a), b); type 556 src/IROperator.h Internal::check_representable(a.type(), b); type 557 src/IROperator.h return Internal::EQ::make(a, Internal::make_const(a.type(), b)); type 566 src/IROperator.h Internal::check_representable(b.type(), a); type 567 src/IROperator.h return Internal::EQ::make(Internal::make_const(b.type(), a), b); type 585 src/IROperator.h Internal::check_representable(a.type(), b); type 586 src/IROperator.h return Internal::NE::make(a, Internal::make_const(a.type(), b)); type 595 src/IROperator.h Internal::check_representable(b.type(), a); type 596 src/IROperator.h return Internal::NE::make(Internal::make_const(b.type(), a), b); type 610 src/IROperator.h internal_assert(a.type().is_bool()) << "operator&& of Expr of type " << a.type() << "\n"; type 614 src/IROperator.h return Internal::make_zero(a.type()); type 633 src/IROperator.h internal_assert(a.type().is_bool()) << "operator|| of Expr of type " << a.type() << "\n"; type 635 src/IROperator.h return Internal::make_one(a.type()); type 669 src/IROperator.h Internal::check_representable(a.type(), b); type 670 src/IROperator.h return Internal::Max::make(a, Internal::make_const(a.type(), b)); type 681 src/IROperator.h Internal::check_representable(b.type(), a); type 682 src/IROperator.h return Internal::Max::make(Internal::make_const(b.type(), a), b); type 695 src/IROperator.h typename std::enable_if<Halide::Internal::all_are_convertible<Expr, Rest...>::value>::type* = nullptr> type 714 src/IROperator.h Internal::check_representable(a.type(), b); type 715 src/IROperator.h return Internal::Min::make(a, Internal::make_const(a.type(), b)); type 725 src/IROperator.h Internal::check_representable(b.type(), a); type 726 src/IROperator.h return Internal::Min::make(Internal::make_const(b.type(), a), b); type 739 src/IROperator.h typename std::enable_if<Halide::Internal::all_are_convertible<Expr, Rest...>::value>::type* = nullptr> type 777 src/IROperator.h Expr n_min_val = lossless_cast(a.type(), min_val); type 780 src/IROperator.h Expr n_max_val = lossless_cast(a.type(), max_val); type 793 src/IROperator.h Type t = a.type(); type 810 src/IROperator.h Type t = a.type(); type 836 src/IROperator.h true_value = cast(false_value.type(), true_value); type 839 src/IROperator.h false_value = cast(true_value.type(), false_value); type 842 src/IROperator.h user_assert(condition.type().is_bool()) type 844 src/IROperator.h << " " << condition << " has type " << condition.type() << "\n"; type 846 src/IROperator.h user_assert(true_value.type() == false_value.type()) type 848 src/IROperator.h << " " << true_value << " has type " << true_value.type() << "\n" type 849 src/IROperator.h << " " << false_value << " has type " << false_value.type() << "\n"; type 859 src/IROperator.h typename std::enable_if<Halide::Internal::all_are_convertible<Expr, Args...>::value>::type* = nullptr> type 872 src/IROperator.h if (x.type() == Float(64)) { type 875 src/IROperator.h else if (x.type() == Float(16)) { type 888 src/IROperator.h if (x.type() == Float(64)) { type 891 src/IROperator.h else if (x.type() == Float(16)) { type 904 src/IROperator.h if (x.type() == Float(64)) { type 907 src/IROperator.h else if (x.type() == Float(16)) { type 920 src/IROperator.h if (x.type() == Float(64)) { type 923 src/IROperator.h else if (x.type() == Float(16)) { type 936 src/IROperator.h if (x.type() == Float(64)) { type 939 src/IROperator.h else if (x.type() == Float(16)) { type 952 src/IROperator.h if (x.type() == Float(64)) { type 955 src/IROperator.h else if (x.type() == Float(16)) { type 969 src/IROperator.h if (y.type() == Float(64)) { type 973 src/IROperator.h else if (y.type() == Float(16)) { type 989 src/IROperator.h if (x.type() == Float(64)) { type 992 src/IROperator.h else if (x.type() == Float(16)) { type 1005 src/IROperator.h if (x.type() == Float(64)) { type 1008 src/IROperator.h else if(x.type() == Float(16)) { type 1021 src/IROperator.h if (x.type() == Float(64)) { type 1024 src/IROperator.h else if (x.type() == Float(16)) { type 1037 src/IROperator.h if (x.type() == Float(64)) { type 1040 src/IROperator.h else if (x.type() == Float(16)) { type 1053 src/IROperator.h if (x.type() == Float(64)) { type 1056 src/IROperator.h else if (x.type() == Float(16)) { type 1069 src/IROperator.h if (x.type() == Float(64)) { type 1072 src/IROperator.h else if (x.type() == Float(16)) { type 1085 src/IROperator.h if (x.type() == Float(64)) { type 1088 src/IROperator.h else if (x.type() == Float(16)) { type 1112 src/IROperator.h if (x.type() == Float(64)) { type 1115 src/IROperator.h else if (x.type() == Float(16)) { type 1132 src/IROperator.h if (x.type() == Float(64)) { type 1135 src/IROperator.h else if (x.type() == Float(16)) { type 1156 src/IROperator.h if (x.type() == Float(64)) { type 1160 src/IROperator.h else if (x.type() == Float(16)) { type 1176 src/IROperator.h user_assert(x.type() == Float(32)) << "erf only takes float arguments\n"; type 1209 src/IROperator.h user_assert(x.type() == Float(32)) << "fast_inverse only takes float arguments\n"; type 1210 src/IROperator.h return Internal::Call::make(x.type(), "fast_inverse_f32", {x}, Internal::Call::PureExtern); type 1217 src/IROperator.h user_assert(x.type() == Float(32)) << "fast_inverse_sqrt only takes float arguments\n"; type 1218 src/IROperator.h return Internal::Call::make(x.type(), "fast_inverse_sqrt_f32", {x}, Internal::Call::PureExtern); type 1227 src/IROperator.h if (x.type().element_of() == Float(64)) { type 1228 src/IROperator.h return Internal::Call::make(x.type(), "floor_f64", {x}, Internal::Call::PureExtern); type 1230 src/IROperator.h else if (x.type().element_of() == Float(16)) { type 1234 src/IROperator.h Type t = Float(32, x.type().lanes()); type 1245 src/IROperator.h if (x.type().element_of() == Float(64)) { type 1246 src/IROperator.h return Internal::Call::make(x.type(), "ceil_f64", {x}, Internal::Call::PureExtern); type 1248 src/IROperator.h else if (x.type().element_of() == Float(16)) { type 1252 src/IROperator.h Type t = Float(32, x.type().lanes()); type 1264 src/IROperator.h if (x.type().element_of() == Float(64)) { type 1267 src/IROperator.h else if (x.type().element_of() == Float(16)) { type 1271 src/IROperator.h Type t = Float(32, x.type().lanes()); type 1281 src/IROperator.h if (x.type().element_of() == Float(64)) { type 1284 src/IROperator.h else if (x.type().element_of() == Float(16)) { type 1288 src/IROperator.h Type t = Float(32, x.type().lanes()); type 1297 src/IROperator.h user_assert(x.type().is_float()) << "is_nan only works for float"; type 1298 src/IROperator.h Type t = Bool(x.type().lanes()); type 1299 src/IROperator.h if (x.type().element_of() == Float(64)) { type 1302 src/IROperator.h else if (x.type().element_of() == Float(64)) { type 1306 src/IROperator.h Type ft = Float(32, x.type().lanes()); type 1322 src/IROperator.h int from_bits = e.type().bits() * e.type().lanes(); type 1325 src/IROperator.h << "Reinterpret cast from type " << e.type() type 1342 src/IROperator.h user_assert(x.type().is_int() || x.type().is_uint()) type 1344 src/IROperator.h user_assert(y.type().is_int() || y.type().is_uint()) type 1347 src/IROperator.h if (y.type().bits() != x.type().bits()) { type 1348 src/IROperator.h y = cast(y.type().with_bits(x.type().bits()), y); type 1350 src/IROperator.h if (y.type() != x.type()) { type 1351 src/IROperator.h y = reinterpret(x.type(), y); type 1353 src/IROperator.h return Internal::Call::make(x.type(), Internal::Call::bitwise_and, {x, y}, Internal::Call::PureIntrinsic); type 1361 src/IROperator.h user_assert(x.type().is_int() || x.type().is_uint()) type 1363 src/IROperator.h user_assert(y.type().is_int() || y.type().is_uint()) type 1366 src/IROperator.h if (y.type().bits() != x.type().bits()) { type 1367 src/IROperator.h y = cast(y.type().with_bits(x.type().bits()), y); type 1369 src/IROperator.h if (y.type() != x.type()) { type 1370 src/IROperator.h y = reinterpret(x.type(), y); type 1372 src/IROperator.h return Internal::Call::make(x.type(), Internal::Call::bitwise_or, {x, y}, Internal::Call::PureIntrinsic); type 1380 src/IROperator.h user_assert(x.type().is_int() || x.type().is_uint()) type 1382 src/IROperator.h user_assert(y.type().is_int() || y.type().is_uint()) type 1385 src/IROperator.h if (y.type().bits() != x.type().bits()) { type 1386 src/IROperator.h y = cast(y.type().with_bits(x.type().bits()), y); type 1388 src/IROperator.h if (y.type() != x.type()) { type 1389 src/IROperator.h y = reinterpret(x.type(), y); type 1391 src/IROperator.h return Internal::Call::make(x.type(), Internal::Call::bitwise_xor, {x, y}, Internal::Call::PureIntrinsic); type 1397 src/IROperator.h user_assert(x.type().is_int() || x.type().is_uint()) type 1399 src/IROperator.h return Internal::Call::make(x.type(), Internal::Call::bitwise_not, {x}, Internal::Call::PureIntrinsic); type 1412 src/IROperator.h user_assert(!x.type().is_float()) << "First argument to shift left is a float: " << x << "\n"; type 1413 src/IROperator.h user_assert(!y.type().is_float()) << "Second argument to shift left is a float: " << y << "\n"; type 1415 src/IROperator.h return Internal::Call::make(x.type(), Internal::Call::shift_left, {x, y}, Internal::Call::PureIntrinsic); type 1418 src/IROperator.h Internal::check_representable(x.type(), y); type 1419 src/IROperator.h return x << Internal::make_const(x.type(), y); type 1422 src/IROperator.h Internal::check_representable(y.type(), x); type 1423 src/IROperator.h return Internal::make_const(y.type(), x) << y; type 1438 src/IROperator.h user_assert(!x.type().is_float()) << "First argument to shift right is a float: " << x << "\n"; type 1439 src/IROperator.h user_assert(!y.type().is_float()) << "Second argument to shift right is a float: " << y << "\n"; type 1441 src/IROperator.h return Internal::Call::make(x.type(), Internal::Call::shift_right, {x, y}, Internal::Call::PureIntrinsic); type 1444 src/IROperator.h Internal::check_representable(x.type(), y); type 1445 src/IROperator.h return x >> Internal::make_const(x.type(), y); type 1448 src/IROperator.h Internal::check_representable(y.type(), x); type 1449 src/IROperator.h return Internal::make_const(y.type(), x) >> y; type 1531 src/IROperator.h zero_val = cast(one_val.type(), zero_val); type 1534 src/IROperator.h one_val = cast(zero_val.type(), one_val); type 1537 src/IROperator.h user_assert(zero_val.type() == one_val.type()) type 1538 src/IROperator.h << "Can't lerp between " << zero_val << " of type " << zero_val.type() type 1539 src/IROperator.h << " and " << one_val << " of different type " << one_val.type() << "\n"; type 1540 src/IROperator.h user_assert((weight.type().is_uint() || weight.type().is_float())) type 1542 src/IROperator.h << "lerp weight " << weight << " has type " << weight.type() << ".\n"; type 1543 src/IROperator.h user_assert((zero_val.type().is_float() || zero_val.type().lanes() <= 32)) type 1547 src/IROperator.h if (!zero_val.type().is_float()) { type 1555 src/IROperator.h return Internal::Call::make(zero_val.type(), Internal::Call::lerp, type 1563 src/IROperator.h return Internal::Call::make(x.type(), Internal::Call::popcount, type 1571 src/IROperator.h return Internal::Call::make(x.type(), Internal::Call::count_leading_zeros, type 1579 src/IROperator.h return Internal::Call::make(x.type(), Internal::Call::count_trailing_zeros, type 1591 src/IROperator.h if (x.type().is_uint()) { type 1594 src/IROperator.h user_assert(x.type().is_int()) << "First argument to div_round_to_zero is not an integer: " << x << "\n"; type 1595 src/IROperator.h user_assert(y.type().is_int()) << "Second argument to div_round_to_zero is not an integer: " << y << "\n"; type 1596 src/IROperator.h return Internal::Call::make(x.type(), Internal::Call::div_round_to_zero, type 1610 src/IROperator.h if (x.type().is_uint()) { type 1613 src/IROperator.h user_assert(x.type().is_int()) << "First argument to mod_round_to_zero is not an integer: " << x << "\n"; type 1614 src/IROperator.h user_assert(y.type().is_int()) << "Second argument to mod_round_to_zero is not an integer: " << y << "\n"; type 1615 src/IROperator.h return Internal::Call::make(x.type(), Internal::Call::mod_round_to_zero, type 1656 src/IROperator.h user_assert(seed.type() == Int(32)) type 1658 src/IROperator.h << seed << " of type " << seed.type() << "\n"; type 1678 src/IROperator.h user_assert(seed.type() == Int(32) || seed.type() == UInt(32)) type 1680 src/IROperator.h << seed << " of type " << seed.type() << "\n"; type 1856 src/IROperator.h return Internal::Call::make(e.type(), Internal::Call::likely, type 1863 src/IROperator.h return Internal::Call::make(e.type(), Internal::Call::likely_if_innermost, type 17 src/IRPrinter.cpp ostream &operator<<(ostream &out, const Type &type) { type 18 src/IRPrinter.cpp switch (type.code()) { type 29 src/IRPrinter.cpp if (type.handle_type) { type 30 src/IRPrinter.cpp out << "(" << type.handle_type->inner_name.name << " *)"; type 36 src/IRPrinter.cpp if (!type.is_handle()) { type 37 src/IRPrinter.cpp out << type.bits(); type 39 src/IRPrinter.cpp if (type.lanes() > 1) out << 'x' << type.lanes(); type 170 src/IRPrinter.cpp ostream &operator<<(ostream &out, const ForType &type) { type 171 src/IRPrinter.cpp switch (type) { type 235 src/IRPrinter.cpp std::ostream &operator<<(std::ostream &out, const LoweredFunc::LinkageType &type) { type 236 src/IRPrinter.cpp switch (type) { type 276 src/IRPrinter.cpp if (op->type == Int(32)) { type 279 src/IRPrinter.cpp stream << "(" << op->type << ")" << op->value; type 284 src/IRPrinter.cpp stream << "(" << op->type << ")" << op->value; type 288 src/IRPrinter.cpp switch (op->type.bits()) { type 299 src/IRPrinter.cpp internal_error << "Bad bit-width for float: " << op->type << "\n"; type 337 src/IRPrinter.cpp stream << op->type << '('; type 514 src/IRPrinter.cpp stream << op->type << ", "; type 609 src/IRPrinter.cpp stream << "allocate " << op->name << "[" << op->type; type 33 src/ImageParam.cpp user_assert(b.type() == type()) type 35 src/ImageParam.cpp << " of type " << type() type 37 src/ImageParam.cpp << " of type " << Type(b.type()) << "\n"; type 101 src/InferArguments.cpp p.type(), p.dimensions(), def, min, max), type 125 src/InferArguments.cpp Argument(b.name(), Argument::InputBuffer, b.type(), b.dimensions()), type 118 src/InjectHostDevBufferCopies.cpp if (op->type.is_handle() && ends_with(op->name, ".buffer")) { type 557 src/InjectHostDevBufferCopies.cpp stmt = Allocate::make(op->name, op->type, op->extents, const_false(), op->body); type 586 src/InjectHostDevBufferCopies.cpp inner_body = Allocate::make(op->name, op->type, op->extents, op->condition, inner_body, type 49 src/InjectImageIntrinsics.cpp stmt = Evaluate::make(Call::make(value_arg.type(), type 114 src/InjectImageIntrinsics.cpp Type load_type = call->type; type 72 src/InjectOpenGLIntrinsics.cpp expr = Call::make(call->type, Call::glsl_texture_load, type 86 src/InjectOpenGLIntrinsics.cpp expr = Call::make(call->type, Call::glsl_texture_store, type 68 src/InlineReductions.cpp expr = Variable::make(v->type, var_name); type 145 src/InlineReductions.cpp f(v.free_vars) = e.type().min(); type 161 src/InlineReductions.cpp f(v.free_vars) = e.type().max(); type 185 src/InlineReductions.cpp initial_tup[value_index] = e.type().min(); type 214 src/InlineReductions.cpp initial_tup[value_index] = e.type().max(); type 66 src/Introspection.cpp TypeInfo *type; type 71 src/Introspection.cpp type(nullptr), type 84 src/Introspection.cpp TypeInfo *type; type 88 src/Introspection.cpp TypeInfo *type; type 99 src/Introspection.cpp TypeInfo *type; type 109 src/Introspection.cpp type(nullptr), type 155 src/Introspection.cpp enum {Primitive, Class, Struct, Pointer, Typedef, Const, Reference, Array} type; type 312 src/Introspection.cpp TypeInfo *t = global_variables[idx].type; type 317 src/Introspection.cpp while (t->type == TypeInfo::Array) { type 318 src/Introspection.cpp t = t->members[0].type; type 347 src/Introspection.cpp if (v.type && v.type->type == TypeInfo::Array && v.type->size) { type 348 src/Introspection.cpp elem_type = v.type->members[0].type; type 352 src/Introspection.cpp if (v.type) { type 353 src/Introspection.cpp debug(5) << " with type " << v.type->name << "\n"; type 360 src/Introspection.cpp (v.type && type_name_match(v.type->name, type_name)))) { type 365 src/Introspection.cpp int64_t array_size_bytes = v.type->size * elem_type->size; type 391 src/Introspection.cpp if (ptr.type) { type 392 src/Introspection.cpp debug(5) << " with type " << ptr.type->name << "\n"; type 398 src/Introspection.cpp internal_assert(ptr.type->type == TypeInfo::Pointer) type 400 src/Introspection.cpp internal_assert(ptr.type->members.size() == 1); type 401 src/Introspection.cpp TypeInfo *object_type = ptr.type->members[0].type; type 409 src/Introspection.cpp heap_object.type = object_type; type 417 src/Introspection.cpp member.type = member_spec.type; type 419 src/Introspection.cpp if (member.type) { type 421 src/Introspection.cpp debug(5) << member.name << " - " << (int)(member.type->type) << "\n"; type 437 src/Introspection.cpp if (parent.type->type == TypeInfo::Pointer || type 438 src/Introspection.cpp parent.type->type == TypeInfo::Reference) continue; type 440 src/Introspection.cpp for (size_t j = 0; j < parent.type->members.size(); j++) { type 441 src/Introspection.cpp const LocalVariable &member_spec = parent.type->members[j]; type 442 src/Introspection.cpp TypeInfo *member_type = member_spec.type; type 445 src/Introspection.cpp child.type = member_type; type 447 src/Introspection.cpp if (parent.type->type == TypeInfo::Typedef || type 448 src/Introspection.cpp parent.type->type == TypeInfo::Const) { type 451 src/Introspection.cpp } else if (parent.type->type == TypeInfo::Array) { type 459 src/Introspection.cpp if (child.type) { type 460 src/Introspection.cpp debug(5) << child.name << " - " << (int)(child.type->type) << "\n"; type 472 src/Introspection.cpp debug(5) << std::hex << mem.addr << std::dec << ": " << mem.type->name << " " << mem.name << "\n"; type 505 src/Introspection.cpp uint64_t object_end = object_start + obj.type->size; type 516 src/Introspection.cpp TypeInfo *t = obj.members[i].type; type 523 src/Introspection.cpp << " and type type " << (int)t->type << "\n"; type 533 src/Introspection.cpp if (t->type == TypeInfo::Array) { type 534 src/Introspection.cpp TypeInfo *elem_type = t->members[0].type; type 548 src/Introspection.cpp } else if (t->type == TypeInfo::Struct || type 549 src/Introspection.cpp t->type == TypeInfo::Class || type 550 src/Introspection.cpp t->type == TypeInfo::Primitive) { type 676 src/Introspection.cpp TypeInfo *type = var.type; type 678 src/Introspection.cpp if (type && type->type == TypeInfo::Array && type->size) { type 679 src/Introspection.cpp elem_type = type->members[0].type; type 682 src/Introspection.cpp if (offset == var.stack_offset && var.type) { type 683 src/Introspection.cpp debug(5) << "Considering match: " << var.type->name << ", " << var.name << "\n"; type 688 src/Introspection.cpp (type && type_name_match(type->name, type_name)))) { type 695 src/Introspection.cpp int64_t array_size_bytes = type->size * elem_type->size; type 802 src/Introspection.cpp TypeInfo *c = types[i].members[j].type; type 825 src/Introspection.cpp TypeInfo *c = v.type; type 854 src/Introspection.cpp TypeInfo *c = v.type; type 1359 src/Introspection.cpp type_info.type = TypeInfo::Primitive; type 1366 src/Introspection.cpp type_info.type = TypeInfo::Class; type 1373 src/Introspection.cpp type_info.type = TypeInfo::Struct; type 1380 src/Introspection.cpp type_info.type = TypeInfo::Typedef; type 1395 src/Introspection.cpp type_info.type = TypeInfo::Pointer; type 1408 src/Introspection.cpp type_info.type = TypeInfo::Reference; type 1419 src/Introspection.cpp type_info.type = TypeInfo::Const; type 1430 src/Introspection.cpp type_info.type = TypeInfo::Array; type 1499 src/Introspection.cpp type_stack.back().first.type == TypeInfo::Array) { type 1503 src/Introspection.cpp type_stack.back().first.type == TypeInfo::Array) { type 1627 src/Introspection.cpp v.type = origin->type; type 1656 src/Introspection.cpp var.type = spec->type; type 1674 src/Introspection.cpp functions[i].variables[j].type = type 1680 src/Introspection.cpp global_variables[i].type = type 1686 src/Introspection.cpp types[i].members[j].type = type 1697 src/Introspection.cpp if (t->type == TypeInfo::Pointer) { type 1700 src/Introspection.cpp t = t->members[0].type; type 1701 src/Introspection.cpp } else if (t->type == TypeInfo::Reference) { type 1704 src/Introspection.cpp t = t->members[0].type; type 1705 src/Introspection.cpp } else if (t->type == TypeInfo::Const) { type 1708 src/Introspection.cpp t = t->members[0].type; type 1709 src/Introspection.cpp } else if (t->type == TypeInfo::Array) { type 1719 src/Introspection.cpp t = t->members[0].type; type 1743 src/Introspection.cpp if (v.type && type 1744 src/Introspection.cpp (v.type->type == TypeInfo::Struct || type 1745 src/Introspection.cpp v.type->type == TypeInfo::Class || type 1746 src/Introspection.cpp v.type->type == TypeInfo::Typedef)) { type 1747 src/Introspection.cpp size_t members = v.type->members.size(); type 1749 src/Introspection.cpp v.type->members.begin(), type 1750 src/Introspection.cpp v.type->members.end()); type 1753 src/Introspection.cpp if (new_vars[j].type->type == TypeInfo::Typedef) { type 1773 src/Introspection.cpp if (functions[i].variables[j].type) { type 1774 src/Introspection.cpp debug(5) << " " << functions[i].variables[j].type->name << " " << functions[i].variables[j].name << "\n"; type 1784 src/Introspection.cpp if (v.type && v.addr && type 1785 src/Introspection.cpp (v.type->type == TypeInfo::Struct || type 1786 src/Introspection.cpp v.type->type == TypeInfo::Class || type 1787 src/Introspection.cpp v.type->type == TypeInfo::Typedef)) { type 1789 src/Introspection.cpp vector<LocalVariable> &members = v.type->members; type 1798 src/Introspection.cpp mem.type = members[j].type; type 1825 src/Introspection.cpp if (!v.name.empty() && v.type && v.stack_offset != no_location) { type 69 src/Introspection.h static bool check_introspection(const void *var, const std::string &type, type 74 src/Introspection.h std::string name = Introspection::get_variable_name(var, type); type 15 src/Lerp.cpp internal_assert(zero_val.type() == one_val.type()); type 16 src/Lerp.cpp internal_assert(weight.type().is_uint() || weight.type().is_float()); type 18 src/Lerp.cpp Type result_type = zero_val.type(); type 23 src/Lerp.cpp if (zero_val.type().is_int()) { type 24 src/Lerp.cpp computation_type = UInt(zero_val.type().bits(), zero_val.type().lanes()); type 41 src/Lerp.cpp if (weight.type().is_float()) type 44 src/Lerp.cpp half_weight = weight.type().max() / 2; type 52 src/Lerp.cpp if (weight.type().is_float()) { type 62 src/Lerp.cpp Cast::make(Float(64, typed_weight.type().lanes()), typed_weight)); type 75 src/Lerp.cpp int weight_bits = weight.type().bits(); type 100 src/Lerp.cpp int bit_size_difference = weight.type().bits() - computation_type.bits(); type 107 src/Lerp.cpp int shift_amount = std::min(computation_type.bits(), weight.type().bits()); type 122 src/Lerp.cpp weight / cast(weight.type(), (int32_t)scaling_factor)); type 145 src/Lerp.cpp Expr one_expand = Cast::make(UInt(2 * bits, one_val.type().lanes()), type 27 src/LoopCarry.cpp if (e.type() != Int(32)) { type 34 src/LoopCarry.cpp return make_zero(v->type); type 37 src/LoopCarry.cpp return make_zero(op->type); type 391 src/LoopCarry.cpp Expr scratch_idx = scratch_index(i, orig_load->type); type 392 src/LoopCarry.cpp Expr load_from_scratch = Load::make(orig_load->type, scratch, scratch_idx, type 393 src/LoopCarry.cpp Buffer<>(), Parameter(), const_true(orig_load->type.lanes())); type 400 src/LoopCarry.cpp Parameter(), const_true(orig_load->type.lanes())); type 407 src/LoopCarry.cpp scratch_index(i-1, orig_load->type), type 408 src/LoopCarry.cpp Parameter(), const_true(orig_load->type.lanes())); type 434 src/LoopCarry.cpp Expr scratch_idx = scratch_index(i, initial_scratch_values[i].type()); type 437 src/LoopCarry.cpp const_true(scratch_idx.type().lanes())); type 458 src/LoopCarry.cpp loads[c.front()][0]->type.element_of(), type 459 src/LoopCarry.cpp (int)c.size() * loads[c.front()][0]->type.lanes(), type 490 src/LoopCarry.cpp Type type; type 529 src/LoopCarry.cpp stmt = Allocate::make(alloc.name, alloc.type, {alloc.size}, const_true(), stmt); type 334 src/Lower.cpp buf.type(), buf.dimensions())); type 31 src/Memoization.cpp record(Halide::Internal::Parameter(extern_args[i].buffer.type(), true, type 85 src/Memoization.cpp info.type = parameter.type(); type 93 src/Memoization.cpp } else if (info.type.is_handle()) { type 100 src/Memoization.cpp info.size_expr = info.type.bytes(); type 101 src/Memoization.cpp info.value_expr = Internal::Variable::make(info.type, parameter.name(), parameter); type 104 src/Memoization.cpp dependency_info[DependencyKey(info.type.bytes(), parameter.name())] = info; type 109 src/Memoization.cpp info.type = expr.type(); type 110 src/Memoization.cpp info.size_expr = info.type.bytes(); type 112 src/Memoization.cpp dependency_info[DependencyKey(info.type.bytes(), unique_name("memoize_tag"))] = info; type 136 src/Memoization.cpp Type type; type 156 src/Memoization.cpp int alignment = i.second.type.bytes(); type 512 src/Memoization.cpp body = Allocate::make(allocation->name, allocation->type, allocation->extents, allocation->condition, body, type 379 src/ModulusRemainder.cpp bool value_interesting = op->value.type().is_int(); type 37 src/Monotonic.cpp if (op->type.can_represent(op->value.type())) { type 42 src/Monotonic.cpp if (op->value.type().bits() >= 32 && op->type.bits() >= 32) { type 17 src/OutputImageParam.cpp return param.type(); type 85 src/OutputImageParam.cpp return Argument(name(), kind, type(), dimensions()); type 41 src/OutputImageParam.h EXPORT Type type() const; type 56 src/ParallelRVar.cpp expr = Variable::make(op->type, get_new_name(op->name)); type 83 src/ParallelRVar.cpp if (op->value.type() == Bool()) { type 52 src/Param.h template <typename T2 = T, typename std::enable_if<!std::is_pointer<T2>::value>::type * = nullptr> type 110 src/Param.h Type type() const { type 123 src/Param.h if (min.defined() && min.type() != type_of<T>()) { type 130 src/Param.h if (max.defined() && max.type() != type_of<T>()) { type 161 src/Param.h return Argument(name(), Argument::InputScalar, type(), 0, type 12 src/Parameter.cpp const Type type; type 28 src/Parameter.cpp : type(t), dimensions(d), name(n), buffer(Buffer<>()), data(0), type 122 src/Parameter.cpp return contents->type; type 152 src/Parameter.cpp const Type t = type(); type 191 src/Parameter.cpp user_assert(contents->type == b.type()) type 193 src/Parameter.cpp << " of type " << contents->type type 195 src/Parameter.cpp << " of type " << Type(b.type()) << "\n"; type 261 src/Parameter.cpp user_assert(e.type() == contents->type) type 263 src/Parameter.cpp << " of type " << contents->type type 265 src/Parameter.cpp << " of type " << e.type() << "\n"; type 278 src/Parameter.cpp user_assert(e.type() == contents->type) type 280 src/Parameter.cpp << " of type " << contents->type type 282 src/Parameter.cpp << " of type " << e.type() << "\n"; type 360 src/Parameter.cpp Type t = (*args)[i].type(); type 60 src/Parameter.h EXPORT Type type() const; type 84 src/Parameter.h user_assert(type() == type_of<T>() || (type().is_handle() && type_of<T>() == UInt(64))) type 85 src/Parameter.h << "Can't get Param<" << type() type 99 src/Parameter.h user_assert(type() == type_of<T>() || (type().is_handle() && type_of<T>() == UInt(64))) type 100 src/Parameter.h << "Can't set Param<" << type() type 267 src/PartitionLoops.cpp if (s.condition.type().is_vector()) { type 277 src/PartitionLoops.cpp internal_assert(s.condition.type().is_scalar()) << s.condition << "\n"; type 773 src/PartitionLoops.cpp Expr new_var = Variable::make(op->value.type(), new_name); type 807 src/PartitionLoops.cpp inner = Allocate::make(a->name, a->type, a->extents, a->condition, inner); type 844 src/PartitionLoops.cpp inner = Allocate::make(allocate_a->name, allocate_a->type, allocate_a->extents, allocate_a->condition, inner); type 848 src/PartitionLoops.cpp Expr condition = Variable::make(op->condition.type(), condition_name); type 856 src/PartitionLoops.cpp inner = substitute(let_a->name, Variable::make(let_a->value.type(), new_name), inner); type 863 src/PartitionLoops.cpp inner = substitute(let_b->name, Variable::make(let_b->value.type(), new_name), inner); type 901 src/PartitionLoops.cpp Expr var = Variable::make(true_value.type(), var_name); type 910 src/PartitionLoops.cpp Expr var = Variable::make(false_value.type(), var_name); type 964 src/PartitionLoops.cpp expr = Call::make(op->type, Call::likely, {mutate(op->args[0])}, Call::PureIntrinsic); type 289 src/Pipeline.cpp debug(1) << "Inferred argument: " << arg.arg.type << " " << arg.arg.name << "\n"; type 666 src/Pipeline.cpp Type type; type 686 src/Pipeline.cpp Type type = output_buffer_types[i].type; type 693 src/Pipeline.cpp user_assert(dst[i].type() == type) type 696 src/Pipeline.cpp << " because Buffer has type " << Type(dst[i].type()) type 698 src/Pipeline.cpp << "\" has type " << type << ".\n"; type 769 src/Pipeline.cpp arg.arg.type); type 919 src/Pipeline.cpp tracked_buffers[i].query = Runtime::Buffer<>(ia.param.type(), nullptr, initial_shape); type 920 src/Pipeline.cpp tracked_buffers[i].orig = Runtime::Buffer<>(ia.param.type(), nullptr, initial_shape); type 129 src/Prefetch.cpp scope.push(op->name, Interval(Variable::make(op->value.type(), min_name), type 130 src/Prefetch.cpp Variable::make(op->value.type(), max_name))); type 176 src/Prefetch.cpp prefetch = Prefetch::make(buf_name, {param.type()}, bounds, param); type 283 src/Prefetch.cpp internal_assert(base && base->type.is_handle()); type 299 src/Prefetch.cpp stmt = Evaluate::make(Call::make(call->type, Call::prefetch, args, Call::Intrinsic)); type 329 src/Prefetch.cpp internal_assert(base && base->type.is_handle()); type 331 src/Prefetch.cpp int elem_size = base->type.bytes(); type 354 src/Prefetch.cpp Expr abs_stride_bytes = Call::make(stride_bytes.type(), Call::abs, {stride_bytes}, Call::PureIntrinsic); type 362 src/Prefetch.cpp stmt = Evaluate::make(Call::make(call->type, Call::prefetch, args, Call::Intrinsic)); type 72 src/Profiling.cpp const Type &type, type 84 src/Profiling.cpp int64_t stack_bytes = constant_size * type.bytes(); type 99 src/Profiling.cpp size = simplify(Select::make(condition, size * type.bytes(), make_zero(UInt(64)))); type 115 src/Profiling.cpp Expr size = compute_allocation_size(new_extents, condition, op->type, op->name, on_stack); type 116 src/Profiling.cpp internal_assert(size.type() == UInt(64)); type 142 src/Profiling.cpp stmt = Allocate::make(op->name, op->type, new_extents, condition, body, new_expr, op->free_function); type 158 src/Profiling.cpp internal_assert(alloc.size.type() == UInt(64)); type 19 src/Qualify.cpp expr = Variable::make(v->type, prefix + v->name, v->reduction_domain); type 21 src/Random.cpp internal_assert(x.type() == UInt(32)); type 68 src/Random.cpp internal_assert(e[0].type() == Int(32) || e[0].type() == UInt(32)); type 72 src/Random.cpp internal_assert(e[i].type() == Int(32) || e[i].type() == UInt(32)); type 103 src/Random.cpp if (op->type == Float(32)) { type 105 src/Random.cpp } else if (op->type == Int(32)) { type 107 src/Random.cpp } else if (op->type == UInt(32)) { type 167 src/Reduction.cpp expr = Variable::make(op->type, op->name); type 57 src/RemoveDeadAllocations.cpp stmt = Allocate::make(op->name, op->type, op->extents, op->condition, body, op->new_expr, op->free_function); type 50 src/RemoveUndef.cpp expr = Cast::make(op->type, value); type 126 src/RemoveUndef.cpp expr = Load::make(op->type, op->name, index, op->image, op->param, pred); type 171 src/RemoveUndef.cpp expr = Call::make(op->type, op->name, new_args, op->call_type, type 334 src/RemoveUndef.cpp new_value = undef(old_value.type()); type 393 src/RemoveUndef.cpp stmt = Allocate::make(op->name, op->type, new_extents, condition, body, new_expr, op->free_function); type 31 src/ScheduleFunctions.cpp Type type; type 159 src/ScheduleFunctions.cpp internal_assert(nest[i].type == Container::Let); type 182 src/ScheduleFunctions.cpp internal_assert(nest[i].type == Container::If); type 202 src/ScheduleFunctions.cpp if (nest[i].type == Container::Let) { type 205 src/ScheduleFunctions.cpp } else if (nest[i].type == Container::If) { type 209 src/ScheduleFunctions.cpp internal_assert(nest[i].type == Container::For); type 362 src/ScheduleFunctions.cpp Parameter p(b.type(), true, b.dimensions(), b.name()); type 587 src/ScheduleFunctions.cpp if (op->type.is_handle() && type 852 src/ScheduleFunctions.cpp if (v->type.is_handle() && type 9 src/ScheduleParam.cpp type(t), type 25 src/ScheduleParam.cpp type(that.type), type 35 src/ScheduleParam.cpp internal_assert(type == that.type); type 37 src/ScheduleParam.cpp type = that.type; type 27 src/ScheduleParam.h return type == Handle(); type 32 src/ScheduleParam.h return type; type 73 src/ScheduleParam.h Type type; type 93 src/ScheduleParam.h template <typename TO2 = TO, typename std::enable_if<!std::is_same<TO2, bool>::value>::type * = nullptr> type 96 src/ScheduleParam.h template <typename TO2 = TO, typename std::enable_if<std::is_same<TO2, bool>::value>::type * = nullptr> type 113 src/ScheduleParam.h typename std::enable_if<std::is_arithmetic<T2>::value>::type * = nullptr> type 119 src/ScheduleParam.h typename std::enable_if<!std::is_arithmetic<T2>::value>::type * = nullptr> type 125 src/ScheduleParam.h std::is_convertible<T2, T>::value>::type * = nullptr> type 126 src/ScheduleParam.h HALIDE_ALWAYS_INLINE void typed_setter_impl(const T2 &value, const char *type) { type 134 src/ScheduleParam.h user_error << "The ScheduleParam " << name() << " cannot be set with a value of type " << type << ".\n"; type 140 src/ScheduleParam.h template <typename T2, typename std::enable_if<std::is_same<T2, LoopLevel>::value>::type * = nullptr> type 146 src/ScheduleParam.h template <typename T2, typename std::enable_if<!std::is_convertible<T2, T>::value>::type * = nullptr> type 147 src/ScheduleParam.h HALIDE_ALWAYS_INLINE void typed_setter_impl(const T2 &value, const char *type) { type 148 src/ScheduleParam.h user_error << "The ScheduleParam " << name() << " cannot be set with a value of type " << type << ".\n"; type 152 src/ScheduleParam.h typename std::enable_if<std::is_same<T2, LoopLevel>::value>::type * = nullptr> type 164 src/ScheduleParam.h typename std::enable_if<std::is_same<T2, bool>::value>::type * = nullptr> type 176 src/ScheduleParam.h typename std::enable_if<std::is_arithmetic<T2>::value && !std::is_same<T2, bool>::value>::type * = nullptr> type 117 src/Simplify.cpp if (call->type != t) { type 267 src/Simplify.cpp if (e.type().is_vector()) { type 278 src/Simplify.cpp if (e.type().is_vector()) { type 289 src/Simplify.cpp if (e.type().is_vector()) { type 306 src/Simplify.cpp Type t = e.type(); type 447 src/Simplify.cpp if (!no_overflow(e.type())) return Expr(); type 460 src/Simplify.cpp if (!no_overflow(e.type())) return Expr(); type 469 src/Simplify.cpp if (propagate_indeterminate_expression(value, op->type, &expr)) { type 479 src/Simplify.cpp if (value.type() == op->type) { type 481 src/Simplify.cpp } else if (op->type.is_int() && type 484 src/Simplify.cpp expr = IntImm::make(op->type, (int64_t)f); type 485 src/Simplify.cpp } else if (op->type.is_uint() && type 488 src/Simplify.cpp expr = UIntImm::make(op->type, (uint64_t)f); type 489 src/Simplify.cpp } else if (op->type.is_float() && type 492 src/Simplify.cpp expr = FloatImm::make(op->type, f); type 493 src/Simplify.cpp } else if (op->type.is_int() && type 496 src/Simplify.cpp expr = IntImm::make(op->type, i); type 497 src/Simplify.cpp } else if (op->type.is_uint() && type 500 src/Simplify.cpp expr = UIntImm::make(op->type, (uint64_t)i); type 501 src/Simplify.cpp } else if (op->type.is_float() && type 504 src/Simplify.cpp expr = FloatImm::make(op->type, (double)i); type 505 src/Simplify.cpp } else if (op->type.is_int() && type 508 src/Simplify.cpp expr = IntImm::make(op->type, (int64_t)u); type 509 src/Simplify.cpp } else if (op->type.is_uint() && type 512 src/Simplify.cpp expr = UIntImm::make(op->type, u); type 513 src/Simplify.cpp } else if (op->type.is_float() && type 516 src/Simplify.cpp expr = FloatImm::make(op->type, (double)u); type 518 src/Simplify.cpp op->type.code() == cast->type.code() && type 519 src/Simplify.cpp op->type.bits() < cast->type.bits()) { type 523 src/Simplify.cpp expr = mutate(Cast::make(op->type, cast->value)); type 525 src/Simplify.cpp (op->type.is_int() || op->type.is_uint()) && type 526 src/Simplify.cpp (cast->type.is_int() || cast->type.is_uint()) && type 527 src/Simplify.cpp op->type.bits() <= cast->type.bits() && type 528 src/Simplify.cpp op->type.bits() <= op->value.type().bits()) { type 534 src/Simplify.cpp expr = mutate(Cast::make(op->type, cast->value)); type 537 src/Simplify.cpp expr = mutate(Broadcast::make(Cast::make(op->type.element_of(), broadcast_value->value), broadcast_value->lanes)); type 539 src/Simplify.cpp op->type.element_of() == Int(64) && type 540 src/Simplify.cpp op->value.type().element_of() == Int(32)) { type 542 src/Simplify.cpp expr = mutate(Ramp::make(Cast::make(op->type.element_of(), ramp_value->base), type 543 src/Simplify.cpp Cast::make(op->type.element_of(), ramp_value->stride), type 546 src/Simplify.cpp op->type == Int(64) && type 547 src/Simplify.cpp op->value.type() == Int(32) && type 551 src/Simplify.cpp expr = mutate(Cast::make(op->type, add->a) + add->b); type 555 src/Simplify.cpp expr = Cast::make(op->type, value); type 566 src/Simplify.cpp internal_assert(info.replacement.type() == op->type) << "Cannot replace variable " << op->name type 567 src/Simplify.cpp << " of type " << op->type << " with expression of type " << info.replacement.type() << "\n"; type 590 src/Simplify.cpp if (propagate_indeterminate_expression(a, b, op->type, &expr)) { type 653 src/Simplify.cpp if (no_overflow(a.type()) && type 654 src/Simplify.cpp add_would_overflow(a.type().bits(), ia, ib)) { type 655 src/Simplify.cpp expr = signed_integer_overflow_error(a.type()); type 657 src/Simplify.cpp expr = IntImm::make(a.type(), ia + ib); type 662 src/Simplify.cpp expr = UIntImm::make(a.type(), ua + ub); type 666 src/Simplify.cpp expr = FloatImm::make(a.type(), fa + fb); type 673 src/Simplify.cpp expr = mutate(a * make_const(op->type, 2)); type 779 src/Simplify.cpp no_overflow(op->type)) { type 781 src/Simplify.cpp expr = mutate(a * (make_one(op->type) + mul_b->b)); type 785 src/Simplify.cpp no_overflow(op->type)) { type 787 src/Simplify.cpp expr = mutate((make_one(op->type) + mul_b->a) * a); type 791 src/Simplify.cpp no_overflow(op->type)) { type 793 src/Simplify.cpp expr = mutate(mul_a->a * (mul_a->b + make_one(op->type))); type 797 src/Simplify.cpp no_overflow(op->type)) { type 799 src/Simplify.cpp expr = mutate((mul_a->a + make_one(op->type)) * b); type 800 src/Simplify.cpp } else if (no_overflow(op->type) && type 806 src/Simplify.cpp } else if (no_overflow(op->type) && type 812 src/Simplify.cpp } else if (no_overflow(op->type) && type 818 src/Simplify.cpp } else if (no_overflow(op->type) && type 825 src/Simplify.cpp } else if (no_overflow(op->type) && type 833 src/Simplify.cpp } else if (no_overflow(op->type) && type 841 src/Simplify.cpp } else if (no_overflow(op->type) && type 849 src/Simplify.cpp } else if (no_overflow(op->type) && type 869 src/Simplify.cpp } else if (no_overflow(op->type) && type 876 src/Simplify.cpp expr = mutate((add_a_a->a + IntImm::make(op->type, ia + ib*ic)) / div_a->b); type 899 src/Simplify.cpp } else if (no_overflow(op->type) && type 908 src/Simplify.cpp } else if (no_overflow(op->type) && type 916 src/Simplify.cpp } else if (no_overflow(op->type) && type 924 src/Simplify.cpp } else if (no_overflow(op->type) && type 932 src/Simplify.cpp } else if (no_overflow(op->type) && type 945 src/Simplify.cpp Expr ratio = make_const(a.type(), div_imp(ia, ib)); type 958 src/Simplify.cpp if (propagate_indeterminate_expression(a, b, op->type, &expr)) { type 1015 src/Simplify.cpp expr = make_zero(op->type); type 1017 src/Simplify.cpp if (no_overflow(a.type()) && type 1018 src/Simplify.cpp sub_would_overflow(a.type().bits(), ia, ib)) { type 1019 src/Simplify.cpp expr = signed_integer_overflow_error(a.type()); type 1021 src/Simplify.cpp expr = IntImm::make(a.type(), ia - ib); type 1024 src/Simplify.cpp expr = UIntImm::make(a.type(), ua - ub); type 1026 src/Simplify.cpp expr = FloatImm::make(a.type(), fa - fb); type 1028 src/Simplify.cpp expr = mutate(a + IntImm::make(a.type(), (-ib))); type 1030 src/Simplify.cpp expr = mutate(a + FloatImm::make(a.type(), (-fb))); type 1048 src/Simplify.cpp make_zero(ramp_b->stride.type())- ramp_b->stride, type 1064 src/Simplify.cpp make_zero(op->type), type 1071 src/Simplify.cpp make_zero(op->type))); type 1076 src/Simplify.cpp make_zero(op->type), type 1083 src/Simplify.cpp make_zero(op->type))); type 1092 src/Simplify.cpp expr = mutate(make_zero(add_b->a.type()) - add_b->a); type 1095 src/Simplify.cpp expr = mutate(make_zero(add_b->a.type()) - add_b->b); type 1100 src/Simplify.cpp no_overflow(op->type)) { type 1102 src/Simplify.cpp expr = mutate(Max::make(make_zero(op->type), max_a->b - max_a->a)); type 1106 src/Simplify.cpp no_overflow(op->type)) { type 1108 src/Simplify.cpp expr = mutate(Min::make(make_zero(op->type), min_a->b - min_a->a)); type 1112 src/Simplify.cpp no_overflow(op->type)) { type 1114 src/Simplify.cpp expr = mutate(Max::make(max_a->a - max_a->b, make_zero(op->type))); type 1118 src/Simplify.cpp no_overflow(op->type)) { type 1120 src/Simplify.cpp expr = mutate(Min::make(min_a->a - min_a->b, make_zero(op->type))); type 1125 src/Simplify.cpp no_overflow(op->type)) { type 1127 src/Simplify.cpp expr = mutate(Min::make(make_zero(op->type), max_b->a - max_b->b)); type 1131 src/Simplify.cpp no_overflow(op->type)) { type 1133 src/Simplify.cpp expr = mutate(Max::make(make_zero(op->type), min_b->a - min_b->b)); type 1137 src/Simplify.cpp no_overflow(op->type)) { type 1139 src/Simplify.cpp expr = mutate(Min::make(max_b->b - max_b->a, make_zero(op->type))); type 1143 src/Simplify.cpp no_overflow(op->type)) { type 1145 src/Simplify.cpp expr = mutate(Max::make(min_b->b - min_b->a, make_zero(op->type))); type 1171 src/Simplify.cpp no_overflow(op->type)) { type 1173 src/Simplify.cpp expr = mutate(a * (make_one(op->type) - mul_b->b)); type 1177 src/Simplify.cpp no_overflow(op->type)) { type 1179 src/Simplify.cpp expr = mutate((make_one(op->type) - mul_b->a) * a); type 1183 src/Simplify.cpp no_overflow(op->type)) { type 1185 src/Simplify.cpp expr = mutate(mul_a->a * (mul_a->b - make_one(op->type))); type 1189 src/Simplify.cpp no_overflow(op->type)) { type 1191 src/Simplify.cpp expr = mutate((mul_a->a - make_one(op->type)) * b); type 1237 src/Simplify.cpp } else if (no_overflow(op->type) && type 1240 src/Simplify.cpp no_overflow(op->type) && type 1247 src/Simplify.cpp } else if (no_overflow(op->type) && type 1250 src/Simplify.cpp no_overflow(op->type) && type 1254 src/Simplify.cpp } else if (no_overflow(op->type) && type 1260 src/Simplify.cpp } else if (no_overflow(op->type) && type 1266 src/Simplify.cpp } else if (no_overflow(op->type) && type 1272 src/Simplify.cpp } else if (no_overflow(op->type) && type 1278 src/Simplify.cpp } else if (no_overflow(op->type) && type 1284 src/Simplify.cpp } else if (no_overflow(op->type) && type 1295 src/Simplify.cpp expr = make_zero(op->type); type 1301 src/Simplify.cpp expr = make_zero(op->type); type 1302 src/Simplify.cpp } else if (no_overflow(op->type) && type 1308 src/Simplify.cpp } else if (no_overflow(op->type) && type 1314 src/Simplify.cpp } else if (no_overflow(op->type) && type 1320 src/Simplify.cpp } else if (no_overflow(op->type) && type 1326 src/Simplify.cpp } else if (no_overflow(op->type) && type 1327 src/Simplify.cpp (op->type.is_int() || op->type.is_uint()) && type 1334 src/Simplify.cpp expr = mutate(make_zero(a.type()) - (b % mul_a->b)); type 1335 src/Simplify.cpp } else if (no_overflow(op->type) && type 1336 src/Simplify.cpp (op->type.is_int() || op->type.is_uint()) && type 1348 src/Simplify.cpp op->type.is_int() && type 1349 src/Simplify.cpp no_overflow(op->type) && type 1371 src/Simplify.cpp op->type.is_int() && type 1372 src/Simplify.cpp no_overflow(op->type) && type 1382 src/Simplify.cpp op->type.is_int() && type 1383 src/Simplify.cpp no_overflow(op->type) && type 1393 src/Simplify.cpp op->type.is_int() && type 1394 src/Simplify.cpp no_overflow(op->type) && type 1404 src/Simplify.cpp op->type.is_int() && type 1405 src/Simplify.cpp no_overflow(op->type) && type 1415 src/Simplify.cpp op->type.is_int() && type 1416 src/Simplify.cpp no_overflow(op->type) && type 1429 src/Simplify.cpp op->type.is_int() && type 1430 src/Simplify.cpp no_overflow(op->type) && type 1449 src/Simplify.cpp if (propagate_indeterminate_expression(a, b, op->type, &expr)) { type 1486 src/Simplify.cpp if (no_overflow(a.type()) && type 1487 src/Simplify.cpp mul_would_overflow(a.type().bits(), ia, ib)) { type 1488 src/Simplify.cpp expr = signed_integer_overflow_error(a.type()); type 1490 src/Simplify.cpp expr = IntImm::make(a.type(), ia * ib); type 1493 src/Simplify.cpp expr = UIntImm::make(a.type(), ua * ub); type 1495 src/Simplify.cpp expr = FloatImm::make(a.type(), fa * fb); type 1552 src/Simplify.cpp if (propagate_indeterminate_expression(a, b, op->type, &expr)) { type 1620 src/Simplify.cpp expr = make_const(op->type, div_imp(num_max, ib)); type 1625 src/Simplify.cpp if (ramp_a && no_overflow_scalar_int(ramp_a->base.type())) { type 1630 src/Simplify.cpp if (is_zero(b) && !op->type.is_float()) { type 1631 src/Simplify.cpp expr = indeterminate_expression_error(op->type); type 1637 src/Simplify.cpp expr = make_one(op->type); type 1640 src/Simplify.cpp expr = IntImm::make(op->type, div_imp(ia, ib)); type 1643 src/Simplify.cpp expr = UIntImm::make(op->type, ua / ub); type 1647 src/Simplify.cpp expr = FloatImm::make(op->type, fa / fb); type 1650 src/Simplify.cpp } else if (no_overflow_scalar_int(op->type) && type 1653 src/Simplify.cpp expr = mutate(select(b < make_zero(op->type), type 1654 src/Simplify.cpp make_one(op->type), type 1655 src/Simplify.cpp make_const(op->type, -1))); type 1657 src/Simplify.cpp no_overflow_scalar_int(ramp_a->base.type()) && type 1664 src/Simplify.cpp Type t = op->type.element_of(); type 1669 src/Simplify.cpp no_overflow_scalar_int(ramp_a->base.type()) && type 1678 src/Simplify.cpp } else if (no_overflow(op->type) && type 1685 src/Simplify.cpp expr = mutate(div_a->a / make_const(op->type, ia * ib)); type 1686 src/Simplify.cpp } else if (no_overflow(op->type) && type 1695 src/Simplify.cpp expr = mutate((div_a_a->a + make_const(op->type, ia*ib)) / make_const(op->type, ia*ic)); type 1696 src/Simplify.cpp } else if (no_overflow(op->type) && type 1705 src/Simplify.cpp expr = mutate(mul_a->a * make_const(op->type, div_imp(ia, ib))); type 1708 src/Simplify.cpp expr = mutate(mul_a->a / make_const(op->type, div_imp(ib, ia))); type 1710 src/Simplify.cpp } else if (no_overflow(op->type) && type 1719 src/Simplify.cpp Expr ratio = make_const(op->type, div_imp(ia, ib)); type 1721 src/Simplify.cpp } else if (no_overflow(op->type) && type 1729 src/Simplify.cpp Expr ratio = make_const(op->type, div_imp(ia, ib)); type 1731 src/Simplify.cpp } else if (no_overflow(op->type) && type 1740 src/Simplify.cpp Expr ratio = make_const(op->type, div_imp(ia, ib)); type 1742 src/Simplify.cpp } else if (no_overflow(op->type) && type 1750 src/Simplify.cpp Expr ratio = make_const(op->type, div_imp(ia, ib)); type 1752 src/Simplify.cpp } else if (no_overflow(op->type) && type 1762 src/Simplify.cpp Expr ratio = make_const(op->type, div_imp(ia, ib)); type 1764 src/Simplify.cpp } else if (no_overflow(op->type) && type 1773 src/Simplify.cpp Expr ratio = make_const(op->type, div_imp(ia, ib)); type 1775 src/Simplify.cpp } else if (no_overflow(op->type) && type 1784 src/Simplify.cpp Expr ratio = make_const(op->type, div_imp(ia, ib)); type 1786 src/Simplify.cpp } else if (no_overflow(op->type) && type 1795 src/Simplify.cpp Expr ratio = make_const(op->type, div_imp(ia, ib)); type 1797 src/Simplify.cpp } else if (no_overflow(op->type) && type 1806 src/Simplify.cpp Expr ratio = make_const(op->type, div_imp(ia, ib)); type 1808 src/Simplify.cpp } else if (no_overflow(op->type) && type 1817 src/Simplify.cpp Expr ratio = make_const(op->type, div_imp(ia, ib)); type 1819 src/Simplify.cpp } else if (no_overflow(op->type) && type 1828 src/Simplify.cpp Expr ratio = make_const(op->type, div_imp(ia, ib)); type 1830 src/Simplify.cpp } else if (no_overflow(op->type) && type 1840 src/Simplify.cpp Expr ratio = make_const(op->type, div_imp(ia, ib)); type 1842 src/Simplify.cpp } else if (no_overflow(op->type) && type 1849 src/Simplify.cpp Expr ratio = make_const(op->type, div_imp(ia, ib)); type 1853 src/Simplify.cpp } else if (no_overflow(op->type) && type 1857 src/Simplify.cpp expr = mutate(add_a->b/b + make_one(op->type)); type 1858 src/Simplify.cpp } else if (no_overflow(op->type) && type 1862 src/Simplify.cpp expr = mutate(add_a->a/b + make_one(op->type)); type 1863 src/Simplify.cpp } else if (no_overflow(op->type) && type 1868 src/Simplify.cpp expr = mutate((make_zero(op->type) - sub_a->b)/b + make_one(op->type)); type 1869 src/Simplify.cpp } else if (no_overflow(op->type) && type 1873 src/Simplify.cpp expr = mutate(sub_a->a/b + make_const(op->type, -1)); type 1876 src/Simplify.cpp } else if (no_overflow(op->type) && type 1881 src/Simplify.cpp expr = mutate((add_a_a->b + add_a->b)/b + make_one(op->type)); type 1882 src/Simplify.cpp } else if (no_overflow(op->type) && type 1887 src/Simplify.cpp expr = mutate((add_a_a->a + add_a->b)/b + make_one(op->type)); type 1888 src/Simplify.cpp } else if (no_overflow(op->type) && type 1893 src/Simplify.cpp expr = mutate((add_a->a + add_a_b->a)/b + make_one(op->type)); type 1894 src/Simplify.cpp } else if (no_overflow(op->type) && type 1899 src/Simplify.cpp expr = mutate((add_a->a + add_a_b->b)/b + make_one(op->type)); type 1901 src/Simplify.cpp } else if (no_overflow(op->type) && type 1906 src/Simplify.cpp } else if (no_overflow(op->type) && type 1911 src/Simplify.cpp } else if (no_overflow(op->type) && type 1917 src/Simplify.cpp } else if (no_overflow(op->type) && type 1923 src/Simplify.cpp } else if (no_overflow(op->type) && type 1929 src/Simplify.cpp } else if (no_overflow(op->type) && type 1936 src/Simplify.cpp } else if (no_overflow(op->type) && type 1941 src/Simplify.cpp expr = mutate(mul_a_a->a + ((make_zero(op->type) - sub_a->b) / b)); type 1942 src/Simplify.cpp } else if (no_overflow(op->type) && type 1947 src/Simplify.cpp expr = mutate(mul_a_a->b + ((make_zero(op->type) - sub_a->b) / b)); type 1948 src/Simplify.cpp } else if (no_overflow(op->type) && type 1954 src/Simplify.cpp } else if (no_overflow(op->type) && type 1961 src/Simplify.cpp } else if (b.type().is_float() && is_simple_const(b)) { type 1964 src/Simplify.cpp expr = mutate(a * (make_one(b.type()) / b)); type 1975 src/Simplify.cpp if (propagate_indeterminate_expression(a, b, op->type, &expr)) { type 1995 src/Simplify.cpp no_overflow_scalar_int(op->type)) { type 2014 src/Simplify.cpp no_overflow_scalar_int(ramp_a->base.type())) { type 2018 src/Simplify.cpp if (is_zero(b) && !op->type.is_float()) { type 2019 src/Simplify.cpp expr = indeterminate_expression_error(op->type); type 2023 src/Simplify.cpp expr = IntImm::make(op->type, mod_imp(ia, ib)); type 2025 src/Simplify.cpp expr = UIntImm::make(op->type, ua % ub); type 2027 src/Simplify.cpp expr = FloatImm::make(op->type, mod_imp(fa, fb)); type 2030 src/Simplify.cpp } else if (no_overflow(op->type) && type 2037 src/Simplify.cpp expr = make_zero(op->type); type 2038 src/Simplify.cpp } else if (no_overflow(op->type) && type 2047 src/Simplify.cpp } else if (no_overflow(op->type) && type 2055 src/Simplify.cpp } else if (no_overflow(op->type) && type 2064 src/Simplify.cpp } else if (no_overflow_scalar_int(op->type) && type 2069 src/Simplify.cpp expr = make_const(op->type, mod_imp((int64_t)mod_rem.remainder, ib)); type 2070 src/Simplify.cpp } else if (no_overflow(op->type) && type 2080 src/Simplify.cpp no_overflow_scalar_int(ramp_a->base.type()) && type 2088 src/Simplify.cpp Expr new_base = make_const(ramp_a->base.type(), mod_imp((int64_t)mod_rem.remainder, ib)); type 2091 src/Simplify.cpp no_overflow_scalar_int(ramp_a->base.type()) && type 2099 src/Simplify.cpp Type t = ramp_a->base.type(); type 2112 src/Simplify.cpp if (propagate_indeterminate_expression(a, b, op->type, &expr)) { type 2169 src/Simplify.cpp expr = IntImm::make(op->type, std::min(ia, ib)); type 2173 src/Simplify.cpp expr = UIntImm::make(op->type, std::min(ua, ub)); type 2177 src/Simplify.cpp expr = FloatImm::make(op->type, std::min(fa, fb)); type 2180 src/Simplify.cpp b.type().is_max(ib)) { type 2185 src/Simplify.cpp b.type().is_min(ib)) { type 2190 src/Simplify.cpp b.type().is_max(ub)) { type 2194 src/Simplify.cpp } else if (op->type.is_uint() && type 2212 src/Simplify.cpp } else if (no_overflow(op->type) && type 2229 src/Simplify.cpp if (no_overflow(op->type) && type 2241 src/Simplify.cpp } else if (no_overflow(op->type) && type 2251 src/Simplify.cpp } else if (no_overflow(op->type) && type 2261 src/Simplify.cpp } else if (no_overflow(op->type) && type 2389 src/Simplify.cpp } else if (no_overflow(op->type) && type 2396 src/Simplify.cpp } else if (no_overflow(op->type) && type 2402 src/Simplify.cpp } else if (no_overflow(op->type) && type 2408 src/Simplify.cpp } else if (no_overflow(op->type) && type 2423 src/Simplify.cpp } else if (no_overflow(op->type) && type 2431 src/Simplify.cpp Expr factor = make_const(op->type, ia); type 2437 src/Simplify.cpp } else if (no_overflow(op->type) && type 2443 src/Simplify.cpp Expr factor = make_const(op->type, ia); type 2449 src/Simplify.cpp } else if (no_overflow(op->type) && type 2456 src/Simplify.cpp Expr ratio = make_const(op->type, ib / ia); type 2457 src/Simplify.cpp Expr factor = make_const(op->type, ia); type 2481 src/Simplify.cpp } else if (no_overflow(op->type) && type 2502 src/Simplify.cpp if (propagate_indeterminate_expression(a, b, op->type, &expr)) { type 2554 src/Simplify.cpp expr = IntImm::make(op->type, std::max(ia, ib)); type 2558 src/Simplify.cpp expr = UIntImm::make(op->type, std::max(ua, ub)); type 2562 src/Simplify.cpp expr = FloatImm::make(op->type, std::max(fa, fb)); type 2565 src/Simplify.cpp b.type().is_min(ib)) { type 2570 src/Simplify.cpp b.type().is_max(ib)) { type 2574 src/Simplify.cpp } else if (op->type.is_uint() && type 2580 src/Simplify.cpp b.type().is_max(ub)) { type 2596 src/Simplify.cpp } else if (no_overflow(op->type) && type 2614 src/Simplify.cpp if (no_overflow(op->type) && type 2626 src/Simplify.cpp } else if (no_overflow(op->type) && type 2636 src/Simplify.cpp } else if (no_overflow(op->type) && type 2646 src/Simplify.cpp } else if (no_overflow(op->type) && type 2752 src/Simplify.cpp } else if (no_overflow(op->type) && type 2759 src/Simplify.cpp } else if (no_overflow(op->type) && type 2765 src/Simplify.cpp } else if (no_overflow(op->type) && type 2771 src/Simplify.cpp } else if (no_overflow(op->type) && type 2785 src/Simplify.cpp } else if (no_overflow(op->type) && type 2793 src/Simplify.cpp Expr factor = make_const(op->type, ia); type 2799 src/Simplify.cpp } else if (no_overflow(op->type) && type 2805 src/Simplify.cpp Expr factor = make_const(op->type, ia); type 2811 src/Simplify.cpp } else if (no_overflow(op->type) && type 2818 src/Simplify.cpp Expr ratio = make_const(op->type, ib / ia); type 2819 src/Simplify.cpp Expr factor = make_const(op->type, ia); type 2843 src/Simplify.cpp } else if (no_overflow(op->type) && type 2864 src/Simplify.cpp if (propagate_indeterminate_expression(delta, op->type, &expr)) { type 2874 src/Simplify.cpp Expr zero = make_zero(delta.type()); type 2877 src/Simplify.cpp expr = const_true(op->type.lanes()); type 2882 src/Simplify.cpp for (int i = 0; i < delta.type().lanes(); i++) { type 2891 src/Simplify.cpp expr = const_true(op->type.lanes()); type 2894 src/Simplify.cpp expr = const_false(op->type.lanes()); type 2897 src/Simplify.cpp } else if (no_overflow_scalar_int(delta.type())) { type 2917 src/Simplify.cpp make_zero(broadcast->value.type())), type 2921 src/Simplify.cpp expr = (add->a == mutate(make_zero(delta.type()) - add->b)); type 2933 src/Simplify.cpp no_overflow(mul->type)) { type 2951 src/Simplify.cpp expr = (delta == make_zero(delta.type())); type 2961 src/Simplify.cpp if (propagate_indeterminate_expression(a, b, op->type, &expr)) { type 2969 src/Simplify.cpp expr = const_true(op->type.lanes()); type 2973 src/Simplify.cpp expr = const_false(op->type.lanes()); type 3005 src/Simplify.cpp no_overflow_scalar_int(delta_ramp->base.type())) { type 3016 src/Simplify.cpp expr = make_bool(ia < ib, op->type.lanes()); type 3019 src/Simplify.cpp expr = make_bool(ua < ub, op->type.lanes()); type 3021 src/Simplify.cpp a.type().is_max(ia)) { type 3023 src/Simplify.cpp expr = const_false(op->type.lanes()); type 3025 src/Simplify.cpp b.type().is_min(ib)) { type 3027 src/Simplify.cpp expr = const_false(op->type.lanes()); type 3029 src/Simplify.cpp (no_overflow(delta.type()) && type 3031 src/Simplify.cpp expr = const_false(op->type.lanes()); type 3032 src/Simplify.cpp } else if (no_overflow(delta.type()) && type 3034 src/Simplify.cpp expr = const_true(op->type.lanes()); type 3039 src/Simplify.cpp } else if (no_overflow(delta.type())) { type 3080 src/Simplify.cpp expr = mutate(make_zero(add_b->b.type()) < add_b->b); type 3083 src/Simplify.cpp expr = mutate(make_zero(add_b->a.type()) < add_b->a); type 3092 src/Simplify.cpp expr = mutate(sub_b->b < make_zero(sub_b->b.type())); type 3109 src/Simplify.cpp if (mul_a->type.is_int()) { type 3121 src/Simplify.cpp } else if (a.type().is_int() && type 3127 src/Simplify.cpp } else if (a.type().is_int() && type 3132 src/Simplify.cpp Expr one = make_one(a.type()); type 3188 src/Simplify.cpp expr = mutate(0 < b % make_const(a.type(), ia)); type 3248 src/Simplify.cpp expr = mutate(sub_b->b < div_a_a->a % div_a_a->b + make_const(a.type(), -ic)); type 3298 src/Simplify.cpp if (propagate_indeterminate_expression(a, b, op->type, &expr)) { type 3354 src/Simplify.cpp expr = const_false(op->type.lanes()); type 3360 src/Simplify.cpp expr = const_false(op->type.lanes()); type 3364 src/Simplify.cpp expr = const_false(op->type.lanes()); type 3370 src/Simplify.cpp expr = const_false(op->type.lanes()); type 3376 src/Simplify.cpp expr = const_false(op->type.lanes()); type 3384 src/Simplify.cpp expr = const_false(op->type.lanes()); type 3392 src/Simplify.cpp expr = const_false(op->type.lanes()); type 3401 src/Simplify.cpp expr = const_false(op->type.lanes()); type 3409 src/Simplify.cpp expr = const_false(op->type.lanes()); type 3418 src/Simplify.cpp expr = const_false(op->type.lanes()); type 3426 src/Simplify.cpp expr = const_false(op->type.lanes()); type 3435 src/Simplify.cpp expr = const_false(op->type.lanes()); type 3443 src/Simplify.cpp expr = const_false(op->type.lanes()); type 3479 src/Simplify.cpp expr = mutate(a && substitute(var_a->name, make_one(a.type()), b)); type 3481 src/Simplify.cpp expr = mutate(substitute(var_b->name, make_one(b.type()), a) && b); type 3492 src/Simplify.cpp if (propagate_indeterminate_expression(a, b, op->type, &expr)) { type 3530 src/Simplify.cpp expr = const_true(op->type.lanes()); type 3536 src/Simplify.cpp expr = const_true(op->type.lanes()); type 3540 src/Simplify.cpp expr = const_true(op->type.lanes()); type 3546 src/Simplify.cpp expr = const_true(op->type.lanes()); type 3552 src/Simplify.cpp expr = const_true(op->type.lanes()); type 3560 src/Simplify.cpp expr = const_true(op->type.lanes()); type 3568 src/Simplify.cpp expr = const_true(op->type.lanes()); type 3576 src/Simplify.cpp expr = const_true(op->type.lanes()); type 3584 src/Simplify.cpp expr = const_true(op->type.lanes()); type 3592 src/Simplify.cpp expr = const_true(op->type.lanes()); type 3600 src/Simplify.cpp expr = const_true(op->type.lanes()); type 3608 src/Simplify.cpp expr = const_true(op->type.lanes()); type 3616 src/Simplify.cpp expr = const_true(op->type.lanes()); type 3640 src/Simplify.cpp expr = mutate(a || substitute(var_a->name, make_zero(a.type()), b)); type 3642 src/Simplify.cpp expr = mutate(substitute(var_b->name, make_zero(b.type()), a) || b); type 3670 src/Simplify.cpp if (propagate_indeterminate_expression(a, op->type, &expr)) { type 3675 src/Simplify.cpp expr = make_zero(a.type()); type 3677 src/Simplify.cpp expr = make_one(a.type()); type 3706 src/Simplify.cpp if (propagate_indeterminate_expression(condition, true_value, false_value, op->type, &expr)) { type 3727 src/Simplify.cpp } else if (true_value.type().is_bool() && type 3730 src/Simplify.cpp if (true_value.type().is_vector() && condition.type().is_scalar()) { type 3731 src/Simplify.cpp expr = Broadcast::make(condition, true_value.type().lanes()); type 3735 src/Simplify.cpp } else if (true_value.type().is_bool() && type 3738 src/Simplify.cpp if (true_value.type().is_vector() && condition.type().is_scalar()) { type 3739 src/Simplify.cpp expr = Broadcast::make(mutate(!condition), true_value.type().lanes()); type 3811 src/Simplify.cpp expr = mutate(add_t->a + Select::make(condition, add_t->b, make_zero(sub_f->b.type()) - sub_f->b)); type 3816 src/Simplify.cpp expr = mutate(add_t->b + Select::make(condition, add_t->a, make_zero(sub_f->b.type()) - sub_f->b)); type 3821 src/Simplify.cpp expr = mutate(sub_t->a + Select::make(condition, make_zero(sub_t->b.type()) - sub_t->b, add_f->b)); type 3826 src/Simplify.cpp expr = mutate(sub_t->a + Select::make(condition, make_zero(sub_t->b.type()) - sub_t->b, add_f->a)); type 3938 src/Simplify.cpp if (!and_chain && eq->b.type().is_bool()) { type 3985 src/Simplify.cpp expr = undef(op->type); type 3988 src/Simplify.cpp Expr load = Load::make(op->type.element_of(), op->name, b_index->value, op->image, op->param, b_pred->value); type 3993 src/Simplify.cpp expr = Load::make(op->type, op->name, index, op->image, op->param, predicate); type 4006 src/Simplify.cpp if (propagate_indeterminate_expression(a, b, op->type, &expr)) { type 4012 src/Simplify.cpp Type t = op->type; type 4045 src/Simplify.cpp if (propagate_indeterminate_expression(a, b, op->type, &expr)) { type 4054 src/Simplify.cpp !b.type().is_max(ib) && type 4055 src/Simplify.cpp is_const_power_of_two_integer(make_const(a.type(), ib + 1), &bits)) { type 4056 src/Simplify.cpp expr = Mod::make(a, make_const(a.type(), ib + 1)); type 4058 src/Simplify.cpp b.type().is_max(ub)) { type 4061 src/Simplify.cpp is_const_power_of_two_integer(make_const(a.type(), ub + 1), &bits)) { type 4062 src/Simplify.cpp expr = Mod::make(a, make_const(a.type(), ub + 1)); type 4070 src/Simplify.cpp if (propagate_indeterminate_expression(a, b, op->type, &expr)) { type 4081 src/Simplify.cpp if (propagate_indeterminate_expression(a, op->type, &expr)) { type 4084 src/Simplify.cpp Type ta = a.type(); type 4091 src/Simplify.cpp expr = make_const(op->type, ia); type 4099 src/Simplify.cpp expr = make_const(a.type(), fa); type 4114 src/Simplify.cpp expr = Call::make(op->type, op->name, {arg}, op->call_type); type 4162 src/Simplify.cpp expr = Call::make(op->type, op->name, new_args, op->call_type); type 4169 src/Simplify.cpp if (propagate_indeterminate_expression(arg, op->type, &expr)) { type 4173 src/Simplify.cpp expr = FloatImm::make(arg.type(), std::sqrt(*f)); type 4175 src/Simplify.cpp expr = Call::make(op->type, op->name, {arg}, op->call_type); type 4182 src/Simplify.cpp if (propagate_indeterminate_expression(arg, op->type, &expr)) { type 4186 src/Simplify.cpp expr = FloatImm::make(arg.type(), std::log(*f)); type 4188 src/Simplify.cpp expr = Call::make(op->type, op->name, {arg}, op->call_type); type 4195 src/Simplify.cpp if (propagate_indeterminate_expression(arg, op->type, &expr)) { type 4199 src/Simplify.cpp expr = FloatImm::make(arg.type(), std::exp(*f)); type 4201 src/Simplify.cpp expr = Call::make(op->type, op->name, {arg}, op->call_type); type 4209 src/Simplify.cpp if (propagate_indeterminate_expression(arg0, arg1, op->type, &expr)) { type 4215 src/Simplify.cpp expr = FloatImm::make(arg0.type(), std::pow(*f0, *f1)); type 4217 src/Simplify.cpp expr = Call::make(op->type, op->name, {arg0, arg1}, op->call_type); type 4226 src/Simplify.cpp if (propagate_indeterminate_expression(arg, op->type, &expr)) { type 4232 src/Simplify.cpp expr = FloatImm::make(arg.type(), std::floor(*f)); type 4234 src/Simplify.cpp expr = FloatImm::make(arg.type(), std::ceil(*f)); type 4236 src/Simplify.cpp expr = FloatImm::make(arg.type(), std::nearbyint(*f)); type 4238 src/Simplify.cpp expr = FloatImm::make(arg.type(), (*f < 0 ? std::ceil(*f) : std::floor(*f))); type 4247 src/Simplify.cpp expr = Call::make(op->type, op->name, {arg}, op->call_type); type 4291 src/Simplify.cpp expr = Call::make(op->type, Call::prefetch, args, Call::Intrinsic); type 4345 src/Simplify.cpp Type t = load_indices[0].type().with_lanes(op->indices.size()); type 4356 src/Simplify.cpp t = first_load->type; type 4466 src/Simplify.cpp if (new_vectors[i].type().lanes() == new_vectors[i-1].type().lanes()) { type 4472 src/Simplify.cpp Expr check = mutate(b->value - r->stride * new_vectors[i-1].type().lanes()); type 4485 src/Simplify.cpp if (new_vectors[0].type().is_scalar() && new_vectors[1].type().is_scalar()) { type 4489 src/Simplify.cpp if (!new_vectors[i].type().is_scalar()) { type 4537 src/Simplify.cpp if (slices_a[i].type() != slices_b[i].type()) { type 4563 src/Simplify.cpp Expr new_var = Variable::make(new_value.type(), new_name); type 4625 src/Simplify.cpp new_var = Variable::make(new_value.type(), new_name); type 4629 src/Simplify.cpp new_var = Variable::make(new_value.type(), new_name); type 4631 src/Simplify.cpp } else if (cast && cast->type.bits() > cast->value.type().bits()) { type 4637 src/Simplify.cpp new_var = Variable::make(new_value.type(), new_name); type 4638 src/Simplify.cpp replacement = substitute(new_name, Cast::make(cast->type, new_var), replacement); type 4644 src/Simplify.cpp new_var = Variable::make(new_value.type(), new_name); type 4648 src/Simplify.cpp new_var = Variable::make(var_a ? shuffle->vectors[1].type() : shuffle->vectors[0].type(), new_name); type 4675 src/Simplify.cpp if (new_value.defined() && no_overflow_scalar_int(new_value.type())) { type 4688 src/Simplify.cpp if (no_overflow_scalar_int(value.type())) { type 4834 src/Simplify.cpp Store::make(op->name, value, index, op->param, const_true(value.type().lanes()))); type 4864 src/Simplify.cpp stmt = Allocate::make(op->name, op->type, new_extents, type 4874 src/Simplify.cpp stmt = Allocate::make(op->name, op->type, new_extents, type 4942 src/Simplify.cpp Expr new_var = Variable::make(let_first->value.type(), var_name); type 5010 src/Simplify.cpp internal_assert(e.type().is_bool()) type 6118 src/Simplify.cpp Expr one = cast(e.type(), 1); type 6119 src/Simplify.cpp Expr zero = cast(e.type(), 0); type 6161 src/Simplify.cpp if (!e.type().is_uint()) { type 6427 src/Simplify.cpp Expr value = Load::make(index.type(), "f", index, Buffer<>(), Parameter(), const_true(index.type().lanes())); type 6441 src/Simplify.cpp internal_assert(r1.type() == halide_type_of<uint16_t>()); type 6443 src/Simplify.cpp internal_assert(r2.type() == halide_type_of<uint16_t>()); type 6446 src/Simplify.cpp internal_assert(r3.type() == halide_type_of<int>()); type 6449 src/Simplify.cpp internal_assert(r1.type() == halide_type_of<uint16_t>()); type 6451 src/Simplify.cpp internal_assert(r2.type() == halide_type_of<uint16_t>()); type 6454 src/Simplify.cpp internal_assert(r3.type() == halide_type_of<int>()); type 37 src/SimplifySpecializations.cpp if (e.type().is_bool()) { type 137 src/SimplifySpecializations.cpp if (eq->b.type().is_bool()) { type 168 src/SkipStages.cpp return make_zero(a.type()); type 170 src/SkipStages.cpp return make_one(a.type()); type 275 src/SkipStages.cpp expr = Call::make(op->type, Call::if_then_else, type 282 src/SkipStages.cpp expr = Call::make(op->type, Call::if_then_else, type 85 src/Solve.cpp internal_assert(!e.type().is_uint()) << "Negating unsigned is not legal\n"; type 230 src/Solve.cpp if (op->type.is_uint()) { type 415 src/Solve.cpp expr = mutate(b + T::make(add_a->b, make_zero(op->type))); type 418 src/Solve.cpp expr = mutate(a + T::make(add_b->b, make_zero(op->type))); type 427 src/Solve.cpp expr = mutate(b - T::make(sub_a->b, make_zero(op->type))); type 430 src/Solve.cpp expr = mutate(a - T::make(sub_b->b, make_zero(op->type))); type 587 src/Solve.cpp if (a.type().is_float()) { type 595 src/Solve.cpp expr = mutate(Opp::make(mul_a->a, make_zero(b.type()) - b)); type 599 src/Solve.cpp internal_assert(!b.type().is_uint()) << "Negating unsigned is not legal\n"; type 627 src/Solve.cpp if (a.type().is_float()) { type 633 src/Solve.cpp } else if (a.type().is_int() && a.type().bits() >= 32) { type 639 src/Solve.cpp internal_assert(!a.type().is_uint()) << "Negating unsigned is not legal\n"; type 659 src/Solve.cpp } else if (a_uses_var && b_uses_var && a.type().is_int() && a.type().bits() >= 32) { type 662 src/Solve.cpp expr = mutate(Cmp::make(a - b, make_zero(a.type()))); type 764 src/Solve.cpp internal_assert(op->type.is_bool()); type 841 src/Solve.cpp internal_assert(op->type.is_bool()); type 862 src/Solve.cpp internal_assert(op->type.is_bool()); type 941 src/Solve.cpp Expr b_var = Variable::make(b.type(), b_name); type 942 src/Solve.cpp Expr c_var = Variable::make(c.type(), c_name); type 955 src/Solve.cpp Expr b_var = Variable::make(b.type(), b_name); type 956 src/Solve.cpp Expr c_var = Variable::make(c.type(), c_name); type 995 src/Solve.cpp Expr b_var = Variable::make(b.type(), b_name); type 996 src/Solve.cpp Expr c_var = Variable::make(c.type(), c_name); type 1009 src/Solve.cpp Expr b_var = Variable::make(b.type(), b_name); type 1010 src/Solve.cpp Expr c_var = Variable::make(c.type(), c_name); type 1027 src/Solve.cpp if (op->a.type().is_bool()) { type 1028 src/Solve.cpp internal_assert(op->a.type().is_bool() == op->b.type().is_bool()); type 1040 src/Solve.cpp if (op->a.type().is_bool()) { type 1041 src/Solve.cpp internal_assert(op->a.type().is_bool() == op->b.type().is_bool()); type 1160 src/Solve.cpp if (op->type.is_vector()) { type 1196 src/Solve.cpp if (scope.contains(op->name) && op->type.is_bool()) { type 1215 src/Solve.cpp } else if (op->type.is_vector()) { type 1231 src/Solve.cpp if (op->value.type().is_bool()) { type 1254 src/Solve.cpp min_var = Variable::make(value_bounds.min.type(), min_name); type 1261 src/Solve.cpp max_var = Variable::make(value_bounds.max.type(), max_name); type 122 src/SplitTuples.cpp expr = Call::make(op->type, name, args, op->call_type, f.get_contents()); type 176 src/SplitTuples.cpp val = Variable::make(val.type(), var_name); type 201 src/StmtToHtml.cpp stream << open_span("Type") << op->type << close_span(); type 421 src/StmtToHtml.cpp stream << op->type; type 157 src/StorageFlattening.cpp builder.type = op->types[0]; type 211 src/StorageFlattening.cpp stmt = Store::make(op->name, value, idx, output_buf, const_true(value.type().lanes())); type 219 src/StorageFlattening.cpp expr = Load::make(op->type, op->name, idx, op->image, op->param, type 220 src/StorageFlattening.cpp const_true(op->type.lanes())); type 303 src/StorageFlattening.cpp Type t = upgrade(op->type); type 304 src/StorageFlattening.cpp if (t != op->type) { type 305 src/StorageFlattening.cpp expr = Cast::make(op->type, Load::make(t, op->name, mutate(op->index), type 313 src/StorageFlattening.cpp Type t = upgrade(op->value.type()); type 314 src/StorageFlattening.cpp if (t != op->value.type()) { type 323 src/StorageFlattening.cpp Type t = upgrade(op->type); type 324 src/StorageFlattening.cpp if (t != op->type) { type 69 src/StorageFolding.cpp expr = Call::make(op->type, op->name, args, op->call_type, type 279 src/StorageFolding.cpp if (var->type.is_handle() && type 18 src/Tracing.cpp Type type; type 34 src/Tracing.cpp (int)type.code(), (int)type.bits(), (int)type.lanes(), type 88 src/Tracing.cpp Expr value_var = Variable::make(op->type, value_var_name); type 94 src/Tracing.cpp builder.type = op->type; type 101 src/Tracing.cpp Call::make(op->type, Call::return_second, type 128 src/Tracing.cpp Type t = values[i].type(); type 132 src/Tracing.cpp builder.type = t; type 151 src/Tracing.cpp args[i] = Variable::make(args[i].type(), name); type 81 src/TrimNoOps.cpp if (op->value.type().is_handle() || is_zero(op->predicate)) { type 98 src/TrimNoOps.cpp Expr equivalent_load = Load::make(op->value.type(), op->name, op->index, type 235 src/TrimNoOps.cpp if (!op->type.is_int() || op->type.bits() < 32) { type 252 src/TrimNoOps.cpp if (!op->type.is_int() || op->type.bits() < 32) { type 271 src/TrimNoOps.cpp expr = make_one(op->type); type 273 src/TrimNoOps.cpp expr = make_zero(op->type); type 99 src/Tuple.h typename = typename std::enable_if<Internal::all_are_convertible<Buffer<>, Args...>::value>::type> type 204 src/Type.h halide_c_type_to_name<typename std::remove_cv<T>::type>::name(), type 247 src/Type.h return halide_internal_handle_traits<T, halide_c_type_to_name<typename std::remove_cv<T>::type>::known_type>::type_info(true, halide_handle_cplusplus_type::NotReference); type 254 src/Type.h return halide_internal_handle_traits<T, halide_c_type_to_name<typename std::remove_cv<T>::type>::known_type>::type_info(false, halide_handle_cplusplus_type::LValueReference); type 261 src/Type.h return halide_internal_handle_traits<T, halide_c_type_to_name<typename std::remove_cv<T>::type>::known_type>::type_info(false, halide_handle_cplusplus_type::RValueReference); type 287 src/Type.h halide_type_t type; type 303 src/Type.h Type() : type(Handle, 0, 0), handle_type(nullptr) {} type 311 src/Type.h : type(code, (uint8_t)bits, (uint16_t)lanes), handle_type(handle_type) { type 321 src/Type.h : type(that), handle_type(handle_type) {} type 325 src/Type.h operator halide_type_t() const { return type; } type 328 src/Type.h halide_type_code_t code() const { return (halide_type_code_t)type.code; } type 331 src/Type.h int bits() const { return type.bits; } type 334 src/Type.h int lanes() const { return type.lanes; } type 27 src/UnifyDuplicateLets.cpp expr = Variable::make(e.type(), iter->second); type 42 src/UnifyDuplicateLets.cpp expr = Variable::make(op->type, iter->second); type 86 src/UnifyDuplicateLets.cpp value = Variable::make(value.type(), iter->second); type 96 src/UniquifyVariableNames.cpp expr = Variable::make(op->type, new_name); type 188 src/Util.cpp string make_entity_name(void *stack_ptr, const string &type, char prefix) { type 189 src/Util.cpp string name = Introspection::get_variable_name(stack_ptr, type); type 64 src/Util.h EXPORT std::string make_entity_name(void *stack_ptr, const std::string &type, char prefix); type 278 src/Util.h using type = integer_sequence<T, Ints..., sizeof...(Ints)>; type 283 src/Util.h using type = typename next_integer_sequence< type 284 src/Util.h typename make_integer_sequence_helper<T, I+1, N>::type type 285 src/Util.h >::type; type 290 src/Util.h using type = integer_sequence<T>; type 294 src/Util.h using make_integer_sequence = typename make_integer_sequence_helper<T, 0, N>::type; type 49 src/VaryingAttributes.cpp Expr intrinsic = Call::make(e.type(), Call::glsl_varying, type 87 src/VaryingAttributes.cpp expr = Call::make(op->type, op->name, new_args, op->call_type, type 102 src/VaryingAttributes.cpp mutated_value = Call::make(mutated_value.type(), Call::glsl_varying, type 168 src/VaryingAttributes.cpp if (order && (!op->type.is_float())) { type 176 src/VaryingAttributes.cpp expr = Cast::make(op->type, mutated_value); type 443 src/VaryingAttributes.cpp expr = Variable::make(op->type, name); type 506 src/VaryingAttributes.cpp if ((ends_with(op->name, ".varying")) && (op->type != Float(32))) { type 514 src/VaryingAttributes.cpp expr = Cast::make(op->type, floor(v + 0.5f)); type 536 src/VaryingAttributes.cpp } else if (scope.contains(op->name) && (op->type != scope.get(op->name).type())) { type 540 src/VaryingAttributes.cpp expr = Variable::make(scope.get(op->name).type(), op->name); type 547 src/VaryingAttributes.cpp return Float(e.type().bits(), e.type().lanes()); type 555 src/VaryingAttributes.cpp bool a_float = mutated_a.type().is_float(); type 556 src/VaryingAttributes.cpp bool b_float = mutated_b.type().is_float(); type 592 src/VaryingAttributes.cpp bool t_float = mutated_true_value.type().is_float(); type 593 src/VaryingAttributes.cpp bool f_float = mutated_false_value.type().is_float(); type 613 src/VaryingAttributes.cpp bool base_float = mutated_base.type().is_float(); type 614 src/VaryingAttributes.cpp bool stride_float = mutated_stride.type().is_float(); type 633 src/VaryingAttributes.cpp bool changed = op->value.type().is_float() != mutated_value.type().is_float(); type 650 src/VaryingAttributes.cpp bool changed = op->value.type().is_float() != mutated_value.type().is_float(); type 954 src/VaryingAttributes.cpp Parameter(), const_true(op->args[1].type().lanes())); type 1122 src/VaryingAttributes.cpp return Internal::Call::make(v_.type(), type 38 src/VectorizeLoops.cpp expr = Variable::make(op->type, var + ".lane." + std::to_string(op->indices[0])); type 135 src/VectorizeLoops.cpp Expr last_lane_idx = make_const(r->base.type(), r->lanes-1); type 144 src/VectorizeLoops.cpp return {Variable::make(var->type.element_of(), var->name + ".min_lane"), type 145 src/VectorizeLoops.cpp Variable::make(var->type.element_of(), var->name + ".max_lane")}; type 167 src/VectorizeLoops.cpp for (int i = 1; i < e.type().lanes(); i++) { type 169 src/VectorizeLoops.cpp if (e.type().is_bool()) { type 201 src/VectorizeLoops.cpp expr = Load::make(op->type, op->name, mutate_index(op->name, op->index), type 261 src/VectorizeLoops.cpp if (pred.type().lanes() == new_pred.type().lanes()) { type 270 src/VectorizeLoops.cpp valid = valid && should_predicate_store_load(op->type.bits()); type 277 src/VectorizeLoops.cpp if (!op->index.type().is_scalar()) { type 278 src/VectorizeLoops.cpp internal_assert(op->predicate.type().lanes() == lanes); type 279 src/VectorizeLoops.cpp internal_assert(op->index.type().lanes() == lanes); type 296 src/VectorizeLoops.cpp expr = Load::make(op->type, op->name, index, op->image, op->param, predicate); type 301 src/VectorizeLoops.cpp valid = valid && should_predicate_store_load(op->value.type().bits()); type 308 src/VectorizeLoops.cpp if (!op->index.type().is_scalar()) { type 309 src/VectorizeLoops.cpp internal_assert(op->predicate.type().lanes() == lanes); type 310 src/VectorizeLoops.cpp internal_assert(op->index.type().lanes() == lanes); type 311 src/VectorizeLoops.cpp internal_assert(op->value.type().lanes() == lanes); type 343 src/VectorizeLoops.cpp lanes(vpred.type().lanes()), valid(true), vectorized(false) { type 378 src/VectorizeLoops.cpp if (e.type().lanes() == lanes) { type 380 src/VectorizeLoops.cpp } else if (e.type().lanes() == 1) { type 395 src/VectorizeLoops.cpp Type t = op->type.with_lanes(value.type().lanes()); type 407 src/VectorizeLoops.cpp expr = Variable::make(scope.get(op->name).type(), widened_name); type 419 src/VectorizeLoops.cpp int w = std::max(a.type().lanes(), b.type().lanes()); type 449 src/VectorizeLoops.cpp int lanes = std::max(true_value.type().lanes(), false_value.type().lanes()); type 450 src/VectorizeLoops.cpp lanes = std::max(lanes, condition.type().lanes()); type 465 src/VectorizeLoops.cpp int w = index.type().lanes(); type 467 src/VectorizeLoops.cpp expr = Load::make(op->type.with_lanes(w), op->name, index, op->image, type 485 src/VectorizeLoops.cpp max_lanes = std::max(new_arg.type().lanes(), max_lanes); type 504 src/VectorizeLoops.cpp new_args[i] = Call::make(call->type.element_of(), Call::make_struct, type 511 src/VectorizeLoops.cpp expr = Call::make(op->type, Call::trace, new_args, op->call_type); type 517 src/VectorizeLoops.cpp expr = Call::make(op->type.with_lanes(max_lanes), op->name, new_args, type 528 src/VectorizeLoops.cpp bool was_vectorized = (!op->value.type().is_vector() && type 529 src/VectorizeLoops.cpp mutated_value.type().is_vector()); type 557 src/VectorizeLoops.cpp bool was_vectorized = (!op->value.type().is_vector() && type 558 src/VectorizeLoops.cpp mutated_value.type().is_vector()); type 581 src/VectorizeLoops.cpp Type t = mutated_value.type(); type 629 src/VectorizeLoops.cpp max_lanes = std::max(new_arg.type().lanes(), max_lanes); type 637 src/VectorizeLoops.cpp max_lanes = std::max(new_value.type().lanes(), max_lanes); type 662 src/VectorizeLoops.cpp int lanes = std::max(predicate.type().lanes(), std::max(value.type().lanes(), index.type().lanes())); type 669 src/VectorizeLoops.cpp if (op->condition.type().lanes() > 1) { type 678 src/VectorizeLoops.cpp int lanes = cond.type().lanes(); type 779 src/VectorizeLoops.cpp if (min.type().is_vector()) { type 788 src/VectorizeLoops.cpp if (extent.type().is_vector()) { type 814 src/VectorizeLoops.cpp int lanes = replacement.type().lanes(); type 826 src/VectorizeLoops.cpp if (extent.type().is_vector()) { type 834 src/VectorizeLoops.cpp user_assert(new_expr.type().is_scalar()) type 856 src/VectorizeLoops.cpp stmt = Allocate::make(op->name, op->type, new_extents, op->condition, body, new_expr, op->free_function); type 881 src/VectorizeLoops.cpp int lanes = replacement.type().lanes(); type 889 src/VectorizeLoops.cpp e = substitute(iter.name(), Variable::make(lane.type(), name), e); type 912 src/VectorizeLoops.cpp widening_suffix = ".x" + std::to_string(replacement.type().lanes()); type 22 src/WrapExternStages.cpp internal_assert(call.type() == Int(32)); type 49 src/WrapExternStages.cpp b.type(), b.dimensions()); type 53 src/WrapExternStages.cpp arg.buffer.type(), arg.buffer.dimensions()); type 56 src/WrapExternStages.cpp arg.expr.type(), 0); type 59 src/WrapExternStages.cpp arg.image_param.type(), arg.image_param.dimensions()); type 63 src/WrapExternStages.cpp args.emplace_back(b.name(), Argument::OutputBuffer, b.type(), b.dimensions()); type 73 src/WrapExternStages.cpp Expr new_buffer_var = Variable::make(a.type, a.name + ".buffer"); type 98 src/WrapExternStages.cpp call_args.push_back(Variable::make(a.type, a.name)); type 102 src/WrapExternStages.cpp Expr inner_call = Call::make(op->type, op->name, call_args, op->call_type); type 132 src/WrapExternStages.cpp expr = Call::make(op->type, make_wrapper(op), new_args, Call::Extern, op->func); type 172 src/WrapExternStages.cpp call_args.push_back(Variable::make(arg.type, arg.name)); type 184 src/WrapExternStages.cpp builder.type = arg.type; type 114 src/runtime/HalideBuffer.h static const bool T_is_void = std::is_same<typename std::remove_const<T>::type, void>::value; type 118 src/runtime/HalideBuffer.h using add_const_if_T_is_const = typename std::conditional<std::is_const<T>::value, const T2, T2>::type; type 124 src/runtime/HalideBuffer.h T>::type; type 130 src/runtime/HalideBuffer.h using storage_T = typename std::conditional<std::is_pointer<T>::value, uint64_t, not_void_T>::type; type 141 src/runtime/HalideBuffer.h return halide_type_of<typename std::remove_cv<not_void_T>::type>(); type 312 src/runtime/HalideBuffer.h return halide_type_of<typename std::remove_cv<T2>::type>(); type 412 src/runtime/HalideBuffer.h halide_type_t type() const { type 413 src/runtime/HalideBuffer.h return buf.type; type 425 src/runtime/HalideBuffer.h return (T *)(buf.host + index * type().bytes()); type 437 src/runtime/HalideBuffer.h return (T *)(buf.host + index * type().bytes()); type 447 src/runtime/HalideBuffer.h buf.type = static_halide_type(); type 453 src/runtime/HalideBuffer.h assert(T_is_void || buf.type == static_halide_type()); type 461 src/runtime/HalideBuffer.h buf.type = static_halide_type(); type 481 src/runtime/HalideBuffer.h old_buf.elem_size = buf.type.bytes(); type 501 src/runtime/HalideBuffer.h static_assert(std::is_same<typename std::remove_const<T>::type, type 502 src/runtime/HalideBuffer.h typename std::remove_const<T2>::type>::value || type 506 src/runtime/HalideBuffer.h return other.type() == static_halide_type(); type 628 src/runtime/HalideBuffer.h size_t size = type().bytes(); type 637 src/runtime/HalideBuffer.h assert(size == (size_t)type().bytes() && "Error: Overflow computing total size of buffer."); type 689 src/runtime/HalideBuffer.h typename = typename std::enable_if<AllInts<Args...>::value>::type> type 694 src/runtime/HalideBuffer.h buf.type = t; type 714 src/runtime/HalideBuffer.h buf.type = static_halide_type(); type 725 src/runtime/HalideBuffer.h typename = typename std::enable_if<AllInts<Args...>::value>::type> type 729 src/runtime/HalideBuffer.h buf.type = static_halide_type(); type 745 src/runtime/HalideBuffer.h buf.type = t; type 757 src/runtime/HalideBuffer.h buf.type = static_halide_type(); type 772 src/runtime/HalideBuffer.h buf.type = scalar_type_of_array(vals); type 783 src/runtime/HalideBuffer.h typename = typename std::enable_if<AllInts<Args...>::value>::type> type 788 src/runtime/HalideBuffer.h buf.type = t; type 799 src/runtime/HalideBuffer.h typename = typename std::enable_if<AllInts<Args...>::value>::type> type 801 src/runtime/HalideBuffer.h buf.type = static_halide_type(); type 813 src/runtime/HalideBuffer.h buf.type = static_halide_type(); type 828 src/runtime/HalideBuffer.h buf.type = t; type 842 src/runtime/HalideBuffer.h buf.type = t; type 855 src/runtime/HalideBuffer.h buf.type = halide_type_of<typename std::remove_cv<T>::type>(); type 894 src/runtime/HalideBuffer.h typename = typename std::enable_if<(D2 <= D)>::type> type 905 src/runtime/HalideBuffer.h typename = typename std::enable_if<(D2 <= D)>::type> type 993 src/runtime/HalideBuffer.h if (type().bytes() == 1) { type 998 src/runtime/HalideBuffer.h } else if (type().bytes() == 2) { type 1003 src/runtime/HalideBuffer.h } else if (type().bytes() == 4) { type 1008 src/runtime/HalideBuffer.h } else if (type().bytes() == 8) { type 1039 src/runtime/HalideBuffer.h buf.host += shift * dim(d).stride() * type().bytes(); type 1146 src/runtime/HalideBuffer.h buf.host += shift * dim(d).stride() * type().bytes(); type 1402 src/runtime/HalideBuffer.h return (storage_T *)(this->buf.host) + offset_of(0, args...) * type().bytes(); type 1420 src/runtime/HalideBuffer.h return (storage_T *)this->buf.host + offset_of(pos) * type().bytes(); type 1447 src/runtime/HalideBuffer.h typename = typename std::enable_if<AllInts<Args...>::value>::type> type 1472 src/runtime/HalideBuffer.h typename = typename std::enable_if<AllInts<Args...>::value>::type> type 1709 src/runtime/HalideBuffer.h typename = typename std::enable_if<(d >= 0)>::type> type 1720 src/runtime/HalideBuffer.h typename = typename std::enable_if<(d < 0)>::type> type 1862 src/runtime/HalideBuffer.h typename = typename std::enable_if<!std::is_arithmetic<typename std::decay<Fn>::type>::value>::type> type 333 src/runtime/HalideRuntime.h struct halide_type_t type; type 403 src/runtime/HalideRuntime.h struct halide_type_t type; type 432 src/runtime/HalideRuntime.h return (const char *)value() + type.lanes * type.bytes(); type 1013 src/runtime/HalideRuntime.h struct halide_type_t type; type 1076 src/runtime/HalideRuntime.h return host + index * type.bytes(); type 1088 src/runtime/HalideRuntime.h return host + index * type.bytes(); type 1102 src/runtime/HalideRuntime.h return host + index * type.bytes(); type 1210 src/runtime/HalideRuntime.h struct halide_type_t type; type 23 src/runtime/android_ioctl.h #define _IOC(dir,type,nr,size) (((dir) << _IOC_DIRSHIFT) | ((type) << _IOC_TYPESHIFT) | ((nr) << _IOC_NRSHIFT) | ((size) << _IOC_SIZESHIFT)) type 25 src/runtime/android_ioctl.h #define _IO(type,nr) _IOC(_IOC_NONE,(type),(nr),0) type 26 src/runtime/android_ioctl.h #define _IOR(type,nr,data) _IOC(_IOC_READ,(type),(nr),(sizeof(data))) type 27 src/runtime/android_ioctl.h #define _IOW(type,nr,data) _IOC(_IOC_WRITE,(type),(nr),(sizeof(data))) type 28 src/runtime/android_ioctl.h #define _IOWR(type,nr,data) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(sizeof(data))) type 30 src/runtime/android_ioctl.h #define _IOR_BAD(type,nr,data) _IOC(_IOC_READ,(type),(nr),sizeof(data)) type 31 src/runtime/android_ioctl.h #define _IOW_BAD(type,nr,data) _IOC(_IOC_WRITE,(type),(nr),sizeof(data)) type 32 src/runtime/android_ioctl.h #define _IOWR_BAD(type,nr,data) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),sizeof(data)) type 86 src/runtime/buffer_t.cpp return buf->type.code; type 91 src/runtime/buffer_t.cpp return buf->type.bits; type 96 src/runtime/buffer_t.cpp return buf->type.lanes; type 111 src/runtime/buffer_t.cpp dst->type.code = (halide_type_code_t)type_code; type 112 src/runtime/buffer_t.cpp dst->type.bits = (uint8_t)type_bits; type 113 src/runtime/buffer_t.cpp dst->type.lanes = 1; type 132 src/runtime/buffer_t.cpp dst->type = src->type; type 156 src/runtime/buffer_t.cpp dst->host += offset * src->type.bytes(); type 19 src/runtime/cache.cpp debug(user_context) << buf_name << ": elem_size " << buf.type.bytes() << " dimensions " << buf.dimensions << ", "; type 73 src/runtime/device_buffer_utils.h c.chunk_size = buf->type.bytes(); type 85 src/runtime/device_buffer_utils.h if (buf->type.bits == 0) { type 98 src/runtime/device_buffer_utils.h uint64_t stride_bytes = buf->dim[i].stride * buf->type.bytes(); type 306 src/runtime/hexagon_remote/bin/src/halide_hexagon_remote_skel.c uint8_t type;\ type 306 src/runtime/hexagon_remote/bin/src/halide_hexagon_remote_stub.c uint8_t type;\ type 460 src/runtime/hexagon_remote/bin/src/halide_hexagon_remote_stub.c extern int adsp_pls_add_lookup(uint32_t type, uint32_t key, int size, int (*ctor)(void* ctx, void* data), void* ctx, void (*dtor)(void* ctx), void** ppo); type 462 src/runtime/hexagon_remote/bin/src/halide_hexagon_remote_stub.c extern int HAP_pls_add_lookup(uint32_t type, uint32_t key, int size, int (*ctor)(void* ctx, void* data), void* ctx, void (*dtor)(void* ctx), void** ppo); type 193 src/runtime/hexagon_remote/halide_remote.cpp request.type = HAP_power_set_HVX; type 210 src/runtime/hexagon_remote/halide_remote.cpp request.type = HAP_power_set_HVX; type 233 src/runtime/hexagon_remote/halide_remote.cpp request.type = HAP_power_set_apptype; type 241 src/runtime/hexagon_remote/halide_remote.cpp request.type = HAP_power_set_mips_bw; type 273 src/runtime/hexagon_remote/halide_remote.cpp power_info.type = HAP_power_get_max_mips; type 287 src/runtime/hexagon_remote/halide_remote.cpp power_info.type = HAP_power_get_max_bus_bw; type 168 src/runtime/matlab.cpp INLINE mxArray *create_numeric_matrix(size_t M, size_t N, mxClassID type, mxComplexity complexity) { type 170 src/runtime/matlab.cpp return mxCreateNumericMatrix_730(M, N, type, complexity); type 172 src/runtime/matlab.cpp return mxCreateNumericMatrix_700(M, N, type, complexity); type 200 src/runtime/matlab.cpp desc << get_class_name(get_class_id(arg->type.code, arg->type.bits)); type 268 src/runtime/matlab.cpp mxClassID arg_class_id = get_class_id(arg->type.code, arg->type.bits); type 292 src/runtime/matlab.cpp buf->type = arg->type; type 339 src/runtime/matlab.cpp int32_t type_code = arg->type.code; type 340 src/runtime/matlab.cpp int32_t type_bits = arg->type.bits; type 429 src/runtime/matlab.cpp size_t size_bytes = max(8, (arg_metadata->type.bits + 7) / 8); type 68 src/runtime/mini_opengl.h typedef void (*PFNGLDRAWELEMENTSPROC)(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices ); type 73 src/runtime/mini_opengl.h GLenum format, GLenum type, type 87 src/runtime/mini_opengl.h GLint border, GLenum format, GLenum type, type 93 src/runtime/mini_opengl.h GLenum format, GLenum type, type 98 src/runtime/mini_opengl.h GLenum format, GLenum type, type 131 src/runtime/mini_opengl.h typedef GLuint (*PFNGLCREATESHADERPROC) (GLenum type); type 150 src/runtime/mini_opengl.h typedef void (*PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); type 21 src/runtime/old_buffer_t.cpp case 1: new_buf->type = halide_type_of<uint8_t>(); break; type 22 src/runtime/old_buffer_t.cpp case 2: new_buf->type = halide_type_of<uint16_t>(); break; type 23 src/runtime/old_buffer_t.cpp case 4: new_buf->type = halide_type_of<uint32_t>(); break; type 24 src/runtime/old_buffer_t.cpp case 8: new_buf->type = halide_type_of<uint64_t>(); break; type 39 src/runtime/old_buffer_t.cpp (old_buf->elem_size != new_buf->type.bytes())) { type 43 src/runtime/old_buffer_t.cpp << "for expected type (" << new_buf->type << ")"; type 79 src/runtime/old_buffer_t.cpp old_buf->elem_size = new_buf->type.bytes(); type 156 src/runtime/opengl.cpp Type type; type 358 src/runtime/opengl.cpp WEAK GLuint make_shader(void *user_context, GLenum type, type 362 src/runtime/opengl.cpp debug(user_context) << ((type == GL_VERTEX_SHADER) ? "GL_VERTEX_SHADER" : "GL_FRAGMENT_SHADER") type 370 src/runtime/opengl.cpp GLuint shader = global_state.CreateShader(type); type 420 src/runtime/opengl.cpp Argument::Type type = Argument::Void; type 422 src/runtime/opengl.cpp type = Argument::Float; type 424 src/runtime/opengl.cpp type = Argument::Bool; type 426 src/runtime/opengl.cpp type = Argument::Int8; type 428 src/runtime/opengl.cpp type = Argument::Int16; type 430 src/runtime/opengl.cpp type = Argument::Int32; type 432 src/runtime/opengl.cpp type = Argument::UInt8; type 434 src/runtime/opengl.cpp type = Argument::UInt16; type 436 src/runtime/opengl.cpp type = Argument::UInt32; type 438 src/runtime/opengl.cpp if (type == Argument::Void) { type 445 src/runtime/opengl.cpp arg->type = type; type 575 src/runtime/opengl.cpp #define GLFUNC(type, name) name = NULL; type 805 src/runtime/opengl.cpp GLint *internal_format, GLint *format, GLint *type) { type 806 src/runtime/opengl.cpp if (buf->type == halide_type_of<uint8_t>()) { type 807 src/runtime/opengl.cpp *type = GL_UNSIGNED_BYTE; type 808 src/runtime/opengl.cpp } else if (buf->type == halide_type_of<uint16_t>()) { type 809 src/runtime/opengl.cpp *type = GL_UNSIGNED_SHORT; type 810 src/runtime/opengl.cpp } else if (buf->type == halide_type_of<float>()) { type 811 src/runtime/opengl.cpp *type = GL_FLOAT; type 862 src/runtime/opengl.cpp if (*type == GL_FLOAT) { type 1012 src/runtime/opengl.cpp GLint internal_format, format, type; type 1013 src/runtime/opengl.cpp if (!get_texture_format(user_context, buf, &internal_format, &format, &type)) { type 1025 src/runtime/opengl.cpp global_state.TexImage2D(GL_TEXTURE_2D, 0, internal_format, width, height, 0, format, type, NULL); type 1190 src/runtime/opengl.cpp GLint internal_format, format, type; type 1191 src/runtime/opengl.cpp if (!get_texture_format(user_context, buf, &internal_format, &format, &type)) { type 1209 src/runtime/opengl.cpp global_state.TexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, width, height, format, type, buf->host); type 1217 src/runtime/opengl.cpp size_t texture_size = width * height * buffer_channels * buf->type.bytes(); type 1224 src/runtime/opengl.cpp switch (type) { type 1237 src/runtime/opengl.cpp global_state.TexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, width, height, format, type, tmp.ptr); type 1261 src/runtime/opengl.cpp GLint internal_format, format, type; type 1262 src/runtime/opengl.cpp if (!get_texture_format(user_context, buf, &internal_format, &format, &type)) { type 1309 src/runtime/opengl.cpp if (type != GL_UNSIGNED_BYTE && type != extra_type) { type 1331 src/runtime/opengl.cpp global_state.ReadPixels(0, 0, buf->dim[0].extent, buf->dim[1].extent, format, type, buf->host); type 1345 src/runtime/opengl.cpp size_t texture_size = width * height * texture_channels * buf->type.bytes(); type 1356 src/runtime/opengl.cpp global_state.ReadPixels(0, 0, buf->dim[0].extent, buf->dim[1].extent, format, type, tmp.ptr); type 1371 src/runtime/opengl.cpp switch (type) { type 1472 src/runtime/opengl.cpp switch (kernel_arg->type) { type 1560 src/runtime/opengl.cpp switch (kernel_arg->type) { type 139 src/runtime/openglcompute.cpp << " type: " << buf->type << "\n" type 146 src/runtime/openglcompute.cpp #define GLFUNC(type, name) name = NULL; type 266 src/runtime/openglcompute.cpp << "(type: " << buf->type << ")\n"; type 27 src/runtime/printer.h template<int type, uint64_t length = 1024> type 148 src/runtime/printer.h if (type == ErrorPrinter) { type 150 src/runtime/printer.h } else if (type == BasicPrinter) { type 287 src/runtime/to_string.cpp dst = halide_type_to_string(dst, end, &(buf->type)); type 27 src/runtime/tracing.cpp uint32_t value_bytes = (uint32_t)(e->type.lanes * e->type.bytes()); type 39 src/runtime/tracing.cpp header.type = e->type; type 67 src/runtime/tracing.cpp while (print_bits < e->type.bits) print_bits <<= 1; type 86 src/runtime/tracing.cpp if (e->type.lanes > 1) { type 91 src/runtime/tracing.cpp if ((e->type.lanes > 1) && (i % e->type.lanes) == 0) { type 99 src/runtime/tracing.cpp if (e->type.lanes > 1) { type 106 src/runtime/tracing.cpp if (e->type.lanes > 1) { type 111 src/runtime/tracing.cpp for (int i = 0; i < e->type.lanes; i++) { type 115 src/runtime/tracing.cpp if (e->type.code == 0) { type 125 src/runtime/tracing.cpp } else if (e->type.code == 1) { type 135 src/runtime/tracing.cpp } else if (e->type.code == 2) { type 144 src/runtime/tracing.cpp } else if (e->type.code == 3) { type 148 src/runtime/tracing.cpp if (e->type.lanes > 1) { type 236 src/runtime/tracing.cpp event.type.code = (halide_type_code_t)type_code; type 237 src/runtime/tracing.cpp event.type.bits = (uint8_t)type_bits; type 238 src/runtime/tracing.cpp event.type.lanes = (uint16_t)type_lanes; type 242 src/runtime/tracing.cpp if (event.type.lanes > 1) { type 243 src/runtime/tracing.cpp dimensions *= event.type.lanes; type 126 src/runtime/write_debug_image.cpp int32_t bytes_per_element = buf->type.bytes(); type 22 test/correctness/buffer_t.cpp CHECK(type, 24, 32); type 19 test/correctness/cast.cpp assert((int_expr[i] + int_expr[j]).type() == int_expr[i].type()); type 20 test/correctness/cast.cpp assert((uint_expr[i] + uint_expr[j]).type() == uint_expr[i].type()); type 21 test/correctness/cast.cpp assert((int_expr[i] + uint_expr[j]).type() == int_expr[i].type()); type 22 test/correctness/cast.cpp assert((uint_expr[i] + int_expr[j]).type() == int_expr[i].type()); type 25 test/correctness/cast.cpp assert((int_expr[i] + 1).type() == int_expr[i].type()); type 26 test/correctness/cast.cpp assert((1 + int_expr[i]).type() == int_expr[i].type()); type 27 test/correctness/cast.cpp assert((int_expr[i] + 1.0f).type() == Float(32)); type 28 test/correctness/cast.cpp assert((uint_expr[i] + 1.0f).type() == Float(32)); type 32 test/correctness/cast.cpp assert(a.type() == int_expr[i].type()); type 44 test/correctness/constant_expr.cpp if (e.type() != t) { type 45 test/correctness/constant_expr.cpp std::cerr << "constant of type " << t << " returned expr of type " << e.type() << "\n"; type 14 test/correctness/constant_type.cpp if (f.value().type() != t) { type 15 test/correctness/constant_type.cpp std::cout << "Function was defined with type " << t << " but has type " << f.value().type() << "\n"; type 20 test/correctness/constant_type.cpp if (add_one.type() != t) { type 21 test/correctness/constant_type.cpp std::cout << "Add 1 changed type from " << t << " to " << add_one.type() << "\n"; type 26 test/correctness/constant_type.cpp if (one_add.type() != t) { type 27 test/correctness/constant_type.cpp std::cout << "Pre-add 1 changed type from " << t << " to " << one_add.type() << "\n"; type 17 test/correctness/custom_lowering_pass.cpp if (op->type.is_float() && is_const(op->b)) { type 46 test/correctness/custom_lowering_pass.cpp if (op->type.is_float()) { type 12 test/correctness/extern_output_expansion.cpp assert(in->type == halide_type_of<int>()); type 13 test/correctness/extern_output_expansion.cpp assert(out->type == halide_type_of<int>()); type 44 test/correctness/extern_producer.cpp assert(out->type == halide_type_of<float>()); type 68 test/correctness/extern_producer.cpp assert(out1->host && out1->type == halide_type_of<float>() && out1->dim[0].stride == 1); type 69 test/correctness/extern_producer.cpp assert(out2->host && out2->type == halide_type_of<float>() && out2->dim[0].stride == 1); type 19 test/correctness/extern_sort.cpp memcpy(out->host, in->host, out->dim[0].extent * out->type.bytes()); type 36 test/correctness/extern_stage.cpp assert(in1->type == halide_type_of<uint8_t>()); type 37 test/correctness/extern_stage.cpp assert(in2->type == halide_type_of<int32_t>()); type 38 test/correctness/extern_stage.cpp assert(out->type == halide_type_of<uint8_t>()); type 226 test/correctness/fuzz_simplify.cpp v->second = random_leaf(test.type().element_of(), true); type 229 test/correctness/fuzz_simplify.cpp if (!test_simplification(test, simplified, test.type(), vars)) { type 9 test/correctness/infer_arguments.cpp return (expr.type() == type_of<T>() && type 102 test/correctness/infer_arguments.cpp EXPECT(Type::Float, frac_arg.type.code()); type 103 test/correctness/infer_arguments.cpp EXPECT(Type::Int, height_arg.type.code()); type 104 test/correctness/infer_arguments.cpp EXPECT(Type::UInt, thresh_arg.type.code()); type 105 test/correctness/infer_arguments.cpp EXPECT(Type::Int, width_arg.type.code()); type 106 test/correctness/infer_arguments.cpp EXPECT(Type::UInt, z_unsigned_arg.type.code()); type 108 test/correctness/infer_arguments.cpp EXPECT(32, frac_arg.type.bits()); type 109 test/correctness/infer_arguments.cpp EXPECT(32, height_arg.type.bits()); type 110 test/correctness/infer_arguments.cpp EXPECT(8, thresh_arg.type.bits()); type 111 test/correctness/infer_arguments.cpp EXPECT(32, width_arg.type.bits()); type 112 test/correctness/infer_arguments.cpp EXPECT(64, z_unsigned_arg.type.bits()); type 139 test/correctness/infer_arguments.cpp EXPECT(Type::Float, frac_arg.type.code()); type 140 test/correctness/infer_arguments.cpp EXPECT(Type::UInt, thresh_arg.type.code()); type 142 test/correctness/infer_arguments.cpp EXPECT(32, frac_arg.type.bits()); type 143 test/correctness/infer_arguments.cpp EXPECT(8, thresh_arg.type.bits()); type 6 test/correctness/introspection.cpp void check(const void *var, const std::string &type, type 11 test/correctness/introspection.cpp std::string name = Halide::Internal::Introspection::get_variable_name(var, type); type 38 test/correctness/many_small_extern_stages.cpp size_t sz = out->type.bytes() * out->dim[0].extent * out->dim[1].extent; type 56 test/correctness/math.cpp #define fun_1(type_ret, type, name, c_name) \ type 57 test/correctness/math.cpp void test_##type##_##name(Buffer<type> in) { \ type 59 test/correctness/math.cpp if (!target.supports_type(type_of<type>())) { \ type 81 test/correctness/math.cpp #define fun_2(type_ret, type, name, c_name) \ type 82 test/correctness/math.cpp void test_##type##_##name(Buffer<type> in) { \ type 84 test/correctness/math.cpp if (!target.supports_type(type_of<type>())) { \ type 188 test/correctness/math.cpp #define call_1(type, name, steps, start, end) \ type 190 test/correctness/math.cpp printf("Testing " #name "(" #type ")\n"); \ type 191 test/correctness/math.cpp TestArgs<type> args(steps, start, end); \ type 192 test/correctness/math.cpp test_##type##_##name(args.data); \ type 195 test/correctness/math.cpp #define call_2(type, name, steps, start1, end1, start2, end2) \ type 197 test/correctness/math.cpp printf("Testing " #name "(" #type ")\n"); \ type 198 test/correctness/math.cpp TestArgs<type> args(steps, start1, end1, start2, end2); \ type 199 test/correctness/math.cpp test_##type##_##name(args.data); \ type 12 test/correctness/reschedule.cpp if (ev->type.lanes > 1) { type 112 test/correctness/simd_op_check.cpp Buffer<> b(p.type(), {W*4+H, H}); type 114 test/correctness/simd_op_check.cpp if (p.type().is_float()) { type 115 test/correctness/simd_op_check.cpp r = cast(p.type(), random_float() * 1024 - 512); type 120 test/correctness/simd_op_check.cpp r = cast(p.type(), random_int() / 4); type 19 test/correctness/specialize.cpp if (ev->type.lanes > 1) { type 21 test/correctness/specialize.cpp vector_store_lanes = ev->type.lanes; type 83 test/correctness/tracing.cpp assert(ev->dimensions <= 4 && ev->type.lanes <= 4); type 90 test/correctness/tracing.cpp e.type_code = ev->type.code; type 91 test/correctness/tracing.cpp e.bits = ev->type.bits; type 92 test/correctness/tracing.cpp e.width = ev->type.lanes; type 98 test/correctness/tracing.cpp for (int i = 0; i < ev->type.lanes; i++) { type 8 test/correctness/tracing_broadcast.cpp for (int i = 0; i < e->type.lanes; ++i) { type 608 test/correctness/vector_math.cpp Buffer<typename with_unsigned<A>::type> im22 = f22.realize(W, H); type 612 test/correctness/vector_math.cpp typename with_unsigned<A>::type correct = absd((double)input(x, y), (double)input(x+1, y)); type 9 test/correctness/vectorize_guard_with_if.cpp if (e->type.lanes > 1) { type 29 test/generator/error_codes_aottest.cpp in.type = halide_type_of<int>(); type 34 test/generator/error_codes_aottest.cpp out.type = halide_type_of<int>(); type 76 test/generator/example_generator.cpp output(x, y, c) = cast(output.type(), f(x, y) * c * compiletime_factor * runtime_factor); type 89 test/generator/example_generator.cpp .vectorize(x, natural_vector_size(output.type())); type 38 test/generator/image_from_array_aottest.cpp typename remove_all_extents<Array>::type const * first_of_array(Array (&vals)[N]) { type 94 test/generator/image_from_array_aottest.cpp template<typename Array, typename T = typename remove_all_extents<Array>::type> type 115 test/generator/matlab_aottest.cpp EXPORT mxArray *mxCreateNumericMatrix_730(size_t M, size_t N, mxClassID type, mxComplexity complexity) { type 117 test/generator/matlab_aottest.cpp switch (type) { type 124 test/generator/matlab_aottest.cpp EXPORT mxArray *mxCreateNumericMatrix_700(int M, int N, mxClassID type, mxComplexity complexity) { type 125 test/generator/matlab_aottest.cpp return mxCreateNumericMatrix_730(M, N, type, complexity); type 107 test/generator/metadata_tester_aottest.cpp EXPECT_EQ(e.type.code, a.type.code); type 108 test/generator/metadata_tester_aottest.cpp EXPECT_EQ(e.type.bits, a.type.bits); type 110 test/generator/metadata_tester_aottest.cpp EXPECT_SCALAR_UNION_EQ(e.type.code, e.type.bits, e.def, a.def); type 111 test/generator/metadata_tester_aottest.cpp EXPECT_SCALAR_UNION_EQ(e.type.code, e.type.bits, e.min, a.min); type 112 test/generator/metadata_tester_aottest.cpp EXPECT_SCALAR_UNION_EQ(e.type.code, e.type.bits, e.max, a.max); type 37 test/generator/msan_aottest.cpp if (in->type != out->type) { type 47 test/generator/stubuser_generator.cpp gp.untyped_buffer_output_type = int32_buffer_output.type(); type 119 test/performance/rfactor.cpp double gbits = in.type().bits() * W * H / 1e9; // bits per seconds type 191 test/performance/rfactor.cpp float gbits = input.type().bits() * vec.number_of_elements() / 1e9; // bits per seconds type 260 test/performance/rfactor.cpp float gbits = input0.type().bits() * size * 2 / 1e9; // bits per seconds type 111 test/performance/sort.cpp merge_rows(x, y) = Tuple(0, 0, cast(input.value().type(), 0)); type 68 tutorial/lesson_14_types.cpp assert(Expr(x).type() == Int(32)); type 72 tutorial/lesson_14_types.cpp assert(sin(x).type() == Float(32)); type 75 tutorial/lesson_14_types.cpp assert(cast(UInt(8), x).type() == UInt(8)); type 78 tutorial/lesson_14_types.cpp assert(cast<uint8_t>(x).type() == UInt(8)); type 120 tutorial/lesson_14_types.cpp assert((e + e).type() == e.type()); type 126 tutorial/lesson_14_types.cpp assert((u8 + f32).type() == Float(32)); type 127 tutorial/lesson_14_types.cpp assert((f32 + s64).type() == Float(32)); type 128 tutorial/lesson_14_types.cpp assert((u16 + f64).type() == Float(64)); type 129 tutorial/lesson_14_types.cpp assert((f64 + s32).type() == Float(64)); type 133 tutorial/lesson_14_types.cpp assert((f64 + f32).type() == Float(64)); type 141 tutorial/lesson_14_types.cpp assert((u32 + 3).type() == UInt(32)); type 142 tutorial/lesson_14_types.cpp assert((3 + s16).type() == Int(16)); type 152 tutorial/lesson_14_types.cpp assert((u32 + u8).type() == UInt(32)); type 153 tutorial/lesson_14_types.cpp assert((s16 + s64).type() == Int(64)); type 158 tutorial/lesson_14_types.cpp assert((u8 + s32).type() == Int(32)); type 159 tutorial/lesson_14_types.cpp assert((u32 + s8).type() == Int(32)); type 163 tutorial/lesson_14_types.cpp assert((u32 + s32).type() == Int(32)); type 207 tutorial/lesson_14_types.cpp assert(average(cast<float>(x), 3.0f).type() == Float(32)); type 208 tutorial/lesson_14_types.cpp assert(average(x, 3).type() == Int(32)); type 209 tutorial/lesson_14_types.cpp assert(average(cast<uint8_t>(x), cast<uint8_t>(3)).type() == UInt(8)); type 219 tutorial/lesson_14_types.cpp assert(a.type() == b.type()); type 222 tutorial/lesson_14_types.cpp if (a.type().is_float()) { type 230 tutorial/lesson_14_types.cpp Type narrow = a.type(); type 47 util/HalideTraceViz.cpp switch (type.code) { type 49 util/HalideTraceViz.cpp switch (type.bits) { type 63 util/HalideTraceViz.cpp switch (type.bits) { type 77 util/HalideTraceViz.cpp switch (type.bits) { type 134 util/HalideTraceViz.cpp fprintf(stderr, "Can't visualize packet with type: %d bits: %d\n", type.code, type.bits); type 210 util/HalideTraceViz.cpp loads += p.type.lanes; type 215 util/HalideTraceViz.cpp stores += p.type.lanes; type 219 util/HalideTraceViz.cpp for (int i = 0; i < std::min(16, p.dimensions / p.type.lanes); i++) { type 220 util/HalideTraceViz.cpp for (int lane = 0; lane < p.type.lanes; lane++) { type 221 util/HalideTraceViz.cpp int coord = p.get_coord(i*p.type.lanes + lane); type 232 util/HalideTraceViz.cpp for (int i = 0; i < p.type.lanes; i++) { type 774 util/HalideTraceViz.cpp halide_clock += fi.config.store_cost * p.type.lanes; type 777 util/HalideTraceViz.cpp halide_clock += fi.config.load_cost * p.type.lanes; type 784 util/HalideTraceViz.cpp assert(p.dimensions >= p.type.lanes * fi.config.dims); type 785 util/HalideTraceViz.cpp if (p.dimensions >= p.type.lanes * fi.config.dims) { type 786 util/HalideTraceViz.cpp for (int lane = 0; lane < p.type.lanes; lane++) { type 791 util/HalideTraceViz.cpp int a = p.get_coord(d * p.type.lanes + lane); type 827 util/HalideTraceViz.cpp uint32_t channel = p.get_coord(fi.config.color_dim * p.type.lanes + lane);