[SystemZ] Add unsigned compare-and-branch instructions
authorRichard Sandiford <rsandifo@linux.vnet.ibm.com>
Wed, 18 Sep 2013 09:56:40 +0000 (09:56 +0000)
committerRichard Sandiford <rsandifo@linux.vnet.ibm.com>
Wed, 18 Sep 2013 09:56:40 +0000 (09:56 +0000)
commite2d6f91d63a2e8cf77b07794cda7d9ef72504769
tree8aaa9c82d2ca65020e98eb5954302f1e01a81e2a
parent8634b0ee47be832fbf3fd6ceebb8ac9104106bc2
[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
33 files changed:
lib/Target/SystemZ/SystemZInstrInfo.cpp
lib/Target/SystemZ/SystemZInstrInfo.h
lib/Target/SystemZ/SystemZInstrInfo.td
lib/Target/SystemZ/SystemZLongBranch.cpp
lib/Target/SystemZ/SystemZOperands.td
test/CodeGen/SystemZ/Large/branch-range-09.py [new file with mode: 0644]
test/CodeGen/SystemZ/Large/branch-range-10.py [new file with mode: 0644]
test/CodeGen/SystemZ/Large/branch-range-11.py [new file with mode: 0644]
test/CodeGen/SystemZ/Large/branch-range-12.py [new file with mode: 0644]
test/CodeGen/SystemZ/atomicrmw-minmax-01.ll
test/CodeGen/SystemZ/atomicrmw-minmax-02.ll
test/CodeGen/SystemZ/atomicrmw-minmax-03.ll
test/CodeGen/SystemZ/atomicrmw-minmax-04.ll
test/CodeGen/SystemZ/branch-05.ll
test/CodeGen/SystemZ/branch-08.ll
test/CodeGen/SystemZ/branch-09.ll [new file with mode: 0644]
test/CodeGen/SystemZ/branch-10.ll [new file with mode: 0644]
test/CodeGen/SystemZ/cond-store-01.ll
test/CodeGen/SystemZ/cond-store-02.ll
test/CodeGen/SystemZ/cond-store-03.ll
test/CodeGen/SystemZ/cond-store-04.ll
test/CodeGen/SystemZ/cond-store-05.ll
test/CodeGen/SystemZ/cond-store-06.ll
test/CodeGen/SystemZ/int-cmp-03.ll
test/CodeGen/SystemZ/int-cmp-08.ll
test/CodeGen/SystemZ/int-cmp-10.ll
test/CodeGen/SystemZ/int-cmp-12.ll
test/CodeGen/SystemZ/int-cmp-20.ll
test/CodeGen/SystemZ/int-cmp-37.ll
test/CodeGen/SystemZ/int-cmp-40.ll
test/MC/Disassembler/SystemZ/insns-pcrel.txt
test/MC/SystemZ/insn-bad.s
test/MC/SystemZ/insn-good.s