summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorChris Dewhurst <chris.dewhurst@lero.ie>2016-03-09 18:20:21 +0000
committerChris Dewhurst <chris.dewhurst@lero.ie>2016-03-09 18:20:21 +0000
commit52adb575e61763e27198df0661526c7d7f2c4eaa (patch)
tree12ece538df863e1eb7f06e093107ec8fa54de2bf /llvm/test
parentef13c522b42f9bd6b4bc0fe53930bc1e20a21800 (diff)
downloadbcm5719-llvm-52adb575e61763e27198df0661526c7d7f2c4eaa.tar.gz
bcm5719-llvm-52adb575e61763e27198df0661526c7d7f2c4eaa.zip
This change adds co-processor condition branching and conditional traps to the Sparc back-end.
This will allow inline assembler code to utilize these features, but no automatic lowering is provided, except for the previously provided @llvm.trap, which lowers to "ta 5". The change also separates out the different assembly language syntaxes for V8 and V9 Sparc. Previously, only V9 Sparc assembly syntax was provided. The change also corrects the selection order of trap disassembly, allowing, e.g. "ta %g0 + 15" to be rendered, more readably, as "ta 15", ignoring the %g0 register. This is per the sparc v8 and v9 manuals. Check-in includes many extra unit tests to check this works correctly on both V8 and V9 Sparc processors. Code Reviewed at http://reviews.llvm.org/D17960. llvm-svn: 263044
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/MC/Disassembler/Sparc/sparc-v9.txt114
-rw-r--r--llvm/test/MC/Disassembler/Sparc/sparc.txt106
-rw-r--r--llvm/test/MC/Sparc/sparc-ctrl-instructions.s184
-rw-r--r--llvm/test/MC/Sparc/sparc-traps.s151
-rw-r--r--llvm/test/MC/Sparc/sparc-v9-traps.s303
-rw-r--r--llvm/test/MC/Sparc/sparc64-ctrl-instructions.s6
6 files changed, 856 insertions, 8 deletions
diff --git a/llvm/test/MC/Disassembler/Sparc/sparc-v9.txt b/llvm/test/MC/Disassembler/Sparc/sparc-v9.txt
index b8ca01ce04e..0a81b8df4cd 100644
--- a/llvm/test/MC/Disassembler/Sparc/sparc-v9.txt
+++ b/llvm/test/MC/Disassembler/Sparc/sparc-v9.txt
@@ -2,3 +2,117 @@
# CHECK: popc %g1, %g2
0x85 0x70 0x00 0x01
+
+# CHECK: ta %icc, %i5
+0x91 0xd0 0x00 0x1d
+
+# CHECK: ta %icc, 82
+0x91 0xd0 0x20 0x52
+
+# CHECK: ta %icc, %g1 + %i2
+0x91 0xd0 0x40 0x1a
+
+# CHECK: ta %icc, %i5 + 41
+0x91 0xd7 0x60 0x29
+
+# CHECK: tn %icc, %i5
+0x81 0xd0 0x00 0x1d
+
+# CHECK: tne %icc, 82
+0x93 0xd0 0x20 0x52
+
+# CHECK: te %icc, %g1 + %i2
+0x83 0xd0 0x40 0x1a
+
+# CHECK: tg %icc, %i5 + 41
+0x95 0xd7 0x60 0x29
+
+# CHECK: tle %icc, %i5
+0x85 0xd0 0x00 0x1d
+
+# CHECK: tge %icc, 82
+0x97 0xd0 0x20 0x52
+
+# CHECK: tl %icc, %g1 + %i2
+0x87 0xd0 0x40 0x1a
+
+# CHECK: tgu %icc, %i5 + 41
+0x99 0xd7 0x60 0x29
+
+# CHECK: tleu %icc, %i5
+0x89 0xd0 0x00 0x1d
+
+# CHECK: tcc %icc, 82
+0x9b 0xd0 0x20 0x52
+
+# CHECK: tcs %icc, %g1 + %i2
+0x8b 0xd0 0x40 0x1a
+
+# CHECK: tpos %icc, %i5 + 41
+0x9d 0xd7 0x60 0x29
+
+# CHECK: tneg %icc, %i5
+0x8d 0xd0 0x00 0x1d
+
+# CHECK: tvc %icc, 82
+0x9f 0xd0 0x20 0x52
+
+# CHECK: tvs %icc, %g1 + %i2
+0x8f 0xd0 0x40 0x1a
+
+# CHECK: ta %xcc, %i5
+0x91 0xd0 0x10 0x1d
+
+# CHECK: ta %xcc, 82
+0x91 0xd0 0x30 0x52
+
+# CHECK: ta %xcc, %g1 + %i2
+0x91 0xd0 0x50 0x1a
+
+# CHECK: ta %xcc, %i5 + 41
+0x91 0xd7 0x70 0x29
+
+# CHECK: tn %xcc, %i5
+0x81 0xd0 0x10 0x1d
+
+# CHECK: tne %xcc, 82
+0x93 0xd0 0x30 0x52
+
+# CHECK: te %xcc, %g1 + %i2
+0x83 0xd0 0x50 0x1a
+
+# CHECK: tg %xcc, %i5 + 41
+0x95 0xd7 0x70 0x29
+
+# CHECK: tle %xcc, %i5
+0x85 0xd0 0x10 0x1d
+
+# CHECK: tge %xcc, 82
+0x97 0xd0 0x30 0x52
+
+# CHECK: tl %xcc, %g1 + %i2
+0x87 0xd0 0x50 0x1a
+
+# CHECK: tgu %xcc, %i5 + 41
+0x99 0xd7 0x70 0x29
+
+# CHECK: tleu %xcc, %i5
+0x89 0xd0 0x10 0x1d
+
+# CHECK: tcc %xcc, 82
+0x9b 0xd0 0x30 0x52
+
+# CHECK: tcs %xcc, %g1 + %i2
+0x8b 0xd0 0x50 0x1a
+
+# CHECK: tpos %xcc, %i5 + 41
+0x9d 0xd7 0x70 0x29
+
+# CHECK: tneg %xcc, %i5
+0x8d 0xd0 0x10 0x1d
+
+# CHECK: tvc %xcc, 82
+0x9f 0xd0 0x30 0x52
+
+# CHECK: tvs %xcc, %g1 + %i2
+0x8f 0xd0 0x50 0x1a \ No newline at end of file
diff --git a/llvm/test/MC/Disassembler/Sparc/sparc.txt b/llvm/test/MC/Disassembler/Sparc/sparc.txt
index 6724ebf8bf2..9c0b2a10739 100644
--- a/llvm/test/MC/Disassembler/Sparc/sparc.txt
+++ b/llvm/test/MC/Disassembler/Sparc/sparc.txt
@@ -168,6 +168,51 @@
# CHECK: fbo 4194303
0x1f 0xbf 0xff 0xff
+# CHECK: cba 4194303
+0x11 0xff 0xff 0xff
+
+# CHECK: cbn 4194303
+0x01 0xff 0xff 0xff
+
+# CHECK: cb3 4194303
+0x0f 0xff 0xff 0xff
+
+# CHECK: cb2 4194303
+0x0d 0xff 0xff 0xff
+
+# CHECK: cb23 4194303
+0x0b 0xff 0xff 0xff
+
+# CHECK: cb1 4194303
+0x09 0xff 0xff 0xff
+
+# CHECK: cb13 4194303
+0x07 0xff 0xff 0xff
+
+# CHECK: cb12 4194303
+0x05 0xff 0xff 0xff
+
+# CHECK: cb123 4194303
+0x03 0xff 0xff 0xff
+
+# CHECK: cb03 4194303
+0x15 0xff 0xff 0xff
+
+# CHECK: cb02 4194303
+0x17 0xff 0xff 0xff
+
+# CHECK: cb023 4194303
+0x19 0xff 0xff 0xff
+
+# CHECK: cb01 4194303
+0x1b 0xff 0xff 0xff
+
+# CHECK: cb013 4194303
+0x1d 0xff 0xff 0xff
+
+# CHECK: cb012 4194303
+0x1f 0xff 0xff 0xff
+
# CHECK: restore
0x81 0xe8 0x00 0x00
@@ -187,16 +232,73 @@
0x00 0x00 0x00 0x0c
# CHECK: jmp %g1+12
-0x81,0xc0,0x60,0x0c
+0x81 0xc0 0x60 0x0c
# CHECK: retl
0x81 0xc3 0xe0 0x08
# CHECK: ret
-0x81,0xc7,0xe0,0x08
+0x81 0xc7 0xe0 0x08
# CHECK: rett %i7+8
0x81 0xcf 0xe0 0x08
# CHECK: stbar
0x81 0x43 0xc0 0x00
+
+# CHECK: ta %i5
+0x91 0xd0 0x00 0x1d
+
+# CHECK: ta 82
+0x91 0xd0 0x20 0x52
+
+# CHECK: ta %g1 + %i2
+0x91 0xd0 0x40 0x1a
+
+# CHECK: ta %i5 + 41
+0x91 0xd7 0x60 0x29
+
+# CHECK: tn %i5
+0x81 0xd0 0x00 0x1d
+
+# CHECK: tne 82
+0x93 0xd0 0x20 0x52
+
+# CHECK: te %g1 + %i2
+0x83 0xd0 0x40 0x1a
+
+# CHECK: tg %i5 + 41
+0x95 0xd7 0x60 0x29
+
+# CHECK: tle %i5
+0x85 0xd0 0x00 0x1d
+
+# CHECK: tge 82
+0x97 0xd0 0x20 0x52
+
+# CHECK: tl %g1 + %i2
+0x87 0xd0 0x40 0x1a
+
+# CHECK: tgu %i5 + 41
+0x99 0xd7 0x60 0x29
+
+# CHECK: tleu %i5
+0x89 0xd0 0x00 0x1d
+
+# CHECK: tcc 82
+0x9b 0xd0 0x20 0x52
+
+# CHECK: tcs %g1 + %i2
+0x8b 0xd0 0x40 0x1a
+
+# CHECK: tpos %i5 + 41
+0x9d 0xd7 0x60 0x29
+
+# CHECK: tneg %i5
+0x8d 0xd0 0x00 0x1d
+
+# CHECK: tvc 82
+0x9f 0xd0 0x20 0x52
+
+# CHECK: tvs %g1 + %i2
+0x8f 0xd0 0x40 0x1a
diff --git a/llvm/test/MC/Sparc/sparc-ctrl-instructions.s b/llvm/test/MC/Sparc/sparc-ctrl-instructions.s
index ccfa36a0b14..8f3ad55cd3f 100644
--- a/llvm/test/MC/Sparc/sparc-ctrl-instructions.s
+++ b/llvm/test/MC/Sparc/sparc-ctrl-instructions.s
@@ -199,6 +199,74 @@
! CHECK: fbo .BB0 ! encoding: [0x1f,0b10AAAAAA,A,A]
! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
fbo .BB0
+
+ ! CHECK: cba .BB0 ! encoding: [0x11,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb .BB0
+
+ ! CHECK: cba .BB0 ! encoding: [0x11,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cba .BB0
+
+ ! CHECK: cbn .BB0 ! encoding: [0x01,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cbn .BB0
+
+ ! CHECK: cb3 .BB0 ! encoding: [0x0f,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb3 .BB0
+
+ ! CHECK: cb2 .BB0 ! encoding: [0x0d,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb2 .BB0
+
+ ! CHECK: cb23 .BB0 ! encoding: [0x0b,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb23 .BB0
+
+ ! CHECK: cb1 .BB0 ! encoding: [0x09,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb1 .BB0
+
+ ! CHECK: cb13 .BB0 ! encoding: [0x07,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb13 .BB0
+
+ ! CHECK: cb12 .BB0 ! encoding: [0x05,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb12 .BB0
+
+ ! CHECK: cb123 .BB0 ! encoding: [0x03,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb123 .BB0
+
+ ! CHECK: cb0 .BB0 ! encoding: [0x13,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb0 .BB0
+
+ ! CHECK: cb03 .BB0 ! encoding: [0x15,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb03 .BB0
+
+ ! CHECK: cb02 .BB0 ! encoding: [0x17,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb02 .BB0
+
+ ! CHECK: cb023 .BB0 ! encoding: [0x19,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb023 .BB0
+
+ ! CHECK: cb01 .BB0 ! encoding: [0x1b,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb01 .BB0
+
+ ! CHECK: cb013 .BB0 ! encoding: [0x1d,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb013 .BB0
+
+ ! CHECK: cb012 .BB0 ! encoding: [0x1f,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb012 .BB0
! CHECK: ba,a .BB0 ! encoding: [0x30,0b10AAAAAA,A,A]
! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
@@ -317,3 +385,119 @@
! CHECK: rett %i7+8 ! encoding: [0x81,0xcf,0xe0,0x08]
rett %i7 + 8
+
+ ! CHECK: cb3,a .BB0 ! encoding: [0x2f,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb3,a .BB0
+
+ ! CHECK: cb2,a .BB0 ! encoding: [0x2d,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb2,a .BB0
+
+ ! CHECK: cb23,a .BB0 ! encoding: [0x2b,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb23,a .BB0
+
+ ! CHECK: cb1,a .BB0 ! encoding: [0x29,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb1,a .BB0
+
+ ! CHECK: cb13,a .BB0 ! encoding: [0x27,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb13,a .BB0
+
+ ! CHECK: cb12,a .BB0 ! encoding: [0x25,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb12,a .BB0
+
+ ! CHECK: cb123,a .BB0 ! encoding: [0x23,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb123,a .BB0
+
+ ! CHECK: cb0,a .BB0 ! encoding: [0x33,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb0,a .BB0
+
+ ! CHECK: cb03,a .BB0 ! encoding: [0x35,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb03,a .BB0
+
+ ! CHECK: cb02,a .BB0 ! encoding: [0x37,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb02,a .BB0
+
+ ! CHECK: cb023,a .BB0 ! encoding: [0x39,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb023,a .BB0
+
+ ! CHECK: cb01,a .BB0 ! encoding: [0x3b,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb01,a .BB0
+
+ ! CHECK: cb013,a .BB0 ! encoding: [0x3d,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb013,a .BB0
+
+ ! CHECK: cb012,a .BB0 ! encoding: [0x3f,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb012,a .BB0
+
+ ! CHECK: cb3,a .BB0 ! encoding: [0x2f,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb3,a .BB0
+
+ ! CHECK: cb2,a .BB0 ! encoding: [0x2d,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb2,a .BB0
+
+ ! CHECK: cb23,a .BB0 ! encoding: [0x2b,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb23,a .BB0
+
+ ! CHECK: cb1,a .BB0 ! encoding: [0x29,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb1,a .BB0
+
+ ! CHECK: cb13,a .BB0 ! encoding: [0x27,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb13,a .BB0
+
+ ! CHECK: cb12,a .BB0 ! encoding: [0x25,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb12,a .BB0
+
+ ! CHECK: cb123,a .BB0 ! encoding: [0x23,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb123,a .BB0
+
+ ! CHECK: cb0,a .BB0 ! encoding: [0x33,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb0,a .BB0
+
+ ! CHECK: cb03,a .BB0 ! encoding: [0x35,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb03,a .BB0
+
+ ! CHECK: cb02,a .BB0 ! encoding: [0x37,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb02,a .BB0
+
+ ! CHECK: cb023,a .BB0 ! encoding: [0x39,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb023,a .BB0
+
+ ! CHECK: cb01,a .BB0 ! encoding: [0x3b,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb01,a .BB0
+
+ ! CHECK: cb013,a .BB0 ! encoding: [0x3d,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb013,a .BB0
+
+ ! CHECK: cb012,a .BB0 ! encoding: [0x3f,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb012,a .BB0
+
+ ! CHECK: rett %i7+8 ! encoding: [0x81,0xcf,0xe0,0x08]
+ rett %i7 + 8
+
diff --git a/llvm/test/MC/Sparc/sparc-traps.s b/llvm/test/MC/Sparc/sparc-traps.s
new file mode 100644
index 00000000000..650477496f9
--- /dev/null
+++ b/llvm/test/MC/Sparc/sparc-traps.s
@@ -0,0 +1,151 @@
+! RUN: llvm-mc %s -arch=sparc -show-encoding | FileCheck %s
+
+ ! CHECK: ta %i5 ! encoding: [0x91,0xd0,0x00,0x1d]
+ ! CHECK: ta 82 ! encoding: [0x91,0xd0,0x20,0x52]
+ ! CHECK: ta %g1 + %i2 ! encoding: [0x91,0xd0,0x40,0x1a]
+ ! CHECK: ta %i5 + 41 ! encoding: [0x91,0xd7,0x60,0x29]
+ ta %i5
+ ta 82
+ ta %g1 + %i2
+ ta %i5 + 41
+
+ ! CHECK: tn %i5 ! encoding: [0x81,0xd0,0x00,0x1d]
+ ! CHECK: tn 82 ! encoding: [0x81,0xd0,0x20,0x52]
+ ! CHECK: tn %g1 + %i2 ! encoding: [0x81,0xd0,0x40,0x1a]
+ ! CHECK: tn %i5 + 41 ! encoding: [0x81,0xd7,0x60,0x29]
+ tn %i5
+ tn 82
+ tn %g1 + %i2
+ tn %i5 + 41
+
+ ! CHECK: tne %i5 ! encoding: [0x93,0xd0,0x00,0x1d]
+ !! tnz should be a synonym for tne
+ ! CHECK: tne %i5 ! encoding: [0x93,0xd0,0x00,0x1d]
+ ! CHECK: tne 82 ! encoding: [0x93,0xd0,0x20,0x52]
+ ! CHECK: tne %g1 + %i2 ! encoding: [0x93,0xd0,0x40,0x1a]
+ ! CHECK: tne %i5 + 41 ! encoding: [0x93,0xd7,0x60,0x29]
+ tne %i5
+ tnz %i5
+ tne 82
+ tne %g1 + %i2
+ tne %i5 + 41
+
+ ! CHECK: te %i5 ! encoding: [0x83,0xd0,0x00,0x1d]
+ !! tz should be a synonym for te
+ ! CHECK: te %i5 ! encoding: [0x83,0xd0,0x00,0x1d]
+ ! CHECK: te 82 ! encoding: [0x83,0xd0,0x20,0x52]
+ ! CHECK: te %g1 + %i2 ! encoding: [0x83,0xd0,0x40,0x1a]
+ ! CHECK: te %i5 + 41 ! encoding: [0x83,0xd7,0x60,0x29]
+ te %i5
+ tz %i5
+ te 82
+ te %g1 + %i2
+ te %i5 + 41
+
+ ! CHECK: tg %i5 ! encoding: [0x95,0xd0,0x00,0x1d]
+ ! CHECK: tg 82 ! encoding: [0x95,0xd0,0x20,0x52]
+ ! CHECK: tg %g1 + %i2 ! encoding: [0x95,0xd0,0x40,0x1a]
+ ! CHECK: tg %i5 + 41 ! encoding: [0x95,0xd7,0x60,0x29]
+ tg %i5
+ tg 82
+ tg %g1 + %i2
+ tg %i5 + 41
+
+ ! CHECK: tle %i5 ! encoding: [0x85,0xd0,0x00,0x1d]
+ ! CHECK: tle 82 ! encoding: [0x85,0xd0,0x20,0x52]
+ ! CHECK: tle %g1 + %i2 ! encoding: [0x85,0xd0,0x40,0x1a]
+ ! CHECK: tle %i5 + 41 ! encoding: [0x85,0xd7,0x60,0x29]
+ tle %i5
+ tle 82
+ tle %g1 + %i2
+ tle %i5 + 41
+
+ ! CHECK: tge %i5 ! encoding: [0x97,0xd0,0x00,0x1d]
+ ! CHECK: tge 82 ! encoding: [0x97,0xd0,0x20,0x52]
+ ! CHECK: tge %g1 + %i2 ! encoding: [0x97,0xd0,0x40,0x1a]
+ ! CHECK: tge %i5 + 41 ! encoding: [0x97,0xd7,0x60,0x29]
+ tge %i5
+ tge 82
+ tge %g1 + %i2
+ tge %i5 + 41
+
+ ! CHECK: tl %i5 ! encoding: [0x87,0xd0,0x00,0x1d]
+ ! CHECK: tl 82 ! encoding: [0x87,0xd0,0x20,0x52]
+ ! CHECK: tl %g1 + %i2 ! encoding: [0x87,0xd0,0x40,0x1a]
+ ! CHECK: tl %i5 + 41 ! encoding: [0x87,0xd7,0x60,0x29]
+ tl %i5
+ tl 82
+ tl %g1 + %i2
+ tl %i5 + 41
+
+ ! CHECK: tgu %i5 ! encoding: [0x99,0xd0,0x00,0x1d]
+ ! CHECK: tgu 82 ! encoding: [0x99,0xd0,0x20,0x52]
+ ! CHECK: tgu %g1 + %i2 ! encoding: [0x99,0xd0,0x40,0x1a]
+ ! CHECK: tgu %i5 + 41 ! encoding: [0x99,0xd7,0x60,0x29]
+ tgu %i5
+ tgu 82
+ tgu %g1 + %i2
+ tgu %i5 + 41
+
+ ! CHECK: tleu %i5 ! encoding: [0x89,0xd0,0x00,0x1d]
+ ! CHECK: tleu 82 ! encoding: [0x89,0xd0,0x20,0x52]
+ ! CHECK: tleu %g1 + %i2 ! encoding: [0x89,0xd0,0x40,0x1a]
+ ! CHECK: tleu %i5 + 41 ! encoding: [0x89,0xd7,0x60,0x29]
+ tleu %i5
+ tleu 82
+ tleu %g1 + %i2
+ tleu %i5 + 41
+
+ ! CHECK: tcc %i5 ! encoding: [0x9b,0xd0,0x00,0x1d]
+ ! CHECK: tcc 82 ! encoding: [0x9b,0xd0,0x20,0x52]
+ ! CHECK: tcc %g1 + %i2 ! encoding: [0x9b,0xd0,0x40,0x1a]
+ ! CHECK: tcc %i5 + 41 ! encoding: [0x9b,0xd7,0x60,0x29]
+ tcc %i5
+ tcc 82
+ tcc %g1 + %i2
+ tcc %i5 + 41
+
+ ! CHECK: tcs %i5 ! encoding: [0x8b,0xd0,0x00,0x1d]
+ ! CHECK: tcs 82 ! encoding: [0x8b,0xd0,0x20,0x52]
+ ! CHECK: tcs %g1 + %i2 ! encoding: [0x8b,0xd0,0x40,0x1a]
+ ! CHECK: tcs %i5 + 41 ! encoding: [0x8b,0xd7,0x60,0x29]
+ tcs %i5
+ tcs 82
+ tcs %g1 + %i2
+ tcs %i5 + 41
+
+ ! CHECK: tpos %i5 ! encoding: [0x9d,0xd0,0x00,0x1d]
+ ! CHECK: tpos 82 ! encoding: [0x9d,0xd0,0x20,0x52]
+ ! CHECK: tpos %g1 + %i2 ! encoding: [0x9d,0xd0,0x40,0x1a]
+ ! CHECK: tpos %i5 + 41 ! encoding: [0x9d,0xd7,0x60,0x29]
+ tpos %i5
+ tpos 82
+ tpos %g1 + %i2
+ tpos %i5 + 41
+
+ ! CHECK: tneg %i5 ! encoding: [0x8d,0xd0,0x00,0x1d]
+ ! CHECK: tneg 82 ! encoding: [0x8d,0xd0,0x20,0x52]
+ ! CHECK: tneg %g1 + %i2 ! encoding: [0x8d,0xd0,0x40,0x1a]
+ ! CHECK: tneg %i5 + 41 ! encoding: [0x8d,0xd7,0x60,0x29]
+ tneg %i5
+ tneg 82
+ tneg %g1 + %i2
+ tneg %i5 + 41
+
+ ! CHECK: tvc %i5 ! encoding: [0x9f,0xd0,0x00,0x1d]
+ ! CHECK: tvc 82 ! encoding: [0x9f,0xd0,0x20,0x52]
+ ! CHECK: tvc %g1 + %i2 ! encoding: [0x9f,0xd0,0x40,0x1a]
+ ! CHECK: tvc %i5 + 41 ! encoding: [0x9f,0xd7,0x60,0x29]
+ tvc %i5
+ tvc 82
+ tvc %g1 + %i2
+ tvc %i5 + 41
+
+ ! CHECK: tvs %i5 ! encoding: [0x8f,0xd0,0x00,0x1d]
+ ! CHECK: tvs 82 ! encoding: [0x8f,0xd0,0x20,0x52]
+ ! CHECK: tvs %g1 + %i2 ! encoding: [0x8f,0xd0,0x40,0x1a]
+ ! CHECK: tvs %i5 + 41 ! encoding: [0x8f,0xd7,0x60,0x29]
+ tvs %i5
+ tvs 82
+ tvs %g1 + %i2
+ tvs %i5 + 41
diff --git a/llvm/test/MC/Sparc/sparc-v9-traps.s b/llvm/test/MC/Sparc/sparc-v9-traps.s
new file mode 100644
index 00000000000..da11b36003b
--- /dev/null
+++ b/llvm/test/MC/Sparc/sparc-v9-traps.s
@@ -0,0 +1,303 @@
+! RUN: llvm-mc %s -arch=sparcv9 -show-encoding | FileCheck %s
+
+ ! CHECK: ta %icc, %i5 ! encoding: [0x91,0xd0,0x00,0x1d]
+ ! CHECK: ta %icc, 82 ! encoding: [0x91,0xd0,0x20,0x52]
+ ! CHECK: ta %icc, %g1 + %i2 ! encoding: [0x91,0xd0,0x40,0x1a]
+ ! CHECK: ta %icc, %i5 + 41 ! encoding: [0x91,0xd7,0x60,0x29]
+ ta %icc, %i5
+ ta %icc, 82
+ ta %icc, %g1 + %i2
+ ta %icc, %i5 + 41
+
+ ! CHECK: tn %icc, %i5 ! encoding: [0x81,0xd0,0x00,0x1d]
+ ! CHECK: tn %icc, 82 ! encoding: [0x81,0xd0,0x20,0x52]
+ ! CHECK: tn %icc, %g1 + %i2 ! encoding: [0x81,0xd0,0x40,0x1a]
+ ! CHECK: tn %icc, %i5 + 41 ! encoding: [0x81,0xd7,0x60,0x29]
+ tn %icc, %i5
+ tn %icc, 82
+ tn %icc, %g1 + %i2
+ tn %icc, %i5 + 41
+
+ ! CHECK: tne %icc, %i5 ! encoding: [0x93,0xd0,0x00,0x1d]
+ !! tnz should be a synonym for tne
+ ! CHECK: tne %icc, %i5 ! encoding: [0x93,0xd0,0x00,0x1d]
+ ! CHECK: tne %icc, 82 ! encoding: [0x93,0xd0,0x20,0x52]
+ ! CHECK: tne %icc, %g1 + %i2 ! encoding: [0x93,0xd0,0x40,0x1a]
+ ! CHECK: tne %icc, %i5 + 41 ! encoding: [0x93,0xd7,0x60,0x29]
+ tne %icc, %i5
+ tnz %icc, %i5
+ tne %icc, 82
+ tne %icc, %g1 + %i2
+ tne %icc, %i5 + 41
+
+ ! CHECK: te %icc, %i5 ! encoding: [0x83,0xd0,0x00,0x1d]
+ !! tz should be a synonym for te
+ ! CHECK: te %icc, %i5 ! encoding: [0x83,0xd0,0x00,0x1d]
+ ! CHECK: te %icc, 82 ! encoding: [0x83,0xd0,0x20,0x52]
+ ! CHECK: te %icc, %g1 + %i2 ! encoding: [0x83,0xd0,0x40,0x1a]
+ ! CHECK: te %icc, %i5 + 41 ! encoding: [0x83,0xd7,0x60,0x29]
+ te %icc, %i5
+ tz %icc, %i5
+ te %icc, 82
+ te %icc, %g1 + %i2
+ te %icc, %i5 + 41
+
+ ! CHECK: tg %icc, %i5 ! encoding: [0x95,0xd0,0x00,0x1d]
+ ! CHECK: tg %icc, 82 ! encoding: [0x95,0xd0,0x20,0x52]
+ ! CHECK: tg %icc, %g1 + %i2 ! encoding: [0x95,0xd0,0x40,0x1a]
+ ! CHECK: tg %icc, %i5 + 41 ! encoding: [0x95,0xd7,0x60,0x29]
+ tg %icc, %i5
+ tg %icc, 82
+ tg %icc, %g1 + %i2
+ tg %icc, %i5 + 41
+
+ ! CHECK: tle %icc, %i5 ! encoding: [0x85,0xd0,0x00,0x1d]
+ ! CHECK: tle %icc, 82 ! encoding: [0x85,0xd0,0x20,0x52]
+ ! CHECK: tle %icc, %g1 + %i2 ! encoding: [0x85,0xd0,0x40,0x1a]
+ ! CHECK: tle %icc, %i5 + 41 ! encoding: [0x85,0xd7,0x60,0x29]
+ tle %icc, %i5
+ tle %icc, 82
+ tle %icc, %g1 + %i2
+ tle %icc, %i5 + 41
+
+ ! CHECK: tge %icc, %i5 ! encoding: [0x97,0xd0,0x00,0x1d]
+ ! CHECK: tge %icc, 82 ! encoding: [0x97,0xd0,0x20,0x52]
+ ! CHECK: tge %icc, %g1 + %i2 ! encoding: [0x97,0xd0,0x40,0x1a]
+ ! CHECK: tge %icc, %i5 + 41 ! encoding: [0x97,0xd7,0x60,0x29]
+ tge %icc, %i5
+ tge %icc, 82
+ tge %icc, %g1 + %i2
+ tge %icc, %i5 + 41
+
+ ! CHECK: tl %icc, %i5 ! encoding: [0x87,0xd0,0x00,0x1d]
+ ! CHECK: tl %icc, 82 ! encoding: [0x87,0xd0,0x20,0x52]
+ ! CHECK: tl %icc, %g1 + %i2 ! encoding: [0x87,0xd0,0x40,0x1a]
+ ! CHECK: tl %icc, %i5 + 41 ! encoding: [0x87,0xd7,0x60,0x29]
+ tl %icc, %i5
+ tl %icc, 82
+ tl %icc, %g1 + %i2
+ tl %icc, %i5 + 41
+
+ ! CHECK: tgu %icc, %i5 ! encoding: [0x99,0xd0,0x00,0x1d]
+ ! CHECK: tgu %icc, 82 ! encoding: [0x99,0xd0,0x20,0x52]
+ ! CHECK: tgu %icc, %g1 + %i2 ! encoding: [0x99,0xd0,0x40,0x1a]
+ ! CHECK: tgu %icc, %i5 + 41 ! encoding: [0x99,0xd7,0x60,0x29]
+ tgu %icc, %i5
+ tgu %icc, 82
+ tgu %icc, %g1 + %i2
+ tgu %icc, %i5 + 41
+
+ ! CHECK: tleu %icc, %i5 ! encoding: [0x89,0xd0,0x00,0x1d]
+ ! CHECK: tleu %icc, 82 ! encoding: [0x89,0xd0,0x20,0x52]
+ ! CHECK: tleu %icc, %g1 + %i2 ! encoding: [0x89,0xd0,0x40,0x1a]
+ ! CHECK: tleu %icc, %i5 + 41 ! encoding: [0x89,0xd7,0x60,0x29]
+ tleu %icc, %i5
+ tleu %icc, 82
+ tleu %icc, %g1 + %i2
+ tleu %icc, %i5 + 41
+
+ ! CHECK: tcc %icc, %i5 ! encoding: [0x9b,0xd0,0x00,0x1d]
+ ! CHECK: tcc %icc, 82 ! encoding: [0x9b,0xd0,0x20,0x52]
+ ! CHECK: tcc %icc, %g1 + %i2 ! encoding: [0x9b,0xd0,0x40,0x1a]
+ ! CHECK: tcc %icc, %i5 + 41 ! encoding: [0x9b,0xd7,0x60,0x29]
+ tcc %icc, %i5
+ tcc %icc, 82
+ tcc %icc, %g1 + %i2
+ tcc %icc, %i5 + 41
+
+ ! CHECK: tcs %icc, %i5 ! encoding: [0x8b,0xd0,0x00,0x1d]
+ ! CHECK: tcs %icc, 82 ! encoding: [0x8b,0xd0,0x20,0x52]
+ ! CHECK: tcs %icc, %g1 + %i2 ! encoding: [0x8b,0xd0,0x40,0x1a]
+ ! CHECK: tcs %icc, %i5 + 41 ! encoding: [0x8b,0xd7,0x60,0x29]
+ tcs %icc, %i5
+ tcs %icc, 82
+ tcs %icc, %g1 + %i2
+ tcs %icc, %i5 + 41
+
+ ! CHECK: tpos %icc, %i5 ! encoding: [0x9d,0xd0,0x00,0x1d]
+ ! CHECK: tpos %icc, 82 ! encoding: [0x9d,0xd0,0x20,0x52]
+ ! CHECK: tpos %icc, %g1 + %i2 ! encoding: [0x9d,0xd0,0x40,0x1a]
+ ! CHECK: tpos %icc, %i5 + 41 ! encoding: [0x9d,0xd7,0x60,0x29]
+ tpos %icc, %i5
+ tpos %icc, 82
+ tpos %icc, %g1 + %i2
+ tpos %icc, %i5 + 41
+
+ ! CHECK: tneg %icc, %i5 ! encoding: [0x8d,0xd0,0x00,0x1d]
+ ! CHECK: tneg %icc, 82 ! encoding: [0x8d,0xd0,0x20,0x52]
+ ! CHECK: tneg %icc, %g1 + %i2 ! encoding: [0x8d,0xd0,0x40,0x1a]
+ ! CHECK: tneg %icc, %i5 + 41 ! encoding: [0x8d,0xd7,0x60,0x29]
+ tneg %icc, %i5
+ tneg %icc, 82
+ tneg %icc, %g1 + %i2
+ tneg %icc, %i5 + 41
+
+ ! CHECK: tvc %icc, %i5 ! encoding: [0x9f,0xd0,0x00,0x1d]
+ ! CHECK: tvc %icc, 82 ! encoding: [0x9f,0xd0,0x20,0x52]
+ ! CHECK: tvc %icc, %g1 + %i2 ! encoding: [0x9f,0xd0,0x40,0x1a]
+ ! CHECK: tvc %icc, %i5 + 41 ! encoding: [0x9f,0xd7,0x60,0x29]
+ tvc %icc, %i5
+ tvc %icc, 82
+ tvc %icc, %g1 + %i2
+ tvc %icc, %i5 + 41
+
+ ! CHECK: tvs %icc, %i5 ! encoding: [0x8f,0xd0,0x00,0x1d]
+ ! CHECK: tvs %icc, 82 ! encoding: [0x8f,0xd0,0x20,0x52]
+ ! CHECK: tvs %icc, %g1 + %i2 ! encoding: [0x8f,0xd0,0x40,0x1a]
+ ! CHECK: tvs %icc, %i5 + 41 ! encoding: [0x8f,0xd7,0x60,0x29]
+ tvs %icc, %i5
+ tvs %icc, 82
+ tvs %icc, %g1 + %i2
+ tvs %icc, %i5 + 41
+
+
+ ! CHECK: ta %xcc, %i5 ! encoding: [0x91,0xd0,0x10,0x1d]
+ ! CHECK: ta %xcc, 82 ! encoding: [0x91,0xd0,0x30,0x52]
+ ! CHECK: ta %xcc, %g1 + %i2 ! encoding: [0x91,0xd0,0x50,0x1a]
+ ! CHECK: ta %xcc, %i5 + 41 ! encoding: [0x91,0xd7,0x70,0x29]
+ ta %xcc, %i5
+ ta %xcc, 82
+ ta %xcc, %g1 + %i2
+ ta %xcc, %i5 + 41
+
+ ! CHECK: tn %xcc, %i5 ! encoding: [0x81,0xd0,0x10,0x1d]
+ ! CHECK: tn %xcc, 82 ! encoding: [0x81,0xd0,0x30,0x52]
+ ! CHECK: tn %xcc, %g1 + %i2 ! encoding: [0x81,0xd0,0x50,0x1a]
+ ! CHECK: tn %xcc, %i5 + 41 ! encoding: [0x81,0xd7,0x70,0x29]
+ tn %xcc, %i5
+ tn %xcc, 82
+ tn %xcc, %g1 + %i2
+ tn %xcc, %i5 + 41
+
+ ! CHECK: tne %xcc, %i5 ! encoding: [0x93,0xd0,0x10,0x1d]
+ !! tnz should be a synonym for tne
+ ! CHECK: tne %xcc, %i5 ! encoding: [0x93,0xd0,0x10,0x1d]
+ ! CHECK: tne %xcc, 82 ! encoding: [0x93,0xd0,0x30,0x52]
+ ! CHECK: tne %xcc, %g1 + %i2 ! encoding: [0x93,0xd0,0x50,0x1a]
+ ! CHECK: tne %xcc, %i5 + 41 ! encoding: [0x93,0xd7,0x70,0x29]
+ tne %xcc, %i5
+ tnz %xcc, %i5
+ tne %xcc, 82
+ tne %xcc, %g1 + %i2
+ tne %xcc, %i5 + 41
+
+ ! CHECK: te %xcc, %i5 ! encoding: [0x83,0xd0,0x10,0x1d]
+ !! tz should be a synonym for te
+ ! CHECK: te %xcc, %i5 ! encoding: [0x83,0xd0,0x10,0x1d]
+ ! CHECK: te %xcc, 82 ! encoding: [0x83,0xd0,0x30,0x52]
+ ! CHECK: te %xcc, %g1 + %i2 ! encoding: [0x83,0xd0,0x50,0x1a]
+ ! CHECK: te %xcc, %i5 + 41 ! encoding: [0x83,0xd7,0x70,0x29]
+ te %xcc, %i5
+ tz %xcc, %i5
+ te %xcc, 82
+ te %xcc, %g1 + %i2
+ te %xcc, %i5 + 41
+
+ ! CHECK: tg %xcc, %i5 ! encoding: [0x95,0xd0,0x10,0x1d]
+ ! CHECK: tg %xcc, 82 ! encoding: [0x95,0xd0,0x30,0x52]
+ ! CHECK: tg %xcc, %g1 + %i2 ! encoding: [0x95,0xd0,0x50,0x1a]
+ ! CHECK: tg %xcc, %i5 + 41 ! encoding: [0x95,0xd7,0x70,0x29]
+ tg %xcc, %i5
+ tg %xcc, 82
+ tg %xcc, %g1 + %i2
+ tg %xcc, %i5 + 41
+
+ ! CHECK: tle %xcc, %i5 ! encoding: [0x85,0xd0,0x10,0x1d]
+ ! CHECK: tle %xcc, 82 ! encoding: [0x85,0xd0,0x30,0x52]
+ ! CHECK: tle %xcc, %g1 + %i2 ! encoding: [0x85,0xd0,0x50,0x1a]
+ ! CHECK: tle %xcc, %i5 + 41 ! encoding: [0x85,0xd7,0x70,0x29]
+ tle %xcc, %i5
+ tle %xcc, 82
+ tle %xcc, %g1 + %i2
+ tle %xcc, %i5 + 41
+
+ ! CHECK: tge %xcc, %i5 ! encoding: [0x97,0xd0,0x10,0x1d]
+ ! CHECK: tge %xcc, 82 ! encoding: [0x97,0xd0,0x30,0x52]
+ ! CHECK: tge %xcc, %g1 + %i2 ! encoding: [0x97,0xd0,0x50,0x1a]
+ ! CHECK: tge %xcc, %i5 + 41 ! encoding: [0x97,0xd7,0x70,0x29]
+ tge %xcc, %i5
+ tge %xcc, 82
+ tge %xcc, %g1 + %i2
+ tge %xcc, %i5 + 41
+
+ ! CHECK: tl %xcc, %i5 ! encoding: [0x87,0xd0,0x10,0x1d]
+ ! CHECK: tl %xcc, 82 ! encoding: [0x87,0xd0,0x30,0x52]
+ ! CHECK: tl %xcc, %g1 + %i2 ! encoding: [0x87,0xd0,0x50,0x1a]
+ ! CHECK: tl %xcc, %i5 + 41 ! encoding: [0x87,0xd7,0x70,0x29]
+ tl %xcc, %i5
+ tl %xcc, 82
+ tl %xcc, %g1 + %i2
+ tl %xcc, %i5 + 41
+
+ ! CHECK: tgu %xcc, %i5 ! encoding: [0x99,0xd0,0x10,0x1d]
+ ! CHECK: tgu %xcc, 82 ! encoding: [0x99,0xd0,0x30,0x52]
+ ! CHECK: tgu %xcc, %g1 + %i2 ! encoding: [0x99,0xd0,0x50,0x1a]
+ ! CHECK: tgu %xcc, %i5 + 41 ! encoding: [0x99,0xd7,0x70,0x29]
+ tgu %xcc, %i5
+ tgu %xcc, 82
+ tgu %xcc, %g1 + %i2
+ tgu %xcc, %i5 + 41
+
+ ! CHECK: tleu %xcc, %i5 ! encoding: [0x89,0xd0,0x10,0x1d]
+ ! CHECK: tleu %xcc, 82 ! encoding: [0x89,0xd0,0x30,0x52]
+ ! CHECK: tleu %xcc, %g1 + %i2 ! encoding: [0x89,0xd0,0x50,0x1a]
+ ! CHECK: tleu %xcc, %i5 + 41 ! encoding: [0x89,0xd7,0x70,0x29]
+ tleu %xcc, %i5
+ tleu %xcc, 82
+ tleu %xcc, %g1 + %i2
+ tleu %xcc, %i5 + 41
+
+ ! CHECK: tcc %xcc, %i5 ! encoding: [0x9b,0xd0,0x10,0x1d]
+ ! CHECK: tcc %xcc, 82 ! encoding: [0x9b,0xd0,0x30,0x52]
+ ! CHECK: tcc %xcc, %g1 + %i2 ! encoding: [0x9b,0xd0,0x50,0x1a]
+ ! CHECK: tcc %xcc, %i5 + 41 ! encoding: [0x9b,0xd7,0x70,0x29]
+ tcc %xcc, %i5
+ tcc %xcc, 82
+ tcc %xcc, %g1 + %i2
+ tcc %xcc, %i5 + 41
+
+ ! CHECK: tcs %xcc, %i5 ! encoding: [0x8b,0xd0,0x10,0x1d]
+ ! CHECK: tcs %xcc, 82 ! encoding: [0x8b,0xd0,0x30,0x52]
+ ! CHECK: tcs %xcc, %g1 + %i2 ! encoding: [0x8b,0xd0,0x50,0x1a]
+ ! CHECK: tcs %xcc, %i5 + 41 ! encoding: [0x8b,0xd7,0x70,0x29]
+ tcs %xcc, %i5
+ tcs %xcc, 82
+ tcs %xcc, %g1 + %i2
+ tcs %xcc, %i5 + 41
+
+ ! CHECK: tpos %xcc, %i5 ! encoding: [0x9d,0xd0,0x10,0x1d]
+ ! CHECK: tpos %xcc, 82 ! encoding: [0x9d,0xd0,0x30,0x52]
+ ! CHECK: tpos %xcc, %g1 + %i2 ! encoding: [0x9d,0xd0,0x50,0x1a]
+ ! CHECK: tpos %xcc, %i5 + 41 ! encoding: [0x9d,0xd7,0x70,0x29]
+ tpos %xcc, %i5
+ tpos %xcc, 82
+ tpos %xcc, %g1 + %i2
+ tpos %xcc, %i5 + 41
+
+ ! CHECK: tneg %xcc, %i5 ! encoding: [0x8d,0xd0,0x10,0x1d]
+ ! CHECK: tneg %xcc, 82 ! encoding: [0x8d,0xd0,0x30,0x52]
+ ! CHECK: tneg %xcc, %g1 + %i2 ! encoding: [0x8d,0xd0,0x50,0x1a]
+ ! CHECK: tneg %xcc, %i5 + 41 ! encoding: [0x8d,0xd7,0x70,0x29]
+ tneg %xcc, %i5
+ tneg %xcc, 82
+ tneg %xcc, %g1 + %i2
+ tneg %xcc, %i5 + 41
+
+ ! CHECK: tvc %xcc, %i5 ! encoding: [0x9f,0xd0,0x10,0x1d]
+ ! CHECK: tvc %xcc, 82 ! encoding: [0x9f,0xd0,0x30,0x52]
+ ! CHECK: tvc %xcc, %g1 + %i2 ! encoding: [0x9f,0xd0,0x50,0x1a]
+ ! CHECK: tvc %xcc, %i5 + 41 ! encoding: [0x9f,0xd7,0x70,0x29]
+ tvc %xcc, %i5
+ tvc %xcc, 82
+ tvc %xcc, %g1 + %i2
+ tvc %xcc, %i5 + 41
+
+ ! CHECK: tvs %xcc, %i5 ! encoding: [0x8f,0xd0,0x10,0x1d]
+ ! CHECK: tvs %xcc, 82 ! encoding: [0x8f,0xd0,0x30,0x52]
+ ! CHECK: tvs %xcc, %g1 + %i2 ! encoding: [0x8f,0xd0,0x50,0x1a]
+ ! CHECK: tvs %xcc, %i5 + 41 ! encoding: [0x8f,0xd7,0x70,0x29]
+ tvs %xcc, %i5
+ tvs %xcc, 82
+ tvs %xcc, %g1 + %i2
+ tvs %xcc, %i5 + 41
+ \ No newline at end of file
diff --git a/llvm/test/MC/Sparc/sparc64-ctrl-instructions.s b/llvm/test/MC/Sparc/sparc64-ctrl-instructions.s
index 0e7ea25cab9..d1a744f7526 100644
--- a/llvm/test/MC/Sparc/sparc64-ctrl-instructions.s
+++ b/llvm/test/MC/Sparc/sparc64-ctrl-instructions.s
@@ -1230,9 +1230,3 @@
! CHECK: rett %i7+8 ! encoding: [0x81,0xcf,0xe0,0x08]
return %i7 + 8
- ! CHECK: ta %icc, %g0 + 5 ! encoding: [0x91,0xd0,0x20,0x05]
- ta 5
-
- ! CHECK: te %xcc, %g0 + 3 ! encoding: [0x83,0xd0,0x30,0x03]
- te %xcc, 3
-
OpenPOWER on IntegriCloud