R600: Add target nodes for BFM and BFI
R600: Don't viewCFG() under DEBUG() except on failure.

Having these popping up every time you use -debug is really
irritating.
R600/SI: Check if a sextload should be used for parameter loads.

Through some oddity where truncate (sextload x) isn't folded into
an anyextload for vectors, the sextload remains if the
vector isn't immediately scalarized. This keeps the expected
zextload instructions in the kernel-args test when small type
vectors aren't scalarized.'
Change shouldSplitVectorElementType to better match the description.

Pass the entire vector type, and not just the element.
R600/SI: Only split i1 vectors.

The others we can more usefully pack stores.

Includes some quick fixes for some test failures this introduces,
which will be more properly fixed later.

Disables verify-machineinstrs on the kernel-args test
because it now introduces a private load and store of the v3i16
argument, which seems to cause an incorrect verification error.
Fix assertion with a trunc store to an i1 vector.

The getZeroExtendInReg complains because the type is not a scalar.
This only half fixes the problem I ran into, since it ends up creating
an illegal vector operation, but I don't need this anymore.
Allow folding of [s|z]ext of an anyextload when the LoadExtAction is
custom.

This removes redundant instructions to extend loads after custom
lowering an extload of an illegal type.
Update mips test for checking for custom zextload.

The check for the instruction seemed to be a mistake,
and was really a left shift by 32, I guess to zero extend the load.
With this, the zero extend is now done by the load.
Fold vector sext load into a sextload if it is custom.

This fixes doing a custom zextload plus a sign extension.

In this case, removes extra BFEs with v2i64 (sext (load v2i8)).
Check for custom lowering when legalizing vector loads
Don't scalarize loads of small type vectors.

For i8 and i16 vectors, use the largest legal load
possible, and unpack the vector using BFE.
Only fold sext (load x) to sext (truncate (sextload x)) if
the sextload is custom to fix failing ARM tests.
R600/SI: Don't split small vectors for local loads if we are combining
them.
R600: Update kernel-args test for packed vector loads.
R600: Update evergreen extload test for using BFE.
XXX - Check for custom lowering when expanding loads.
R600: Use BFI to pack vectors for truncating stores.
R600: Expand i1 vector loads and stores.

I'm not exactly sure what they're supposed to do,
but these seem to be generally broken.
R600: Make sure extloads of large number of element
small types works.
R600: Generalize pack / unpack small vectors.

Make it work better for other vector types
that will span multiple i32 components.