diff options
author | Richard Sandiford <rsandifo@linux.vnet.ibm.com> | 2013-08-23 11:36:42 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@linux.vnet.ibm.com> | 2013-08-23 11:36:42 +0000 |
commit | a550b51bac50493db75a7b5788a3f2c3b62fd913 (patch) | |
tree | 234c55a16d594496ca2d4c1f257bbbc90c8035bd /test/MC | |
parent | 35c93e4e42d7a35a90e89211fa62f478e25ba0a4 (diff) | |
download | external_llvm-a550b51bac50493db75a7b5788a3f2c3b62fd913.zip external_llvm-a550b51bac50493db75a7b5788a3f2c3b62fd913.tar.gz external_llvm-a550b51bac50493db75a7b5788a3f2c3b62fd913.tar.bz2 |
[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
Diffstat (limited to 'test/MC')
-rw-r--r-- | test/MC/Disassembler/SystemZ/insns-pcrel.txt | 32 | ||||
-rw-r--r-- | test/MC/Disassembler/SystemZ/insns.txt | 30 | ||||
-rw-r--r-- | test/MC/SystemZ/insn-bad.s | 34 | ||||
-rw-r--r-- | test/MC/SystemZ/insn-good.s | 59 |
4 files changed, 155 insertions, 0 deletions
diff --git a/test/MC/Disassembler/SystemZ/insns-pcrel.txt b/test/MC/Disassembler/SystemZ/insns-pcrel.txt index c565b6e..c250f19 100644 --- a/test/MC/Disassembler/SystemZ/insns-pcrel.txt +++ b/test/MC/Disassembler/SystemZ/insns-pcrel.txt @@ -1330,3 +1330,35 @@ # 0x0000077c: # CHECK: brctg %r15, 0x1077a 0xa7 0xf7 0x7f 0xff + +# 0x00000780: +# CHECK: pfdrl 0, 0x780 +0xc6 0x02 0x00 0x00 0x00 0x00 + +# 0x00000786: +# CHECK: pfdrl 15, 0x786 +0xc6 0xf2 0x00 0x00 0x00 0x00 + +# 0x0000078c: +# CHECK: pfdrl 0, 0x78a +0xc6 0x02 0xff 0xff 0xff 0xff + +# 0x00000792: +# CHECK: pfdrl 15, 0x790 +0xc6 0xf2 0xff 0xff 0xff 0xff + +# 0x00000798: +# CHECK: pfdrl 0, 0xffffffff00000798 +0xc6 0x02 0x80 0x00 0x00 0x00 + +# 0x0000079e: +# CHECK: pfdrl 15, 0xffffffff0000079e +0xc6 0xf2 0x80 0x00 0x00 0x00 + +# 0x000007a4: +# CHECK: pfdrl 0, 0x1000007a2 +0xc6 0x02 0x7f 0xff 0xff 0xff + +# 0x000007aa: +# CHECK: pfdrl 15, 0x1000007a8 +0xc6 0xf2 0x7f 0xff 0xff 0xff diff --git a/test/MC/Disassembler/SystemZ/insns.txt b/test/MC/Disassembler/SystemZ/insns.txt index 3f4f6c3..360785e 100644 --- a/test/MC/Disassembler/SystemZ/insns.txt +++ b/test/MC/Disassembler/SystemZ/insns.txt @@ -5329,6 +5329,36 @@ # CHECK: oy %r15, 0 0xe3 0xf0 0x00 0x00 0x00 0x56 +# CHECK: pfd 0, -524288 +0xe3 0x00 0x00 0x00 0x80 0x36 + +# CHECK: pfd 0, -1 +0xe3 0x00 0x0f 0xff 0xff 0x36 + +# CHECK: pfd 0, 0 +0xe3 0x00 0x00 0x00 0x00 0x36 + +# CHECK: pfd 0, 1 +0xe3 0x00 0x00 0x01 0x00 0x36 + +# CHECK: pfd 0, 524287 +0xe3 0x00 0x0f 0xff 0x7f 0x36 + +# CHECK: pfd 0, 0(%r1) +0xe3 0x00 0x10 0x00 0x00 0x36 + +# CHECK: pfd 0, 0(%r15) +0xe3 0x00 0xf0 0x00 0x00 0x36 + +# CHECK: pfd 0, 524287(%r1,%r15) +0xe3 0x01 0xff 0xff 0x7f 0x36 + +# CHECK: pfd 0, 524287(%r15,%r1) +0xe3 0x0f 0x1f 0xff 0x7f 0x36 + +# CHECK: pfd 15, 0 +0xe3 0xf0 0x00 0x00 0x00 0x36 + # CHECK: risbg %r0, %r0, 0, 0, 0 0xec 0x00 0x00 0x00 0x00 0x55 diff --git a/test/MC/SystemZ/insn-bad.s b/test/MC/SystemZ/insn-bad.s index aa3f4c9..1c478ca 100644 --- a/test/MC/SystemZ/insn-bad.s +++ b/test/MC/SystemZ/insn-bad.s @@ -2276,6 +2276,40 @@ oy %r0, 524288 #CHECK: error: invalid operand +#CHECK: pfd -1, 0 +#CHECK: error: invalid operand +#CHECK: pfd 16, 0 +#CHECK: error: invalid operand +#CHECK: pfd 1, -524289 +#CHECK: error: invalid operand +#CHECK: pfd 1, 524288 + + pfd -1, 0 + pfd 16, 0 + pfd 1, -524289 + pfd 1, 524288 + +#CHECK: error: invalid operand +#CHECK: pfdrl -1, 0 +#CHECK: error: invalid operand +#CHECK: pfdrl 16, 0 +#CHECK: error: offset out of range +#CHECK: pfdrl 1, -0x1000000002 +#CHECK: error: offset out of range +#CHECK: pfdrl 1, -1 +#CHECK: error: offset out of range +#CHECK: pfdrl 1, 1 +#CHECK: error: offset out of range +#CHECK: pfdrl 1, 0x100000000 + + pfdrl -1, 0 + pfdrl 16, 0 + pfdrl 1, -0x1000000002 + pfdrl 1, -1 + pfdrl 1, 1 + pfdrl 1, 0x100000000 + +#CHECK: error: invalid operand #CHECK: risbg %r0,%r0,0,0,-1 #CHECK: error: invalid operand #CHECK: risbg %r0,%r0,0,0,64 diff --git a/test/MC/SystemZ/insn-good.s b/test/MC/SystemZ/insn-good.s index 2c52d3a..9930d8c 100644 --- a/test/MC/SystemZ/insn-good.s +++ b/test/MC/SystemZ/insn-good.s @@ -6106,6 +6106,65 @@ oy %r0, 524287(%r15,%r1) oy %r15, 0 +#CHECK: pfd 0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x36] +#CHECK: pfd 0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x36] +#CHECK: pfd 0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x36] +#CHECK: pfd 0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x36] +#CHECK: pfd 0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x36] +#CHECK: pfd 0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x36] +#CHECK: pfd 0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x36] +#CHECK: pfd 0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x36] +#CHECK: pfd 0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x36] +#CHECK: pfd 15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x36] + + pfd 0, -524288 + pfd 0, -1 + pfd 0, 0 + pfd 0, 1 + pfd 0, 524287 + pfd 0, 0(%r1) + pfd 0, 0(%r15) + pfd 0, 524287(%r1,%r15) + pfd 0, 524287(%r15,%r1) + pfd 15, 0 + +#CHECK: pfdrl 0, .[[LAB:L.*]]-4294967296 # encoding: [0xc6,0x02,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (.[[LAB]]-4294967296)+2, kind: FK_390_PC32DBL + pfdrl 0, -0x100000000 +#CHECK: pfdrl 0, .[[LAB:L.*]]-2 # encoding: [0xc6,0x02,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (.[[LAB]]-2)+2, kind: FK_390_PC32DBL + pfdrl 0, -2 +#CHECK: pfdrl 0, .[[LAB:L.*]] # encoding: [0xc6,0x02,A,A,A,A] +#CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC32DBL + pfdrl 0, 0 +#CHECK: pfdrl 0, .[[LAB:L.*]]+4294967294 # encoding: [0xc6,0x02,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (.[[LAB]]+4294967294)+2, kind: FK_390_PC32DBL + pfdrl 0, 0xfffffffe + +#CHECK: pfdrl 0, foo # encoding: [0xc6,0x02,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: pfdrl 15, foo # encoding: [0xc6,0xf2,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL + + pfdrl 0, foo + pfdrl 15, foo + +#CHECK: pfdrl 3, bar+100 # encoding: [0xc6,0x32,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL +#CHECK: pfdrl 4, bar+100 # encoding: [0xc6,0x42,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL + + pfdrl 3, bar+100 + pfdrl 4, bar+100 + +#CHECK: pfdrl 7, frob@PLT # encoding: [0xc6,0x72,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL +#CHECK: pfdrl 8, frob@PLT # encoding: [0xc6,0x82,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL + + pfdrl 7, frob@PLT + pfdrl 8, frob@PLT + #CHECK: risbg %r0, %r0, 0, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x00,0x55] #CHECK: risbg %r0, %r0, 0, 0, 63 # encoding: [0xec,0x00,0x00,0x00,0x3f,0x55] #CHECK: risbg %r0, %r0, 0, 255, 0 # encoding: [0xec,0x00,0x00,0xff,0x00,0x55] |