1 /* PR tree-optimization/95853 */
2 /* { dg-do compile } */
3 /* { dg-options "-O2 -fdump-tree-widening_mul" } */
7 typedef unsigned long long T
;
9 typedef unsigned long long W
;
10 typedef unsigned int T
;
13 struct S
{ int p
; T r
; };
19 return (struct S
) { z
> ~(T
) 0, (T
) z
};
26 return (struct S
) { z
> ~(T
) 0, (T
) z
};
30 baz (T x
, unsigned short y
)
33 return (struct S
) { z
> ~(T
) 0, (T
) z
};
37 qux (unsigned short x
, T y
)
40 return (struct S
) { z
> ~(T
) 0, (T
) z
};
48 return (struct S
) { z
> ~(T
) 0, w
};
56 return (struct S
) { z
> ~(T
) 0, w
};
59 /* { dg-final { scan-tree-dump-times "ADD_OVERFLOW" 6 "widening_mul" { target { i?86-*-* x86_64-*-* } } } } */