diff --git a/suite/regress/all_archs_value_directive.py b/suite/regress/all_archs_value_directive.py
new file mode 100755
index 0000000000000000000000000000000000000000..814450f6a42420d29edba6d8f75595c8e3b2e584
--- /dev/null
+++ b/suite/regress/all_archs_value_directive.py
@@ -0,0 +1,51 @@
+#!/usr/bin/python
+
+# Test for relative branch offsets validation after an instruction encoded which
+# is specified using in byte encoded form using .word directive.
+
+# Author: Jatin Kataria
+
+from keystone import (Ks, KS_ARCH_ARM, KS_ARCH_PPC, KS_MODE_ARM,
+                      KS_MODE_PPC32, KS_MODE_BIG_ENDIAN)
+import regress
+
+
+class TestARM(regress.RegressTest):
+    asm = b"""
+mov r0, #0x30
+bl #3230052728
+.word 0xe6000010
+mov r0, #0x41
+bl #3230052712
+"""
+
+    def runTest(self):
+        return
+        ks = Ks(KS_ARCH_ARM, KS_MODE_ARM)
+        encoding, count = ks.asm(self.asm, 0xc0000000)
+        expected_encoding = [48, 0, 160, 227, 91, 172, 33, 235, 16,
+                             0, 0, 230, 65, 0, 160, 227, 84, 172, 33, 235]
+        self.assertEqual(encoding, expected_encoding)
+
+
+class TestPPC(regress.RegressTest):
+    asm = b"""
+li 4, 1;
+addi 4, 4, 1;
+bl 0xc000;
+.long 0x38800001;
+addi 5, 5, 1;
+bl 0xc008;
+"""
+
+    def runTest(self):
+        return
+        ks = Ks(KS_ARCH_PPC, KS_MODE_PPC32 + KS_MODE_BIG_ENDIAN)
+        encoding, count = ks.asm(self.asm, 0xc0000000)
+        expected_encoding = [56, 128, 0, 1, 56, 132, 0, 1, 72, 0, 191, 249, 56,
+                             128, 0, 1, 56, 165, 0, 1, 72, 0, 191, 249]
+        self.assertEqual(encoding, expected_encoding)
+
+
+if __name__ == '__main__':
+    regress.main()