[mpact][compiler] enable vectorization (SIMD) (#31)

diff --git a/python/mpact/mpactbackend.py b/python/mpact/mpactbackend.py
index bca29f7..379dcfe 100644
--- a/python/mpact/mpactbackend.py
+++ b/python/mpact/mpactbackend.py
@@ -263,9 +263,12 @@
             # TODO: the following pass currently contains no pattern. Will be
             # added as needed.
             "func.func(sparse-encoding-propagation)",
-            # MLIR Sparsifier mini-pipeline.
+            # MLIR Sparsifier mini-pipeline:
+            #   use the PyTorch assembler conventions
+            #   enable vectorization with VL=16 (more or less assumes AVX512 for float)
+            #   allow 32-bit index optimizations (unsafe for very large dimensions)
             "sparse-assembler{direct-out}",
-            "sparsification-and-bufferization",
+            "sparsification-and-bufferization{vl=16 enable-simd-index32}",
             "sparse-storage-specifier-to-llvm",
             # Buffer deallocation pass does not know how to handle realloc.
             "func.func(expand-realloc)",
@@ -297,7 +300,11 @@
             "convert-bufferization-to-memref",
             "finalize-memref-to-llvm",
             "func.func(convert-arith-to-llvm)",
-            "convert-vector-to-llvm",
+            # Vector code (SIMD):
+            #   allow fp reductions to reassociate
+            #   allow 32-bit index optimizations (unsafe for very large dimensions)
+            #   assume we are running on a good ol' Intel X86 (disable for ARM/other)
+            "convert-vector-to-llvm{reassociate-fp-reductions force-32bit-vector-indices enable-x86vector}",
             "convert-func-to-llvm",
             "convert-cf-to-llvm",
             "convert-complex-to-llvm",