diff options
author | Richard Sandiford <rsandifo@linux.vnet.ibm.com> | 2013-08-21 08:58:08 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@linux.vnet.ibm.com> | 2013-08-21 08:58:08 +0000 |
commit | d954716e7567282ff6f3d25b4f404bae006eed04 (patch) | |
tree | 4d276ce2b09ba0b6a7176c06fa91b841a291a031 /test/MC/SystemZ | |
parent | 099e5328fcfae96b406782d636fe02a4ecad4552 (diff) |
[SystemZ] Add FI[EDX]BRA
These are extensions of the existing FI[EDX]BR instructions, but use a spare
bit to suppress inexact conditions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188894 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/MC/SystemZ')
-rw-r--r-- | test/MC/SystemZ/insn-bad-z196.s | 48 | ||||
-rw-r--r-- | test/MC/SystemZ/insn-bad.s | 15 | ||||
-rw-r--r-- | test/MC/SystemZ/insn-good-z196.s | 42 |
3 files changed, 105 insertions, 0 deletions
diff --git a/test/MC/SystemZ/insn-bad-z196.s b/test/MC/SystemZ/insn-bad-z196.s index ec90c89b4c2..477dac2d269 100644 --- a/test/MC/SystemZ/insn-bad-z196.s +++ b/test/MC/SystemZ/insn-bad-z196.s @@ -25,6 +25,54 @@ ahik %r0, %r1, foo #CHECK: error: invalid operand +#CHECK: fidbra %f0, 0, %f0, -1 +#CHECK: error: invalid operand +#CHECK: fidbra %f0, 0, %f0, 16 +#CHECK: error: invalid operand +#CHECK: fidbra %f0, -1, %f0, 0 +#CHECK: error: invalid operand +#CHECK: fidbra %f0, 16, %f0, 0 + + fidbra %f0, 0, %f0, -1 + fidbra %f0, 0, %f0, 16 + fidbra %f0, -1, %f0, 0 + fidbra %f0, 16, %f0, 0 + +#CHECK: error: invalid operand +#CHECK: fiebra %f0, 0, %f0, -1 +#CHECK: error: invalid operand +#CHECK: fiebra %f0, 0, %f0, 16 +#CHECK: error: invalid operand +#CHECK: fiebra %f0, -1, %f0, 0 +#CHECK: error: invalid operand +#CHECK: fiebra %f0, 16, %f0, 0 + + fiebra %f0, 0, %f0, -1 + fiebra %f0, 0, %f0, 16 + fiebra %f0, -1, %f0, 0 + fiebra %f0, 16, %f0, 0 + +#CHECK: error: invalid operand +#CHECK: fixbra %f0, 0, %f0, -1 +#CHECK: error: invalid operand +#CHECK: fixbra %f0, 0, %f0, 16 +#CHECK: error: invalid operand +#CHECK: fixbra %f0, -1, %f0, 0 +#CHECK: error: invalid operand +#CHECK: fixbra %f0, 16, %f0, 0 +#CHECK: error: invalid register pair +#CHECK: fixbra %f0, 0, %f2, 0 +#CHECK: error: invalid register pair +#CHECK: fixbra %f2, 0, %f0, 0 + + fixbra %f0, 0, %f0, -1 + fixbra %f0, 0, %f0, 16 + fixbra %f0, -1, %f0, 0 + fixbra %f0, 16, %f0, 0 + fixbra %f0, 0, %f2, 0 + fixbra %f2, 0, %f0, 0 + +#CHECK: error: invalid operand #CHECK: loc %r0,0,-1 #CHECK: error: invalid operand #CHECK: loc %r0,0,16 diff --git a/test/MC/SystemZ/insn-bad.s b/test/MC/SystemZ/insn-bad.s index 228467004b1..aa3f4c9d83b 100644 --- a/test/MC/SystemZ/insn-bad.s +++ b/test/MC/SystemZ/insn-bad.s @@ -1142,6 +1142,11 @@ fidbr %f0, -1, %f0 fidbr %f0, 16, %f0 +#CHECK: error: {{(instruction requires: fp-extension)?}} +#CHECK: fidbra %f0, 0, %f0, 0 + + fidbra %f0, 0, %f0, 0 + #CHECK: error: invalid operand #CHECK: fiebr %f0, -1, %f0 #CHECK: error: invalid operand @@ -1150,6 +1155,11 @@ fiebr %f0, -1, %f0 fiebr %f0, 16, %f0 +#CHECK: error: {{(instruction requires: fp-extension)?}} +#CHECK: fiebra %f0, 0, %f0, 0 + + fiebra %f0, 0, %f0, 0 + #CHECK: error: invalid operand #CHECK: fixbr %f0, -1, %f0 #CHECK: error: invalid operand @@ -1164,6 +1174,11 @@ fixbr %f0, 0, %f2 fixbr %f2, 0, %f0 +#CHECK: error: {{(instruction requires: fp-extension)?}} +#CHECK: fixbra %f0, 0, %f0, 0 + + fixbra %f0, 0, %f0, 0 + #CHECK: error: invalid register pair #CHECK: flogr %r1, %r0 diff --git a/test/MC/SystemZ/insn-good-z196.s b/test/MC/SystemZ/insn-good-z196.s index 5f7c27785d7..4b12265f730 100644 --- a/test/MC/SystemZ/insn-good-z196.s +++ b/test/MC/SystemZ/insn-good-z196.s @@ -121,6 +121,48 @@ ark %r15,%r0,%r0 ark %r7,%r8,%r9 +#CHECK: fidbra %f0, 0, %f0, 0 # encoding: [0xb3,0x5f,0x00,0x00] +#CHECK: fidbra %f0, 0, %f0, 15 # encoding: [0xb3,0x5f,0x0f,0x00] +#CHECK: fidbra %f0, 0, %f15, 0 # encoding: [0xb3,0x5f,0x00,0x0f] +#CHECK: fidbra %f0, 15, %f0, 0 # encoding: [0xb3,0x5f,0xf0,0x00] +#CHECK: fidbra %f4, 5, %f6, 7 # encoding: [0xb3,0x5f,0x57,0x46] +#CHECK: fidbra %f15, 0, %f0, 0 # encoding: [0xb3,0x5f,0x00,0xf0] + + fidbra %f0, 0, %f0, 0 + fidbra %f0, 0, %f0, 15 + fidbra %f0, 0, %f15, 0 + fidbra %f0, 15, %f0, 0 + fidbra %f4, 5, %f6, 7 + fidbra %f15, 0, %f0, 0 + +#CHECK: fiebra %f0, 0, %f0, 0 # encoding: [0xb3,0x57,0x00,0x00] +#CHECK: fiebra %f0, 0, %f0, 15 # encoding: [0xb3,0x57,0x0f,0x00] +#CHECK: fiebra %f0, 0, %f15, 0 # encoding: [0xb3,0x57,0x00,0x0f] +#CHECK: fiebra %f0, 15, %f0, 0 # encoding: [0xb3,0x57,0xf0,0x00] +#CHECK: fiebra %f4, 5, %f6, 7 # encoding: [0xb3,0x57,0x57,0x46] +#CHECK: fiebra %f15, 0, %f0, 0 # encoding: [0xb3,0x57,0x00,0xf0] + + fiebra %f0, 0, %f0, 0 + fiebra %f0, 0, %f0, 15 + fiebra %f0, 0, %f15, 0 + fiebra %f0, 15, %f0, 0 + fiebra %f4, 5, %f6, 7 + fiebra %f15, 0, %f0, 0 + +#CHECK: fixbra %f0, 0, %f0, 0 # encoding: [0xb3,0x47,0x00,0x00] +#CHECK: fixbra %f0, 0, %f0, 15 # encoding: [0xb3,0x47,0x0f,0x00] +#CHECK: fixbra %f0, 0, %f13, 0 # encoding: [0xb3,0x47,0x00,0x0d] +#CHECK: fixbra %f0, 15, %f0, 0 # encoding: [0xb3,0x47,0xf0,0x00] +#CHECK: fixbra %f4, 5, %f8, 9 # encoding: [0xb3,0x47,0x59,0x48] +#CHECK: fixbra %f13, 0, %f0, 0 # encoding: [0xb3,0x47,0x00,0xd0] + + fixbra %f0, 0, %f0, 0 + fixbra %f0, 0, %f0, 15 + fixbra %f0, 0, %f13, 0 + fixbra %f0, 15, %f0, 0 + fixbra %f4, 5, %f8, 9 + fixbra %f13, 0, %f0, 0 + #CHECK: loc %r0, 0, 0 # encoding: [0xeb,0x00,0x00,0x00,0x00,0xf2] #CHECK: loc %r0, 0, 15 # encoding: [0xeb,0x0f,0x00,0x00,0x00,0xf2] #CHECK: loc %r0, -524288, 0 # encoding: [0xeb,0x00,0x00,0x00,0x80,0xf2] |