Blob Blame History Raw
--- src/src/wrapper.c.orig	2013-09-18 02:06:55.000000000 -0600
+++ src/src/wrapper.c	2019-02-06 12:38:46.480652890 -0700
@@ -249,6 +249,7 @@ void enumeration_wrapper(LUT_t LUT, int
     if (verbose) printf("fes: Using SIMD code (sse2 instructions available)\n");
     if (T == 2){
       switch (d) {
+#if defined(HAVE_SSE2) && defined(HAVE_64_BITS)
       case 2: exhaustive_sse2_deg_2_T_2_el_0(LUT, n, F, callback, callback_state, verbose); break;
       case 3: exhaustive_sse2_deg_3_T_2_el_0(LUT, n, F, callback, callback_state, verbose); break;
       case 4: exhaustive_sse2_deg_4_T_2_el_0(LUT, n, F, callback, callback_state, verbose); break;
@@ -257,12 +258,14 @@ void enumeration_wrapper(LUT_t LUT, int
       case 7: exhaustive_sse2_deg_7_T_2_el_0(LUT, n, F, callback, callback_state, verbose); break;
       case 8: exhaustive_sse2_deg_8_T_2_el_0(LUT, n, F, callback, callback_state, verbose); break;
       case 9: exhaustive_sse2_deg_9_T_2_el_0(LUT, n, F, callback, callback_state, verbose); break;
+#endif
       default:
 	assert(0);
       }
     }
     else if (T == 3){
       switch (d) {
+#if defined(HAVE_SSE2) && defined(HAVE_64_BITS)
       case 2: exhaustive_sse2_deg_2_T_3_el_0(LUT, n, F, callback, callback_state, verbose); break;
       case 3: exhaustive_sse2_deg_3_T_3_el_0(LUT, n, F, callback, callback_state, verbose); break;
       case 4: exhaustive_sse2_deg_4_T_3_el_0(LUT, n, F, callback, callback_state, verbose); break;
@@ -271,12 +274,14 @@ void enumeration_wrapper(LUT_t LUT, int
       case 7: exhaustive_sse2_deg_7_T_3_el_0(LUT, n, F, callback, callback_state, verbose); break;
       case 8: exhaustive_sse2_deg_8_T_3_el_0(LUT, n, F, callback, callback_state, verbose); break;
       case 9: exhaustive_sse2_deg_9_T_3_el_0(LUT, n, F, callback, callback_state, verbose); break;
+#endif
       default:
 	assert(0);
       }
     }
     else if (T == 4){
       switch (d) {
+#if defined(HAVE_SSE2) && defined(HAVE_64_BITS)
       case 2: exhaustive_sse2_deg_2_T_4_el_0(LUT, n, F, callback, callback_state, verbose); break;
       case 3: exhaustive_sse2_deg_3_T_4_el_0(LUT, n, F, callback, callback_state, verbose); break;
       case 4: exhaustive_sse2_deg_4_T_4_el_0(LUT, n, F, callback, callback_state, verbose); break;
@@ -285,6 +290,7 @@ void enumeration_wrapper(LUT_t LUT, int
       case 7: exhaustive_sse2_deg_7_T_4_el_0(LUT, n, F, callback, callback_state, verbose); break;
       case 8: exhaustive_sse2_deg_8_T_4_el_0(LUT, n, F, callback, callback_state, verbose); break;
       case 9: exhaustive_sse2_deg_9_T_4_el_0(LUT, n, F, callback, callback_state, verbose); break;
+#endif
       default:
 	assert(0);
       }
--- src/test/simd.c.orig	2013-09-18 02:06:55.000000000 -0600
+++ src/test/simd.c	2019-02-06 14:18:36.051463809 -0700
@@ -31,7 +31,9 @@ int main(int argc, char **argv) {
   int degree = 2;
   int verbose = 0;
   unsigned long random_seed = 1;
+#if defined(HAVE_SSE2) && defined(HAVE_64_BITS)
   int T = 2;
+#endif
 
   if (argc > 1) {
     n = atoi(argv[1]);
@@ -41,7 +43,9 @@ int main(int argc, char **argv) {
   }
 
   if (argc > 5) { random_seed = atoi(argv[5]);}
+#if defined(HAVE_SSE2) && defined(HAVE_64_BITS)
   if (argc > 6) T = atoi(argv[6]);
+#endif
 
   if (n > 64 || n_eqs > 32) {
     printf("This hack can only handle up to 64 vars and 32 equations\n");
@@ -67,6 +71,7 @@ int main(int argc, char **argv) {
   uint64_t start = rdtsc();
   
   switch (degree) {
+#if defined(HAVE_SSE2) && defined(HAVE_64_BITS)
   case 2: 
     switch (T) {
     case 2: exhaustive_sse2_deg_2_T_2_el_0(LUT, n, F, &report_solution, NULL, verbose);  break;
@@ -115,6 +120,24 @@ int main(int argc, char **argv) {
     case 3: exhaustive_sse2_deg_9_T_3_el_0(LUT, n, F, &report_solution, NULL, verbose);  break;
     case 4: exhaustive_sse2_deg_9_T_4_el_0(LUT, n, F, &report_solution, NULL, verbose);  break;
     } break;
+#else
+  case 2: 
+    exhaustive_ia32_deg_2(LUT, n, F, &report_solution, NULL, verbose); break;
+  case 3 :
+    exhaustive_ia32_deg_3(LUT, n, F, &report_solution, NULL, verbose); break;
+  case 4 :
+    exhaustive_ia32_deg_4(LUT, n, F, &report_solution, NULL, verbose); break;
+  case 5 :
+    exhaustive_ia32_deg_5(LUT, n, F, &report_solution, NULL, verbose); break;
+  case 6 :
+    exhaustive_ia32_deg_6(LUT, n, F, &report_solution, NULL, verbose); break;
+  case 7 :
+    exhaustive_ia32_deg_7(LUT, n, F, &report_solution, NULL, verbose); break;
+  case 8 :
+    exhaustive_ia32_deg_8(LUT, n, F, &report_solution, NULL, verbose); break;
+  case 9 :
+    exhaustive_ia32_deg_9(LUT, n, F, &report_solution, NULL, verbose); break;
+#endif
   default:
     printf("enumeration in degree %d is not yet implemented\n", degree);
     exit(0);
--- src/test/simd_el.c.orig	2013-09-18 02:06:55.000000000 -0600
+++ src/test/simd_el.c	2019-02-06 13:33:28.242736845 -0700
@@ -25,6 +25,7 @@ typedef void (*enumeration_t)(LUT_t, int
 
 
 enumeration_t solvers[32] = {
+#if defined(HAVE_SSE2) && defined(HAVE_64_BITS)
   exhaustive_sse2_deg_2_el_0, 
   exhaustive_sse2_deg_2_el_1, 
   exhaustive_sse2_deg_2_el_2, 
@@ -56,7 +57,42 @@ enumeration_t solvers[32] = {
   exhaustive_sse2_deg_2_el_28,
   exhaustive_sse2_deg_2_el_29,
   exhaustive_sse2_deg_2_el_30,
-  exhaustive_sse2_deg_2_el_31};
+  exhaustive_sse2_deg_2_el_31
+#else
+  exhaustive_ia32_deg_2_el_0, 
+  exhaustive_ia32_deg_2_el_1, 
+  exhaustive_ia32_deg_2_el_2, 
+  exhaustive_ia32_deg_2_el_3,
+  exhaustive_ia32_deg_2_el_4,
+  exhaustive_ia32_deg_2_el_5,
+  exhaustive_ia32_deg_2_el_6,
+  exhaustive_ia32_deg_2_el_7,
+  exhaustive_ia32_deg_2_el_8,
+  exhaustive_ia32_deg_2_el_9,
+  exhaustive_ia32_deg_2_el_10,
+  exhaustive_ia32_deg_2_el_11,
+  exhaustive_ia32_deg_2_el_12,
+  exhaustive_ia32_deg_2_el_13,
+  exhaustive_ia32_deg_2_el_14,
+  exhaustive_ia32_deg_2_el_15,
+  exhaustive_ia32_deg_2_el_16,
+  exhaustive_ia32_deg_2_el_17,
+  exhaustive_ia32_deg_2_el_18,
+  exhaustive_ia32_deg_2_el_19,
+  exhaustive_ia32_deg_2_el_20,
+  exhaustive_ia32_deg_2_el_21,
+  exhaustive_ia32_deg_2_el_22,
+  exhaustive_ia32_deg_2_el_23,
+  exhaustive_ia32_deg_2_el_24,
+  exhaustive_ia32_deg_2_el_25,
+  exhaustive_ia32_deg_2_el_26,
+  exhaustive_ia32_deg_2_el_27,
+  exhaustive_ia32_deg_2_el_28,
+  exhaustive_ia32_deg_2_el_29,
+  exhaustive_ia32_deg_2_el_30,
+  exhaustive_ia32_deg_2_el_31
+#endif
+};
 
 
 int  report_solution(void *state, uint64_t i) {