[llvm-commits] CVS: llvm-test/SingleSource/UnitTests/Vector/sumarray-dbl.c helpers.h

Chris Lattner lattner at cs.uiuc.edu
Thu Mar 30 18:11:58 PST 2006



Changes in directory llvm-test/SingleSource/UnitTests/Vector:

sumarray-dbl.c added (r1.1)
helpers.h updated: 1.3 -> 1.4
---
Log message:

new testcase, which requires expansion of cross-block values.


---
Diffs of the changes:  (+36 -0)

 helpers.h      |   14 ++++++++++++++
 sumarray-dbl.c |   22 ++++++++++++++++++++++
 2 files changed, 36 insertions(+)


Index: llvm-test/SingleSource/UnitTests/Vector/sumarray-dbl.c
diff -c /dev/null llvm-test/SingleSource/UnitTests/Vector/sumarray-dbl.c:1.1
*** /dev/null	Thu Mar 30 20:11:56 2006
--- llvm-test/SingleSource/UnitTests/Vector/sumarray-dbl.c	Thu Mar 30 20:11:46 2006
***************
*** 0 ****
--- 1,22 ----
+ #include "helpers.h"
+ 
+ union Array {
+   v8sd  Vectors[100];
+   double Floats[800];
+ };
+ 
+ union Array TheArray;
+ 
+ void main() {
+   int i;
+   v8sd sum = { 0, 0, 0, 0, 0, 0, 0, 0};
+   D8V sumV;
+   for (i = 0; i < 800; ++i)
+     TheArray.Floats[i] = i*12.345;
+ 
+   for (i = 0; i < 100; ++i)
+     sum += TheArray.Vectors[i];
+ 
+   sumV.V = sum;
+   printD8V(&sumV);
+ }


Index: llvm-test/SingleSource/UnitTests/Vector/helpers.h
diff -u llvm-test/SingleSource/UnitTests/Vector/helpers.h:1.3 llvm-test/SingleSource/UnitTests/Vector/helpers.h:1.4
--- llvm-test/SingleSource/UnitTests/Vector/helpers.h:1.3	Thu Mar 23 19:18:59 2006
+++ llvm-test/SingleSource/UnitTests/Vector/helpers.h	Thu Mar 30 20:11:46 2006
@@ -3,6 +3,10 @@
 typedef float  v4sf __attribute__ ((__vector_size__ (16)));
 typedef double v2sd __attribute__ ((__vector_size__ (16)));
 
+// These require legalization.
+typedef float  v8sf __attribute__ ((__vector_size__ (32)));
+typedef double v8sd __attribute__ ((__vector_size__ (64)));
+
 typedef union {
   v4sf V;
   float A[4];
@@ -13,6 +17,11 @@
   double A[2];
 } DV;
 
+typedef union {
+  v8sd V;
+  double A[8];
+} D8V;
+
 static void printFV(FV *F) {
 	printf("%f %f %f %f\n", F->A[0], F->A[1], F->A[2], F->A[3]);
 }
@@ -20,3 +29,8 @@
 static void printDV(DV *D) {
 	printf("%g %g\n", D->A[0], D->A[1]);
 }
+
+static void printD8V(D8V *D) {
+	printf("%g %g %g %g %g %g %g %g\n", D->A[0], D->A[1], D->A[2], D->A[3],
+                                            D->A[4], D->A[5], D->A[6], D->A[7]);
+}






More information about the llvm-commits mailing list