Forward progress: crtbegin.c now compiles successfully!

Fixed CellSPU's A-form (local store) address mode, so that all globals,
externals, constant pool and jump table symbols are now wrapped within
a SPUISD::AFormAddr pseudo-instruction. This now identifies all local
store memory addresses, although it requires a bit of legerdemain during
instruction selection to properly select loads to and stores from local
store, properly generating "LQA" instructions.

Also added mul_ops.ll test harness for exercising integer multiplication.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46142 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/CodeGen/CellSPU/struct_1.ll b/test/CodeGen/CellSPU/struct_1.ll
index a28520c..b0286d1 100644
--- a/test/CodeGen/CellSPU/struct_1.ll
+++ b/test/CodeGen/CellSPU/struct_1.ll
@@ -16,9 +16,10 @@
 ; RUN: grep rotqbyi %t2.s | count 5 &&
 ; RUN: grep xshw    %t2.s | count 1 &&
 ; RUN: grep andi    %t2.s | count 4 &&
-; RUN: grep cbd     %t2.s | count 3 &&
-; RUN: grep chd     %t2.s | count 1 &&
-; RUN: grep cwd     %t2.s | count 3 &&
+; RUN: grep cbx     %t2.s | count 3 &&
+; RUN: grep chx     %t2.s | count 1 &&
+; RUN: grep cwx     %t2.s | count 1 &&
+; RUN: grep cwd     %t2.s | count 2 &&
 ; RUN: grep shufb   %t2.s | count 7 &&
 ; RUN: grep stqx    %t2.s | count 7