template <typename T, typename U> \
struct Checked##NAME##Op< \
typename
std::enable_if<std::is_floating_point<T>::value || \
std::is_floating_point<U>::value>
::type> { \
using result_type = typename MaxExponentPromotion<T, U>::type; \
template <typename V> \
using Promotion = typename MaxExponentPromotion<T, U>::type; \
Promotion presult =
x OP
y; \
*
result =
static_cast<V>(presult); \
return IsValueInRangeForNumericType<V>(presult); \
} \
};
T __attribute__((ext_vector_type(N))) V
434 { \
435 using result_type = typename MaxExponentPromotion<T, U>::type; \
436 template <typename V> \
437 static constexpr bool Do(
T x, U
y,
V*
result) { \
438 using Promotion = typename MaxExponentPromotion<T, U>::type; \
439 Promotion presult =
x OP y; \
440 *
result =
static_cast<V>(presult); \
441 return IsValueInRangeForNumericType<V>(presult); \
442 } \
443 };