On Tue, 16 Apr 2019, Jakub Jelinek wrote:
> On Tue, Apr 16, 2019 at 06:21:25PM +0200, Eric Botcazou wrote:
> > > The runtime check assures that at runtime, the upper 32 bits of pseudo 104
> > > must be always 0 (in this case, in some other case could be sign bit
> > > copies).
> >
> > OK, as
On Tue, Apr 16, 2019 at 06:21:25PM +0200, Eric Botcazou wrote:
> > The runtime check assures that at runtime, the upper 32 bits of pseudo 104
> > must be always 0 (in this case, in some other case could be sign bit
> > copies).
>
> OK, as Richard pointed out, that's not sufficient if we allow...
> The runtime check assures that at runtime, the upper 32 bits of pseudo 104
> must be always 0 (in this case, in some other case could be sign bit
> copies).
OK, as Richard pointed out, that's not sufficient if we allow...
> The question is if it would be valid say for forward propagation to
On Tue, Apr 16, 2019 at 12:20:16PM +0200, Eric Botcazou wrote:
> > If I remember correctly and read the cfgexpand.c comment
> >
> > /* For a promoted variable, X will not be used directly but wrapped in a
> > SUBREG with SUBREG_PROMOTED_VAR_P set, which means that the RTL land
> >
> If I remember correctly and read the cfgexpand.c comment
>
> /* For a promoted variable, X will not be used directly but wrapped in a
> SUBREG with SUBREG_PROMOTED_VAR_P set, which means that the RTL land
> will assume that its upper bits can be inferred from its lower bits.
>
On Tue, 16 Apr 2019, Jakub Jelinek wrote:
> Hi!
>
> In expand_mul_overflow, we emit (depending on operand ranges etc.) more than
> one multiplication to optimize for the common case. One of those is where
> we are guaranteed that both operands are either sign or zero extended from
> half
Hi!
In expand_mul_overflow, we emit (depending on operand ranges etc.) more than
one multiplication to optimize for the common case. One of those is where
we are guaranteed that both operands are either sign or zero extended from
half precision types to the full precision, we can then use much