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