Match: Support unsigned scalar SAT_MUL form 14

This patch would like to try to match the the unsigned
SAT_MUL form 14, aka below

  #define DEF_SAT_U_MUL_FMT_14(NT, WT)             \
  NT __attribute__((noinline))                     \
  sat_u_mul_##NT##_from_##WT##_fmt_14 (NT a, NT b) \
  {                                                \
    WT x = (WT)a * (WT)b;                          \
    NT hi = x >> (sizeof(NT) * 8);                 \
    NT lo = (NT)x;                                 \
    return hi == 0 ? lo : -1;                      \
  }

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 14.

Signed-off-by: Pan Li <pan2.li@intel.com>
1 file changed