--- /dev/null
+// RUN: not llvm-mc -arch=amdgcn -mcpu=verde -show-encoding %s 2>&1 | FileCheck -check-prefix=SI %s
+// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s 2>&1 | FileCheck -check-prefix=VI %s
+// RUN: llvm-mc -arch=amdgcn -mcpu=gfx1010 -show-encoding %s | FileCheck -check-prefix=GFX10 %s
+
+exp prim v1, off, off, off
+// SI: :5: error: invalid operand for instruction
+// VI: :5: error: invalid operand for instruction
+// GFX10: exp prim v1, off, off, off ; encoding: [0x41,0x01,0x00,0xf8,0x01,0x00,0x00,0x00]
+
+exp prim v2, v3, off, off
+// SI: :5: error: invalid operand for instruction
+// VI: :5: error: invalid operand for instruction
+// GFX10: exp prim v2, v3, off, off ; encoding: [0x43,0x01,0x00,0xf8,0x02,0x03,0x00,0x00]
+
+exp pos4 v4, v3, v2, v1
+// SI: error: invalid exp target
+// VI: error: invalid exp target
+// GFX10: exp pos4 v4, v3, v2, v1 ; encoding: [0x0f,0x01,0x00,0xf8,0x04,0x03,0x02,0x01]
--- /dev/null
+# RUN: llvm-mc -arch=amdgcn -mcpu=gfx1010 -disassemble -show-encoding < %s | FileCheck %s -check-prefix=GXF10
+
+# GXF10: exp mrt0 v1, v2, v3, v4 ; encoding: [0x0f,0x00,0x00,0xf8,0x01,0x02,0x03,0x04]
+0x0f,0x00,0x00,0xf8,0x01,0x02,0x03,0x04
+
+# GXF10: exp mrt0 v1, v2, v3, v4 vm ; encoding: [0x0f,0x10,0x00,0xf8,0x01,0x02,0x03,0x04]
+0x0f,0x10,0x00,0xf8,0x01,0x02,0x03,0x04
+
+# GXF10: exp mrt0 v1, v1, v3, v3 compr ; encoding: [0x0f,0x04,0x00,0xf8,0x01,0x03,0x00,0x00]
+0x0f,0x04,0x00,0xf8,0x01,0x03,0x00,0x00
+
+# GXF10: exp mrt0 v1, v2, v3, v4 done ; encoding: [0x0f,0x08,0x00,0xf8,0x01,0x02,0x03,0x04]
+0x0f,0x08,0x00,0xf8,0x01,0x02,0x03,0x04
+
+# GXF10: exp mrt0 v2, v2, v4, v4 done compr vm ; encoding: [0x0f,0x1c,0x00,0xf8,0x02,0x04,0x00,0x00]
+0x0f,0x1c,0x00,0xf8,0x02,0x04,0x00,0x00
+
+# GXF10: exp mrt0 v7, off, off, off vm ; encoding: [0x01,0x10,0x00,0xf8,0x07,0x00,0x00,0x00]
+0x01,0x10,0x00,0xf8,0x07,0x00,0x00,0x00
+
+# GXF10: exp mrt0 off, off, v1, v2 ; encoding: [0x0c,0x00,0x00,0xf8,0x00,0x00,0x01,0x02]
+0x0c,0x00,0x00,0xf8,0x00,0x00,0x01,0x02
+
+# GXF10: exp mrt0 off, off, v8, v8 done compr ; encoding: [0x0c,0x0c,0x00,0xf8,0x00,0x08,0x00,0x00]
+0x0c,0x0c,0x00,0xf8,0x00,0x08,0x00,0x00
+
+# GXF10: exp mrt0 v1, v1, off, off compr ; encoding: [0x03,0x04,0x00,0xf8,0x01,0x00,0x00,0x00]
+0x03,0x04,0x00,0xf8,0x01,0x00,0x00,0x00
+
+# GXF10: exp param0 off, off, off, off compr ; encoding: [0x00,0x06,0x00,0xf8,0x00,0x00,0x00,0x00]
+0x00,0x06,0x00,0xf8,0x00,0x00,0x00,0x00
+
+# GXF10: exp mrtz v0, off, off, off done vm ; encoding: [0x81,0x18,0x00,0xf8,0x00,0x00,0x00,0x00]
+0x81,0x18,0x00,0xf8,0x00,0x00,0x00,0x00
+
+# GXF10: exp null v255, v0, v255, v0 ; encoding: [0x9f,0x00,0x00,0xf8,0xff,0x00,0xff,0x00]
+0x9f,0x00,0x00,0xf8,0xff,0x00,0xff,0x00
+
+# GXF10: exp pos0 v1, off, off, off ; encoding: [0xc1,0x00,0x00,0xf8,0x01,0x00,0x00,0x00]
+0xc1,0x00,0x00,0xf8,0x01,0x00,0x00,0x00
+
+# GXF10: exp pos3 v1, off, off, off ; encoding: [0xf1,0x00,0x00,0xf8,0x01,0x00,0x00,0x00]
+0xf1,0x00,0x00,0xf8,0x01,0x00,0x00,0x00
+
+# GXF10: exp pos4 v1, off, off, off ; encoding: [0x01,0x01,0x00,0xf8,0x01,0x00,0x00,0x00]
+0x01,0x01,0x00,0xf8,0x01,0x00,0x00,0x00
+
+# GXF10: exp prim v2, v3, off, off ; encoding: [0x43,0x01,0x00,0xf8,0x02,0x03,0x00,0x00]
+0x43,0x01,0x00,0xf8,0x02,0x03,0x00,0x00