gnu/gcc/1385e403f29fc65719c022a9e58f01a4876750f5 Match: Support unsigned scalar SAT_MUL form 11
This patch would like to try to match the the unsigned
SAT_MUL form 11, aka below
#define DEF_SAT_U_MUL_FMT_11(NT, WT) \
NT __attribute__((noinline)) \
sat_u_mul_##NT##_from_##WT##_fmt_11 (NT a, NT b) \
{ \
WT x = (WT)a * (WT)b; \
NT max = -1; \
bool overflow_p = x >= (WT)(max); \
return -(NT)(overflow_p) | (NT)x; \
}
while WT is uint128_t, uint64_t, uint32_t and uint16_t, and
NT is uint64_t, uint32_t, uint16_t or uint8_t.
gcc/ChangeLog:
* match-sat-alu.pd: Add pattern for unsigned scalar
SAT_MUL form 11.
Signed-off-by: Pan Li <pan2.li@intel.com>
1 file changed