diff --git a/gas/testsuite/gas/arc/.Sanitize b/gas/testsuite/gas/arc/.Sanitize
index ae3433690b6..2f693bd4cb7 100644
--- a/gas/testsuite/gas/arc/.Sanitize
+++ b/gas/testsuite/gas/arc/.Sanitize
@@ -35,6 +35,8 @@ j.s
 j.d
 math.s
 math.d
+sshift.s
+sshift.d
 Things-to-lose:
 
 Do-last:
diff --git a/gas/testsuite/gas/arc/sshift.d b/gas/testsuite/gas/arc/sshift.d
new file mode 100644
index 00000000000..76a9ceb878d
--- /dev/null
+++ b/gas/testsuite/gas/arc/sshift.d
@@ -0,0 +1,44 @@
+#objdump: -dr
+#name: @OC@
+
+# Test the @OC@ insn.
+
+.*: +file format elf32-.*arc
+
+Disassembly of section .text:
+00000000 1800@I3+80@00	@OC@ r0,r1
+00000004 1b6e@I3+00@00	@OC@ fp,sp
+00000008 181f@I3+80@00	@OC@ r0,0
+0000000c 183f@I3+81@ff	@OC@ r1,511
+00000010 1fe1@I3+00@00	@OC@ 0,r2
+00000014 1fe1@I3+81@ff	@OC@ 511,r3
+00000018 189f@I3+80@ff	@OC@ r4,255
+0000001c 1fe2@I3+80@ff	@OC@ 255,r5
+00000020 18df@I3+81@00	@OC@ r6,256
+00000024 1fe3@I3+81@00	@OC@ 256,r7
+00000028 191f@I3+00@00	@OC@ r8,256
+00000030 193f@I3+00@00	@OC@ r9,-257
+00000038 1fc5@I3+00@00	@OC@ 511,r10
+00000040 197f@I3+00@00	@OC@ r11,1111638594
+00000048 1fc6@I3+00@00	@OC@ 305419896,r12
+00000050 1fff@I3+00@ff	@OC@ 255,256
+00000058 1fdf@I3+80@ff	@OC@ 256,255
+00000060 181f@I3+00@00	@OC@ r0,0
+		RELOC: 00000064 R_ARC_32 foo
+00000068 1945@I3+80@01	@OC@.eq r10,r11
+0000006c 1986@I3+80@02	@OC@.ne r12,r13
+00000070 19df@I3+00@0b	@OC@.lt r14,0
+00000078 19ff@I3+00@09	@OC@.gt r15,512
+00000080 1800@I3+81@00	@OC@.f r0,r1
+00000084 185e@I3+80@01	@OC@.f r2,1
+00000088 1fa2@I3+00@00	@OC@.f 0,r4
+0000008c 18bf@I3+01@00	@OC@.f r5,512
+00000094 1fc3@I3+01@00	@OC@.f 512,r6
+0000009c 1fdf@I3+01@00	@OC@.f 512,512
+000000a4 1800@I3+81@01	@OC@.eq.f r0,r1
+000000a8 183f@I3+01@02	@OC@.ne.f r1,0
+000000b0 1fc1@I3+01@0b	@OC@.lt.f 0,r2
+000000b8 1fc1@I3+01@09	@OC@.gt.f 1,r2
+000000c0 181f@I3+01@0c	@OC@.le.f r0,512
+000000c8 1fc1@I3+01@0a	@OC@.ge.f 512,r2
+000000d0 1fdf@I3+01@04	@OC@.n.f 512,512
diff --git a/gas/testsuite/gas/arc/sshift.s b/gas/testsuite/gas/arc/sshift.s
new file mode 100644
index 00000000000..e2fa661fa5c
--- /dev/null
+++ b/gas/testsuite/gas/arc/sshift.s
@@ -0,0 +1,52 @@
+# Single shift @OC@ test
+
+# reg,reg
+	@OC@ r0,r1
+	@OC@ fp,sp
+
+# shimm values
+	@OC@ r0,0
+	@OC@ r1,-1
+	@OC@ 0,r2
+	@OC@ -1,r3
+	@OC@ r4,255
+	@OC@ 255,r5
+	@OC@ r6,-256
+	@OC@ -256,r7
+
+# limm values
+	@OC@ r8,256
+	@OC@ r9,-257
+	@OC@ 511,r10
+	@OC@ r11,0x42424242
+	@OC@ 0x12345678,r12
+
+# shimm and limm
+	@OC@ 255,256
+	@OC@ 256,255
+
+# symbols
+	@OC@ r0,foo
+
+# conditional execution
+	@OC@.eq r10,r11
+	@OC@.ne r12,r13
+	@OC@.lt r14,0
+	@OC@.gt r15,512
+
+# flag setting
+	@OC@.f r0,r1
+	@OC@.f r2,1
+	@OC@.f 0,r4
+	@OC@.f r5,512
+	@OC@.f 512,r6
+	@OC@.f 512,512
+
+# conditional execution + flag setting
+	@OC@.eq.f r0,r1
+	@OC@.ne.f r1,0
+	@OC@.lt.f 0,r2
+	@OC@.gt.f 1,r2
+	@OC@.le.f r0,512
+	@OC@.ge.f 512,r2
+	@OC@.n.f 512,512