@@ -91,11 +91,6 @@ inline void dtype_specialized_elementwise_fn_impl(
91
91
CppTypeToScalarType<CTYPE_COMMON>::value) &&
92
92
...));
93
93
94
- std::array<const CTYPE_COMMON*, kNumInputs > inputs_data_ptrs = {
95
- inputs.first ->template const_data_ptr <CTYPE_COMMON>()...};
96
-
97
- CTYPE_OUT* const data_out = out.mutable_data_ptr <CTYPE_OUT>();
98
-
99
94
#ifdef ET_USE_PYTORCH_HEADERS
100
95
if constexpr (can_use_vectorized<CTYPE_COMMON, Op, Args...>()) {
101
96
const bool any_is_broadcasted =
@@ -109,6 +104,11 @@ inline void dtype_specialized_elementwise_fn_impl(
109
104
out.numel(),
110
105
::executorch::extension::internal::GRAIN_SIZE,
111
106
[&](const auto begin, const auto end) {
107
+ std::array<const CTYPE_COMMON*, kNumInputs > inputs_data_ptrs = {
108
+ inputs.first ->template const_data_ptr <CTYPE_COMMON>()...};
109
+
110
+ CTYPE_OUT* const data_out = out.mutable_data_ptr <CTYPE_OUT>();
111
+
112
112
const auto vectorized_begin =
113
113
begin + (Vec::size () - begin % Vec::size ()) % Vec::size ();
114
114
const auto vectorized_end = end - (end % Vec::size ());
@@ -152,6 +152,11 @@ inline void dtype_specialized_elementwise_fn_impl(
152
152
out.numel(),
153
153
::executorch::extension::internal::GRAIN_SIZE,
154
154
[&](const auto begin, const auto end) {
155
+ std::array<const CTYPE_COMMON*, kNumInputs > inputs_data_ptrs = {
156
+ inputs.first ->template const_data_ptr <CTYPE_COMMON>()...};
157
+
158
+ CTYPE_OUT* const data_out = out.mutable_data_ptr <CTYPE_OUT>();
159
+
155
160
const auto range =
156
161
BroadcastIndexesRange<kNumInputs >(out, (*inputs.first )...);
157
162
auto begin_it = range.begin ();
0 commit comments