History log of /external/llvm/test/MC/SystemZ/insn-bad.s
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
cd81d94322a39503e4a3e87b6ee03d4fcb3465fb 21-Jul-2014 Stephen Hines <srhines@google.com> Update LLVM for rebase to r212749.

Includes a cherry-pick of:
r212948 - fixes a small issue with atomic calls

Change-Id: Ib97bd980b59f18142a69506400911a6009d9df18
/external/llvm/test/MC/SystemZ/insn-bad.s
36b56886974eae4f9c5ebc96befd3e7bfe5de338 24-Apr-2014 Stephen Hines <srhines@google.com> Update to LLVM 3.5a.

Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/test/MC/SystemZ/insn-bad.s
541c5de2fb57b2f459f0ec49f33a0ecce3532acd 13-Nov-2013 Richard Sandiford <rsandifo@linux.vnet.ibm.com> [SystemZ] Add the general form of BCR

At the moment this is just the MC support.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194585 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/test/MC/SystemZ/insn-bad.s
e22c56d6d81b84d6f4ba24c2f5b0b203e7ddffe9 01-Oct-2013 Richard Sandiford <rsandifo@linux.vnet.ibm.com> [SystemZ] Add comparisons of high words and memory


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191777 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/test/MC/SystemZ/insn-bad.s
185ef05ad6fdcaad1e831020b1f88d0046dd15d6 01-Oct-2013 Richard Sandiford <rsandifo@linux.vnet.ibm.com> [SystemZ] Add comparisons of large immediates using high words

There are no corresponding patterns for small immediates because they would
prevent the use of fused compare-and-branch instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191775 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/test/MC/SystemZ/insn-bad.s
ad366a3f67679a56d25464dc2bcad3a0a6a51780 01-Oct-2013 Richard Sandiford <rsandifo@linux.vnet.ibm.com> [SystemZ] Add immediate addition involving high words


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191774 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/test/MC/SystemZ/insn-bad.s
9813dbf396e63f6d4fd99fe0f6651e831cb7414b 01-Oct-2013 Richard Sandiford <rsandifo@linux.vnet.ibm.com> [SystemZ] Add truncating high-word stores (STCH and STHH)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191743 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/test/MC/SystemZ/insn-bad.s
9a05f040e70494ab0092faa9ed10dc70ff1f4e66 01-Oct-2013 Richard Sandiford <rsandifo@linux.vnet.ibm.com> [SystemZ] Add zero-extending high-word loads (LLCH and LLHH)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191742 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/test/MC/SystemZ/insn-bad.s
ced450f0e6266eb8c2624fc1895cbc2749d715c3 01-Oct-2013 Richard Sandiford <rsandifo@linux.vnet.ibm.com> [SystemZ] Add sign-extending high-word loads (LBH and LHH)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191740 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/test/MC/SystemZ/insn-bad.s
7d0b89bedd5c8a53c71498663046b7e14bb96d6d 01-Oct-2013 Richard Sandiford <rsandifo@linux.vnet.ibm.com> [SystemZ] Reapply: Add definitions of LFH and STFH

Originally committed as r191661, but reverted because it changed the matching
order of comparisons on some hosts. That should have been fixed by r191735.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191738 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/test/MC/SystemZ/insn-bad.s
16658af535ed09169cb1079a474334dbf1cb8dc7 30-Sep-2013 Richard Sandiford <rsandifo@linux.vnet.ibm.com> [SystemZ] Revert r191661: Add definitions of LFH and STFH

For some reason, adding definitions for these load and store
instructions changed whether some of the build bots matched
comparisons as signed or unsigned.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191663 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/test/MC/SystemZ/insn-bad.s
e09bcad77c033392669b8d9cd3d93209064dfbc4 30-Sep-2013 Richard Sandiford <rsandifo@linux.vnet.ibm.com> [SystemZ] Add definitions of LFH and STFH


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191661 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/test/MC/SystemZ/insn-bad.s
e2d6f91d63a2e8cf77b07794cda7d9ef72504769 18-Sep-2013 Richard Sandiford <rsandifo@linux.vnet.ibm.com> [SystemZ] Add unsigned compare-and-branch instructions

For some reason I never got around to adding these at the same time as
the signed versions. No idea why.

I'm not sure whether this SystemZII::BranchC* stuff is useful, or whether
it should just be replaced with an "is normal" flag. I'll leave that
for later though.

There are some boundary conditions that can be tweaked, such as preferring
unsigned comparisons for equality with [128, 256), and "<= 255" over "< 256",
but again I'll leave those for a separate patch.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190930 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/test/MC/SystemZ/insn-bad.s
299fdd814f4c2850d44387d24c440980c5377d3e 10-Sep-2013 Richard Sandiford <rsandifo@linux.vnet.ibm.com> [SystemZ] Add TM and TMY

The main complication here is that TM and TMY (the memory forms) set
CC differently from the register forms. When the tested bits contain
some 0s and some 1s, the register forms set CC to 1 or 2 based on the
value the uppermost bit. The memory forms instead set CC to 1
regardless of the uppermost bit.

Until now, I've tried to make it so that a branch never tests for an
impossible CC value. E.g. NR only sets CC to 0 or 1, so branches on the
result will only test for 0 or 1. Originally I'd tried to do the same
thing for TM and TMY by using custom matching code in ISelDAGToDAG.
That ended up being very ugly though, and would have meant duplicating
some of the chain checks that the common isel code does.

I've therefore gone for the simpler alternative of adding an extra
operand to the TM DAG opcode to say whether a memory form would be OK.
This means that the inverse of a "TM;JE" is "TM;JNE" rather than the
more precise "TM;JNLE", just like the inverse of "TMLL;JE" is "TMLL;JNE".
I suppose that's arguably less confusing though...


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190400 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/test/MC/SystemZ/insn-bad.s
16277c4698f36a756c540fae326874774156aaed 05-Sep-2013 Richard Sandiford <rsandifo@linux.vnet.ibm.com> [SystemZ] Add NC, OC and XC

For now these are just used to handle scalar ANDs, ORs and XORs in which
all operands are memory.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190041 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/test/MC/SystemZ/insn-bad.s
477168192c98e1f75a5bc6db3d34a177f327bd34 28-Aug-2013 Richard Sandiford <rsandifo@linux.vnet.ibm.com> [SystemZ] Add support for TMHH, TMHL, TMLH and TMLL

For now just handles simple comparisons of an ANDed value with zero.
The CC value provides enough information to do any comparison for a
2-bit mask, and some nonzero comparisons with more populated masks,
but that's all future work.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189469 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/test/MC/SystemZ/insn-bad.s
a550b51bac50493db75a7b5788a3f2c3b62fd913 23-Aug-2013 Richard Sandiford <rsandifo@linux.vnet.ibm.com> [SystemZ] Add basic prefetch support

Just the instructions and intrinsics for now.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189100 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/test/MC/SystemZ/insn-bad.s
d954716e7567282ff6f3d25b4f404bae006eed04 21-Aug-2013 Richard Sandiford <rsandifo@linux.vnet.ibm.com> [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
/external/llvm/test/MC/SystemZ/insn-bad.s
e03a56d62fc623e2f72d623b816f91b293d5904b 12-Aug-2013 Richard Sandiford <rsandifo@linux.vnet.ibm.com> [SystemZ] Add a definition of the CLC instruction


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188162 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/test/MC/SystemZ/insn-bad.s
e0bbf7288c00c377a97a9d4bf5fb0bf20c44cd1c 07-Aug-2013 Richard Sandiford <rsandifo@linux.vnet.ibm.com> [SystemZ] Add floating-point load-and-test instructions

These instructions can also be used as comparisons with zero.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187882 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/test/MC/SystemZ/insn-bad.s
ccdf5cc7bc443726425dd1ad498d44768332d49c 05-Aug-2013 Richard Sandiford <rsandifo@linux.vnet.ibm.com> [SystemZ] Add definitions for BRCT and BRCTG


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187721 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/test/MC/SystemZ/insn-bad.s
0e4044c233d10596578df35bae2483fbe4e8a507 05-Aug-2013 Richard Sandiford <rsandifo@linux.vnet.ibm.com> [SystemZ] Add LOAD AND TEST instructions

Just the definitions and MC support. The next patch uses them for codegen.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187719 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/test/MC/SystemZ/insn-bad.s
f3068d02e5f55d7e69134c8f14aa21c4b9fde91a 31-Jul-2013 Richard Sandiford <rsandifo@linux.vnet.ibm.com> [SystemZ] Add RISBLG and RISBHG instruction definitions

The next patch will make use of RISBLG for codegen.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187490 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/test/MC/SystemZ/insn-bad.s
6dae7ae7659444efc2149852e366ba97d3a6e449 19-Jul-2013 Richard Sandiford <rsandifo@linux.vnet.ibm.com> [SystemZ] Add tests for ALHSIK and ALGHSIK

The insn definitions themselves crept into r186689, sorry.
This should be the last of the distinct-ops instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186690 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/test/MC/SystemZ/insn-bad.s
c7c7e1502a62123a5e54fe6ff7da490bf26d319e 19-Jul-2013 Richard Sandiford <rsandifo@linux.vnet.ibm.com> [SystemZ] Add ALRK, AGLRK, SLRK and SGLRK

Follows the same lines as r186686, but much more limited, since we only
use ADD LOGICAL for multi-i64 additions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186689 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/test/MC/SystemZ/insn-bad.s
70d3e71f2e44250594f1b6edd7bbbf8b945a4452 19-Jul-2013 Richard Sandiford <rsandifo@linux.vnet.ibm.com> [SystemZ] Add AHIK and AGHIK

I did these as a separate patch because it uses a slightly different
form of RIE layout.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186687 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/test/MC/SystemZ/insn-bad.s
dc05e0bff67f818e615a47e831ff92d65ee0ac64 19-Jul-2013 Richard Sandiford <rsandifo@linux.vnet.ibm.com> [SystemZ] Add ARK, AGRK, SRK and SGRK

The testsuite changes follow the same lines as for r186683.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186686 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/test/MC/SystemZ/insn-bad.s
52b2774577e07fbf804e4d647119578df4111f21 19-Jul-2013 Richard Sandiford <rsandifo@linux.vnet.ibm.com> [SystemZ] Add NGRK, OGRK and XGRK

Like r186683, but for 64 bits.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186685 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/test/MC/SystemZ/insn-bad.s
db92fb07169af6941dfe47439f9849d370f0eb0b 19-Jul-2013 Richard Sandiford <rsandifo@linux.vnet.ibm.com> [SystemZ] Add NRK, ORK and XRK

The atomic tests assume the two-operand forms, so I've restricted them to z10.

Running and-01.ll, or-01.ll and xor-01.ll for z196 as well as z10 shows why
using convertToThreeAddress() is better than exposing the three-operand forms
first and then converting back to two operands where possible (which is what
I'd originally tried). Using the three-operand form first stops us from
taking advantage of NG, OG and XG for spills.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186683 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/test/MC/SystemZ/insn-bad.s
eddfaad1ef9a208a8a9ee23c26fac4d980caa99a 19-Jul-2013 Richard Sandiford <rsandifo@linux.vnet.ibm.com> [SystemZ] Start adding z196 and zEC12 support

This first step just adds definitions for SLLK, SRLK and SRAK.
The next patch will actually make use of them during codegen.

insn-bad.s tests that some form of error is reported when using these
instructions on z10. More work is needed to get the "instruction requires:
distinct-ops" that we'd ideally like, so I've stubbed that part out for now.
I'll come back and make it mandatory once the necessary changes are in.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186680 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/test/MC/SystemZ/insn-bad.s
c25d21e05b76e9c542e3bea6a9a12a77772beb14 16-Jul-2013 Richard Sandiford <rsandifo@linux.vnet.ibm.com> [SystemZ] Add MC support for R[NOX]SBG

CodeGen support will come later.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186401 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/test/MC/SystemZ/insn-bad.s
3ee0673e4f5f0324ecd0a65507009b0748ed072c 11-Jul-2013 Richard Sandiford <rsandifo@linux.vnet.ibm.com> [SystemZ] Allow 8-bit operands to RISBG

RISBG has three 8-bit operands (I3, I4 and I5). I'd originally
restricted all three to 6 bits, since that's the only range we intended
to use at the time. However, the top bit of I4 acts as a "zero" flag for
RISBG, while the top bit of I3 acts as a "test" flag for RNSBG & co.
This patch therefore allows them to have the full 8-bit range.
I've left the fifth operand as a 6-bit value for now since the
upper 2 bits have no defined meaning.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186070 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/test/MC/SystemZ/insn-bad.s
9188443a2d35352c4e8a2cffd1b4d31d47843b26 02-Jul-2013 Richard Sandiford <rsandifo@linux.vnet.ibm.com> [SystemZ] Add the MVC instruction

This is the first use of D(L,B) addressing, which required a fair bit
of surgery. For that reason, the patch just adds the instruction
definition and the associated assembler and disassembler support.
A later patch will actually make use of it for codegen.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185433 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/test/MC/SystemZ/insn-bad.s
2d664abbfca8b9fa3d99e8a2f74bd52faf007f12 29-May-2013 Richard Sandiford <rsandifo@linux.vnet.ibm.com> [SystemZ] Immediate compare-and-branch support

This patch adds support for the CIJ and CGIJ instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182846 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/test/MC/SystemZ/insn-bad.s
d50bcb2162a529534da42748ab4a418bfc9aaf06 28-May-2013 Richard Sandiford <rsandifo@linux.vnet.ibm.com> [SystemZ] Register compare-and-branch support

This patch adds support for the CRJ and CGRJ instructions. Support for
the immediate forms will be a separate patch.

The architecture has a large number of comparison instructions. I think
it's generally better to concentrate on using the "best" comparison
instruction first and foremost, then only use something like CRJ if
CR really was the natual choice of comparison instruction. The patch
therefore opportunistically converts separate CR and BRC instructions
into a single CRJ while emitting instructions in ISelLowering.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182764 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/test/MC/SystemZ/insn-bad.s
f386961da34426d12de8558ad04ad7f22c71489a 24-May-2013 Richard Sandiford <rsandifo@linux.vnet.ibm.com> [SystemZ] Improve AsmParser register parsing

The idea is to make sure that:

(1) "register expected" is restricted to cases where ParseRegister()
is called and the token obviously isn't a register.

(2) "invalid register" is restricted to cases where a register-like "%..."
sequence is found, but the "..." makes no sense.

(3) the generic "invalid operand for instruction" is used in cases where
the wrong register type is used (GPR instead of FPR, etc.).

(4) the new "invalid register pair" is used if the register has the right type,
but is not a valid register pair.

Testing of (1)-(3) is now restricted to regs-bad.s. It uses a representative
instruction for each register class to make sure that only registers from
that class are accepted.

(4) is tested by both regs-bad.s (which checks all invalid register pairs)
and insn-bad.s (which tests one invalid pair for each instruction that
requires a pair).

While there, I changed "Number" to "Num" for consistency with the
operand class.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182643 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/test/MC/SystemZ/insn-bad.s
ddbf053a4cad58393a389f264c51923111eba3db 15-May-2013 Richard Sandiford <rsandifo@linux.vnet.ibm.com> [SystemZ] Make use of SUBTRACT HALFWORD

Thanks to Ulrich Weigand for noticing that this instruction was missing.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181893 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/test/MC/SystemZ/insn-bad.s
8580e79fba028e6d6085033617c0c566034cad54 15-May-2013 Richard Sandiford <rsandifo@linux.vnet.ibm.com> [SystemZ] Consolidate assembler tests into 4 big tests


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181878 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/test/MC/SystemZ/insn-bad.s