diff --git a/suite/regress/c-crashers/crash-32-x64-expected-macro-to-be-defined.c b/suite/regress/c-crashers/crash-32-x64-expected-macro-to-be-defined.c
new file mode 100644
index 0000000000000000000000000000000000000000..6ea5075ef8baf7c4c8c585a0cdb48344cfa1ff7b
--- /dev/null
+++ b/suite/regress/c-crashers/crash-32-x64-expected-macro-to-be-defined.c
@@ -0,0 +1,16 @@
+#include <keystone/keystone.h>
+int main(int argc, char **argv) {
+  int ks_arch = KS_ARCH_X86, ks_mode = KS_MODE_64;
+  char *assembly = ".irp x,y=";
+  ks_engine *ks;
+  ks_err err = ks_open(ks_arch, ks_mode, &ks);
+  if (!err) {
+    size_t count, size;
+    unsigned char *insn;
+    if (ks_asm(ks, assembly, 0, &insn, &size, &count))
+      printf("ERROR: failed on ks_asm() with error = %s, code = %u\n", ks_strerror(ks_errno(ks)), ks_errno(ks));
+    ks_free(insn);
+  }
+  ks_close(ks);
+  return 0;
+}
diff --git a/suite/regress/c-crashers/crash-33-x64-attempt-to-compute-fragment-before-its-predecessor.c b/suite/regress/c-crashers/crash-33-x64-attempt-to-compute-fragment-before-its-predecessor.c
new file mode 100644
index 0000000000000000000000000000000000000000..286d8d07bd6897fbe72317c23f2feca737b26d3c
--- /dev/null
+++ b/suite/regress/c-crashers/crash-33-x64-attempt-to-compute-fragment-before-its-predecessor.c
@@ -0,0 +1,16 @@
+#include <keystone/keystone.h>
+int main(int argc, char **argv) {
+  int ks_arch = KS_ARCH_X86, ks_mode = KS_MODE_64;
+  char *assembly = ".=Y;jmp 0;mul qword ptr fs:[";
+  ks_engine *ks;
+  ks_err err = ks_open(ks_arch, ks_mode, &ks);
+  if (!err) {
+    size_t count, size;
+    unsigned char *insn;
+    if (ks_asm(ks, assembly, 0, &insn, &size, &count))
+      printf("ERROR: failed on ks_asm() with error = %s, code = %u\n", ks_strerror(ks_errno(ks)), ks_errno(ks));
+    ks_free(insn);
+  }
+  ks_close(ks);
+  return 0;
+}
diff --git a/suite/regress/c-crashers/crash-34-x64-segfault-in-llvm-mcexpr-evaluteasrelocatableimpl.c b/suite/regress/c-crashers/crash-34-x64-segfault-in-llvm-mcexpr-evaluteasrelocatableimpl.c
new file mode 100644
index 0000000000000000000000000000000000000000..11e6a22856b49e003e1ba13048023d34f155670e
--- /dev/null
+++ b/suite/regress/c-crashers/crash-34-x64-segfault-in-llvm-mcexpr-evaluteasrelocatableimpl.c
@@ -0,0 +1,16 @@
+#include <keystone/keystone.h>
+int main(int argc, char **argv) {
+  int ks_arch = KS_ARCH_X86, ks_mode = KS_MODE_64;
+  char *assembly = "x:.=y;y:";
+  ks_engine *ks;
+  ks_err err = ks_open(ks_arch, ks_mode, &ks);
+  if (!err) {
+    size_t count, size;
+    unsigned char *insn;
+    if (ks_asm(ks, assembly, 0, &insn, &size, &count))
+      printf("ERROR: failed on ks_asm() with error = %s, code = %u\n", ks_strerror(ks_errno(ks)), ks_errno(ks));
+    ks_free(insn);
+  }
+  ks_close(ks);
+  return 0;
+}