Added test which fails for this case
diff --git a/verible/verilog/formatting/formatter_test.cc b/verible/verilog/formatting/formatter_test.cc
index ba51802..b3915f1 100644
--- a/verible/verilog/formatting/formatter_test.cc
+++ b/verible/verilog/formatting/formatter_test.cc
@@ -601,6 +601,52 @@
     {"`timescale  1ns/1ps\n",  //
      "`timescale 1ns / 1ps\n"},
 
+    // Multiple compiler directives should remain on separate lines
+    // (regression test for bug where they were merged onto one line)
+    {"`timescale 1 ps / 1 ps\n"
+     "`default_nettype none\n",
+     "`timescale 1 ps / 1 ps\n"
+     "`default_nettype none\n"},
+    {"`resetall\n"
+     "`timescale 1ns/1ps\n"
+     "`default_nettype wire\n",
+     "`resetall\n"
+     "`timescale 1ns / 1ps\n"
+     "`default_nettype wire\n"},
+    // Test with multiple different compiler directives
+    {"`resetall\n"
+     "`celldefine\n"
+     "`timescale 1ns/1ps\n"
+     "`default_nettype none\n",
+     "`resetall\n"
+     "`celldefine\n"
+     "`timescale 1ns / 1ps\n"
+     "`default_nettype none\n"},
+    // Test with compiler directives before module
+    {"`timescale 1ps/1ps\n"
+     "`default_nettype none\n"
+     "module foo;endmodule\n",
+     "`timescale 1ps / 1ps\n"
+     "`default_nettype none\n"
+     "module foo;\nendmodule\n"},
+    // Test with various compiler directives
+    {"`suppress_faults\n"
+     "`enable_portfaults\n"
+     "`delay_mode_distributed\n",
+     "`suppress_faults\n"
+     "`enable_portfaults\n"
+     "`delay_mode_distributed\n"},
+    {"`default_decay_time 10\n"
+     "`default_trireg_strength 50\n",
+     "`default_decay_time 10\n"
+     "`default_trireg_strength 50\n"},
+    {"`begin_keywords \"1800-2017\"\n"
+     "module test;endmodule\n"
+     "`end_keywords\n",
+     "`begin_keywords \"1800-2017\"\n"
+     "module test;\nendmodule\n"
+     "`end_keywords\n"},
+
     // parameter test cases
     {
         "  parameter  int   foo=0 ;",