[PATCH] Fix the failure exposed by checking constant integer argument range

Tim Northover t.p.northover at gmail.com
Tue Nov 26 06:56:47 PST 2013


Hi Jiangning,

With so many test changes, it's a little difficult to see exactly what
defect this is trying to fix. Can you give a simple example of code
that breaks currently? Or is suboptimal?

> The LowerVECTOR_SHUFFLE is to cover the following two cases,
> 1) the 1st operand of VDUPlane is EXTRACT_SUBVECTOR

OK, I see why this one is useful: if the extract index is non-zero
then instead of "INS, OP" we can fold the INS or whatever into the
main operation.

> 2) the 1st operand of VDUPlane is CONCAT_VECTORS, for which the 2nd operand
> is UNDEF.

This one is more puzzling to me. I'd expect the version with the
CONCAT to be more useful. Instructions accepting a NEON_VDUPLANE want
an Rm with 128-bits don't they? If no such instruction exists to make
use of it then there should be a pattern converting (CONCAT x,
(IMPLICIT_DEF)) into a simple SUBREG_TO_REG as a last ditch effort.

Could you take me through an example this elision improves?

Cheers.

Tim.



More information about the cfe-commits mailing list