diff options
author | Ulrich Weigand <ulrich.weigand@de.ibm.com> | 2013-05-06 16:20:58 +0000 |
---|---|---|
committer | Ulrich Weigand <ulrich.weigand@de.ibm.com> | 2013-05-06 16:20:58 +0000 |
commit | 097b88fff6c091e3ce314d1b5fe89ed3e691b261 (patch) | |
tree | bf8e4488e4f886cedc6a53d8bd0d9f7172949193 | |
parent | 25cf4ebd50ca150468ef51697ea3587cacb87460 (diff) |
[SystemZ] Add MC test cases
This adds all MC tests for the SystemZ target.
Patch by Richard Sandiford.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181206 91177308-0d34-0410-b5e6-96231b3b80d8
582 files changed, 9426 insertions, 0 deletions
diff --git a/test/MC/SystemZ/insn-a-01.s b/test/MC/SystemZ/insn-a-01.s new file mode 100644 index 0000000000..7bb94b31eb --- /dev/null +++ b/test/MC/SystemZ/insn-a-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: a %r0, 0 # encoding: [0x5a,0x00,0x00,0x00] +#CHECK: a %r0, 4095 # encoding: [0x5a,0x00,0x0f,0xff] +#CHECK: a %r0, 0(%r1) # encoding: [0x5a,0x00,0x10,0x00] +#CHECK: a %r0, 0(%r15) # encoding: [0x5a,0x00,0xf0,0x00] +#CHECK: a %r0, 4095(%r1,%r15) # encoding: [0x5a,0x01,0xff,0xff] +#CHECK: a %r0, 4095(%r15,%r1) # encoding: [0x5a,0x0f,0x1f,0xff] +#CHECK: a %r15, 0 # encoding: [0x5a,0xf0,0x00,0x00] + + a %r0, 0 + a %r0, 4095 + a %r0, 0(%r1) + a %r0, 0(%r15) + a %r0, 4095(%r1,%r15) + a %r0, 4095(%r15,%r1) + a %r15, 0 diff --git a/test/MC/SystemZ/insn-a-02.s b/test/MC/SystemZ/insn-a-02.s new file mode 100644 index 0000000000..9cc967e0ce --- /dev/null +++ b/test/MC/SystemZ/insn-a-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: a %r0, -1 +#CHECK: error: invalid operand +#CHECK: a %r0, 4096 + + a %r0, -1 + a %r0, 4096 diff --git a/test/MC/SystemZ/insn-adb-01.s b/test/MC/SystemZ/insn-adb-01.s new file mode 100644 index 0000000000..b54be60c6b --- /dev/null +++ b/test/MC/SystemZ/insn-adb-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: adb %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x1a] +#CHECK: adb %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x1a] +#CHECK: adb %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x1a] +#CHECK: adb %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x1a] +#CHECK: adb %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x1a] +#CHECK: adb %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x1a] +#CHECK: adb %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x1a] + + adb %f0, 0 + adb %f0, 4095 + adb %f0, 0(%r1) + adb %f0, 0(%r15) + adb %f0, 4095(%r1,%r15) + adb %f0, 4095(%r15,%r1) + adb %f15, 0 diff --git a/test/MC/SystemZ/insn-adb-02.s b/test/MC/SystemZ/insn-adb-02.s new file mode 100644 index 0000000000..ff97a51aff --- /dev/null +++ b/test/MC/SystemZ/insn-adb-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: adb %f0, -1 +#CHECK: error: invalid operand +#CHECK: adb %f0, 4096 + + adb %f0, -1 + adb %f0, 4096 diff --git a/test/MC/SystemZ/insn-adbr-01.s b/test/MC/SystemZ/insn-adbr-01.s new file mode 100644 index 0000000000..05724d2a6a --- /dev/null +++ b/test/MC/SystemZ/insn-adbr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: adbr %f0, %f0 # encoding: [0xb3,0x1a,0x00,0x00] +#CHECK: adbr %f0, %f15 # encoding: [0xb3,0x1a,0x00,0x0f] +#CHECK: adbr %f7, %f8 # encoding: [0xb3,0x1a,0x00,0x78] +#CHECK: adbr %f15, %f0 # encoding: [0xb3,0x1a,0x00,0xf0] + + adbr %f0, %f0 + adbr %f0, %f15 + adbr %f7, %f8 + adbr %f15, %f0 diff --git a/test/MC/SystemZ/insn-aeb-01.s b/test/MC/SystemZ/insn-aeb-01.s new file mode 100644 index 0000000000..b4268e5c72 --- /dev/null +++ b/test/MC/SystemZ/insn-aeb-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: aeb %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x0a] +#CHECK: aeb %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x0a] +#CHECK: aeb %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x0a] +#CHECK: aeb %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x0a] +#CHECK: aeb %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x0a] +#CHECK: aeb %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x0a] +#CHECK: aeb %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x0a] + + aeb %f0, 0 + aeb %f0, 4095 + aeb %f0, 0(%r1) + aeb %f0, 0(%r15) + aeb %f0, 4095(%r1,%r15) + aeb %f0, 4095(%r15,%r1) + aeb %f15, 0 diff --git a/test/MC/SystemZ/insn-aeb-02.s b/test/MC/SystemZ/insn-aeb-02.s new file mode 100644 index 0000000000..4fade8eceb --- /dev/null +++ b/test/MC/SystemZ/insn-aeb-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: aeb %f0, -1 +#CHECK: error: invalid operand +#CHECK: aeb %f0, 4096 + + aeb %f0, -1 + aeb %f0, 4096 diff --git a/test/MC/SystemZ/insn-aebr-01.s b/test/MC/SystemZ/insn-aebr-01.s new file mode 100644 index 0000000000..2147627e38 --- /dev/null +++ b/test/MC/SystemZ/insn-aebr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: aebr %f0, %f0 # encoding: [0xb3,0x0a,0x00,0x00] +#CHECK: aebr %f0, %f15 # encoding: [0xb3,0x0a,0x00,0x0f] +#CHECK: aebr %f7, %f8 # encoding: [0xb3,0x0a,0x00,0x78] +#CHECK: aebr %f15, %f0 # encoding: [0xb3,0x0a,0x00,0xf0] + + aebr %f0, %f0 + aebr %f0, %f15 + aebr %f7, %f8 + aebr %f15, %f0 diff --git a/test/MC/SystemZ/insn-afi-01.s b/test/MC/SystemZ/insn-afi-01.s new file mode 100644 index 0000000000..f9a911810c --- /dev/null +++ b/test/MC/SystemZ/insn-afi-01.s @@ -0,0 +1,15 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: afi %r0, -2147483648 # encoding: [0xc2,0x09,0x80,0x00,0x00,0x00] +#CHECK: afi %r0, -1 # encoding: [0xc2,0x09,0xff,0xff,0xff,0xff] +#CHECK: afi %r0, 0 # encoding: [0xc2,0x09,0x00,0x00,0x00,0x00] +#CHECK: afi %r0, 1 # encoding: [0xc2,0x09,0x00,0x00,0x00,0x01] +#CHECK: afi %r0, 2147483647 # encoding: [0xc2,0x09,0x7f,0xff,0xff,0xff] +#CHECK: afi %r15, 0 # encoding: [0xc2,0xf9,0x00,0x00,0x00,0x00] + + afi %r0, -1 << 31 + afi %r0, -1 + afi %r0, 0 + afi %r0, 1 + afi %r0, (1 << 31) - 1 + afi %r15, 0 diff --git a/test/MC/SystemZ/insn-afi-02.s b/test/MC/SystemZ/insn-afi-02.s new file mode 100644 index 0000000000..f848e196a9 --- /dev/null +++ b/test/MC/SystemZ/insn-afi-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: afi %r0, (-1 << 31) - 1 +#CHECK: error: invalid operand +#CHECK: afi %r0, (1 << 31) + + afi %r0, (-1 << 31) - 1 + afi %r0, (1 << 31) diff --git a/test/MC/SystemZ/insn-ag-01.s b/test/MC/SystemZ/insn-ag-01.s new file mode 100644 index 0000000000..63029d75e4 --- /dev/null +++ b/test/MC/SystemZ/insn-ag-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: ag %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x08] +#CHECK: ag %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x08] +#CHECK: ag %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x08] +#CHECK: ag %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x08] +#CHECK: ag %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x08] +#CHECK: ag %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x08] +#CHECK: ag %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x08] +#CHECK: ag %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x08] +#CHECK: ag %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x08] +#CHECK: ag %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x08] + + ag %r0, -524288 + ag %r0, -1 + ag %r0, 0 + ag %r0, 1 + ag %r0, 524287 + ag %r0, 0(%r1) + ag %r0, 0(%r15) + ag %r0, 524287(%r1,%r15) + ag %r0, 524287(%r15,%r1) + ag %r15, 0 diff --git a/test/MC/SystemZ/insn-ag-02.s b/test/MC/SystemZ/insn-ag-02.s new file mode 100644 index 0000000000..59694cd7d5 --- /dev/null +++ b/test/MC/SystemZ/insn-ag-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: ag %r0, -524289 +#CHECK: error: invalid operand +#CHECK: ag %r0, 524288 + + ag %r0, -524289 + ag %r0, 524288 diff --git a/test/MC/SystemZ/insn-agf-01.s b/test/MC/SystemZ/insn-agf-01.s new file mode 100644 index 0000000000..40a9858342 --- /dev/null +++ b/test/MC/SystemZ/insn-agf-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: agf %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x18] +#CHECK: agf %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x18] +#CHECK: agf %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x18] +#CHECK: agf %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x18] +#CHECK: agf %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x18] +#CHECK: agf %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x18] +#CHECK: agf %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x18] +#CHECK: agf %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x18] +#CHECK: agf %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x18] +#CHECK: agf %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x18] + + agf %r0, -524288 + agf %r0, -1 + agf %r0, 0 + agf %r0, 1 + agf %r0, 524287 + agf %r0, 0(%r1) + agf %r0, 0(%r15) + agf %r0, 524287(%r1,%r15) + agf %r0, 524287(%r15,%r1) + agf %r15, 0 diff --git a/test/MC/SystemZ/insn-agf-02.s b/test/MC/SystemZ/insn-agf-02.s new file mode 100644 index 0000000000..dee31dc1d5 --- /dev/null +++ b/test/MC/SystemZ/insn-agf-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: agf %r0, -524289 +#CHECK: error: invalid operand +#CHECK: agf %r0, 524288 + + agf %r0, -524289 + agf %r0, 524288 diff --git a/test/MC/SystemZ/insn-agfi-01.s b/test/MC/SystemZ/insn-agfi-01.s new file mode 100644 index 0000000000..a64721ddd1 --- /dev/null +++ b/test/MC/SystemZ/insn-agfi-01.s @@ -0,0 +1,15 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: agfi %r0, -2147483648 # encoding: [0xc2,0x08,0x80,0x00,0x00,0x00] +#CHECK: agfi %r0, -1 # encoding: [0xc2,0x08,0xff,0xff,0xff,0xff] +#CHECK: agfi %r0, 0 # encoding: [0xc2,0x08,0x00,0x00,0x00,0x00] +#CHECK: agfi %r0, 1 # encoding: [0xc2,0x08,0x00,0x00,0x00,0x01] +#CHECK: agfi %r0, 2147483647 # encoding: [0xc2,0x08,0x7f,0xff,0xff,0xff] +#CHECK: agfi %r15, 0 # encoding: [0xc2,0xf8,0x00,0x00,0x00,0x00] + + agfi %r0, -1 << 31 + agfi %r0, -1 + agfi %r0, 0 + agfi %r0, 1 + agfi %r0, (1 << 31) - 1 + agfi %r15, 0 diff --git a/test/MC/SystemZ/insn-agfi-02.s b/test/MC/SystemZ/insn-agfi-02.s new file mode 100644 index 0000000000..1db3eaae0b --- /dev/null +++ b/test/MC/SystemZ/insn-agfi-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: agfi %r0, (-1 << 31) - 1 +#CHECK: error: invalid operand +#CHECK: agfi %r0, (1 << 31) + + agfi %r0, (-1 << 31) - 1 + agfi %r0, (1 << 31) diff --git a/test/MC/SystemZ/insn-agfr-01.s b/test/MC/SystemZ/insn-agfr-01.s new file mode 100644 index 0000000000..cd17db95f9 --- /dev/null +++ b/test/MC/SystemZ/insn-agfr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: agfr %r0, %r0 # encoding: [0xb9,0x18,0x00,0x00] +#CHECK: agfr %r0, %r15 # encoding: [0xb9,0x18,0x00,0x0f] +#CHECK: agfr %r15, %r0 # encoding: [0xb9,0x18,0x00,0xf0] +#CHECK: agfr %r7, %r8 # encoding: [0xb9,0x18,0x00,0x78] + + agfr %r0,%r0 + agfr %r0,%r15 + agfr %r15,%r0 + agfr %r7,%r8 diff --git a/test/MC/SystemZ/insn-aghi-01.s b/test/MC/SystemZ/insn-aghi-01.s new file mode 100644 index 0000000000..cd77c355d2 --- /dev/null +++ b/test/MC/SystemZ/insn-aghi-01.s @@ -0,0 +1,15 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: aghi %r0, -32768 # encoding: [0xa7,0x0b,0x80,0x00] +#CHECK: aghi %r0, -1 # encoding: [0xa7,0x0b,0xff,0xff] +#CHECK: aghi %r0, 0 # encoding: [0xa7,0x0b,0x00,0x00] +#CHECK: aghi %r0, 1 # encoding: [0xa7,0x0b,0x00,0x01] +#CHECK: aghi %r0, 32767 # encoding: [0xa7,0x0b,0x7f,0xff] +#CHECK: aghi %r15, 0 # encoding: [0xa7,0xfb,0x00,0x00] + + aghi %r0, -32768 + aghi %r0, -1 + aghi %r0, 0 + aghi %r0, 1 + aghi %r0, 32767 + aghi %r15, 0 diff --git a/test/MC/SystemZ/insn-aghi-02.s b/test/MC/SystemZ/insn-aghi-02.s new file mode 100644 index 0000000000..e2657c6869 --- /dev/null +++ b/test/MC/SystemZ/insn-aghi-02.s @@ -0,0 +1,13 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: aghi %r0, -32769 +#CHECK: error: invalid operand +#CHECK: aghi %r0, 32768 +#CHECK: error: invalid operand +#CHECK: aghi %r0, foo + + aghi %r0, -32769 + aghi %r0, 32768 + aghi %r0, foo diff --git a/test/MC/SystemZ/insn-agr-01.s b/test/MC/SystemZ/insn-agr-01.s new file mode 100644 index 0000000000..a84ff3d226 --- /dev/null +++ b/test/MC/SystemZ/insn-agr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: agr %r0, %r0 # encoding: [0xb9,0x08,0x00,0x00] +#CHECK: agr %r0, %r15 # encoding: [0xb9,0x08,0x00,0x0f] +#CHECK: agr %r15, %r0 # encoding: [0xb9,0x08,0x00,0xf0] +#CHECK: agr %r7, %r8 # encoding: [0xb9,0x08,0x00,0x78] + + agr %r0,%r0 + agr %r0,%r15 + agr %r15,%r0 + agr %r7,%r8 diff --git a/test/MC/SystemZ/insn-agsi-01.s b/test/MC/SystemZ/insn-agsi-01.s new file mode 100644 index 0000000000..9b2fe4b80e --- /dev/null +++ b/test/MC/SystemZ/insn-agsi-01.s @@ -0,0 +1,29 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: agsi -524288, 0 # encoding: [0xeb,0x00,0x00,0x00,0x80,0x7a] +#CHECK: agsi -1, 0 # encoding: [0xeb,0x00,0x0f,0xff,0xff,0x7a] +#CHECK: agsi 0, 0 # encoding: [0xeb,0x00,0x00,0x00,0x00,0x7a] +#CHECK: agsi 1, 0 # encoding: [0xeb,0x00,0x00,0x01,0x00,0x7a] +#CHECK: agsi 524287, 0 # encoding: [0xeb,0x00,0x0f,0xff,0x7f,0x7a] +#CHECK: agsi 0, -128 # encoding: [0xeb,0x80,0x00,0x00,0x00,0x7a] +#CHECK: agsi 0, -1 # encoding: [0xeb,0xff,0x00,0x00,0x00,0x7a] +#CHECK: agsi 0, 1 # encoding: [0xeb,0x01,0x00,0x00,0x00,0x7a] +#CHECK: agsi 0, 127 # encoding: [0xeb,0x7f,0x00,0x00,0x00,0x7a] +#CHECK: agsi 0(%r1), 42 # encoding: [0xeb,0x2a,0x10,0x00,0x00,0x7a] +#CHECK: agsi 0(%r15), 42 # encoding: [0xeb,0x2a,0xf0,0x00,0x00,0x7a] +#CHECK: agsi 524287(%r1), 42 # encoding: [0xeb,0x2a,0x1f,0xff,0x7f,0x7a] +#CHECK: agsi 524287(%r15), 42 # encoding: [0xeb,0x2a,0xff,0xff,0x7f,0x7a] + + agsi -524288, 0 + agsi -1, 0 + agsi 0, 0 + agsi 1, 0 + agsi 524287, 0 + agsi 0, -128 + agsi 0, -1 + agsi 0, 1 + agsi 0, 127 + agsi 0(%r1), 42 + agsi 0(%r15), 42 + agsi 524287(%r1), 42 + agsi 524287(%r15), 42 diff --git a/test/MC/SystemZ/insn-agsi-02.s b/test/MC/SystemZ/insn-agsi-02.s new file mode 100644 index 0000000000..a4b3d9a888 --- /dev/null +++ b/test/MC/SystemZ/insn-agsi-02.s @@ -0,0 +1,19 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: agsi -524289, 0 +#CHECK: error: invalid operand +#CHECK: agsi 524288, 0 +#CHECK: error: invalid use of indexed addressing +#CHECK: agsi 0(%r1,%r2), 0 +#CHECK: error: invalid operand +#CHECK: agsi 0, -129 +#CHECK: error: invalid operand +#CHECK: agsi 0, 128 + + agsi -524289, 0 + agsi 524288, 0 + agsi 0(%r1,%r2), 0 + agsi 0, -129 + agsi 0, 128 diff --git a/test/MC/SystemZ/insn-ah-01.s b/test/MC/SystemZ/insn-ah-01.s new file mode 100644 index 0000000000..35012f0678 --- /dev/null +++ b/test/MC/SystemZ/insn-ah-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: ah %r0, 0 # encoding: [0x4a,0x00,0x00,0x00] +#CHECK: ah %r0, 4095 # encoding: [0x4a,0x00,0x0f,0xff] +#CHECK: ah %r0, 0(%r1) # encoding: [0x4a,0x00,0x10,0x00] +#CHECK: ah %r0, 0(%r15) # encoding: [0x4a,0x00,0xf0,0x00] +#CHECK: ah %r0, 4095(%r1,%r15) # encoding: [0x4a,0x01,0xff,0xff] +#CHECK: ah %r0, 4095(%r15,%r1) # encoding: [0x4a,0x0f,0x1f,0xff] +#CHECK: ah %r15, 0 # encoding: [0x4a,0xf0,0x00,0x00] + + ah %r0, 0 + ah %r0, 4095 + ah %r0, 0(%r1) + ah %r0, 0(%r15) + ah %r0, 4095(%r1,%r15) + ah %r0, 4095(%r15,%r1) + ah %r15, 0 diff --git a/test/MC/SystemZ/insn-ah-02.s b/test/MC/SystemZ/insn-ah-02.s new file mode 100644 index 0000000000..1a20cd715f --- /dev/null +++ b/test/MC/SystemZ/insn-ah-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: ah %r0, -1 +#CHECK: error: invalid operand +#CHECK: ah %r0, 4096 + + ah %r0, -1 + ah %r0, 4096 diff --git a/test/MC/SystemZ/insn-ahi-01.s b/test/MC/SystemZ/insn-ahi-01.s new file mode 100644 index 0000000000..e0a5fb389e --- /dev/null +++ b/test/MC/SystemZ/insn-ahi-01.s @@ -0,0 +1,15 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: ahi %r0, -32768 # encoding: [0xa7,0x0a,0x80,0x00] +#CHECK: ahi %r0, -1 # encoding: [0xa7,0x0a,0xff,0xff] +#CHECK: ahi %r0, 0 # encoding: [0xa7,0x0a,0x00,0x00] +#CHECK: ahi %r0, 1 # encoding: [0xa7,0x0a,0x00,0x01] +#CHECK: ahi %r0, 32767 # encoding: [0xa7,0x0a,0x7f,0xff] +#CHECK: ahi %r15, 0 # encoding: [0xa7,0xfa,0x00,0x00] + + ahi %r0, -32768 + ahi %r0, -1 + ahi %r0, 0 + ahi %r0, 1 + ahi %r0, 32767 + ahi %r15, 0 diff --git a/test/MC/SystemZ/insn-ahi-02.s b/test/MC/SystemZ/insn-ahi-02.s new file mode 100644 index 0000000000..d41e2da2a2 --- /dev/null +++ b/test/MC/SystemZ/insn-ahi-02.s @@ -0,0 +1,13 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: ahi %r0, -32769 +#CHECK: error: invalid operand +#CHECK: ahi %r0, 32768 +#CHECK: error: invalid operand +#CHECK: ahi %r0, foo + + ahi %r0, -32769 + ahi %r0, 32768 + ahi %r0, foo diff --git a/test/MC/SystemZ/insn-ahy-01.s b/test/MC/SystemZ/insn-ahy-01.s new file mode 100644 index 0000000000..ff25dc503c --- /dev/null +++ b/test/MC/SystemZ/insn-ahy-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: ahy %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x7a] +#CHECK: ahy %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x7a] +#CHECK: ahy %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x7a] +#CHECK: ahy %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x7a] +#CHECK: ahy %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x7a] +#CHECK: ahy %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x7a] +#CHECK: ahy %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x7a] +#CHECK: ahy %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x7a] +#CHECK: ahy %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x7a] +#CHECK: ahy %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x7a] + + ahy %r0, -524288 + ahy %r0, -1 + ahy %r0, 0 + ahy %r0, 1 + ahy %r0, 524287 + ahy %r0, 0(%r1) + ahy %r0, 0(%r15) + ahy %r0, 524287(%r1,%r15) + ahy %r0, 524287(%r15,%r1) + ahy %r15, 0 diff --git a/test/MC/SystemZ/insn-ahy-02.s b/test/MC/SystemZ/insn-ahy-02.s new file mode 100644 index 0000000000..e725e146df --- /dev/null +++ b/test/MC/SystemZ/insn-ahy-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: ahy %r0, -524289 +#CHECK: error: invalid operand +#CHECK: ahy %r0, 524288 + + ahy %r0, -524289 + ahy %r0, 524288 diff --git a/test/MC/SystemZ/insn-al-01.s b/test/MC/SystemZ/insn-al-01.s new file mode 100644 index 0000000000..1efc33f0e9 --- /dev/null +++ b/test/MC/SystemZ/insn-al-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: al %r0, 0 # encoding: [0x5e,0x00,0x00,0x00] +#CHECK: al %r0, 4095 # encoding: [0x5e,0x00,0x0f,0xff] +#CHECK: al %r0, 0(%r1) # encoding: [0x5e,0x00,0x10,0x00] +#CHECK: al %r0, 0(%r15) # encoding: [0x5e,0x00,0xf0,0x00] +#CHECK: al %r0, 4095(%r1,%r15) # encoding: [0x5e,0x01,0xff,0xff] +#CHECK: al %r0, 4095(%r15,%r1) # encoding: [0x5e,0x0f,0x1f,0xff] +#CHECK: al %r15, 0 # encoding: [0x5e,0xf0,0x00,0x00] + + al %r0, 0 + al %r0, 4095 + al %r0, 0(%r1) + al %r0, 0(%r15) + al %r0, 4095(%r1,%r15) + al %r0, 4095(%r15,%r1) + al %r15, 0 diff --git a/test/MC/SystemZ/insn-al-02.s b/test/MC/SystemZ/insn-al-02.s new file mode 100644 index 0000000000..39b1b06a1b --- /dev/null +++ b/test/MC/SystemZ/insn-al-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: al %r0, -1 +#CHECK: error: invalid operand +#CHECK: al %r0, 4096 + + al %r0, -1 + al %r0, 4096 diff --git a/test/MC/SystemZ/insn-alc-01.s b/test/MC/SystemZ/insn-alc-01.s new file mode 100644 index 0000000000..5f8be6a7d5 --- /dev/null +++ b/test/MC/SystemZ/insn-alc-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: alc %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x98] +#CHECK: alc %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x98] +#CHECK: alc %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x98] +#CHECK: alc %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x98] +#CHECK: alc %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x98] +#CHECK: alc %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x98] +#CHECK: alc %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x98] +#CHECK: alc %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x98] +#CHECK: alc %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x98] +#CHECK: alc %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x98] + + alc %r0, -524288 + alc %r0, -1 + alc %r0, 0 + alc %r0, 1 + alc %r0, 524287 + alc %r0, 0(%r1) + alc %r0, 0(%r15) + alc %r0, 524287(%r1,%r15) + alc %r0, 524287(%r15,%r1) + alc %r15, 0 diff --git a/test/MC/SystemZ/insn-alc-02.s b/test/MC/SystemZ/insn-alc-02.s new file mode 100644 index 0000000000..9c082f2dfb --- /dev/null +++ b/test/MC/SystemZ/insn-alc-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: alc %r0, -524289 +#CHECK: error: invalid operand +#CHECK: alc %r0, 524288 + + alc %r0, -524289 + alc %r0, 524288 diff --git a/test/MC/SystemZ/insn-alcg-01.s b/test/MC/SystemZ/insn-alcg-01.s new file mode 100644 index 0000000000..c05207ec9e --- /dev/null +++ b/test/MC/SystemZ/insn-alcg-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: alcg %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x88] +#CHECK: alcg %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x88] +#CHECK: alcg %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x88] +#CHECK: alcg %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x88] +#CHECK: alcg %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x88] +#CHECK: alcg %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x88] +#CHECK: alcg %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x88] +#CHECK: alcg %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x88] +#CHECK: alcg %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x88] +#CHECK: alcg %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x88] + + alcg %r0, -524288 + alcg %r0, -1 + alcg %r0, 0 + alcg %r0, 1 + alcg %r0, 524287 + alcg %r0, 0(%r1) + alcg %r0, 0(%r15) + alcg %r0, 524287(%r1,%r15) + alcg %r0, 524287(%r15,%r1) + alcg %r15, 0 diff --git a/test/MC/SystemZ/insn-alcg-02.s b/test/MC/SystemZ/insn-alcg-02.s new file mode 100644 index 0000000000..3dab6ddc5d --- /dev/null +++ b/test/MC/SystemZ/insn-alcg-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: alcg %r0, -524289 +#CHECK: error: invalid operand +#CHECK: alcg %r0, 524288 + + alcg %r0, -524289 + alcg %r0, 524288 diff --git a/test/MC/SystemZ/insn-alcgr-01.s b/test/MC/SystemZ/insn-alcgr-01.s new file mode 100644 index 0000000000..c9f3ce2934 --- /dev/null +++ b/test/MC/SystemZ/insn-alcgr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: alcgr %r0, %r0 # encoding: [0xb9,0x88,0x00,0x00] +#CHECK: alcgr %r0, %r15 # encoding: [0xb9,0x88,0x00,0x0f] +#CHECK: alcgr %r15, %r0 # encoding: [0xb9,0x88,0x00,0xf0] +#CHECK: alcgr %r7, %r8 # encoding: [0xb9,0x88,0x00,0x78] + + alcgr %r0,%r0 + alcgr %r0,%r15 + alcgr %r15,%r0 + alcgr %r7,%r8 diff --git a/test/MC/SystemZ/insn-alcr-01.s b/test/MC/SystemZ/insn-alcr-01.s new file mode 100644 index 0000000000..7369224a1b --- /dev/null +++ b/test/MC/SystemZ/insn-alcr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: alcr %r0, %r0 # encoding: [0xb9,0x98,0x00,0x00] +#CHECK: alcr %r0, %r15 # encoding: [0xb9,0x98,0x00,0x0f] +#CHECK: alcr %r15, %r0 # encoding: [0xb9,0x98,0x00,0xf0] +#CHECK: alcr %r7, %r8 # encoding: [0xb9,0x98,0x00,0x78] + + alcr %r0,%r0 + alcr %r0,%r15 + alcr %r15,%r0 + alcr %r7,%r8 diff --git a/test/MC/SystemZ/insn-alfi-01.s b/test/MC/SystemZ/insn-alfi-01.s new file mode 100644 index 0000000000..332a74fdc7 --- /dev/null +++ b/test/MC/SystemZ/insn-alfi-01.s @@ -0,0 +1,9 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: alfi %r0, 0 # encoding: [0xc2,0x0b,0x00,0x00,0x00,0x00] +#CHECK: alfi %r0, 4294967295 # encoding: [0xc2,0x0b,0xff,0xff,0xff,0xff] +#CHECK: alfi %r15, 0 # encoding: [0xc2,0xfb,0x00,0x00,0x00,0x00] + + alfi %r0, 0 + alfi %r0, (1 << 32) - 1 + alfi %r15, 0 diff --git a/test/MC/SystemZ/insn-alfi-02.s b/test/MC/SystemZ/insn-alfi-02.s new file mode 100644 index 0000000000..a5d3894225 --- /dev/null +++ b/test/MC/SystemZ/insn-alfi-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: alfi %r0, -1 +#CHECK: error: invalid operand +#CHECK: alfi %r0, (1 << 32) + + alfi %r0, -1 + alfi %r0, (1 << 32) diff --git a/test/MC/SystemZ/insn-alg-01.s b/test/MC/SystemZ/insn-alg-01.s new file mode 100644 index 0000000000..6df084c02b --- /dev/null +++ b/test/MC/SystemZ/insn-alg-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: alg %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x0a] +#CHECK: alg %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x0a] +#CHECK: alg %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x0a] +#CHECK: alg %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x0a] +#CHECK: alg %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x0a] +#CHECK: alg %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x0a] +#CHECK: alg %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x0a] +#CHECK: alg %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x0a] +#CHECK: alg %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x0a] +#CHECK: alg %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x0a] + + alg %r0, -524288 + alg %r0, -1 + alg %r0, 0 + alg %r0, 1 + alg %r0, 524287 + alg %r0, 0(%r1) + alg %r0, 0(%r15) + alg %r0, 524287(%r1,%r15) + alg %r0, 524287(%r15,%r1) + alg %r15, 0 diff --git a/test/MC/SystemZ/insn-alg-02.s b/test/MC/SystemZ/insn-alg-02.s new file mode 100644 index 0000000000..407d73d2bd --- /dev/null +++ b/test/MC/SystemZ/insn-alg-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: alg %r0, -524289 +#CHECK: error: invalid operand +#CHECK: alg %r0, 524288 + + alg %r0, -524289 + alg %r0, 524288 diff --git a/test/MC/SystemZ/insn-algf-01.s b/test/MC/SystemZ/insn-algf-01.s new file mode 100644 index 0000000000..751b59059f --- /dev/null +++ b/test/MC/SystemZ/insn-algf-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: algf %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x1a] +#CHECK: algf %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x1a] +#CHECK: algf %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x1a] +#CHECK: algf %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x1a] +#CHECK: algf %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x1a] +#CHECK: algf %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x1a] +#CHECK: algf %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x1a] +#CHECK: algf %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x1a] +#CHECK: algf %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x1a] +#CHECK: algf %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x1a] + + algf %r0, -524288 + algf %r0, -1 + algf %r0, 0 + algf %r0, 1 + algf %r0, 524287 + algf %r0, 0(%r1) + algf %r0, 0(%r15) + algf %r0, 524287(%r1,%r15) + algf %r0, 524287(%r15,%r1) + algf %r15, 0 diff --git a/test/MC/SystemZ/insn-algf-02.s b/test/MC/SystemZ/insn-algf-02.s new file mode 100644 index 0000000000..64ef1c975b --- /dev/null +++ b/test/MC/SystemZ/insn-algf-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: algf %r0, -524289 +#CHECK: error: invalid operand +#CHECK: algf %r0, 524288 + + algf %r0, -524289 + algf %r0, 524288 diff --git a/test/MC/SystemZ/insn-algfi-01.s b/test/MC/SystemZ/insn-algfi-01.s new file mode 100644 index 0000000000..b6ccb336b3 --- /dev/null +++ b/test/MC/SystemZ/insn-algfi-01.s @@ -0,0 +1,9 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: algfi %r0, 0 # encoding: [0xc2,0x0a,0x00,0x00,0x00,0x00] +#CHECK: algfi %r0, 4294967295 # encoding: [0xc2,0x0a,0xff,0xff,0xff,0xff] +#CHECK: algfi %r15, 0 # encoding: [0xc2,0xfa,0x00,0x00,0x00,0x00] + + algfi %r0, 0 + algfi %r0, (1 << 32) - 1 + algfi %r15, 0 diff --git a/test/MC/SystemZ/insn-algfi-02.s b/test/MC/SystemZ/insn-algfi-02.s new file mode 100644 index 0000000000..a5ed4b04e5 --- /dev/null +++ b/test/MC/SystemZ/insn-algfi-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: algfi %r0, -1 +#CHECK: error: invalid operand +#CHECK: algfi %r0, (1 << 32) + + algfi %r0, -1 + algfi %r0, (1 << 32) diff --git a/test/MC/SystemZ/insn-algfr-01.s b/test/MC/SystemZ/insn-algfr-01.s new file mode 100644 index 0000000000..3ccb692ab9 --- /dev/null +++ b/test/MC/SystemZ/insn-algfr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: algfr %r0, %r0 # encoding: [0xb9,0x1a,0x00,0x00] +#CHECK: algfr %r0, %r15 # encoding: [0xb9,0x1a,0x00,0x0f] +#CHECK: algfr %r15, %r0 # encoding: [0xb9,0x1a,0x00,0xf0] +#CHECK: algfr %r7, %r8 # encoding: [0xb9,0x1a,0x00,0x78] + + algfr %r0,%r0 + algfr %r0,%r15 + algfr %r15,%r0 + algfr %r7,%r8 diff --git a/test/MC/SystemZ/insn-algr-01.s b/test/MC/SystemZ/insn-algr-01.s new file mode 100644 index 0000000000..c3758ee74d --- /dev/null +++ b/test/MC/SystemZ/insn-algr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: algr %r0, %r0 # encoding: [0xb9,0x0a,0x00,0x00] +#CHECK: algr %r0, %r15 # encoding: [0xb9,0x0a,0x00,0x0f] +#CHECK: algr %r15, %r0 # encoding: [0xb9,0x0a,0x00,0xf0] +#CHECK: algr %r7, %r8 # encoding: [0xb9,0x0a,0x00,0x78] + + algr %r0,%r0 + algr %r0,%r15 + algr %r15,%r0 + algr %r7,%r8 diff --git a/test/MC/SystemZ/insn-alr-01.s b/test/MC/SystemZ/insn-alr-01.s new file mode 100644 index 0000000000..e85173ef15 --- /dev/null +++ b/test/MC/SystemZ/insn-alr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: alr %r0, %r0 # encoding: [0x1e,0x00] +#CHECK: alr %r0, %r15 # encoding: [0x1e,0x0f] +#CHECK: alr %r15, %r0 # encoding: [0x1e,0xf0] +#CHECK: alr %r7, %r8 # encoding: [0x1e,0x78] + + alr %r0,%r0 + alr %r0,%r15 + alr %r15,%r0 + alr %r7,%r8 diff --git a/test/MC/SystemZ/insn-aly-01.s b/test/MC/SystemZ/insn-aly-01.s new file mode 100644 index 0000000000..94afb07578 --- /dev/null +++ b/test/MC/SystemZ/insn-aly-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: aly %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x5e] +#CHECK: aly %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x5e] +#CHECK: aly %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x5e] +#CHECK: aly %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x5e] +#CHECK: aly %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x5e] +#CHECK: aly %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x5e] +#CHECK: aly %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x5e] +#CHECK: aly %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x5e] +#CHECK: aly %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x5e] +#CHECK: aly %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x5e] + + aly %r0, -524288 + aly %r0, -1 + aly %r0, 0 + aly %r0, 1 + aly %r0, 524287 + aly %r0, 0(%r1) + aly %r0, 0(%r15) + aly %r0, 524287(%r1,%r15) + aly %r0, 524287(%r15,%r1) + aly %r15, 0 diff --git a/test/MC/SystemZ/insn-aly-02.s b/test/MC/SystemZ/insn-aly-02.s new file mode 100644 index 0000000000..01c6f3dcdd --- /dev/null +++ b/test/MC/SystemZ/insn-aly-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: aly %r0, -524289 +#CHECK: error: invalid operand +#CHECK: aly %r0, 524288 + + aly %r0, -524289 + aly %r0, 524288 diff --git a/test/MC/SystemZ/insn-ar-01.s b/test/MC/SystemZ/insn-ar-01.s new file mode 100644 index 0000000000..7cd627a170 --- /dev/null +++ b/test/MC/SystemZ/insn-ar-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: ar %r0, %r0 # encoding: [0x1a,0x00] +#CHECK: ar %r0, %r15 # encoding: [0x1a,0x0f] +#CHECK: ar %r15, %r0 # encoding: [0x1a,0xf0] +#CHECK: ar %r7, %r8 # encoding: [0x1a,0x78] + + ar %r0,%r0 + ar %r0,%r15 + ar %r15,%r0 + ar %r7,%r8 diff --git a/test/MC/SystemZ/insn-asi-01.s b/test/MC/SystemZ/insn-asi-01.s new file mode 100644 index 0000000000..7a1d241e23 --- /dev/null +++ b/test/MC/SystemZ/insn-asi-01.s @@ -0,0 +1,29 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: asi -524288, 0 # encoding: [0xeb,0x00,0x00,0x00,0x80,0x6a] +#CHECK: asi -1, 0 # encoding: [0xeb,0x00,0x0f,0xff,0xff,0x6a] +#CHECK: asi 0, 0 # encoding: [0xeb,0x00,0x00,0x00,0x00,0x6a] +#CHECK: asi 1, 0 # encoding: [0xeb,0x00,0x00,0x01,0x00,0x6a] +#CHECK: asi 524287, 0 # encoding: [0xeb,0x00,0x0f,0xff,0x7f,0x6a] +#CHECK: asi 0, -128 # encoding: [0xeb,0x80,0x00,0x00,0x00,0x6a] +#CHECK: asi 0, -1 # encoding: [0xeb,0xff,0x00,0x00,0x00,0x6a] +#CHECK: asi 0, 1 # encoding: [0xeb,0x01,0x00,0x00,0x00,0x6a] +#CHECK: asi 0, 127 # encoding: [0xeb,0x7f,0x00,0x00,0x00,0x6a] +#CHECK: asi 0(%r1), 42 # encoding: [0xeb,0x2a,0x10,0x00,0x00,0x6a] +#CHECK: asi 0(%r15), 42 # encoding: [0xeb,0x2a,0xf0,0x00,0x00,0x6a] +#CHECK: asi 524287(%r1), 42 # encoding: [0xeb,0x2a,0x1f,0xff,0x7f,0x6a] +#CHECK: asi 524287(%r15), 42 # encoding: [0xeb,0x2a,0xff,0xff,0x7f,0x6a] + + asi -524288, 0 + asi -1, 0 + asi 0, 0 + asi 1, 0 + asi 524287, 0 + asi 0, -128 + asi 0, -1 + asi 0, 1 + asi 0, 127 + asi 0(%r1), 42 + asi 0(%r15), 42 + asi 524287(%r1), 42 + asi 524287(%r15), 42 diff --git a/test/MC/SystemZ/insn-asi-02.s b/test/MC/SystemZ/insn-asi-02.s new file mode 100644 index 0000000000..3c09f90503 --- /dev/null +++ b/test/MC/SystemZ/insn-asi-02.s @@ -0,0 +1,19 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: asi -524289, 0 +#CHECK: error: invalid operand +#CHECK: asi 524288, 0 +#CHECK: error: invalid use of indexed addressing +#CHECK: asi 0(%r1,%r2), 0 +#CHECK: error: invalid operand +#CHECK: asi 0, -129 +#CHECK: error: invalid operand +#CHECK: asi 0, 128 + + asi -524289, 0 + asi 524288, 0 + asi 0(%r1,%r2), 0 + asi 0, -129 + asi 0, 128 diff --git a/test/MC/SystemZ/insn-axbr-01.s b/test/MC/SystemZ/insn-axbr-01.s new file mode 100644 index 0000000000..cb592efba6 --- /dev/null +++ b/test/MC/SystemZ/insn-axbr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: axbr %f0, %f0 # encoding: [0xb3,0x4a,0x00,0x00] +#CHECK: axbr %f0, %f13 # encoding: [0xb3,0x4a,0x00,0x0d] +#CHECK: axbr %f8, %f8 # encoding: [0xb3,0x4a,0x00,0x88] +#CHECK: axbr %f13, %f0 # encoding: [0xb3,0x4a,0x00,0xd0] + + axbr %f0, %f0 + axbr %f0, %f13 + axbr %f8, %f8 + axbr %f13, %f0 diff --git a/test/MC/SystemZ/insn-axbr-02.s b/test/MC/SystemZ/insn-axbr-02.s new file mode 100644 index 0000000000..307664d51e --- /dev/null +++ b/test/MC/SystemZ/insn-axbr-02.s @@ -0,0 +1,17 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: axbr %f0, %f2 +#CHECK: error: invalid register +#CHECK: axbr %f0, %f14 +#CHECK: error: invalid register +#CHECK: axbr %f2, %f0 +#CHECK: error: invalid register +#CHECK: axbr %f14, %f0 + + axbr %f0, %f2 + axbr %f0, %f14 + axbr %f2, %f0 + axbr %f14, %f0 + diff --git a/test/MC/SystemZ/insn-ay-01.s b/test/MC/SystemZ/insn-ay-01.s new file mode 100644 index 0000000000..3b65c9a7c0 --- /dev/null +++ b/test/MC/SystemZ/insn-ay-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: ay %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x5a] +#CHECK: ay %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x5a] +#CHECK: ay %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x5a] +#CHECK: ay %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x5a] +#CHECK: ay %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x5a] +#CHECK: ay %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x5a] +#CHECK: ay %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x5a] +#CHECK: ay %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x5a] +#CHECK: ay %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x5a] +#CHECK: ay %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x5a] + + ay %r0, -524288 + ay %r0, -1 + ay %r0, 0 + ay %r0, 1 + ay %r0, 524287 + ay %r0, 0(%r1) + ay %r0, 0(%r15) + ay %r0, 524287(%r1,%r15) + ay %r0, 524287(%r15,%r1) + ay %r15, 0 diff --git a/test/MC/SystemZ/insn-ay-02.s b/test/MC/SystemZ/insn-ay-02.s new file mode 100644 index 0000000000..09704dfb9f --- /dev/null +++ b/test/MC/SystemZ/insn-ay-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: ay %r0, -524289 +#CHECK: error: invalid operand +#CHECK: ay %r0, 524288 + + ay %r0, -524289 + ay %r0, 524288 diff --git a/test/MC/SystemZ/insn-basr-01.s b/test/MC/SystemZ/insn-basr-01.s new file mode 100644 index 0000000000..a66cee8f63 --- /dev/null +++ b/test/MC/SystemZ/insn-basr-01.s @@ -0,0 +1,12 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: basr %r0, %r1 # encoding: [0x0d,0x01] +#CHECK: basr %r0, %r15 # encoding: [0x0d,0x0f] +#CHECK: basr %r14, %r9 # encoding: [0x0d,0xe9] +#CHECK: basr %r15, %r1 # encoding: [0x0d,0xf1] + + basr %r0,%r1 + basr %r0,%r15 + basr %r14,%r9 + basr %r15,%r1 + diff --git a/test/MC/SystemZ/insn-br-01.s b/test/MC/SystemZ/insn-br-01.s new file mode 100644 index 0000000000..8e2f2aac78 --- /dev/null +++ b/test/MC/SystemZ/insn-br-01.s @@ -0,0 +1,9 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: br %r1 # encoding: [0x07,0xf1] +#CHECK: br %r14 # encoding: [0x07,0xfe] +#CHECK: br %r15 # encoding: [0x07,0xff] + + br %r1 + br %r14 + br %r15 diff --git a/test/MC/SystemZ/insn-bras-01.s b/test/MC/SystemZ/insn-bras-01.s new file mode 100644 index 0000000000..89f7f77477 --- /dev/null +++ b/test/MC/SystemZ/insn-bras-01.s @@ -0,0 +1,31 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: bras %r0, foo # encoding: [0xa7,0x05,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL +#CHECK: bras %r14, foo # encoding: [0xa7,0xe5,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL +#CHECK: bras %r15, foo # encoding: [0xa7,0xf5,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL + bras %r0,foo + bras %r14,foo + bras %r15,foo + +#CHECK: bras %r0, bar+100 # encoding: [0xa7,0x05,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL +#CHECK: bras %r14, bar+100 # encoding: [0xa7,0xe5,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL +#CHECK: bras %r15, bar+100 # encoding: [0xa7,0xf5,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL + bras %r0,bar+100 + bras %r14,bar+100 + bras %r15,bar+100 + +#CHECK: bras %r0, bar@PLT # encoding: [0xa7,0x05,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL +#CHECK: bras %r14, bar@PLT # encoding: [0xa7,0xe5,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL +#CHECK: bras %r15, bar@PLT # encoding: [0xa7,0xf5,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL + bras %r0,bar@PLT + bras %r14,bar@PLT + bras %r15,bar@PLT diff --git a/test/MC/SystemZ/insn-brasl-01.s b/test/MC/SystemZ/insn-brasl-01.s new file mode 100644 index 0000000000..86d0ced9b3 --- /dev/null +++ b/test/MC/SystemZ/insn-brasl-01.s @@ -0,0 +1,31 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: brasl %r0, foo # encoding: [0xc0,0x05,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: brasl %r14, foo # encoding: [0xc0,0xe5,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: brasl %r15, foo # encoding: [0xc0,0xf5,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL + brasl %r0,foo + brasl %r14,foo + brasl %r15,foo + +#CHECK: brasl %r0, bar+100 # encoding: [0xc0,0x05,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL +#CHECK: brasl %r14, bar+100 # encoding: [0xc0,0xe5,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL +#CHECK: brasl %r15, bar+100 # encoding: [0xc0,0xf5,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL + brasl %r0,bar+100 + brasl %r14,bar+100 + brasl %r15,bar+100 + +#CHECK: brasl %r0, bar@PLT # encoding: [0xc0,0x05,A,A,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL +#CHECK: brasl %r14, bar@PLT # encoding: [0xc0,0xe5,A,A,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL +#CHECK: brasl %r15, bar@PLT # encoding: [0xc0,0xf5,A,A,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL + brasl %r0,bar@PLT + brasl %r14,bar@PLT + brasl %r15,bar@PLT diff --git a/test/MC/SystemZ/insn-brc-01.s b/test/MC/SystemZ/insn-brc-01.s new file mode 100644 index 0000000000..a92ea45ecf --- /dev/null +++ b/test/MC/SystemZ/insn-brc-01.s @@ -0,0 +1,238 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: brc 0, foo # encoding: [0xa7,0x04,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL + brc 0, foo + +#CHECK: brc 1, foo # encoding: [0xa7,0x14,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL +#CHECK: jo foo # encoding: [0xa7,0x14,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL + brc 1, foo + jo foo + +#CHECK: brc 2, foo # encoding: [0xa7,0x24,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL +#CHECK: jh foo # encoding: [0xa7,0x24,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL + brc 2, foo + jh foo + +#CHECK: brc 3, foo # encoding: [0xa7,0x34,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL +#CHECK: jnle foo # encoding: [0xa7,0x34,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL + brc 3, foo + jnle foo + +#CHECK: brc 4, foo # encoding: [0xa7,0x44,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL +#CHECK: jl foo # encoding: [0xa7,0x44,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL + brc 4, foo + jl foo + +#CHECK: brc 5, foo # encoding: [0xa7,0x54,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL +#CHECK: jnhe foo # encoding: [0xa7,0x54,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL + brc 5, foo + jnhe foo + +#CHECK: brc 6, foo # encoding: [0xa7,0x64,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL +#CHECK: jlh foo # encoding: [0xa7,0x64,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL + brc 6, foo + jlh foo + +#CHECK: brc 7, foo # encoding: [0xa7,0x74,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL +#CHECK: jne foo # encoding: [0xa7,0x74,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL + brc 7, foo + jne foo + +#CHECK: brc 8, foo # encoding: [0xa7,0x84,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL +#CHECK: je foo # encoding: [0xa7,0x84,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL + brc 8, foo + je foo + +#CHECK: brc 9, foo # encoding: [0xa7,0x94,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL +#CHECK: jnlh foo # encoding: [0xa7,0x94,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL + brc 9, foo + jnlh foo + +#CHECK: brc 10, foo # encoding: [0xa7,0xa4,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL +#CHECK: jhe foo # encoding: [0xa7,0xa4,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL + brc 10, foo + jhe foo + +#CHECK: brc 11, foo # encoding: [0xa7,0xb4,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL +#CHECK: jnl foo # encoding: [0xa7,0xb4,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL + brc 11, foo + jnl foo + +#CHECK: brc 12, foo # encoding: [0xa7,0xc4,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL +#CHECK: jle foo # encoding: [0xa7,0xc4,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL + brc 12, foo + jle foo + +#CHECK: brc 13, foo # encoding: [0xa7,0xd4,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL +#CHECK: jnh foo # encoding: [0xa7,0xd4,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL + brc 13, foo + jnh foo + +#CHECK: brc 14, foo # encoding: [0xa7,0xe4,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL +#CHECK: jno foo # encoding: [0xa7,0xe4,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL + brc 14, foo + jno foo + +#CHECK: brc 15, foo # encoding: [0xa7,0xf4,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL +#CHECK: j foo # encoding: [0xa7,0xf4,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL + brc 15, foo + j foo + +#CHECK: brc 0, bar+100 # encoding: [0xa7,0x04,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL + brc 0, bar+100 + +#CHECK: jo bar+100 # encoding: [0xa7,0x14,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL + jo bar+100 + +#CHECK: jh bar+100 # encoding: [0xa7,0x24,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL + jh bar+100 + +#CHECK: jnle bar+100 # encoding: [0xa7,0x34,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL + jnle bar+100 + +#CHECK: jl bar+100 # encoding: [0xa7,0x44,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL + jl bar+100 + +#CHECK: jnhe bar+100 # encoding: [0xa7,0x54,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL + jnhe bar+100 + +#CHECK: jlh bar+100 # encoding: [0xa7,0x64,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL + jlh bar+100 + +#CHECK: jne bar+100 # encoding: [0xa7,0x74,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL + jne bar+100 + +#CHECK: je bar+100 # encoding: [0xa7,0x84,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL + je bar+100 + +#CHECK: jnlh bar+100 # encoding: [0xa7,0x94,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL + jnlh bar+100 + +#CHECK: jhe bar+100 # encoding: [0xa7,0xa4,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL + jhe bar+100 + +#CHECK: jnl bar+100 # encoding: [0xa7,0xb4,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL + jnl bar+100 + +#CHECK: jle bar+100 # encoding: [0xa7,0xc4,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL + jle bar+100 + +#CHECK: jnh bar+100 # encoding: [0xa7,0xd4,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL + jnh bar+100 + +#CHECK: jno bar+100 # encoding: [0xa7,0xe4,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL + jno bar+100 + +#CHECK: j bar+100 # encoding: [0xa7,0xf4,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC16DBL + j bar+100 + +#CHECK: brc 0, bar@PLT # encoding: [0xa7,0x04,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL + brc 0, bar@PLT + +#CHECK: jo bar@PLT # encoding: [0xa7,0x14,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL + jo bar@PLT + +#CHECK: jh bar@PLT # encoding: [0xa7,0x24,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL + jh bar@PLT + +#CHECK: jnle bar@PLT # encoding: [0xa7,0x34,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL + jnle bar@PLT + +#CHECK: jl bar@PLT # encoding: [0xa7,0x44,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL + jl bar@PLT + +#CHECK: jnhe bar@PLT # encoding: [0xa7,0x54,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL + jnhe bar@PLT + +#CHECK: jlh bar@PLT # encoding: [0xa7,0x64,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL + jlh bar@PLT + +#CHECK: jne bar@PLT # encoding: [0xa7,0x74,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL + jne bar@PLT + +#CHECK: je bar@PLT # encoding: [0xa7,0x84,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL + je bar@PLT + +#CHECK: jnlh bar@PLT # encoding: [0xa7,0x94,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL + jnlh bar@PLT + +#CHECK: jhe bar@PLT # encoding: [0xa7,0xa4,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL + jhe bar@PLT + +#CHECK: jnl bar@PLT # encoding: [0xa7,0xb4,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL + jnl bar@PLT + +#CHECK: jle bar@PLT # encoding: [0xa7,0xc4,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL + jle bar@PLT + +#CHECK: jnh bar@PLT # encoding: [0xa7,0xd4,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL + jnh bar@PLT + +#CHECK: jno bar@PLT # encoding: [0xa7,0xe4,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL + jno bar@PLT + +#CHECK: j bar@PLT # encoding: [0xa7,0xf4,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL + j bar@PLT diff --git a/test/MC/SystemZ/insn-brc-02.s b/test/MC/SystemZ/insn-brc-02.s new file mode 100644 index 0000000000..941cc459f3 --- /dev/null +++ b/test/MC/SystemZ/insn-brc-02.s @@ -0,0 +1,13 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: brc foo, bar +#CHECK: error: invalid operand +#CHECK: brc -1, bar +#CHECK: error: invalid operand +#CHECK: brc 16, bar + + brc foo, bar + brc -1, bar + brc 16, bar diff --git a/test/MC/SystemZ/insn-brcl-01.s b/test/MC/SystemZ/insn-brcl-01.s new file mode 100644 index 0000000000..f7138bf5be --- /dev/null +++ b/test/MC/SystemZ/insn-brcl-01.s @@ -0,0 +1,238 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: brcl 0, foo # encoding: [0xc0,0x04,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL + brcl 0, foo + +#CHECK: brcl 1, foo # encoding: [0xc0,0x14,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: jgo foo # encoding: [0xc0,0x14,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL + brcl 1, foo + jgo foo + +#CHECK: brcl 2, foo # encoding: [0xc0,0x24,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: jgh foo # encoding: [0xc0,0x24,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL + brcl 2, foo + jgh foo + +#CHECK: brcl 3, foo # encoding: [0xc0,0x34,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: jgnle foo # encoding: [0xc0,0x34,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL + brcl 3, foo + jgnle foo + +#CHECK: brcl 4, foo # encoding: [0xc0,0x44,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: jgl foo # encoding: [0xc0,0x44,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL + brcl 4, foo + jgl foo + +#CHECK: brcl 5, foo # encoding: [0xc0,0x54,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: jgnhe foo # encoding: [0xc0,0x54,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL + brcl 5, foo + jgnhe foo + +#CHECK: brcl 6, foo # encoding: [0xc0,0x64,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: jglh foo # encoding: [0xc0,0x64,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL + brcl 6, foo + jglh foo + +#CHECK: brcl 7, foo # encoding: [0xc0,0x74,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: jgne foo # encoding: [0xc0,0x74,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL + brcl 7, foo + jgne foo + +#CHECK: brcl 8, foo # encoding: [0xc0,0x84,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: jge foo # encoding: [0xc0,0x84,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL + brcl 8, foo + jge foo + +#CHECK: brcl 9, foo # encoding: [0xc0,0x94,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: jgnlh foo # encoding: [0xc0,0x94,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL + brcl 9, foo + jgnlh foo + +#CHECK: brcl 10, foo # encoding: [0xc0,0xa4,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: jghe foo # encoding: [0xc0,0xa4,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL + brcl 10, foo + jghe foo + +#CHECK: brcl 11, foo # encoding: [0xc0,0xb4,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: jgnl foo # encoding: [0xc0,0xb4,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL + brcl 11, foo + jgnl foo + +#CHECK: brcl 12, foo # encoding: [0xc0,0xc4,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: jgle foo # encoding: [0xc0,0xc4,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL + brcl 12, foo + jgle foo + +#CHECK: brcl 13, foo # encoding: [0xc0,0xd4,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: jgnh foo # encoding: [0xc0,0xd4,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL + brcl 13, foo + jgnh foo + +#CHECK: brcl 14, foo # encoding: [0xc0,0xe4,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: jgno foo # encoding: [0xc0,0xe4,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL + brcl 14, foo + jgno foo + +#CHECK: brcl 15, foo # encoding: [0xc0,0xf4,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: jg foo # encoding: [0xc0,0xf4,A,A,A,A] +#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL + brcl 15, foo + jg foo + +#CHECK: brcl 0, bar+100 # encoding: [0xc0,0x04,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL + brcl 0, bar+100 + +#CHECK: jgo bar+100 # encoding: [0xc0,0x14,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL + jgo bar+100 + +#CHECK: jgh bar+100 # encoding: [0xc0,0x24,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL + jgh bar+100 + +#CHECK: jgnle bar+100 # encoding: [0xc0,0x34,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL + jgnle bar+100 + +#CHECK: jgl bar+100 # encoding: [0xc0,0x44,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL + jgl bar+100 + +#CHECK: jgnhe bar+100 # encoding: [0xc0,0x54,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL + jgnhe bar+100 + +#CHECK: jglh bar+100 # encoding: [0xc0,0x64,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL + jglh bar+100 + +#CHECK: jgne bar+100 # encoding: [0xc0,0x74,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL + jgne bar+100 + +#CHECK: jge bar+100 # encoding: [0xc0,0x84,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL + jge bar+100 + +#CHECK: jgnlh bar+100 # encoding: [0xc0,0x94,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL + jgnlh bar+100 + +#CHECK: jghe bar+100 # encoding: [0xc0,0xa4,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL + jghe bar+100 + +#CHECK: jgnl bar+100 # encoding: [0xc0,0xb4,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL + jgnl bar+100 + +#CHECK: jgle bar+100 # encoding: [0xc0,0xc4,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL + jgle bar+100 + +#CHECK: jgnh bar+100 # encoding: [0xc0,0xd4,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL + jgnh bar+100 + +#CHECK: jgno bar+100 # encoding: [0xc0,0xe4,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL + jgno bar+100 + +#CHECK: jg bar+100 # encoding: [0xc0,0xf4,A,A,A,A] +#CHECK: fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL + jg bar+100 + +#CHECK: brcl 0, bar@PLT # encoding: [0xc0,0x04,A,A,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL + brcl 0, bar@PLT + +#CHECK: jgo bar@PLT # encoding: [0xc0,0x14,A,A,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL + jgo bar@PLT + +#CHECK: jgh bar@PLT # encoding: [0xc0,0x24,A,A,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL + jgh bar@PLT + +#CHECK: jgnle bar@PLT # encoding: [0xc0,0x34,A,A,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL + jgnle bar@PLT + +#CHECK: jgl bar@PLT # encoding: [0xc0,0x44,A,A,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL + jgl bar@PLT + +#CHECK: jgnhe bar@PLT # encoding: [0xc0,0x54,A,A,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL + jgnhe bar@PLT + +#CHECK: jglh bar@PLT # encoding: [0xc0,0x64,A,A,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL + jglh bar@PLT + +#CHECK: jgne bar@PLT # encoding: [0xc0,0x74,A,A,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL + jgne bar@PLT + +#CHECK: jge bar@PLT # encoding: [0xc0,0x84,A,A,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL + jge bar@PLT + +#CHECK: jgnlh bar@PLT # encoding: [0xc0,0x94,A,A,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL + jgnlh bar@PLT + +#CHECK: jghe bar@PLT # encoding: [0xc0,0xa4,A,A,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL + jghe bar@PLT + +#CHECK: jgnl bar@PLT # encoding: [0xc0,0xb4,A,A,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL + jgnl bar@PLT + +#CHECK: jgle bar@PLT # encoding: [0xc0,0xc4,A,A,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL + jgle bar@PLT + +#CHECK: jgnh bar@PLT # encoding: [0xc0,0xd4,A,A,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL + jgnh bar@PLT + +#CHECK: jgno bar@PLT # encoding: [0xc0,0xe4,A,A,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL + jgno bar@PLT + +#CHECK: jg bar@PLT # encoding: [0xc0,0xf4,A,A,A,A] +#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC32DBL + jg bar@PLT diff --git a/test/MC/SystemZ/insn-brcl-02.s b/test/MC/SystemZ/insn-brcl-02.s new file mode 100644 index 0000000000..ded5f7e4a6 --- /dev/null +++ b/test/MC/SystemZ/insn-brcl-02.s @@ -0,0 +1,13 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: brcl foo, bar +#CHECK: error: invalid operand +#CHECK: brcl -1, bar +#CHECK: error: invalid operand +#CHECK: brcl 16, bar + + brcl foo, bar + brcl -1, bar + brcl 16, bar diff --git a/test/MC/SystemZ/insn-c-01.s b/test/MC/SystemZ/insn-c-01.s new file mode 100644 index 0000000000..e8a8ada30d --- /dev/null +++ b/test/MC/SystemZ/insn-c-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: c %r0, 0 # encoding: [0x59,0x00,0x00,0x00] +#CHECK: c %r0, 4095 # encoding: [0x59,0x00,0x0f,0xff] +#CHECK: c %r0, 0(%r1) # encoding: [0x59,0x00,0x10,0x00] +#CHECK: c %r0, 0(%r15) # encoding: [0x59,0x00,0xf0,0x00] +#CHECK: c %r0, 4095(%r1,%r15) # encoding: [0x59,0x01,0xff,0xff] +#CHECK: c %r0, 4095(%r15,%r1) # encoding: [0x59,0x0f,0x1f,0xff] +#CHECK: c %r15, 0 # encoding: [0x59,0xf0,0x00,0x00] + + c %r0, 0 + c %r0, 4095 + c %r0, 0(%r1) + c %r0, 0(%r15) + c %r0, 4095(%r1,%r15) + c %r0, 4095(%r15,%r1) + c %r15, 0 diff --git a/test/MC/SystemZ/insn-c-02.s b/test/MC/SystemZ/insn-c-02.s new file mode 100644 index 0000000000..81fe251819 --- /dev/null +++ b/test/MC/SystemZ/insn-c-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: c %r0, -1 +#CHECK: error: invalid operand +#CHECK: c %r0, 4096 + + c %r0, -1 + c %r0, 4096 diff --git a/test/MC/SystemZ/insn-cdb-01.s b/test/MC/SystemZ/insn-cdb-01.s new file mode 100644 index 0000000000..7f6bb59956 --- /dev/null +++ b/test/MC/SystemZ/insn-cdb-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: cdb %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x19] +#CHECK: cdb %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x19] +#CHECK: cdb %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x19] +#CHECK: cdb %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x19] +#CHECK: cdb %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x19] +#CHECK: cdb %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x19] +#CHECK: cdb %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x19] + + cdb %f0, 0 + cdb %f0, 4095 + cdb %f0, 0(%r1) + cdb %f0, 0(%r15) + cdb %f0, 4095(%r1,%r15) + cdb %f0, 4095(%r15,%r1) + cdb %f15, 0 diff --git a/test/MC/SystemZ/insn-cdb-02.s b/test/MC/SystemZ/insn-cdb-02.s new file mode 100644 index 0000000000..5f02b84c14 --- /dev/null +++ b/test/MC/SystemZ/insn-cdb-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: cdb %f0, -1 +#CHECK: error: invalid operand +#CHECK: cdb %f0, 4096 + + cdb %f0, -1 + cdb %f0, 4096 diff --git a/test/MC/SystemZ/insn-cdbr-01.s b/test/MC/SystemZ/insn-cdbr-01.s new file mode 100644 index 0000000000..d2acfc01a2 --- /dev/null +++ b/test/MC/SystemZ/insn-cdbr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: cdbr %f0, %f0 # encoding: [0xb3,0x19,0x00,0x00] +#CHECK: cdbr %f0, %f15 # encoding: [0xb3,0x19,0x00,0x0f] +#CHECK: cdbr %f7, %f8 # encoding: [0xb3,0x19,0x00,0x78] +#CHECK: cdbr %f15, %f0 # encoding: [0xb3,0x19,0x00,0xf0] + + cdbr %f0, %f0 + cdbr %f0, %f15 + cdbr %f7, %f8 + cdbr %f15, %f0 diff --git a/test/MC/SystemZ/insn-cdfbr-01.s b/test/MC/SystemZ/insn-cdfbr-01.s new file mode 100644 index 0000000000..94c9b0779c --- /dev/null +++ b/test/MC/SystemZ/insn-cdfbr-01.s @@ -0,0 +1,13 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: cdfbr %f0, %r0 # encoding: [0xb3,0x95,0x00,0x00] +#CHECK: cdfbr %f0, %r15 # encoding: [0xb3,0x95,0x00,0x0f] +#CHECK: cdfbr %f15, %r0 # encoding: [0xb3,0x95,0x00,0xf0] +#CHECK: cdfbr %f7, %r8 # encoding: [0xb3,0x95,0x00,0x78] +#CHECK: cdfbr %f15, %r15 # encoding: [0xb3,0x95,0x00,0xff] + + cdfbr %f0, %r0 + cdfbr %f0, %r15 + cdfbr %f15, %r0 + cdfbr %f7, %r8 + cdfbr %f15, %r15 diff --git a/test/MC/SystemZ/insn-cdfbr-02.s b/test/MC/SystemZ/insn-cdfbr-02.s new file mode 100644 index 0000000000..14caa1e3c0 --- /dev/null +++ b/test/MC/SystemZ/insn-cdfbr-02.s @@ -0,0 +1,16 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: cdfbr %r0, %r0 +#CHECK: error: invalid register +#CHECK: cdfbr %f0, %f0 +#CHECK: error: invalid register +#CHECK: cdfbr %f0, %a0 +#CHECK: error: invalid register +#CHECK: cdfbr %a0, %r0 + + cdfbr %r0, %r0 + cdfbr %f0, %f0 + cdfbr %f0, %a0 + cdfbr %a0, %r0 diff --git a/test/MC/SystemZ/insn-cdgbr-01.s b/test/MC/SystemZ/insn-cdgbr-01.s new file mode 100644 index 0000000000..6a994af744 --- /dev/null +++ b/test/MC/SystemZ/insn-cdgbr-01.s @@ -0,0 +1,13 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: cdgbr %f0, %r0 # encoding: [0xb3,0xa5,0x00,0x00] +#CHECK: cdgbr %f0, %r15 # encoding: [0xb3,0xa5,0x00,0x0f] +#CHECK: cdgbr %f15, %r0 # encoding: [0xb3,0xa5,0x00,0xf0] +#CHECK: cdgbr %f7, %r8 # encoding: [0xb3,0xa5,0x00,0x78] +#CHECK: cdgbr %f15, %r15 # encoding: [0xb3,0xa5,0x00,0xff] + + cdgbr %f0, %r0 + cdgbr %f0, %r15 + cdgbr %f15, %r0 + cdgbr %f7, %r8 + cdgbr %f15, %r15 diff --git a/test/MC/SystemZ/insn-cdgbr-02.s b/test/MC/SystemZ/insn-cdgbr-02.s new file mode 100644 index 0000000000..8fa9d4fa5c --- /dev/null +++ b/test/MC/SystemZ/insn-cdgbr-02.s @@ -0,0 +1,16 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: cdgbr %r0, %r0 +#CHECK: error: invalid register +#CHECK: cdgbr %f0, %f0 +#CHECK: error: invalid register +#CHECK: cdgbr %f0, %a0 +#CHECK: error: invalid register +#CHECK: cdgbr %a0, %r0 + + cdgbr %r0, %r0 + cdgbr %f0, %f0 + cdgbr %f0, %a0 + cdgbr %a0, %r0 diff --git a/test/MC/SystemZ/insn-ceb-01.s b/test/MC/SystemZ/insn-ceb-01.s new file mode 100644 index 0000000000..d576e9d572 --- /dev/null +++ b/test/MC/SystemZ/insn-ceb-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: ceb %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x09] +#CHECK: ceb %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x09] +#CHECK: ceb %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x09] +#CHECK: ceb %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x09] +#CHECK: ceb %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x09] +#CHECK: ceb %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x09] +#CHECK: ceb %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x09] + + ceb %f0, 0 + ceb %f0, 4095 + ceb %f0, 0(%r1) + ceb %f0, 0(%r15) + ceb %f0, 4095(%r1,%r15) + ceb %f0, 4095(%r15,%r1) + ceb %f15, 0 diff --git a/test/MC/SystemZ/insn-ceb-02.s b/test/MC/SystemZ/insn-ceb-02.s new file mode 100644 index 0000000000..90829dbe12 --- /dev/null +++ b/test/MC/SystemZ/insn-ceb-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: ceb %f0, -1 +#CHECK: error: invalid operand +#CHECK: ceb %f0, 4096 + + ceb %f0, -1 + ceb %f0, 4096 diff --git a/test/MC/SystemZ/insn-cebr-01.s b/test/MC/SystemZ/insn-cebr-01.s new file mode 100644 index 0000000000..b820e3901a --- /dev/null +++ b/test/MC/SystemZ/insn-cebr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: cebr %f0, %f0 # encoding: [0xb3,0x09,0x00,0x00] +#CHECK: cebr %f0, %f15 # encoding: [0xb3,0x09,0x00,0x0f] +#CHECK: cebr %f7, %f8 # encoding: [0xb3,0x09,0x00,0x78] +#CHECK: cebr %f15, %f0 # encoding: [0xb3,0x09,0x00,0xf0] + + cebr %f0, %f0 + cebr %f0, %f15 + cebr %f7, %f8 + cebr %f15, %f0 diff --git a/test/MC/SystemZ/insn-cefbr-01.s b/test/MC/SystemZ/insn-cefbr-01.s new file mode 100644 index 0000000000..f1068f506c --- /dev/null +++ b/test/MC/SystemZ/insn-cefbr-01.s @@ -0,0 +1,13 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: cefbr %f0, %r0 # encoding: [0xb3,0x94,0x00,0x00] +#CHECK: cefbr %f0, %r15 # encoding: [0xb3,0x94,0x00,0x0f] +#CHECK: cefbr %f15, %r0 # encoding: [0xb3,0x94,0x00,0xf0] +#CHECK: cefbr %f7, %r8 # encoding: [0xb3,0x94,0x00,0x78] +#CHECK: cefbr %f15, %r15 # encoding: [0xb3,0x94,0x00,0xff] + + cefbr %f0, %r0 + cefbr %f0, %r15 + cefbr %f15, %r0 + cefbr %f7, %r8 + cefbr %f15, %r15 diff --git a/test/MC/SystemZ/insn-cefbr-02.s b/test/MC/SystemZ/insn-cefbr-02.s new file mode 100644 index 0000000000..b894fb9f32 --- /dev/null +++ b/test/MC/SystemZ/insn-cefbr-02.s @@ -0,0 +1,16 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: cefbr %r0, %r0 +#CHECK: error: invalid register +#CHECK: cefbr %f0, %f0 +#CHECK: error: invalid register +#CHECK: cefbr %f0, %a0 +#CHECK: error: invalid register +#CHECK: cefbr %a0, %r0 + + cefbr %r0, %r0 + cefbr %f0, %f0 + cefbr %f0, %a0 + cefbr %a0, %r0 diff --git a/test/MC/SystemZ/insn-cegbr-01.s b/test/MC/SystemZ/insn-cegbr-01.s new file mode 100644 index 0000000000..5b2e6caf12 --- /dev/null +++ b/test/MC/SystemZ/insn-cegbr-01.s @@ -0,0 +1,13 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: cegbr %f0, %r0 # encoding: [0xb3,0xa4,0x00,0x00] +#CHECK: cegbr %f0, %r15 # encoding: [0xb3,0xa4,0x00,0x0f] +#CHECK: cegbr %f15, %r0 # encoding: [0xb3,0xa4,0x00,0xf0] +#CHECK: cegbr %f7, %r8 # encoding: [0xb3,0xa4,0x00,0x78] +#CHECK: cegbr %f15, %r15 # encoding: [0xb3,0xa4,0x00,0xff] + + cegbr %f0, %r0 + cegbr %f0, %r15 + cegbr %f15, %r0 + cegbr %f7, %r8 + cegbr %f15, %r15 diff --git a/test/MC/SystemZ/insn-cegbr-02.s b/test/MC/SystemZ/insn-cegbr-02.s new file mode 100644 index 0000000000..bf0c31ad13 --- /dev/null +++ b/test/MC/SystemZ/insn-cegbr-02.s @@ -0,0 +1,16 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: cegbr %r0, %r0 +#CHECK: error: invalid register +#CHECK: cegbr %f0, %f0 +#CHECK: error: invalid register +#CHECK: cegbr %f0, %a0 +#CHECK: error: invalid register +#CHECK: cegbr %a0, %r0 + + cegbr %r0, %r0 + cegbr %f0, %f0 + cegbr %f0, %a0 + cegbr %a0, %r0 diff --git a/test/MC/SystemZ/insn-cfdbr-01.s b/test/MC/SystemZ/insn-cfdbr-01.s new file mode 100644 index 0000000000..be4f87fb29 --- /dev/null +++ b/test/MC/SystemZ/insn-cfdbr-01.s @@ -0,0 +1,13 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: cfdbr %r0, 0, %f0 # encoding: [0xb3,0x99,0x00,0x00] +#CHECK: cfdbr %r0, 0, %f15 # encoding: [0xb3,0x99,0x00,0x0f] +#CHECK: cfdbr %r0, 15, %f0 # encoding: [0xb3,0x99,0xf0,0x00] +#CHECK: cfdbr %r4, 5, %f6 # encoding: [0xb3,0x99,0x50,0x46] +#CHECK: cfdbr %r15, 0, %f0 # encoding: [0xb3,0x99,0x00,0xf0] + + cfdbr %r0, 0, %f0 + cfdbr %r0, 0, %f15 + cfdbr %r0, 15, %f0 + cfdbr %r4, 5, %f6 + cfdbr %r15, 0, %f0 diff --git a/test/MC/SystemZ/insn-cfdbr-02.s b/test/MC/SystemZ/insn-cfdbr-02.s new file mode 100644 index 0000000000..00175955f2 --- /dev/null +++ b/test/MC/SystemZ/insn-cfdbr-02.s @@ -0,0 +1,16 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: cfdbr %r0, 0, %r0 +#CHECK: error: invalid register +#CHECK: cfdbr %f0, 0, %f0 +#CHECK: error: invalid operand +#CHECK: cfdbr %r0, -1, %f0 +#CHECK: error: invalid operand +#CHECK: cfdbr %r0, 16, %f0 + + cfdbr %r0, 0, %r0 + cfdbr %f0, 0, %f0 + cfdbr %r0, -1, %f0 + cfdbr %r0, 16, %f0 diff --git a/test/MC/SystemZ/insn-cfebr-01.s b/test/MC/SystemZ/insn-cfebr-01.s new file mode 100644 index 0000000000..6f7ab2c0e0 --- /dev/null +++ b/test/MC/SystemZ/insn-cfebr-01.s @@ -0,0 +1,13 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: cfebr %r0, 0, %f0 # encoding: [0xb3,0x98,0x00,0x00] +#CHECK: cfebr %r0, 0, %f15 # encoding: [0xb3,0x98,0x00,0x0f] +#CHECK: cfebr %r0, 15, %f0 # encoding: [0xb3,0x98,0xf0,0x00] +#CHECK: cfebr %r4, 5, %f6 # encoding: [0xb3,0x98,0x50,0x46] +#CHECK: cfebr %r15, 0, %f0 # encoding: [0xb3,0x98,0x00,0xf0] + + cfebr %r0, 0, %f0 + cfebr %r0, 0, %f15 + cfebr %r0, 15, %f0 + cfebr %r4, 5, %f6 + cfebr %r15, 0, %f0 diff --git a/test/MC/SystemZ/insn-cfebr-02.s b/test/MC/SystemZ/insn-cfebr-02.s new file mode 100644 index 0000000000..c3c5adaed2 --- /dev/null +++ b/test/MC/SystemZ/insn-cfebr-02.s @@ -0,0 +1,16 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: cfebr %r0, 0, %r0 +#CHECK: error: invalid register +#CHECK: cfebr %f0, 0, %f0 +#CHECK: error: invalid operand +#CHECK: cfebr %r0, -1, %f0 +#CHECK: error: invalid operand +#CHECK: cfebr %r0, 16, %f0 + + cfebr %r0, 0, %r0 + cfebr %f0, 0, %f0 + cfebr %r0, -1, %f0 + cfebr %r0, 16, %f0 diff --git a/test/MC/SystemZ/insn-cfi-01.s b/test/MC/SystemZ/insn-cfi-01.s new file mode 100644 index 0000000000..52e34c02e8 --- /dev/null +++ b/test/MC/SystemZ/insn-cfi-01.s @@ -0,0 +1,15 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: cfi %r0, -2147483648 # encoding: [0xc2,0x0d,0x80,0x00,0x00,0x00] +#CHECK: cfi %r0, -1 # encoding: [0xc2,0x0d,0xff,0xff,0xff,0xff] +#CHECK: cfi %r0, 0 # encoding: [0xc2,0x0d,0x00,0x00,0x00,0x00] +#CHECK: cfi %r0, 1 # encoding: [0xc2,0x0d,0x00,0x00,0x00,0x01] +#CHECK: cfi %r0, 2147483647 # encoding: [0xc2,0x0d,0x7f,0xff,0xff,0xff] +#CHECK: cfi %r15, 0 # encoding: [0xc2,0xfd,0x00,0x00,0x00,0x00] + + cfi %r0, -1 << 31 + cfi %r0, -1 + cfi %r0, 0 + cfi %r0, 1 + cfi %r0, (1 << 31) - 1 + cfi %r15, 0 diff --git a/test/MC/SystemZ/insn-cfi-02.s b/test/MC/SystemZ/insn-cfi-02.s new file mode 100644 index 0000000000..cf7c72621b --- /dev/null +++ b/test/MC/SystemZ/insn-cfi-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: cfi %r0, (-1 << 31) - 1 +#CHECK: error: invalid operand +#CHECK: cfi %r0, (1 << 31) + + cfi %r0, (-1 << 31) - 1 + cfi %r0, (1 << 31) diff --git a/test/MC/SystemZ/insn-cfxbr-01.s b/test/MC/SystemZ/insn-cfxbr-01.s new file mode 100644 index 0000000000..c509106b54 --- /dev/null +++ b/test/MC/SystemZ/insn-cfxbr-01.s @@ -0,0 +1,13 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: cfxbr %r0, 0, %f0 # encoding: [0xb3,0x9a,0x00,0x00] +#CHECK: cfxbr %r0, 0, %f13 # encoding: [0xb3,0x9a,0x00,0x0d] +#CHECK: cfxbr %r0, 15, %f0 # encoding: [0xb3,0x9a,0xf0,0x00] +#CHECK: cfxbr %r4, 5, %f8 # encoding: [0xb3,0x9a,0x50,0x48] +#CHECK: cfxbr %r15, 0, %f0 # encoding: [0xb3,0x9a,0x00,0xf0] + + cfxbr %r0, 0, %f0 + cfxbr %r0, 0, %f13 + cfxbr %r0, 15, %f0 + cfxbr %r4, 5, %f8 + cfxbr %r15, 0, %f0 diff --git a/test/MC/SystemZ/insn-cfxbr-02.s b/test/MC/SystemZ/insn-cfxbr-02.s new file mode 100644 index 0000000000..3802c51433 --- /dev/null +++ b/test/MC/SystemZ/insn-cfxbr-02.s @@ -0,0 +1,23 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: cfxbr %r0, 0, %r0 +#CHECK: error: invalid register +#CHECK: cfxbr %f0, 0, %f0 +#CHECK: error: invalid operand +#CHECK: cfxbr %r0, -1, %f0 +#CHECK: error: invalid operand +#CHECK: cfxbr %r0, 16, %f0 +#CHECK: error: invalid register +#CHECK: cfxbr %r0, 0, %f2 +#CHECK: error: invalid register +#CHECK: cfxbr %r0, 0, %f14 + + cfxbr %r0, 0, %r0 + cfxbr %f0, 0, %f0 + cfxbr %r0, -1, %f0 + cfxbr %r0, 16, %f0 + cfxbr %r0, 0, %f2 + cfxbr %r0, 0, %f14 + diff --git a/test/MC/SystemZ/insn-cg-01.s b/test/MC/SystemZ/insn-cg-01.s new file mode 100644 index 0000000000..1eb185f0ec --- /dev/null +++ b/test/MC/SystemZ/insn-cg-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: cg %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x20] +#CHECK: cg %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x20] +#CHECK: cg %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x20] +#CHECK: cg %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x20] +#CHECK: cg %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x20] +#CHECK: cg %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x20] +#CHECK: cg %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x20] +#CHECK: cg %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x20] +#CHECK: cg %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x20] +#CHECK: cg %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x20] + + cg %r0, -524288 + cg %r0, -1 + cg %r0, 0 + cg %r0, 1 + cg %r0, 524287 + cg %r0, 0(%r1) + cg %r0, 0(%r15) + cg %r0, 524287(%r1,%r15) + cg %r0, 524287(%r15,%r1) + cg %r15, 0 diff --git a/test/MC/SystemZ/insn-cg-02.s b/test/MC/SystemZ/insn-cg-02.s new file mode 100644 index 0000000000..e093ccd751 --- /dev/null +++ b/test/MC/SystemZ/insn-cg-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: cg %r0, -524289 +#CHECK: error: invalid operand +#CHECK: cg %r0, 524288 + + cg %r0, -524289 + cg %r0, 524288 diff --git a/test/MC/SystemZ/insn-cgdbr-01.s b/test/MC/SystemZ/insn-cgdbr-01.s new file mode 100644 index 0000000000..718f50a9ea --- /dev/null +++ b/test/MC/SystemZ/insn-cgdbr-01.s @@ -0,0 +1,13 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: cgdbr %r0, 0, %f0 # encoding: [0xb3,0xa9,0x00,0x00] +#CHECK: cgdbr %r0, 0, %f15 # encoding: [0xb3,0xa9,0x00,0x0f] +#CHECK: cgdbr %r0, 15, %f0 # encoding: [0xb3,0xa9,0xf0,0x00] +#CHECK: cgdbr %r4, 5, %f6 # encoding: [0xb3,0xa9,0x50,0x46] +#CHECK: cgdbr %r15, 0, %f0 # encoding: [0xb3,0xa9,0x00,0xf0] + + cgdbr %r0, 0, %f0 + cgdbr %r0, 0, %f15 + cgdbr %r0, 15, %f0 + cgdbr %r4, 5, %f6 + cgdbr %r15, 0, %f0 diff --git a/test/MC/SystemZ/insn-cgdbr-02.s b/test/MC/SystemZ/insn-cgdbr-02.s new file mode 100644 index 0000000000..3a3e01fde0 --- /dev/null +++ b/test/MC/SystemZ/insn-cgdbr-02.s @@ -0,0 +1,16 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: cgdbr %r0, 0, %r0 +#CHECK: error: invalid register +#CHECK: cgdbr %f0, 0, %f0 +#CHECK: error: invalid operand +#CHECK: cgdbr %r0, -1, %f0 +#CHECK: error: invalid operand +#CHECK: cgdbr %r0, 16, %f0 + + cgdbr %r0, 0, %r0 + cgdbr %f0, 0, %f0 + cgdbr %r0, -1, %f0 + cgdbr %r0, 16, %f0 diff --git a/test/MC/SystemZ/insn-cgebr-01.s b/test/MC/SystemZ/insn-cgebr-01.s new file mode 100644 index 0000000000..dc6a7dbfaf --- /dev/null +++ b/test/MC/SystemZ/insn-cgebr-01.s @@ -0,0 +1,13 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: cgebr %r0, 0, %f0 # encoding: [0xb3,0xa8,0x00,0x00] +#CHECK: cgebr %r0, 0, %f15 # encoding: [0xb3,0xa8,0x00,0x0f] +#CHECK: cgebr %r0, 15, %f0 # encoding: [0xb3,0xa8,0xf0,0x00] +#CHECK: cgebr %r4, 5, %f6 # encoding: [0xb3,0xa8,0x50,0x46] +#CHECK: cgebr %r15, 0, %f0 # encoding: [0xb3,0xa8,0x00,0xf0] + + cgebr %r0, 0, %f0 + cgebr %r0, 0, %f15 + cgebr %r0, 15, %f0 + cgebr %r4, 5, %f6 + cgebr %r15, 0, %f0 diff --git a/test/MC/SystemZ/insn-cgebr-02.s b/test/MC/SystemZ/insn-cgebr-02.s new file mode 100644 index 0000000000..9b817a4172 --- /dev/null +++ b/test/MC/SystemZ/insn-cgebr-02.s @@ -0,0 +1,16 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: cgebr %r0, 0, %r0 +#CHECK: error: invalid register +#CHECK: cgebr %f0, 0, %f0 +#CHECK: error: invalid operand +#CHECK: cgebr %r0, -1, %f0 +#CHECK: error: invalid operand +#CHECK: cgebr %r0, 16, %f0 + + cgebr %r0, 0, %r0 + cgebr %f0, 0, %f0 + cgebr %r0, -1, %f0 + cgebr %r0, 16, %f0 diff --git a/test/MC/SystemZ/insn-cgf-01.s b/test/MC/SystemZ/insn-cgf-01.s new file mode 100644 index 0000000000..03c439f1f5 --- /dev/null +++ b/test/MC/SystemZ/insn-cgf-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: cgf %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x30] +#CHECK: cgf %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x30] +#CHECK: cgf %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x30] +#CHECK: cgf %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x30] +#CHECK: cgf %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x30] +#CHECK: cgf %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x30] +#CHECK: cgf %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x30] +#CHECK: cgf %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x30] +#CHECK: cgf %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x30] +#CHECK: cgf %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x30] + + cgf %r0, -524288 + cgf %r0, -1 + cgf %r0, 0 + cgf %r0, 1 + cgf %r0, 524287 + cgf %r0, 0(%r1) + cgf %r0, 0(%r15) + cgf %r0, 524287(%r1,%r15) + cgf %r0, 524287(%r15,%r1) + cgf %r15, 0 diff --git a/test/MC/SystemZ/insn-cgf-02.s b/test/MC/SystemZ/insn-cgf-02.s new file mode 100644 index 0000000000..7171c6e388 --- /dev/null +++ b/test/MC/SystemZ/insn-cgf-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: cgf %r0, -524289 +#CHECK: error: invalid operand +#CHECK: cgf %r0, 524288 + + cgf %r0, -524289 + cgf %r0, 524288 diff --git a/test/MC/SystemZ/insn-cgfi-01.s b/test/MC/SystemZ/insn-cgfi-01.s new file mode 100644 index 0000000000..d6f72d5d67 --- /dev/null +++ b/test/MC/SystemZ/insn-cgfi-01.s @@ -0,0 +1,15 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: cgfi %r0, -2147483648 # encoding: [0xc2,0x0c,0x80,0x00,0x00,0x00] +#CHECK: cgfi %r0, -1 # encoding: [0xc2,0x0c,0xff,0xff,0xff,0xff] +#CHECK: cgfi %r0, 0 # encoding: [0xc2,0x0c,0x00,0x00,0x00,0x00] +#CHECK: cgfi %r0, 1 # encoding: [0xc2,0x0c,0x00,0x00,0x00,0x01] +#CHECK: cgfi %r0, 2147483647 # encoding: [0xc2,0x0c,0x7f,0xff,0xff,0xff] +#CHECK: cgfi %r15, 0 # encoding: [0xc2,0xfc,0x00,0x00,0x00,0x00] + + cgfi %r0, -1 << 31 + cgfi %r0, -1 + cgfi %r0, 0 + cgfi %r0, 1 + cgfi %r0, (1 << 31) - 1 + cgfi %r15, 0 diff --git a/test/MC/SystemZ/insn-cgfi-02.s b/test/MC/SystemZ/insn-cgfi-02.s new file mode 100644 index 0000000000..6f72a24e69 --- /dev/null +++ b/test/MC/SystemZ/insn-cgfi-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: cgfi %r0, (-1 << 31) - 1 +#CHECK: error: invalid operand +#CHECK: cgfi %r0, (1 << 31) + + cgfi %r0, (-1 << 31) - 1 + cgfi %r0, (1 << 31) diff --git a/test/MC/SystemZ/insn-cgfr-01.s b/test/MC/SystemZ/insn-cgfr-01.s new file mode 100644 index 0000000000..6bd1792ea0 --- /dev/null +++ b/test/MC/SystemZ/insn-cgfr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: cgfr %r0, %r0 # encoding: [0xb9,0x30,0x00,0x00] +#CHECK: cgfr %r0, %r15 # encoding: [0xb9,0x30,0x00,0x0f] +#CHECK: cgfr %r15, %r0 # encoding: [0xb9,0x30,0x00,0xf0] +#CHECK: cgfr %r7, %r8 # encoding: [0xb9,0x30,0x00,0x78] + + cgfr %r0,%r0 + cgfr %r0,%r15 + cgfr %r15,%r0 + cgfr %r7,%r8 diff --git a/test/MC/SystemZ/insn-cgfrl-01.s b/test/MC/SystemZ/insn-cgfrl-01.s new file mode 100644 index 0000000000..2792fb4a93 --- /dev/null +++ b/test/MC/SystemZ/insn-cgfrl-01.s @@ -0,0 +1,31 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: cgfrl %r0, 2864434397 # encoding: [0xc6,0x0c,0x55,0x5d,0xe6,0x6e] +#CHECK: cgfrl %r15, 2864434397 # encoding: [0xc6,0xfc,0x55,0x5d,0xe6,0x6e] + + cgfrl %r0,0xaabbccdd + cgfrl %r15,0xaabbccdd + +#CHECK: cgfrl %r0, foo # encoding: [0xc6,0x0c,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: cgfrl %r15, foo # encoding: [0xc6,0xfc,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL + + cgfrl %r0,foo + cgfrl %r15,foo + +#CHECK: cgfrl %r3, bar+100 # encoding: [0xc6,0x3c,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL +#CHECK: cgfrl %r4, bar+100 # encoding: [0xc6,0x4c,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL + + cgfrl %r3,bar+100 + cgfrl %r4,bar+100 + +#CHECK: cgfrl %r7, frob@PLT # encoding: [0xc6,0x7c,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL +#CHECK: cgfrl %r8, frob@PLT # encoding: [0xc6,0x8c,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL + + cgfrl %r7,frob@PLT + cgfrl %r8,frob@PLT diff --git a/test/MC/SystemZ/insn-cgh-01.s b/test/MC/SystemZ/insn-cgh-01.s new file mode 100644 index 0000000000..31c86abdda --- /dev/null +++ b/test/MC/SystemZ/insn-cgh-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: cgh %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x34] +#CHECK: cgh %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x34] +#CHECK: cgh %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x34] +#CHECK: cgh %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x34] +#CHECK: cgh %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x34] +#CHECK: cgh %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x34] +#CHECK: cgh %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x34] +#CHECK: cgh %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x34] +#CHECK: cgh %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x34] +#CHECK: cgh %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x34] + + cgh %r0, -524288 + cgh %r0, -1 + cgh %r0, 0 + cgh %r0, 1 + cgh %r0, 524287 + cgh %r0, 0(%r1) + cgh %r0, 0(%r15) + cgh %r0, 524287(%r1,%r15) + cgh %r0, 524287(%r15,%r1) + cgh %r15, 0 diff --git a/test/MC/SystemZ/insn-cgh-02.s b/test/MC/SystemZ/insn-cgh-02.s new file mode 100644 index 0000000000..60e665f2dd --- /dev/null +++ b/test/MC/SystemZ/insn-cgh-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: cgh %r0, -524289 +#CHECK: error: invalid operand +#CHECK: cgh %r0, 524288 + + cgh %r0, -524289 + cgh %r0, 524288 diff --git a/test/MC/SystemZ/insn-cghi-01.s b/test/MC/SystemZ/insn-cghi-01.s new file mode 100644 index 0000000000..575ad89023 --- /dev/null +++ b/test/MC/SystemZ/insn-cghi-01.s @@ -0,0 +1,15 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: cghi %r0, -32768 # encoding: [0xa7,0x0f,0x80,0x00] +#CHECK: cghi %r0, -1 # encoding: [0xa7,0x0f,0xff,0xff] +#CHECK: cghi %r0, 0 # encoding: [0xa7,0x0f,0x00,0x00] +#CHECK: cghi %r0, 1 # encoding: [0xa7,0x0f,0x00,0x01] +#CHECK: cghi %r0, 32767 # encoding: [0xa7,0x0f,0x7f,0xff] +#CHECK: cghi %r15, 0 # encoding: [0xa7,0xff,0x00,0x00] + + cghi %r0, -32768 + cghi %r0, -1 + cghi %r0, 0 + cghi %r0, 1 + cghi %r0, 32767 + cghi %r15, 0 diff --git a/test/MC/SystemZ/insn-cghi-02.s b/test/MC/SystemZ/insn-cghi-02.s new file mode 100644 index 0000000000..bd4a52a6b7 --- /dev/null +++ b/test/MC/SystemZ/insn-cghi-02.s @@ -0,0 +1,13 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: cghi %r0, -32769 +#CHECK: error: invalid operand +#CHECK: cghi %r0, 32768 +#CHECK: error: invalid operand +#CHECK: cghi %r0, foo + + cghi %r0, -32769 + cghi %r0, 32768 + cghi %r0, foo diff --git a/test/MC/SystemZ/insn-cghrl-01.s b/test/MC/SystemZ/insn-cghrl-01.s new file mode 100644 index 0000000000..c48c5ec3ef --- /dev/null +++ b/test/MC/SystemZ/insn-cghrl-01.s @@ -0,0 +1,31 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: cghrl %r0, 2864434397 # encoding: [0xc6,0x04,0x55,0x5d,0xe6,0x6e] +#CHECK: cghrl %r15, 2864434397 # encoding: [0xc6,0xf4,0x55,0x5d,0xe6,0x6e] + + cghrl %r0,0xaabbccdd + cghrl %r15,0xaabbccdd + +#CHECK: cghrl %r0, foo # encoding: [0xc6,0x04,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: cghrl %r15, foo # encoding: [0xc6,0xf4,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL + + cghrl %r0,foo + cghrl %r15,foo + +#CHECK: cghrl %r3, bar+100 # encoding: [0xc6,0x34,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL +#CHECK: cghrl %r4, bar+100 # encoding: [0xc6,0x44,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL + + cghrl %r3,bar+100 + cghrl %r4,bar+100 + +#CHECK: cghrl %r7, frob@PLT # encoding: [0xc6,0x74,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL +#CHECK: cghrl %r8, frob@PLT # encoding: [0xc6,0x84,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL + + cghrl %r7,frob@PLT + cghrl %r8,frob@PLT diff --git a/test/MC/SystemZ/insn-cghsi-01.s b/test/MC/SystemZ/insn-cghsi-01.s new file mode 100644 index 0000000000..7d67e20b5b --- /dev/null +++ b/test/MC/SystemZ/insn-cghsi-01.s @@ -0,0 +1,25 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: cghsi 0, 0 # encoding: [0xe5,0x58,0x00,0x00,0x00,0x00] +#CHECK: cghsi 4095, 0 # encoding: [0xe5,0x58,0x0f,0xff,0x00,0x00] +#CHECK: cghsi 0, -32768 # encoding: [0xe5,0x58,0x00,0x00,0x80,0x00] +#CHECK: cghsi 0, -1 # encoding: [0xe5,0x58,0x00,0x00,0xff,0xff] +#CHECK: cghsi 0, 0 # encoding: [0xe5,0x58,0x00,0x00,0x00,0x00] +#CHECK: cghsi 0, 1 # encoding: [0xe5,0x58,0x00,0x00,0x00,0x01] +#CHECK: cghsi 0, 32767 # encoding: [0xe5,0x58,0x00,0x00,0x7f,0xff] +#CHECK: cghsi 0(%r1), 42 # encoding: [0xe5,0x58,0x10,0x00,0x00,0x2a] +#CHECK: cghsi 0(%r15), 42 # encoding: [0xe5,0x58,0xf0,0x00,0x00,0x2a] +#CHECK: cghsi 4095(%r1), 42 # encoding: [0xe5,0x58,0x1f,0xff,0x00,0x2a] +#CHECK: cghsi 4095(%r15), 42 # encoding: [0xe5,0x58,0xff,0xff,0x00,0x2a] + + cghsi 0, 0 + cghsi 4095, 0 + cghsi 0, -32768 + cghsi 0, -1 + cghsi 0, 0 + cghsi 0, 1 + cghsi 0, 32767 + cghsi 0(%r1), 42 + cghsi 0(%r15), 42 + cghsi 4095(%r1), 42 + cghsi 4095(%r15), 42 diff --git a/test/MC/SystemZ/insn-cghsi-02.s b/test/MC/SystemZ/insn-cghsi-02.s new file mode 100644 index 0000000000..773ee5cd9e --- /dev/null +++ b/test/MC/SystemZ/insn-cghsi-02.s @@ -0,0 +1,19 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: cghsi -1, 0 +#CHECK: error: invalid operand +#CHECK: cghsi 4096, 0 +#CHECK: error: invalid use of indexed addressing +#CHECK: cghsi 0(%r1,%r2), 0 +#CHECK: error: invalid operand +#CHECK: cghsi 0, -32769 +#CHECK: error: invalid operand +#CHECK: cghsi 0, 32768 + + cghsi -1, 0 + cghsi 4096, 0 + cghsi 0(%r1,%r2), 0 + cghsi 0, -32769 + cghsi 0, 32768 diff --git a/test/MC/SystemZ/insn-cgr-01.s b/test/MC/SystemZ/insn-cgr-01.s new file mode 100644 index 0000000000..334a0f63f8 --- /dev/null +++ b/test/MC/SystemZ/insn-cgr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: cgr %r0, %r0 # encoding: [0xb9,0x20,0x00,0x00] +#CHECK: cgr %r0, %r15 # encoding: [0xb9,0x20,0x00,0x0f] +#CHECK: cgr %r15, %r0 # encoding: [0xb9,0x20,0x00,0xf0] +#CHECK: cgr %r7, %r8 # encoding: [0xb9,0x20,0x00,0x78] + + cgr %r0,%r0 + cgr %r0,%r15 + cgr %r15,%r0 + cgr %r7,%r8 diff --git a/test/MC/SystemZ/insn-cgrl-01.s b/test/MC/SystemZ/insn-cgrl-01.s new file mode 100644 index 0000000000..af878cbf45 --- /dev/null +++ b/test/MC/SystemZ/insn-cgrl-01.s @@ -0,0 +1,31 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: cgrl %r0, 2864434397 # encoding: [0xc6,0x08,0x55,0x5d,0xe6,0x6e] +#CHECK: cgrl %r15, 2864434397 # encoding: [0xc6,0xf8,0x55,0x5d,0xe6,0x6e] + + cgrl %r0,0xaabbccdd + cgrl %r15,0xaabbccdd + +#CHECK: cgrl %r0, foo # encoding: [0xc6,0x08,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: cgrl %r15, foo # encoding: [0xc6,0xf8,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL + + cgrl %r0,foo + cgrl %r15,foo + +#CHECK: cgrl %r3, bar+100 # encoding: [0xc6,0x38,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL +#CHECK: cgrl %r4, bar+100 # encoding: [0xc6,0x48,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL + + cgrl %r3,bar+100 + cgrl %r4,bar+100 + +#CHECK: cgrl %r7, frob@PLT # encoding: [0xc6,0x78,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL +#CHECK: cgrl %r8, frob@PLT # encoding: [0xc6,0x88,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL + + cgrl %r7,frob@PLT + cgrl %r8,frob@PLT diff --git a/test/MC/SystemZ/insn-cgxbr-01.s b/test/MC/SystemZ/insn-cgxbr-01.s new file mode 100644 index 0000000000..0250b52955 --- /dev/null +++ b/test/MC/SystemZ/insn-cgxbr-01.s @@ -0,0 +1,13 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: cgxbr %r0, 0, %f0 # encoding: [0xb3,0xaa,0x00,0x00] +#CHECK: cgxbr %r0, 0, %f13 # encoding: [0xb3,0xaa,0x00,0x0d] +#CHECK: cgxbr %r0, 15, %f0 # encoding: [0xb3,0xaa,0xf0,0x00] +#CHECK: cgxbr %r4, 5, %f8 # encoding: [0xb3,0xaa,0x50,0x48] +#CHECK: cgxbr %r15, 0, %f0 # encoding: [0xb3,0xaa,0x00,0xf0] + + cgxbr %r0, 0, %f0 + cgxbr %r0, 0, %f13 + cgxbr %r0, 15, %f0 + cgxbr %r4, 5, %f8 + cgxbr %r15, 0, %f0 diff --git a/test/MC/SystemZ/insn-cgxbr-02.s b/test/MC/SystemZ/insn-cgxbr-02.s new file mode 100644 index 0000000000..9caab9fc40 --- /dev/null +++ b/test/MC/SystemZ/insn-cgxbr-02.s @@ -0,0 +1,23 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: cgxbr %r0, 0, %r0 +#CHECK: error: invalid register +#CHECK: cgxbr %f0, 0, %f0 +#CHECK: error: invalid operand +#CHECK: cgxbr %r0, -1, %f0 +#CHECK: error: invalid operand +#CHECK: cgxbr %r0, 16, %f0 +#CHECK: error: invalid register +#CHECK: cgxbr %r0, 0, %f2 +#CHECK: error: invalid register +#CHECK: cgxbr %r0, 0, %f14 + + cgxbr %r0, 0, %r0 + cgxbr %f0, 0, %f0 + cgxbr %r0, -1, %f0 + cgxbr %r0, 16, %f0 + cgxbr %r0, 0, %f2 + cgxbr %r0, 0, %f14 + diff --git a/test/MC/SystemZ/insn-ch-01.s b/test/MC/SystemZ/insn-ch-01.s new file mode 100644 index 0000000000..dfb0b7fcca --- /dev/null +++ b/test/MC/SystemZ/insn-ch-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: ch %r0, 0 # encoding: [0x49,0x00,0x00,0x00] +#CHECK: ch %r0, 4095 # encoding: [0x49,0x00,0x0f,0xff] +#CHECK: ch %r0, 0(%r1) # encoding: [0x49,0x00,0x10,0x00] +#CHECK: ch %r0, 0(%r15) # encoding: [0x49,0x00,0xf0,0x00] +#CHECK: ch %r0, 4095(%r1,%r15) # encoding: [0x49,0x01,0xff,0xff] +#CHECK: ch %r0, 4095(%r15,%r1) # encoding: [0x49,0x0f,0x1f,0xff] +#CHECK: ch %r15, 0 # encoding: [0x49,0xf0,0x00,0x00] + + ch %r0, 0 + ch %r0, 4095 + ch %r0, 0(%r1) + ch %r0, 0(%r15) + ch %r0, 4095(%r1,%r15) + ch %r0, 4095(%r15,%r1) + ch %r15, 0 diff --git a/test/MC/SystemZ/insn-ch-02.s b/test/MC/SystemZ/insn-ch-02.s new file mode 100644 index 0000000000..2034c2b8d4 --- /dev/null +++ b/test/MC/SystemZ/insn-ch-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: ch %r0, -1 +#CHECK: error: invalid operand +#CHECK: ch %r0, 4096 + + ch %r0, -1 + ch %r0, 4096 diff --git a/test/MC/SystemZ/insn-chhsi-01.s b/test/MC/SystemZ/insn-chhsi-01.s new file mode 100644 index 0000000000..0fd50bc5e1 --- /dev/null +++ b/test/MC/SystemZ/insn-chhsi-01.s @@ -0,0 +1,25 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: chhsi 0, 0 # encoding: [0xe5,0x54,0x00,0x00,0x00,0x00] +#CHECK: chhsi 4095, 0 # encoding: [0xe5,0x54,0x0f,0xff,0x00,0x00] +#CHECK: chhsi 0, -32768 # encoding: [0xe5,0x54,0x00,0x00,0x80,0x00] +#CHECK: chhsi 0, -1 # encoding: [0xe5,0x54,0x00,0x00,0xff,0xff] +#CHECK: chhsi 0, 0 # encoding: [0xe5,0x54,0x00,0x00,0x00,0x00] +#CHECK: chhsi 0, 1 # encoding: [0xe5,0x54,0x00,0x00,0x00,0x01] +#CHECK: chhsi 0, 32767 # encoding: [0xe5,0x54,0x00,0x00,0x7f,0xff] +#CHECK: chhsi 0(%r1), 42 # encoding: [0xe5,0x54,0x10,0x00,0x00,0x2a] +#CHECK: chhsi 0(%r15), 42 # encoding: [0xe5,0x54,0xf0,0x00,0x00,0x2a] +#CHECK: chhsi 4095(%r1), 42 # encoding: [0xe5,0x54,0x1f,0xff,0x00,0x2a] +#CHECK: chhsi 4095(%r15), 42 # encoding: [0xe5,0x54,0xff,0xff,0x00,0x2a] + + chhsi 0, 0 + chhsi 4095, 0 + chhsi 0, -32768 + chhsi 0, -1 + chhsi 0, 0 + chhsi 0, 1 + chhsi 0, 32767 + chhsi 0(%r1), 42 + chhsi 0(%r15), 42 + chhsi 4095(%r1), 42 + chhsi 4095(%r15), 42 diff --git a/test/MC/SystemZ/insn-chhsi-02.s b/test/MC/SystemZ/insn-chhsi-02.s new file mode 100644 index 0000000000..24e8c0cfbd --- /dev/null +++ b/test/MC/SystemZ/insn-chhsi-02.s @@ -0,0 +1,19 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: chhsi -1, 0 +#CHECK: error: invalid operand +#CHECK: chhsi 4096, 0 +#CHECK: error: invalid use of indexed addressing +#CHECK: chhsi 0(%r1,%r2), 0 +#CHECK: error: invalid operand +#CHECK: chhsi 0, -32769 +#CHECK: error: invalid operand +#CHECK: chhsi 0, 32768 + + chhsi -1, 0 + chhsi 4096, 0 + chhsi 0(%r1,%r2), 0 + chhsi 0, -32769 + chhsi 0, 32768 diff --git a/test/MC/SystemZ/insn-chi-01.s b/test/MC/SystemZ/insn-chi-01.s new file mode 100644 index 0000000000..fb44cfc217 --- /dev/null +++ b/test/MC/SystemZ/insn-chi-01.s @@ -0,0 +1,15 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: chi %r0, -32768 # encoding: [0xa7,0x0e,0x80,0x00] +#CHECK: chi %r0, -1 # encoding: [0xa7,0x0e,0xff,0xff] +#CHECK: chi %r0, 0 # encoding: [0xa7,0x0e,0x00,0x00] +#CHECK: chi %r0, 1 # encoding: [0xa7,0x0e,0x00,0x01] +#CHECK: chi %r0, 32767 # encoding: [0xa7,0x0e,0x7f,0xff] +#CHECK: chi %r15, 0 # encoding: [0xa7,0xfe,0x00,0x00] + + chi %r0, -32768 + chi %r0, -1 + chi %r0, 0 + chi %r0, 1 + chi %r0, 32767 + chi %r15, 0 diff --git a/test/MC/SystemZ/insn-chi-02.s b/test/MC/SystemZ/insn-chi-02.s new file mode 100644 index 0000000000..bb9ffdc7e6 --- /dev/null +++ b/test/MC/SystemZ/insn-chi-02.s @@ -0,0 +1,13 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: chi %r0, -32769 +#CHECK: error: invalid operand +#CHECK: chi %r0, 32768 +#CHECK: error: invalid operand +#CHECK: chi %r0, foo + + chi %r0, -32769 + chi %r0, 32768 + chi %r0, foo diff --git a/test/MC/SystemZ/insn-chrl-01.s b/test/MC/SystemZ/insn-chrl-01.s new file mode 100644 index 0000000000..c133a326d2 --- /dev/null +++ b/test/MC/SystemZ/insn-chrl-01.s @@ -0,0 +1,31 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: chrl %r0, 2864434397 # encoding: [0xc6,0x05,0x55,0x5d,0xe6,0x6e] +#CHECK: chrl %r15, 2864434397 # encoding: [0xc6,0xf5,0x55,0x5d,0xe6,0x6e] + + chrl %r0,0xaabbccdd + chrl %r15,0xaabbccdd + +#CHECK: chrl %r0, foo # encoding: [0xc6,0x05,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: chrl %r15, foo # encoding: [0xc6,0xf5,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL + + chrl %r0,foo + chrl %r15,foo + +#CHECK: chrl %r3, bar+100 # encoding: [0xc6,0x35,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL +#CHECK: chrl %r4, bar+100 # encoding: [0xc6,0x45,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL + + chrl %r3,bar+100 + chrl %r4,bar+100 + +#CHECK: chrl %r7, frob@PLT # encoding: [0xc6,0x75,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL +#CHECK: chrl %r8, frob@PLT # encoding: [0xc6,0x85,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL + + chrl %r7,frob@PLT + chrl %r8,frob@PLT diff --git a/test/MC/SystemZ/insn-chsi-01.s b/test/MC/SystemZ/insn-chsi-01.s new file mode 100644 index 0000000000..6d92202185 --- /dev/null +++ b/test/MC/SystemZ/insn-chsi-01.s @@ -0,0 +1,25 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: chsi 0, 0 # encoding: [0xe5,0x5c,0x00,0x00,0x00,0x00] +#CHECK: chsi 4095, 0 # encoding: [0xe5,0x5c,0x0f,0xff,0x00,0x00] +#CHECK: chsi 0, -32768 # encoding: [0xe5,0x5c,0x00,0x00,0x80,0x00] +#CHECK: chsi 0, -1 # encoding: [0xe5,0x5c,0x00,0x00,0xff,0xff] +#CHECK: chsi 0, 0 # encoding: [0xe5,0x5c,0x00,0x00,0x00,0x00] +#CHECK: chsi 0, 1 # encoding: [0xe5,0x5c,0x00,0x00,0x00,0x01] +#CHECK: chsi 0, 32767 # encoding: [0xe5,0x5c,0x00,0x00,0x7f,0xff] +#CHECK: chsi 0(%r1), 42 # encoding: [0xe5,0x5c,0x10,0x00,0x00,0x2a] +#CHECK: chsi 0(%r15), 42 # encoding: [0xe5,0x5c,0xf0,0x00,0x00,0x2a] +#CHECK: chsi 4095(%r1), 42 # encoding: [0xe5,0x5c,0x1f,0xff,0x00,0x2a] +#CHECK: chsi 4095(%r15), 42 # encoding: [0xe5,0x5c,0xff,0xff,0x00,0x2a] + + chsi 0, 0 + chsi 4095, 0 + chsi 0, -32768 + chsi 0, -1 + chsi 0, 0 + chsi 0, 1 + chsi 0, 32767 + chsi 0(%r1), 42 + chsi 0(%r15), 42 + chsi 4095(%r1), 42 + chsi 4095(%r15), 42 diff --git a/test/MC/SystemZ/insn-chsi-02.s b/test/MC/SystemZ/insn-chsi-02.s new file mode 100644 index 0000000000..16ace53d67 --- /dev/null +++ b/test/MC/SystemZ/insn-chsi-02.s @@ -0,0 +1,19 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: chsi -1, 0 +#CHECK: error: invalid operand +#CHECK: chsi 4096, 0 +#CHECK: error: invalid use of indexed addressing +#CHECK: chsi 0(%r1,%r2), 0 +#CHECK: error: invalid operand +#CHECK: chsi 0, -32769 +#CHECK: error: invalid operand +#CHECK: chsi 0, 32768 + + chsi -1, 0 + chsi 4096, 0 + chsi 0(%r1,%r2), 0 + chsi 0, -32769 + chsi 0, 32768 diff --git a/test/MC/SystemZ/insn-chy-01.s b/test/MC/SystemZ/insn-chy-01.s new file mode 100644 index 0000000000..9ecc0551cf --- /dev/null +++ b/test/MC/SystemZ/insn-chy-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: chy %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x79] +#CHECK: chy %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x79] +#CHECK: chy %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x79] +#CHECK: chy %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x79] +#CHECK: chy %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x79] +#CHECK: chy %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x79] +#CHECK: chy %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x79] +#CHECK: chy %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x79] +#CHECK: chy %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x79] +#CHECK: chy %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x79] + + chy %r0, -524288 + chy %r0, -1 + chy %r0, 0 + chy %r0, 1 + chy %r0, 524287 + chy %r0, 0(%r1) + chy %r0, 0(%r15) + chy %r0, 524287(%r1,%r15) + chy %r0, 524287(%r15,%r1) + chy %r15, 0 diff --git a/test/MC/SystemZ/insn-chy-02.s b/test/MC/SystemZ/insn-chy-02.s new file mode 100644 index 0000000000..8ab849f090 --- /dev/null +++ b/test/MC/SystemZ/insn-chy-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: chy %r0, -524289 +#CHECK: error: invalid operand +#CHECK: chy %r0, 524288 + + chy %r0, -524289 + chy %r0, 524288 diff --git a/test/MC/SystemZ/insn-cl-01.s b/test/MC/SystemZ/insn-cl-01.s new file mode 100644 index 0000000000..7face8f854 --- /dev/null +++ b/test/MC/SystemZ/insn-cl-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: cl %r0, 0 # encoding: [0x55,0x00,0x00,0x00] +#CHECK: cl %r0, 4095 # encoding: [0x55,0x00,0x0f,0xff] +#CHECK: cl %r0, 0(%r1) # encoding: [0x55,0x00,0x10,0x00] +#CHECK: cl %r0, 0(%r15) # encoding: [0x55,0x00,0xf0,0x00] +#CHECK: cl %r0, 4095(%r1,%r15) # encoding: [0x55,0x01,0xff,0xff] +#CHECK: cl %r0, 4095(%r15,%r1) # encoding: [0x55,0x0f,0x1f,0xff] +#CHECK: cl %r15, 0 # encoding: [0x55,0xf0,0x00,0x00] + + cl %r0, 0 + cl %r0, 4095 + cl %r0, 0(%r1) + cl %r0, 0(%r15) + cl %r0, 4095(%r1,%r15) + cl %r0, 4095(%r15,%r1) + cl %r15, 0 diff --git a/test/MC/SystemZ/insn-cl-02.s b/test/MC/SystemZ/insn-cl-02.s new file mode 100644 index 0000000000..ec3e1df996 --- /dev/null +++ b/test/MC/SystemZ/insn-cl-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: cl %r0, -1 +#CHECK: error: invalid operand +#CHECK: cl %r0, 4096 + + cl %r0, -1 + cl %r0, 4096 diff --git a/test/MC/SystemZ/insn-clfhsi-01.s b/test/MC/SystemZ/insn-clfhsi-01.s new file mode 100644 index 0000000000..910515d96b --- /dev/null +++ b/test/MC/SystemZ/insn-clfhsi-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: clfhsi 0, 0 # encoding: [0xe5,0x5d,0x00,0x00,0x00,0x00] +#CHECK: clfhsi 4095, 0 # encoding: [0xe5,0x5d,0x0f,0xff,0x00,0x00] +#CHECK: clfhsi 0, 65535 # encoding: [0xe5,0x5d,0x00,0x00,0xff,0xff] +#CHECK: clfhsi 0(%r1), 42 # encoding: [0xe5,0x5d,0x10,0x00,0x00,0x2a] +#CHECK: clfhsi 0(%r15), 42 # encoding: [0xe5,0x5d,0xf0,0x00,0x00,0x2a] +#CHECK: clfhsi 4095(%r1), 42 # encoding: [0xe5,0x5d,0x1f,0xff,0x00,0x2a] +#CHECK: clfhsi 4095(%r15), 42 # encoding: [0xe5,0x5d,0xff,0xff,0x00,0x2a] + + clfhsi 0, 0 + clfhsi 4095, 0 + clfhsi 0, 65535 + clfhsi 0(%r1), 42 + clfhsi 0(%r15), 42 + clfhsi 4095(%r1), 42 + clfhsi 4095(%r15), 42 diff --git a/test/MC/SystemZ/insn-clfhsi-02.s b/test/MC/SystemZ/insn-clfhsi-02.s new file mode 100644 index 0000000000..4a6f4049c5 --- /dev/null +++ b/test/MC/SystemZ/insn-clfhsi-02.s @@ -0,0 +1,19 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: clfhsi -1, 0 +#CHECK: error: invalid operand +#CHECK: clfhsi 4096, 0 +#CHECK: error: invalid use of indexed addressing +#CHECK: clfhsi 0(%r1,%r2), 0 +#CHECK: error: invalid operand +#CHECK: clfhsi 0, -1 +#CHECK: error: invalid operand +#CHECK: clfhsi 0, 65536 + + clfhsi -1, 0 + clfhsi 4096, 0 + clfhsi 0(%r1,%r2), 0 + clfhsi 0, -1 + clfhsi 0, 65536 diff --git a/test/MC/SystemZ/insn-clfi-01.s b/test/MC/SystemZ/insn-clfi-01.s new file mode 100644 index 0000000000..4156c7f6e8 --- /dev/null +++ b/test/MC/SystemZ/insn-clfi-01.s @@ -0,0 +1,9 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: clfi %r0, 0 # encoding: [0xc2,0x0f,0x00,0x00,0x00,0x00] +#CHECK: clfi %r0, 4294967295 # encoding: [0xc2,0x0f,0xff,0xff,0xff,0xff] +#CHECK: clfi %r15, 0 # encoding: [0xc2,0xff,0x00,0x00,0x00,0x00] + + clfi %r0, 0 + clfi %r0, (1 << 32) - 1 + clfi %r15, 0 diff --git a/test/MC/SystemZ/insn-clfi-02.s b/test/MC/SystemZ/insn-clfi-02.s new file mode 100644 index 0000000000..9d3f80630e --- /dev/null +++ b/test/MC/SystemZ/insn-clfi-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: clfi %r0, -1 +#CHECK: error: invalid operand +#CHECK: clfi %r0, (1 << 32) + + clfi %r0, -1 + clfi %r0, (1 << 32) diff --git a/test/MC/SystemZ/insn-clg-01.s b/test/MC/SystemZ/insn-clg-01.s new file mode 100644 index 0000000000..596bae1c81 --- /dev/null +++ b/test/MC/SystemZ/insn-clg-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: clg %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x21] +#CHECK: clg %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x21] +#CHECK: clg %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x21] +#CHECK: clg %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x21] +#CHECK: clg %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x21] +#CHECK: clg %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x21] +#CHECK: clg %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x21] +#CHECK: clg %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x21] +#CHECK: clg %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x21] +#CHECK: clg %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x21] + + clg %r0, -524288 + clg %r0, -1 + clg %r0, 0 + clg %r0, 1 + clg %r0, 524287 + clg %r0, 0(%r1) + clg %r0, 0(%r15) + clg %r0, 524287(%r1,%r15) + clg %r0, 524287(%r15,%r1) + clg %r15, 0 diff --git a/test/MC/SystemZ/insn-clg-02.s b/test/MC/SystemZ/insn-clg-02.s new file mode 100644 index 0000000000..a17aab5204 --- /dev/null +++ b/test/MC/SystemZ/insn-clg-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: clg %r0, -524289 +#CHECK: error: invalid operand +#CHECK: clg %r0, 524288 + + clg %r0, -524289 + clg %r0, 524288 diff --git a/test/MC/SystemZ/insn-clgf-01.s b/test/MC/SystemZ/insn-clgf-01.s new file mode 100644 index 0000000000..003ba83802 --- /dev/null +++ b/test/MC/SystemZ/insn-clgf-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: clgf %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x31] +#CHECK: clgf %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x31] +#CHECK: clgf %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x31] +#CHECK: clgf %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x31] +#CHECK: clgf %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x31] +#CHECK: clgf %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x31] +#CHECK: clgf %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x31] +#CHECK: clgf %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x31] +#CHECK: clgf %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x31] +#CHECK: clgf %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x31] + + clgf %r0, -524288 + clgf %r0, -1 + clgf %r0, 0 + clgf %r0, 1 + clgf %r0, 524287 + clgf %r0, 0(%r1) + clgf %r0, 0(%r15) + clgf %r0, 524287(%r1,%r15) + clgf %r0, 524287(%r15,%r1) + clgf %r15, 0 diff --git a/test/MC/SystemZ/insn-clgf-02.s b/test/MC/SystemZ/insn-clgf-02.s new file mode 100644 index 0000000000..9de49ae79b --- /dev/null +++ b/test/MC/SystemZ/insn-clgf-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: clgf %r0, -524289 +#CHECK: error: invalid operand +#CHECK: clgf %r0, 524288 + + clgf %r0, -524289 + clgf %r0, 524288 diff --git a/test/MC/SystemZ/insn-clgfi-01.s b/test/MC/SystemZ/insn-clgfi-01.s new file mode 100644 index 0000000000..dbf4a0e8f0 --- /dev/null +++ b/test/MC/SystemZ/insn-clgfi-01.s @@ -0,0 +1,9 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: clgfi %r0, 0 # encoding: [0xc2,0x0e,0x00,0x00,0x00,0x00] +#CHECK: clgfi %r0, 4294967295 # encoding: [0xc2,0x0e,0xff,0xff,0xff,0xff] +#CHECK: clgfi %r15, 0 # encoding: [0xc2,0xfe,0x00,0x00,0x00,0x00] + + clgfi %r0, 0 + clgfi %r0, (1 << 32) - 1 + clgfi %r15, 0 diff --git a/test/MC/SystemZ/insn-clgfi-02.s b/test/MC/SystemZ/insn-clgfi-02.s new file mode 100644 index 0000000000..3f2db33d83 --- /dev/null +++ b/test/MC/SystemZ/insn-clgfi-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: clgfi %r0, -1 +#CHECK: error: invalid operand +#CHECK: clgfi %r0, (1 << 32) + + clgfi %r0, -1 + clgfi %r0, (1 << 32) diff --git a/test/MC/SystemZ/insn-clgfr-01.s b/test/MC/SystemZ/insn-clgfr-01.s new file mode 100644 index 0000000000..37f1e24452 --- /dev/null +++ b/test/MC/SystemZ/insn-clgfr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: clgfr %r0, %r0 # encoding: [0xb9,0x31,0x00,0x00] +#CHECK: clgfr %r0, %r15 # encoding: [0xb9,0x31,0x00,0x0f] +#CHECK: clgfr %r15, %r0 # encoding: [0xb9,0x31,0x00,0xf0] +#CHECK: clgfr %r7, %r8 # encoding: [0xb9,0x31,0x00,0x78] + + clgfr %r0,%r0 + clgfr %r0,%r15 + clgfr %r15,%r0 + clgfr %r7,%r8 diff --git a/test/MC/SystemZ/insn-clgfrl-01.s b/test/MC/SystemZ/insn-clgfrl-01.s new file mode 100644 index 0000000000..6fc6d5eb3b --- /dev/null +++ b/test/MC/SystemZ/insn-clgfrl-01.s @@ -0,0 +1,31 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: clgfrl %r0, 2864434397 # encoding: [0xc6,0x0e,0x55,0x5d,0xe6,0x6e] +#CHECK: clgfrl %r15, 2864434397 # encoding: [0xc6,0xfe,0x55,0x5d,0xe6,0x6e] + + clgfrl %r0,0xaabbccdd + clgfrl %r15,0xaabbccdd + +#CHECK: clgfrl %r0, foo # encoding: [0xc6,0x0e,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: clgfrl %r15, foo # encoding: [0xc6,0xfe,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL + + clgfrl %r0,foo + clgfrl %r15,foo + +#CHECK: clgfrl %r3, bar+100 # encoding: [0xc6,0x3e,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL +#CHECK: clgfrl %r4, bar+100 # encoding: [0xc6,0x4e,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL + + clgfrl %r3,bar+100 + clgfrl %r4,bar+100 + +#CHECK: clgfrl %r7, frob@PLT # encoding: [0xc6,0x7e,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL +#CHECK: clgfrl %r8, frob@PLT # encoding: [0xc6,0x8e,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL + + clgfrl %r7,frob@PLT + clgfrl %r8,frob@PLT diff --git a/test/MC/SystemZ/insn-clghrl-01.s b/test/MC/SystemZ/insn-clghrl-01.s new file mode 100644 index 0000000000..41c2580abd --- /dev/null +++ b/test/MC/SystemZ/insn-clghrl-01.s @@ -0,0 +1,31 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: clghrl %r0, 2864434397 # encoding: [0xc6,0x06,0x55,0x5d,0xe6,0x6e] +#CHECK: clghrl %r15, 2864434397 # encoding: [0xc6,0xf6,0x55,0x5d,0xe6,0x6e] + + clghrl %r0,0xaabbccdd + clghrl %r15,0xaabbccdd + +#CHECK: clghrl %r0, foo # encoding: [0xc6,0x06,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: clghrl %r15, foo # encoding: [0xc6,0xf6,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL + + clghrl %r0,foo + clghrl %r15,foo + +#CHECK: clghrl %r3, bar+100 # encoding: [0xc6,0x36,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL +#CHECK: clghrl %r4, bar+100 # encoding: [0xc6,0x46,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL + + clghrl %r3,bar+100 + clghrl %r4,bar+100 + +#CHECK: clghrl %r7, frob@PLT # encoding: [0xc6,0x76,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL +#CHECK: clghrl %r8, frob@PLT # encoding: [0xc6,0x86,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL + + clghrl %r7,frob@PLT + clghrl %r8,frob@PLT diff --git a/test/MC/SystemZ/insn-clghsi-01.s b/test/MC/SystemZ/insn-clghsi-01.s new file mode 100644 index 0000000000..05e0c585c0 --- /dev/null +++ b/test/MC/SystemZ/insn-clghsi-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: clghsi 0, 0 # encoding: [0xe5,0x59,0x00,0x00,0x00,0x00] +#CHECK: clghsi 4095, 0 # encoding: [0xe5,0x59,0x0f,0xff,0x00,0x00] +#CHECK: clghsi 0, 65535 # encoding: [0xe5,0x59,0x00,0x00,0xff,0xff] +#CHECK: clghsi 0(%r1), 42 # encoding: [0xe5,0x59,0x10,0x00,0x00,0x2a] +#CHECK: clghsi 0(%r15), 42 # encoding: [0xe5,0x59,0xf0,0x00,0x00,0x2a] +#CHECK: clghsi 4095(%r1), 42 # encoding: [0xe5,0x59,0x1f,0xff,0x00,0x2a] +#CHECK: clghsi 4095(%r15), 42 # encoding: [0xe5,0x59,0xff,0xff,0x00,0x2a] + + clghsi 0, 0 + clghsi 4095, 0 + clghsi 0, 65535 + clghsi 0(%r1), 42 + clghsi 0(%r15), 42 + clghsi 4095(%r1), 42 + clghsi 4095(%r15), 42 diff --git a/test/MC/SystemZ/insn-clghsi-02.s b/test/MC/SystemZ/insn-clghsi-02.s new file mode 100644 index 0000000000..f036128070 --- /dev/null +++ b/test/MC/SystemZ/insn-clghsi-02.s @@ -0,0 +1,19 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: clghsi -1, 0 +#CHECK: error: invalid operand +#CHECK: clghsi 4096, 0 +#CHECK: error: invalid use of indexed addressing +#CHECK: clghsi 0(%r1,%r2), 0 +#CHECK: error: invalid operand +#CHECK: clghsi 0, -1 +#CHECK: error: invalid operand +#CHECK: clghsi 0, 65536 + + clghsi -1, 0 + clghsi 4096, 0 + clghsi 0(%r1,%r2), 0 + clghsi 0, -1 + clghsi 0, 65536 diff --git a/test/MC/SystemZ/insn-clgr-01.s b/test/MC/SystemZ/insn-clgr-01.s new file mode 100644 index 0000000000..7e9d2ad439 --- /dev/null +++ b/test/MC/SystemZ/insn-clgr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: clgr %r0, %r0 # encoding: [0xb9,0x21,0x00,0x00] +#CHECK: clgr %r0, %r15 # encoding: [0xb9,0x21,0x00,0x0f] +#CHECK: clgr %r15, %r0 # encoding: [0xb9,0x21,0x00,0xf0] +#CHECK: clgr %r7, %r8 # encoding: [0xb9,0x21,0x00,0x78] + + clgr %r0,%r0 + clgr %r0,%r15 + clgr %r15,%r0 + clgr %r7,%r8 diff --git a/test/MC/SystemZ/insn-clgrl-01.s b/test/MC/SystemZ/insn-clgrl-01.s new file mode 100644 index 0000000000..439bcd94ff --- /dev/null +++ b/test/MC/SystemZ/insn-clgrl-01.s @@ -0,0 +1,31 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: clgrl %r0, 2864434397 # encoding: [0xc6,0x0a,0x55,0x5d,0xe6,0x6e] +#CHECK: clgrl %r15, 2864434397 # encoding: [0xc6,0xfa,0x55,0x5d,0xe6,0x6e] + + clgrl %r0,0xaabbccdd + clgrl %r15,0xaabbccdd + +#CHECK: clgrl %r0, foo # encoding: [0xc6,0x0a,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: clgrl %r15, foo # encoding: [0xc6,0xfa,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL + + clgrl %r0,foo + clgrl %r15,foo + +#CHECK: clgrl %r3, bar+100 # encoding: [0xc6,0x3a,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL +#CHECK: clgrl %r4, bar+100 # encoding: [0xc6,0x4a,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL + + clgrl %r3,bar+100 + clgrl %r4,bar+100 + +#CHECK: clgrl %r7, frob@PLT # encoding: [0xc6,0x7a,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL +#CHECK: clgrl %r8, frob@PLT # encoding: [0xc6,0x8a,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL + + clgrl %r7,frob@PLT + clgrl %r8,frob@PLT diff --git a/test/MC/SystemZ/insn-clhhsi-01.s b/test/MC/SystemZ/insn-clhhsi-01.s new file mode 100644 index 0000000000..ae72ffa018 --- /dev/null +++ b/test/MC/SystemZ/insn-clhhsi-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: clhhsi 0, 0 # encoding: [0xe5,0x55,0x00,0x00,0x00,0x00] +#CHECK: clhhsi 4095, 0 # encoding: [0xe5,0x55,0x0f,0xff,0x00,0x00] +#CHECK: clhhsi 0, 65535 # encoding: [0xe5,0x55,0x00,0x00,0xff,0xff] +#CHECK: clhhsi 0(%r1), 42 # encoding: [0xe5,0x55,0x10,0x00,0x00,0x2a] +#CHECK: clhhsi 0(%r15), 42 # encoding: [0xe5,0x55,0xf0,0x00,0x00,0x2a] +#CHECK: clhhsi 4095(%r1), 42 # encoding: [0xe5,0x55,0x1f,0xff,0x00,0x2a] +#CHECK: clhhsi 4095(%r15), 42 # encoding: [0xe5,0x55,0xff,0xff,0x00,0x2a] + + clhhsi 0, 0 + clhhsi 4095, 0 + clhhsi 0, 65535 + clhhsi 0(%r1), 42 + clhhsi 0(%r15), 42 + clhhsi 4095(%r1), 42 + clhhsi 4095(%r15), 42 diff --git a/test/MC/SystemZ/insn-clhhsi-02.s b/test/MC/SystemZ/insn-clhhsi-02.s new file mode 100644 index 0000000000..bbdf7cd0da --- /dev/null +++ b/test/MC/SystemZ/insn-clhhsi-02.s @@ -0,0 +1,19 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: clhhsi -1, 0 +#CHECK: error: invalid operand +#CHECK: clhhsi 4096, 0 +#CHECK: error: invalid use of indexed addressing +#CHECK: clhhsi 0(%r1,%r2), 0 +#CHECK: error: invalid operand +#CHECK: clhhsi 0, -1 +#CHECK: error: invalid operand +#CHECK: clhhsi 0, 65536 + + clhhsi -1, 0 + clhhsi 4096, 0 + clhhsi 0(%r1,%r2), 0 + clhhsi 0, -1 + clhhsi 0, 65536 diff --git a/test/MC/SystemZ/insn-clhrl-01.s b/test/MC/SystemZ/insn-clhrl-01.s new file mode 100644 index 0000000000..b424de8f66 --- /dev/null +++ b/test/MC/SystemZ/insn-clhrl-01.s @@ -0,0 +1,31 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: clhrl %r0, 2864434397 # encoding: [0xc6,0x07,0x55,0x5d,0xe6,0x6e] +#CHECK: clhrl %r15, 2864434397 # encoding: [0xc6,0xf7,0x55,0x5d,0xe6,0x6e] + + clhrl %r0,0xaabbccdd + clhrl %r15,0xaabbccdd + +#CHECK: clhrl %r0, foo # encoding: [0xc6,0x07,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: clhrl %r15, foo # encoding: [0xc6,0xf7,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL + + clhrl %r0,foo + clhrl %r15,foo + +#CHECK: clhrl %r3, bar+100 # encoding: [0xc6,0x37,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL +#CHECK: clhrl %r4, bar+100 # encoding: [0xc6,0x47,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL + + clhrl %r3,bar+100 + clhrl %r4,bar+100 + +#CHECK: clhrl %r7, frob@PLT # encoding: [0xc6,0x77,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL +#CHECK: clhrl %r8, frob@PLT # encoding: [0xc6,0x87,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL + + clhrl %r7,frob@PLT + clhrl %r8,frob@PLT diff --git a/test/MC/SystemZ/insn-cli-01.s b/test/MC/SystemZ/insn-cli-01.s new file mode 100644 index 0000000000..23bccfab4b --- /dev/null +++ b/test/MC/SystemZ/insn-cli-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: cli 0, 0 # encoding: [0x95,0x00,0x00,0x00] +#CHECK: cli 4095, 0 # encoding: [0x95,0x00,0x0f,0xff] +#CHECK: cli 0, 255 # encoding: [0x95,0xff,0x00,0x00] +#CHECK: cli 0(%r1), 42 # encoding: [0x95,0x2a,0x10,0x00] +#CHECK: cli 0(%r15), 42 # encoding: [0x95,0x2a,0xf0,0x00] +#CHECK: cli 4095(%r1), 42 # encoding: [0x95,0x2a,0x1f,0xff] +#CHECK: cli 4095(%r15), 42 # encoding: [0x95,0x2a,0xff,0xff] + + cli 0, 0 + cli 4095, 0 + cli 0, 255 + cli 0(%r1), 42 + cli 0(%r15), 42 + cli 4095(%r1), 42 + cli 4095(%r15), 42 diff --git a/test/MC/SystemZ/insn-cli-02.s b/test/MC/SystemZ/insn-cli-02.s new file mode 100644 index 0000000000..7fe6fdabfd --- /dev/null +++ b/test/MC/SystemZ/insn-cli-02.s @@ -0,0 +1,19 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: cli -1, 0 +#CHECK: error: invalid operand +#CHECK: cli 4096, 0 +#CHECK: error: invalid use of indexed addressing +#CHECK: cli 0(%r1,%r2), 0 +#CHECK: error: invalid operand +#CHECK: cli 0, -1 +#CHECK: error: invalid operand +#CHECK: cli 0, 256 + + cli -1, 0 + cli 4096, 0 + cli 0(%r1,%r2), 0 + cli 0, -1 + cli 0, 256 diff --git a/test/MC/SystemZ/insn-cliy-01.s b/test/MC/SystemZ/insn-cliy-01.s new file mode 100644 index 0000000000..1a26f605d8 --- /dev/null +++ b/test/MC/SystemZ/insn-cliy-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: cliy -524288, 0 # encoding: [0xeb,0x00,0x00,0x00,0x80,0x55] +#CHECK: cliy -1, 0 # encoding: [0xeb,0x00,0x0f,0xff,0xff,0x55] +#CHECK: cliy 0, 0 # encoding: [0xeb,0x00,0x00,0x00,0x00,0x55] +#CHECK: cliy 1, 0 # encoding: [0xeb,0x00,0x00,0x01,0x00,0x55] +#CHECK: cliy 524287, 0 # encoding: [0xeb,0x00,0x0f,0xff,0x7f,0x55] +#CHECK: cliy 0, 255 # encoding: [0xeb,0xff,0x00,0x00,0x00,0x55] +#CHECK: cliy 0(%r1), 42 # encoding: [0xeb,0x2a,0x10,0x00,0x00,0x55] +#CHECK: cliy 0(%r15), 42 # encoding: [0xeb,0x2a,0xf0,0x00,0x00,0x55] +#CHECK: cliy 524287(%r1), 42 # encoding: [0xeb,0x2a,0x1f,0xff,0x7f,0x55] +#CHECK: cliy 524287(%r15), 42 # encoding: [0xeb,0x2a,0xff,0xff,0x7f,0x55] + + cliy -524288, 0 + cliy -1, 0 + cliy 0, 0 + cliy 1, 0 + cliy 524287, 0 + cliy 0, 255 + cliy 0(%r1), 42 + cliy 0(%r15), 42 + cliy 524287(%r1), 42 + cliy 524287(%r15), 42 diff --git a/test/MC/SystemZ/insn-cliy-02.s b/test/MC/SystemZ/insn-cliy-02.s new file mode 100644 index 0000000000..3e8056315d --- /dev/null +++ b/test/MC/SystemZ/insn-cliy-02.s @@ -0,0 +1,19 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: cliy -524289, 0 +#CHECK: error: invalid operand +#CHECK: cliy 524288, 0 +#CHECK: error: invalid use of indexed addressing +#CHECK: cliy 0(%r1,%r2), 0 +#CHECK: error: invalid operand +#CHECK: cliy 0, -1 +#CHECK: error: invalid operand +#CHECK: cliy 0, 256 + + cliy -524289, 0 + cliy 524288, 0 + cliy 0(%r1,%r2), 0 + cliy 0, -1 + cliy 0, 256 diff --git a/test/MC/SystemZ/insn-clr-01.s b/test/MC/SystemZ/insn-clr-01.s new file mode 100644 index 0000000000..d187d4e3e8 --- /dev/null +++ b/test/MC/SystemZ/insn-clr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: clr %r0, %r0 # encoding: [0x15,0x00] +#CHECK: clr %r0, %r15 # encoding: [0x15,0x0f] +#CHECK: clr %r15, %r0 # encoding: [0x15,0xf0] +#CHECK: clr %r7, %r8 # encoding: [0x15,0x78] + + clr %r0,%r0 + clr %r0,%r15 + clr %r15,%r0 + clr %r7,%r8 diff --git a/test/MC/SystemZ/insn-clrl-01.s b/test/MC/SystemZ/insn-clrl-01.s new file mode 100644 index 0000000000..4c6e649b43 --- /dev/null +++ b/test/MC/SystemZ/insn-clrl-01.s @@ -0,0 +1,31 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: clrl %r0, 2864434397 # encoding: [0xc6,0x0f,0x55,0x5d,0xe6,0x6e] +#CHECK: clrl %r15, 2864434397 # encoding: [0xc6,0xff,0x55,0x5d,0xe6,0x6e] + + clrl %r0,0xaabbccdd + clrl %r15,0xaabbccdd + +#CHECK: clrl %r0, foo # encoding: [0xc6,0x0f,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: clrl %r15, foo # encoding: [0xc6,0xff,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL + + clrl %r0,foo + clrl %r15,foo + +#CHECK: clrl %r3, bar+100 # encoding: [0xc6,0x3f,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL +#CHECK: clrl %r4, bar+100 # encoding: [0xc6,0x4f,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL + + clrl %r3,bar+100 + clrl %r4,bar+100 + +#CHECK: clrl %r7, frob@PLT # encoding: [0xc6,0x7f,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL +#CHECK: clrl %r8, frob@PLT # encoding: [0xc6,0x8f,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL + + clrl %r7,frob@PLT + clrl %r8,frob@PLT diff --git a/test/MC/SystemZ/insn-cly-01.s b/test/MC/SystemZ/insn-cly-01.s new file mode 100644 index 0000000000..8fb4af683e --- /dev/null +++ b/test/MC/SystemZ/insn-cly-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: cly %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x55] +#CHECK: cly %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x55] +#CHECK: cly %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x55] +#CHECK: cly %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x55] +#CHECK: cly %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x55] +#CHECK: cly %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x55] +#CHECK: cly %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x55] +#CHECK: cly %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x55] +#CHECK: cly %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x55] +#CHECK: cly %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x55] + + cly %r0, -524288 + cly %r0, -1 + cly %r0, 0 + cly %r0, 1 + cly %r0, 524287 + cly %r0, 0(%r1) + cly %r0, 0(%r15) + cly %r0, 524287(%r1,%r15) + cly %r0, 524287(%r15,%r1) + cly %r15, 0 diff --git a/test/MC/SystemZ/insn-cly-02.s b/test/MC/SystemZ/insn-cly-02.s new file mode 100644 index 0000000000..23f37a96cc --- /dev/null +++ b/test/MC/SystemZ/insn-cly-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: cly %r0, -524289 +#CHECK: error: invalid operand +#CHECK: cly %r0, 524288 + + cly %r0, -524289 + cly %r0, 524288 diff --git a/test/MC/SystemZ/insn-cpsdr-01.s b/test/MC/SystemZ/insn-cpsdr-01.s new file mode 100644 index 0000000000..23d773dfc9 --- /dev/null +++ b/test/MC/SystemZ/insn-cpsdr-01.s @@ -0,0 +1,16 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: cpsdr %f0, %f0, %f0 # encoding: [0xb3,0x72,0x00,0x00] +#CHECK: cpsdr %f0, %f0, %f15 # encoding: [0xb3,0x72,0x00,0x0f] +#CHECK: cpsdr %f0, %f15, %f0 # encoding: [0xb3,0x72,0xf0,0x00] +#CHECK: cpsdr %f15, %f0, %f0 # encoding: [0xb3,0x72,0x00,0xf0] +#CHECK: cpsdr %f1, %f2, %f3 # encoding: [0xb3,0x72,0x20,0x13] +#CHECK: cpsdr %f15, %f15, %f15 # encoding: [0xb3,0x72,0xf0,0xff] + + cpsdr %f0, %f0, %f0 + cpsdr %f0, %f0, %f15 + cpsdr %f0, %f15, %f0 + cpsdr %f15, %f0, %f0 + cpsdr %f1, %f2, %f3 + cpsdr %f15, %f15, %f15 + diff --git a/test/MC/SystemZ/insn-cr-01.s b/test/MC/SystemZ/insn-cr-01.s new file mode 100644 index 0000000000..d77e08513f --- /dev/null +++ b/test/MC/SystemZ/insn-cr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: cr %r0, %r0 # encoding: [0x19,0x00] +#CHECK: cr %r0, %r15 # encoding: [0x19,0x0f] +#CHECK: cr %r15, %r0 # encoding: [0x19,0xf0] +#CHECK: cr %r7, %r8 # encoding: [0x19,0x78] + + cr %r0,%r0 + cr %r0,%r15 + cr %r15,%r0 + cr %r7,%r8 diff --git a/test/MC/SystemZ/insn-crl-01.s b/test/MC/SystemZ/insn-crl-01.s new file mode 100644 index 0000000000..2451b4c9f8 --- /dev/null +++ b/test/MC/SystemZ/insn-crl-01.s @@ -0,0 +1,31 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: crl %r0, 2864434397 # encoding: [0xc6,0x0d,0x55,0x5d,0xe6,0x6e] +#CHECK: crl %r15, 2864434397 # encoding: [0xc6,0xfd,0x55,0x5d,0xe6,0x6e] + + crl %r0,0xaabbccdd + crl %r15,0xaabbccdd + +#CHECK: crl %r0, foo # encoding: [0xc6,0x0d,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: crl %r15, foo # encoding: [0xc6,0xfd,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL + + crl %r0,foo + crl %r15,foo + +#CHECK: crl %r3, bar+100 # encoding: [0xc6,0x3d,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL +#CHECK: crl %r4, bar+100 # encoding: [0xc6,0x4d,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL + + crl %r3,bar+100 + crl %r4,bar+100 + +#CHECK: crl %r7, frob@PLT # encoding: [0xc6,0x7d,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL +#CHECK: crl %r8, frob@PLT # encoding: [0xc6,0x8d,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL + + crl %r7,frob@PLT + crl %r8,frob@PLT diff --git a/test/MC/SystemZ/insn-cs-01.s b/test/MC/SystemZ/insn-cs-01.s new file mode 100644 index 0000000000..3fc6c34b74 --- /dev/null +++ b/test/MC/SystemZ/insn-cs-01.s @@ -0,0 +1,19 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: cs %r0, %r0, 0 # encoding: [0xba,0x00,0x00,0x00] +#CHECK: cs %r0, %r0, 4095 # encoding: [0xba,0x00,0x0f,0xff] +#CHECK: cs %r0, %r0, 0(%r1) # encoding: [0xba,0x00,0x10,0x00] +#CHECK: cs %r0, %r0, 0(%r15) # encoding: [0xba,0x00,0xf0,0x00] +#CHECK: cs %r0, %r0, 4095(%r1) # encoding: [0xba,0x00,0x1f,0xff] +#CHECK: cs %r0, %r0, 4095(%r15) # encoding: [0xba,0x00,0xff,0xff] +#CHECK: cs %r0, %r15, 0 # encoding: [0xba,0x0f,0x00,0x00] +#CHECK: cs %r15, %r0, 0 # encoding: [0xba,0xf0,0x00,0x00] + + cs %r0, %r0, 0 + cs %r0, %r0, 4095 + cs %r0, %r0, 0(%r1) + cs %r0, %r0, 0(%r15) + cs %r0, %r0, 4095(%r1) + cs %r0, %r0, 4095(%r15) + cs %r0, %r15, 0 + cs %r15, %r0, 0 diff --git a/test/MC/SystemZ/insn-cs-02.s b/test/MC/SystemZ/insn-cs-02.s new file mode 100644 index 0000000000..c22795998d --- /dev/null +++ b/test/MC/SystemZ/insn-cs-02.s @@ -0,0 +1,13 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: cs %r0, %r0, -1 +#CHECK: error: invalid operand +#CHECK: cs %r0, %r0, 4096 +#CHECK: error: invalid use of indexed addressing +#CHECK: cs %r0, %r0, 0(%r1,%r2) + + cs %r0, %r0, -1 + cs %r0, %r0, 4096 + cs %r0, %r0, 0(%r1,%r2) diff --git a/test/MC/SystemZ/insn-csg-01.s b/test/MC/SystemZ/insn-csg-01.s new file mode 100644 index 0000000000..b0fcfa6450 --- /dev/null +++ b/test/MC/SystemZ/insn-csg-01.s @@ -0,0 +1,25 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: csg %r0, %r0, -524288 # encoding: [0xeb,0x00,0x00,0x00,0x80,0x30] +#CHECK: csg %r0, %r0, -1 # encoding: [0xeb,0x00,0x0f,0xff,0xff,0x30] +#CHECK: csg %r0, %r0, 0 # encoding: [0xeb,0x00,0x00,0x00,0x00,0x30] +#CHECK: csg %r0, %r0, 1 # encoding: [0xeb,0x00,0x00,0x01,0x00,0x30] +#CHECK: csg %r0, %r0, 524287 # encoding: [0xeb,0x00,0x0f,0xff,0x7f,0x30] +#CHECK: csg %r0, %r0, 0(%r1) # encoding: [0xeb,0x00,0x10,0x00,0x00,0x30] +#CHECK: csg %r0, %r0, 0(%r15) # encoding: [0xeb,0x00,0xf0,0x00,0x00,0x30] +#CHECK: csg %r0, %r0, 524287(%r1) # encoding: [0xeb,0x00,0x1f,0xff,0x7f,0x30] +#CHECK: csg %r0, %r0, 524287(%r15) # encoding: [0xeb,0x00,0xff,0xff,0x7f,0x30] +#CHECK: csg %r0, %r15, 0 # encoding: [0xeb,0x0f,0x00,0x00,0x00,0x30] +#CHECK: csg %r15, %r0, 0 # encoding: [0xeb,0xf0,0x00,0x00,0x00,0x30] + + csg %r0, %r0, -524288 + csg %r0, %r0, -1 + csg %r0, %r0, 0 + csg %r0, %r0, 1 + csg %r0, %r0, 524287 + csg %r0, %r0, 0(%r1) + csg %r0, %r0, 0(%r15) + csg %r0, %r0, 524287(%r1) + csg %r0, %r0, 524287(%r15) + csg %r0, %r15, 0 + csg %r15, %r0, 0 diff --git a/test/MC/SystemZ/insn-csg-02.s b/test/MC/SystemZ/insn-csg-02.s new file mode 100644 index 0000000000..816b155930 --- /dev/null +++ b/test/MC/SystemZ/insn-csg-02.s @@ -0,0 +1,13 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: csg %r0, %r0, -524289 +#CHECK: error: invalid operand +#CHECK: csg %r0, %r0, 524288 +#CHECK: error: invalid use of indexed addressing +#CHECK: csg %r0, %r0, 0(%r1,%r2) + + csg %r0, %r0, -524289 + csg %r0, %r0, 524288 + csg %r0, %r0, 0(%r1,%r2) diff --git a/test/MC/SystemZ/insn-csy-01.s b/test/MC/SystemZ/insn-csy-01.s new file mode 100644 index 0000000000..d19b2df703 --- /dev/null +++ b/test/MC/SystemZ/insn-csy-01.s @@ -0,0 +1,25 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: csy %r0, %r0, -524288 # encoding: [0xeb,0x00,0x00,0x00,0x80,0x14] +#CHECK: csy %r0, %r0, -1 # encoding: [0xeb,0x00,0x0f,0xff,0xff,0x14] +#CHECK: csy %r0, %r0, 0 # encoding: [0xeb,0x00,0x00,0x00,0x00,0x14] +#CHECK: csy %r0, %r0, 1 # encoding: [0xeb,0x00,0x00,0x01,0x00,0x14] +#CHECK: csy %r0, %r0, 524287 # encoding: [0xeb,0x00,0x0f,0xff,0x7f,0x14] +#CHECK: csy %r0, %r0, 0(%r1) # encoding: [0xeb,0x00,0x10,0x00,0x00,0x14] +#CHECK: csy %r0, %r0, 0(%r15) # encoding: [0xeb,0x00,0xf0,0x00,0x00,0x14] +#CHECK: csy %r0, %r0, 524287(%r1) # encoding: [0xeb,0x00,0x1f,0xff,0x7f,0x14] +#CHECK: csy %r0, %r0, 524287(%r15) # encoding: [0xeb,0x00,0xff,0xff,0x7f,0x14] +#CHECK: csy %r0, %r15, 0 # encoding: [0xeb,0x0f,0x00,0x00,0x00,0x14] +#CHECK: csy %r15, %r0, 0 # encoding: [0xeb,0xf0,0x00,0x00,0x00,0x14] + + csy %r0, %r0, -524288 + csy %r0, %r0, -1 + csy %r0, %r0, 0 + csy %r0, %r0, 1 + csy %r0, %r0, 524287 + csy %r0, %r0, 0(%r1) + csy %r0, %r0, 0(%r15) + csy %r0, %r0, 524287(%r1) + csy %r0, %r0, 524287(%r15) + csy %r0, %r15, 0 + csy %r15, %r0, 0 diff --git a/test/MC/SystemZ/insn-csy-02.s b/test/MC/SystemZ/insn-csy-02.s new file mode 100644 index 0000000000..3ff795909b --- /dev/null +++ b/test/MC/SystemZ/insn-csy-02.s @@ -0,0 +1,13 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: csy %r0, %r0, -524289 +#CHECK: error: invalid operand +#CHECK: csy %r0, %r0, 524288 +#CHECK: error: invalid use of indexed addressing +#CHECK: csy %r0, %r0, 0(%r1,%r2) + + csy %r0, %r0, -524289 + csy %r0, %r0, 524288 + csy %r0, %r0, 0(%r1,%r2) diff --git a/test/MC/SystemZ/insn-cxbr-01.s b/test/MC/SystemZ/insn-cxbr-01.s new file mode 100644 index 0000000000..79527f0c50 --- /dev/null +++ b/test/MC/SystemZ/insn-cxbr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: cxbr %f0, %f0 # encoding: [0xb3,0x49,0x00,0x00] +#CHECK: cxbr %f0, %f13 # encoding: [0xb3,0x49,0x00,0x0d] +#CHECK: cxbr %f8, %f8 # encoding: [0xb3,0x49,0x00,0x88] +#CHECK: cxbr %f13, %f0 # encoding: [0xb3,0x49,0x00,0xd0] + + cxbr %f0, %f0 + cxbr %f0, %f13 + cxbr %f8, %f8 + cxbr %f13, %f0 diff --git a/test/MC/SystemZ/insn-cxbr-02.s b/test/MC/SystemZ/insn-cxbr-02.s new file mode 100644 index 0000000000..7aaca91c5f --- /dev/null +++ b/test/MC/SystemZ/insn-cxbr-02.s @@ -0,0 +1,17 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: cxbr %f0, %f2 +#CHECK: error: invalid register +#CHECK: cxbr %f0, %f14 +#CHECK: error: invalid register +#CHECK: cxbr %f2, %f0 +#CHECK: error: invalid register +#CHECK: cxbr %f14, %f0 + + cxbr %f0, %f2 + cxbr %f0, %f14 + cxbr %f2, %f0 + cxbr %f14, %f0 + diff --git a/test/MC/SystemZ/insn-cxfbr-01.s b/test/MC/SystemZ/insn-cxfbr-01.s new file mode 100644 index 0000000000..14bafd1207 --- /dev/null +++ b/test/MC/SystemZ/insn-cxfbr-01.s @@ -0,0 +1,13 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: cxfbr %f0, %r0 # encoding: [0xb3,0x96,0x00,0x00] +#CHECK: cxfbr %f0, %r15 # encoding: [0xb3,0x96,0x00,0x0f] +#CHECK: cxfbr %f13, %r0 # encoding: [0xb3,0x96,0x00,0xd0] +#CHECK: cxfbr %f8, %r7 # encoding: [0xb3,0x96,0x00,0x87] +#CHECK: cxfbr %f13, %r15 # encoding: [0xb3,0x96,0x00,0xdf] + + cxfbr %f0, %r0 + cxfbr %f0, %r15 + cxfbr %f13, %r0 + cxfbr %f8, %r7 + cxfbr %f13, %r15 diff --git a/test/MC/SystemZ/insn-cxfbr-02.s b/test/MC/SystemZ/insn-cxfbr-02.s new file mode 100644 index 0000000000..5343378569 --- /dev/null +++ b/test/MC/SystemZ/insn-cxfbr-02.s @@ -0,0 +1,22 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: cxfbr %r0, %r0 +#CHECK: error: invalid register +#CHECK: cxfbr %f0, %f0 +#CHECK: error: invalid register +#CHECK: cxfbr %f0, %a0 +#CHECK: error: invalid register +#CHECK: cxfbr %a0, %r0 +#CHECK: error: invalid register +#CHECK: cxfbr %f2, %r0 +#CHECK: error: invalid register +#CHECK: cxfbr %f14, %r0 + + cxfbr %r0, %r0 + cxfbr %f0, %f0 + cxfbr %f0, %a0 + cxfbr %a0, %r0 + cxfbr %f2, %r0 + cxfbr %f14, %r0 diff --git a/test/MC/SystemZ/insn-cxgbr-01.s b/test/MC/SystemZ/insn-cxgbr-01.s new file mode 100644 index 0000000000..90914b44e9 --- /dev/null +++ b/test/MC/SystemZ/insn-cxgbr-01.s @@ -0,0 +1,13 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: cxgbr %f0, %r0 # encoding: [0xb3,0xa6,0x00,0x00] +#CHECK: cxgbr %f0, %r15 # encoding: [0xb3,0xa6,0x00,0x0f] +#CHECK: cxgbr %f13, %r0 # encoding: [0xb3,0xa6,0x00,0xd0] +#CHECK: cxgbr %f8, %r7 # encoding: [0xb3,0xa6,0x00,0x87] +#CHECK: cxgbr %f13, %r15 # encoding: [0xb3,0xa6,0x00,0xdf] + + cxgbr %f0, %r0 + cxgbr %f0, %r15 + cxgbr %f13, %r0 + cxgbr %f8, %r7 + cxgbr %f13, %r15 diff --git a/test/MC/SystemZ/insn-cxgbr-02.s b/test/MC/SystemZ/insn-cxgbr-02.s new file mode 100644 index 0000000000..d10664dba7 --- /dev/null +++ b/test/MC/SystemZ/insn-cxgbr-02.s @@ -0,0 +1,22 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: cxgbr %r0, %r0 +#CHECK: error: invalid register +#CHECK: cxgbr %f0, %f0 +#CHECK: error: invalid register +#CHECK: cxgbr %f0, %a0 +#CHECK: error: invalid register +#CHECK: cxgbr %a0, %r0 +#CHECK: error: invalid register +#CHECK: cxgbr %f2, %r0 +#CHECK: error: invalid register +#CHECK: cxgbr %f14, %r0 + + cxgbr %r0, %r0 + cxgbr %f0, %f0 + cxgbr %f0, %a0 + cxgbr %a0, %r0 + cxgbr %f2, %r0 + cxgbr %f14, %r0 diff --git a/test/MC/SystemZ/insn-cy-01.s b/test/MC/SystemZ/insn-cy-01.s new file mode 100644 index 0000000000..5f21b963ff --- /dev/null +++ b/test/MC/SystemZ/insn-cy-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: cy %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x59] +#CHECK: cy %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x59] +#CHECK: cy %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x59] +#CHECK: cy %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x59] +#CHECK: cy %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x59] +#CHECK: cy %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x59] +#CHECK: cy %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x59] +#CHECK: cy %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x59] +#CHECK: cy %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x59] +#CHECK: cy %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x59] + + cy %r0, -524288 + cy %r0, -1 + cy %r0, 0 + cy %r0, 1 + cy %r0, 524287 + cy %r0, 0(%r1) + cy %r0, 0(%r15) + cy %r0, 524287(%r1,%r15) + cy %r0, 524287(%r15,%r1) + cy %r15, 0 diff --git a/test/MC/SystemZ/insn-cy-02.s b/test/MC/SystemZ/insn-cy-02.s new file mode 100644 index 0000000000..1c996cdced --- /dev/null +++ b/test/MC/SystemZ/insn-cy-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: cy %r0, -524289 +#CHECK: error: invalid operand +#CHECK: cy %r0, 524288 + + cy %r0, -524289 + cy %r0, 524288 diff --git a/test/MC/SystemZ/insn-ddb-01.s b/test/MC/SystemZ/insn-ddb-01.s new file mode 100644 index 0000000000..417af11c08 --- /dev/null +++ b/test/MC/SystemZ/insn-ddb-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: ddb %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x1d] +#CHECK: ddb %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x1d] +#CHECK: ddb %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x1d] +#CHECK: ddb %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x1d] +#CHECK: ddb %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x1d] +#CHECK: ddb %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x1d] +#CHECK: ddb %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x1d] + + ddb %f0, 0 + ddb %f0, 4095 + ddb %f0, 0(%r1) + ddb %f0, 0(%r15) + ddb %f0, 4095(%r1,%r15) + ddb %f0, 4095(%r15,%r1) + ddb %f15, 0 diff --git a/test/MC/SystemZ/insn-ddb-02.s b/test/MC/SystemZ/insn-ddb-02.s new file mode 100644 index 0000000000..c6357d10e4 --- /dev/null +++ b/test/MC/SystemZ/insn-ddb-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: ddb %f0, -1 +#CHECK: error: invalid operand +#CHECK: ddb %f0, 4096 + + ddb %f0, -1 + ddb %f0, 4096 diff --git a/test/MC/SystemZ/insn-ddbr-01.s b/test/MC/SystemZ/insn-ddbr-01.s new file mode 100644 index 0000000000..7ee1fee5b3 --- /dev/null +++ b/test/MC/SystemZ/insn-ddbr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: ddbr %f0, %f0 # encoding: [0xb3,0x1d,0x00,0x00] +#CHECK: ddbr %f0, %f15 # encoding: [0xb3,0x1d,0x00,0x0f] +#CHECK: ddbr %f7, %f8 # encoding: [0xb3,0x1d,0x00,0x78] +#CHECK: ddbr %f15, %f0 # encoding: [0xb3,0x1d,0x00,0xf0] + + ddbr %f0, %f0 + ddbr %f0, %f15 + ddbr %f7, %f8 + ddbr %f15, %f0 diff --git a/test/MC/SystemZ/insn-deb-01.s b/test/MC/SystemZ/insn-deb-01.s new file mode 100644 index 0000000000..93cfb02464 --- /dev/null +++ b/test/MC/SystemZ/insn-deb-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: deb %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x0d] +#CHECK: deb %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x0d] +#CHECK: deb %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x0d] +#CHECK: deb %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x0d] +#CHECK: deb %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x0d] +#CHECK: deb %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x0d] +#CHECK: deb %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x0d] + + deb %f0, 0 + deb %f0, 4095 + deb %f0, 0(%r1) + deb %f0, 0(%r15) + deb %f0, 4095(%r1,%r15) + deb %f0, 4095(%r15,%r1) + deb %f15, 0 diff --git a/test/MC/SystemZ/insn-deb-02.s b/test/MC/SystemZ/insn-deb-02.s new file mode 100644 index 0000000000..e4edd4ef86 --- /dev/null +++ b/test/MC/SystemZ/insn-deb-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: deb %f0, -1 +#CHECK: error: invalid operand +#CHECK: deb %f0, 4096 + + deb %f0, -1 + deb %f0, 4096 diff --git a/test/MC/SystemZ/insn-debr-01.s b/test/MC/SystemZ/insn-debr-01.s new file mode 100644 index 0000000000..02ee16c9cf --- /dev/null +++ b/test/MC/SystemZ/insn-debr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: debr %f0, %f0 # encoding: [0xb3,0x0d,0x00,0x00] +#CHECK: debr %f0, %f15 # encoding: [0xb3,0x0d,0x00,0x0f] +#CHECK: debr %f7, %f8 # encoding: [0xb3,0x0d,0x00,0x78] +#CHECK: debr %f15, %f0 # encoding: [0xb3,0x0d,0x00,0xf0] + + debr %f0, %f0 + debr %f0, %f15 + debr %f7, %f8 + debr %f15, %f0 diff --git a/test/MC/SystemZ/insn-dl-01.s b/test/MC/SystemZ/insn-dl-01.s new file mode 100644 index 0000000000..50b24e7a00 --- /dev/null +++ b/test/MC/SystemZ/insn-dl-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: dl %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x97] +#CHECK: dl %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x97] +#CHECK: dl %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x97] +#CHECK: dl %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x97] +#CHECK: dl %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x97] +#CHECK: dl %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x97] +#CHECK: dl %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x97] +#CHECK: dl %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x97] +#CHECK: dl %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x97] +#CHECK: dl %r14, 0 # encoding: [0xe3,0xe0,0x00,0x00,0x00,0x97] + + dl %r0, -524288 + dl %r0, -1 + dl %r0, 0 + dl %r0, 1 + dl %r0, 524287 + dl %r0, 0(%r1) + dl %r0, 0(%r15) + dl %r0, 524287(%r1,%r15) + dl %r0, 524287(%r15,%r1) + dl %r14, 0 diff --git a/test/MC/SystemZ/insn-dl-02.s b/test/MC/SystemZ/insn-dl-02.s new file mode 100644 index 0000000000..8f9f37320b --- /dev/null +++ b/test/MC/SystemZ/insn-dl-02.s @@ -0,0 +1,16 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: dl %r0, -524289 +#CHECK: error: invalid operand +#CHECK: dl %r0, 524288 +#CHECK: error: invalid register +#CHECK: dl %r1, 0 +#CHECK: error: invalid register +#CHECK: dl %r15, 0 + + dl %r0, -524289 + dl %r0, 524288 + dl %r1, 0 + dl %r15, 0 diff --git a/test/MC/SystemZ/insn-dlg-01.s b/test/MC/SystemZ/insn-dlg-01.s new file mode 100644 index 0000000000..8a304f828e --- /dev/null +++ b/test/MC/SystemZ/insn-dlg-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: dlg %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x87] +#CHECK: dlg %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x87] +#CHECK: dlg %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x87] +#CHECK: dlg %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x87] +#CHECK: dlg %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x87] +#CHECK: dlg %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x87] +#CHECK: dlg %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x87] +#CHECK: dlg %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x87] +#CHECK: dlg %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x87] +#CHECK: dlg %r14, 0 # encoding: [0xe3,0xe0,0x00,0x00,0x00,0x87] + + dlg %r0, -524288 + dlg %r0, -1 + dlg %r0, 0 + dlg %r0, 1 + dlg %r0, 524287 + dlg %r0, 0(%r1) + dlg %r0, 0(%r15) + dlg %r0, 524287(%r1,%r15) + dlg %r0, 524287(%r15,%r1) + dlg %r14, 0 diff --git a/test/MC/SystemZ/insn-dlg-02.s b/test/MC/SystemZ/insn-dlg-02.s new file mode 100644 index 0000000000..cbed898173 --- /dev/null +++ b/test/MC/SystemZ/insn-dlg-02.s @@ -0,0 +1,16 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: dlg %r0, -524289 +#CHECK: error: invalid operand +#CHECK: dlg %r0, 524288 +#CHECK: error: invalid register +#CHECK: dlg %r1, 0 +#CHECK: error: invalid register +#CHECK: dlg %r15, 0 + + dlg %r0, -524289 + dlg %r0, 524288 + dlg %r1, 0 + dlg %r15, 0 diff --git a/test/MC/SystemZ/insn-dlgr-01.s b/test/MC/SystemZ/insn-dlgr-01.s new file mode 100644 index 0000000000..b2a4de5f91 --- /dev/null +++ b/test/MC/SystemZ/insn-dlgr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: dlgr %r0, %r0 # encoding: [0xb9,0x87,0x00,0x00] +#CHECK: dlgr %r0, %r15 # encoding: [0xb9,0x87,0x00,0x0f] +#CHECK: dlgr %r14, %r0 # encoding: [0xb9,0x87,0x00,0xe0] +#CHECK: dlgr %r6, %r9 # encoding: [0xb9,0x87,0x00,0x69] + + dlgr %r0,%r0 + dlgr %r0,%r15 + dlgr %r14,%r0 + dlgr %r6,%r9 diff --git a/test/MC/SystemZ/insn-dlgr-02.s b/test/MC/SystemZ/insn-dlgr-02.s new file mode 100644 index 0000000000..c407b4fb0b --- /dev/null +++ b/test/MC/SystemZ/insn-dlgr-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: dlgr %r1, %r0 +#CHECK: error: invalid register +#CHECK: dlgr %r15, %r0 + + dlgr %r1, %r0 + dlgr %r15, %r0 diff --git a/test/MC/SystemZ/insn-dlr-01.s b/test/MC/SystemZ/insn-dlr-01.s new file mode 100644 index 0000000000..7e8be79e46 --- /dev/null +++ b/test/MC/SystemZ/insn-dlr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: dlr %r0, %r0 # encoding: [0xb9,0x97,0x00,0x00] +#CHECK: dlr %r0, %r15 # encoding: [0xb9,0x97,0x00,0x0f] +#CHECK: dlr %r14, %r0 # encoding: [0xb9,0x97,0x00,0xe0] +#CHECK: dlr %r6, %r9 # encoding: [0xb9,0x97,0x00,0x69] + + dlr %r0,%r0 + dlr %r0,%r15 + dlr %r14,%r0 + dlr %r6,%r9 diff --git a/test/MC/SystemZ/insn-dlr-02.s b/test/MC/SystemZ/insn-dlr-02.s new file mode 100644 index 0000000000..eb31e18fd8 --- /dev/null +++ b/test/MC/SystemZ/insn-dlr-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: dlr %r1, %r0 +#CHECK: error: invalid register +#CHECK: dlr %r15, %r0 + + dlr %r1, %r0 + dlr %r15, %r0 diff --git a/test/MC/SystemZ/insn-dsg-01.s b/test/MC/SystemZ/insn-dsg-01.s new file mode 100644 index 0000000000..5cd0b40a9f --- /dev/null +++ b/test/MC/SystemZ/insn-dsg-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: dsg %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x0d] +#CHECK: dsg %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x0d] +#CHECK: dsg %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x0d] +#CHECK: dsg %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x0d] +#CHECK: dsg %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x0d] +#CHECK: dsg %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x0d] +#CHECK: dsg %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x0d] +#CHECK: dsg %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x0d] +#CHECK: dsg %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x0d] +#CHECK: dsg %r14, 0 # encoding: [0xe3,0xe0,0x00,0x00,0x00,0x0d] + + dsg %r0, -524288 + dsg %r0, -1 + dsg %r0, 0 + dsg %r0, 1 + dsg %r0, 524287 + dsg %r0, 0(%r1) + dsg %r0, 0(%r15) + dsg %r0, 524287(%r1,%r15) + dsg %r0, 524287(%r15,%r1) + dsg %r14, 0 diff --git a/test/MC/SystemZ/insn-dsg-02.s b/test/MC/SystemZ/insn-dsg-02.s new file mode 100644 index 0000000000..16979418c4 --- /dev/null +++ b/test/MC/SystemZ/insn-dsg-02.s @@ -0,0 +1,16 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: dsg %r0, -524289 +#CHECK: error: invalid operand +#CHECK: dsg %r0, 524288 +#CHECK: error: invalid register +#CHECK: dsg %r1, 0 +#CHECK: error: invalid register +#CHECK: dsg %r15, 0 + + dsg %r0, -524289 + dsg %r0, 524288 + dsg %r1, 0 + dsg %r15, 0 diff --git a/test/MC/SystemZ/insn-dsgf-01.s b/test/MC/SystemZ/insn-dsgf-01.s new file mode 100644 index 0000000000..2cde0c79d9 --- /dev/null +++ b/test/MC/SystemZ/insn-dsgf-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: dsgf %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x1d] +#CHECK: dsgf %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x1d] +#CHECK: dsgf %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x1d] +#CHECK: dsgf %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x1d] +#CHECK: dsgf %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x1d] +#CHECK: dsgf %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x1d] +#CHECK: dsgf %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x1d] +#CHECK: dsgf %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x1d] +#CHECK: dsgf %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x1d] +#CHECK: dsgf %r14, 0 # encoding: [0xe3,0xe0,0x00,0x00,0x00,0x1d] + + dsgf %r0, -524288 + dsgf %r0, -1 + dsgf %r0, 0 + dsgf %r0, 1 + dsgf %r0, 524287 + dsgf %r0, 0(%r1) + dsgf %r0, 0(%r15) + dsgf %r0, 524287(%r1,%r15) + dsgf %r0, 524287(%r15,%r1) + dsgf %r14, 0 diff --git a/test/MC/SystemZ/insn-dsgf-02.s b/test/MC/SystemZ/insn-dsgf-02.s new file mode 100644 index 0000000000..253d9ad70b --- /dev/null +++ b/test/MC/SystemZ/insn-dsgf-02.s @@ -0,0 +1,16 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: dsgf %r0, -524289 +#CHECK: error: invalid operand +#CHECK: dsgf %r0, 524288 +#CHECK: error: invalid register +#CHECK: dsgf %r1, 0 +#CHECK: error: invalid register +#CHECK: dsgf %r15, 0 + + dsgf %r0, -524289 + dsgf %r0, 524288 + dsgf %r1, 0 + dsgf %r15, 0 diff --git a/test/MC/SystemZ/insn-dsgfr-01.s b/test/MC/SystemZ/insn-dsgfr-01.s new file mode 100644 index 0000000000..9b61550ffc --- /dev/null +++ b/test/MC/SystemZ/insn-dsgfr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: dsgfr %r0, %r0 # encoding: [0xb9,0x1d,0x00,0x00] +#CHECK: dsgfr %r0, %r15 # encoding: [0xb9,0x1d,0x00,0x0f] +#CHECK: dsgfr %r14, %r0 # encoding: [0xb9,0x1d,0x00,0xe0] +#CHECK: dsgfr %r6, %r9 # encoding: [0xb9,0x1d,0x00,0x69] + + dsgfr %r0,%r0 + dsgfr %r0,%r15 + dsgfr %r14,%r0 + dsgfr %r6,%r9 diff --git a/test/MC/SystemZ/insn-dsgfr-02.s b/test/MC/SystemZ/insn-dsgfr-02.s new file mode 100644 index 0000000000..2eb8b23947 --- /dev/null +++ b/test/MC/SystemZ/insn-dsgfr-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: dsgfr %r1, %r0 +#CHECK: error: invalid register +#CHECK: dsgfr %r15, %r0 + + dsgfr %r1, %r0 + dsgfr %r15, %r0 diff --git a/test/MC/SystemZ/insn-dsgr-01.s b/test/MC/SystemZ/insn-dsgr-01.s new file mode 100644 index 0000000000..02b4099cfa --- /dev/null +++ b/test/MC/SystemZ/insn-dsgr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: dsgr %r0, %r0 # encoding: [0xb9,0x0d,0x00,0x00] +#CHECK: dsgr %r0, %r15 # encoding: [0xb9,0x0d,0x00,0x0f] +#CHECK: dsgr %r14, %r0 # encoding: [0xb9,0x0d,0x00,0xe0] +#CHECK: dsgr %r6, %r9 # encoding: [0xb9,0x0d,0x00,0x69] + + dsgr %r0,%r0 + dsgr %r0,%r15 + dsgr %r14,%r0 + dsgr %r6,%r9 diff --git a/test/MC/SystemZ/insn-dsgr-02.s b/test/MC/SystemZ/insn-dsgr-02.s new file mode 100644 index 0000000000..0194295806 --- /dev/null +++ b/test/MC/SystemZ/insn-dsgr-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: dsgr %r1, %r0 +#CHECK: error: invalid register +#CHECK: dsgr %r15, %r0 + + dsgr %r1, %r0 + dsgr %r15, %r0 diff --git a/test/MC/SystemZ/insn-dxbr-01.s b/test/MC/SystemZ/insn-dxbr-01.s new file mode 100644 index 0000000000..6a452080ce --- /dev/null +++ b/test/MC/SystemZ/insn-dxbr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: dxbr %f0, %f0 # encoding: [0xb3,0x4d,0x00,0x00] +#CHECK: dxbr %f0, %f13 # encoding: [0xb3,0x4d,0x00,0x0d] +#CHECK: dxbr %f8, %f8 # encoding: [0xb3,0x4d,0x00,0x88] +#CHECK: dxbr %f13, %f0 # encoding: [0xb3,0x4d,0x00,0xd0] + + dxbr %f0, %f0 + dxbr %f0, %f13 + dxbr %f8, %f8 + dxbr %f13, %f0 diff --git a/test/MC/SystemZ/insn-dxbr-02.s b/test/MC/SystemZ/insn-dxbr-02.s new file mode 100644 index 0000000000..cac64191b8 --- /dev/null +++ b/test/MC/SystemZ/insn-dxbr-02.s @@ -0,0 +1,17 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: dxbr %f0, %f2 +#CHECK: error: invalid register +#CHECK: dxbr %f0, %f14 +#CHECK: error: invalid register +#CHECK: dxbr %f2, %f0 +#CHECK: error: invalid register +#CHECK: dxbr %f14, %f0 + + dxbr %f0, %f2 + dxbr %f0, %f14 + dxbr %f2, %f0 + dxbr %f14, %f0 + diff --git a/test/MC/SystemZ/insn-ear-01.s b/test/MC/SystemZ/insn-ear-01.s new file mode 100644 index 0000000000..f614f86999 --- /dev/null +++ b/test/MC/SystemZ/insn-ear-01.s @@ -0,0 +1,13 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: ear %r0, %a0 # encoding: [0xb2,0x4f,0x00,0x00] +#CHECK: ear %r0, %a15 # encoding: [0xb2,0x4f,0x00,0x0f] +#CHECK: ear %r15, %a0 # encoding: [0xb2,0x4f,0x00,0xf0] +#CHECK: ear %r7, %a8 # encoding: [0xb2,0x4f,0x00,0x78] +#CHECK: ear %r15, %a15 # encoding: [0xb2,0x4f,0x00,0xff] + + ear %r0, %a0 + ear %r0, %a15 + ear %r15, %a0 + ear %r7, %a8 + ear %r15, %a15 diff --git a/test/MC/SystemZ/insn-ear-02.s b/test/MC/SystemZ/insn-ear-02.s new file mode 100644 index 0000000000..7fb35eaa53 --- /dev/null +++ b/test/MC/SystemZ/insn-ear-02.s @@ -0,0 +1,13 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: ear %r0, 0 +#CHECK: error: invalid register +#CHECK: ear %r0, %r0 +#CHECK: error: invalid register +#CHECK: ear %a0, %r0 + + ear %r0, 0 + ear %r0, %r0 + ear %a0, %r0 diff --git a/test/MC/SystemZ/insn-fidbr-01.s b/test/MC/SystemZ/insn-fidbr-01.s new file mode 100644 index 0000000000..e52c91c211 --- /dev/null +++ b/test/MC/SystemZ/insn-fidbr-01.s @@ -0,0 +1,13 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: fidbr %f0, 0, %f0 # encoding: [0xb3,0x5f,0x00,0x00] +#CHECK: fidbr %f0, 0, %f15 # encoding: [0xb3,0x5f,0x00,0x0f] +#CHECK: fidbr %f0, 15, %f0 # encoding: [0xb3,0x5f,0xf0,0x00] +#CHECK: fidbr %f4, 5, %f6 # encoding: [0xb3,0x5f,0x50,0x46] +#CHECK: fidbr %f15, 0, %f0 # encoding: [0xb3,0x5f,0x00,0xf0] + + fidbr %f0, 0, %f0 + fidbr %f0, 0, %f15 + fidbr %f0, 15, %f0 + fidbr %f4, 5, %f6 + fidbr %f15, 0, %f0 diff --git a/test/MC/SystemZ/insn-fidbr-02.s b/test/MC/SystemZ/insn-fidbr-02.s new file mode 100644 index 0000000000..5a35f46589 --- /dev/null +++ b/test/MC/SystemZ/insn-fidbr-02.s @@ -0,0 +1,16 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: fidbr %r0, 0, %f0 +#CHECK: error: invalid register +#CHECK: fidbr %f0, 0, %r0 +#CHECK: error: invalid operand +#CHECK: fidbr %f0, -1, %f0 +#CHECK: error: invalid operand +#CHECK: fidbr %f0, 16, %f0 + + fidbr %r0, 0, %f0 + fidbr %f0, 0, %r0 + fidbr %f0, -1, %f0 + fidbr %f0, 16, %f0 diff --git a/test/MC/SystemZ/insn-fiebr-01.s b/test/MC/SystemZ/insn-fiebr-01.s new file mode 100644 index 0000000000..0b4e633a1e --- /dev/null +++ b/test/MC/SystemZ/insn-fiebr-01.s @@ -0,0 +1,13 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: fiebr %f0, 0, %f0 # encoding: [0xb3,0x57,0x00,0x00] +#CHECK: fiebr %f0, 0, %f15 # encoding: [0xb3,0x57,0x00,0x0f] +#CHECK: fiebr %f0, 15, %f0 # encoding: [0xb3,0x57,0xf0,0x00] +#CHECK: fiebr %f4, 5, %f6 # encoding: [0xb3,0x57,0x50,0x46] +#CHECK: fiebr %f15, 0, %f0 # encoding: [0xb3,0x57,0x00,0xf0] + + fiebr %f0, 0, %f0 + fiebr %f0, 0, %f15 + fiebr %f0, 15, %f0 + fiebr %f4, 5, %f6 + fiebr %f15, 0, %f0 diff --git a/test/MC/SystemZ/insn-fiebr-02.s b/test/MC/SystemZ/insn-fiebr-02.s new file mode 100644 index 0000000000..2ecdd4d1bc --- /dev/null +++ b/test/MC/SystemZ/insn-fiebr-02.s @@ -0,0 +1,16 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: fiebr %r0, 0, %f0 +#CHECK: error: invalid register +#CHECK: fiebr %f0, 0, %r0 +#CHECK: error: invalid operand +#CHECK: fiebr %f0, -1, %f0 +#CHECK: error: invalid operand +#CHECK: fiebr %f0, 16, %f0 + + fiebr %r0, 0, %f0 + fiebr %f0, 0, %r0 + fiebr %f0, -1, %f0 + fiebr %f0, 16, %f0 diff --git a/test/MC/SystemZ/insn-fixbr-01.s b/test/MC/SystemZ/insn-fixbr-01.s new file mode 100644 index 0000000000..02676ed76d --- /dev/null +++ b/test/MC/SystemZ/insn-fixbr-01.s @@ -0,0 +1,13 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: fixbr %f0, 0, %f0 # encoding: [0xb3,0x47,0x00,0x00] +#CHECK: fixbr %f0, 0, %f13 # encoding: [0xb3,0x47,0x00,0x0d] +#CHECK: fixbr %f0, 15, %f0 # encoding: [0xb3,0x47,0xf0,0x00] +#CHECK: fixbr %f4, 5, %f8 # encoding: [0xb3,0x47,0x50,0x48] +#CHECK: fixbr %f13, 0, %f0 # encoding: [0xb3,0x47,0x00,0xd0] + + fixbr %f0, 0, %f0 + fixbr %f0, 0, %f13 + fixbr %f0, 15, %f0 + fixbr %f4, 5, %f8 + fixbr %f13, 0, %f0 diff --git a/test/MC/SystemZ/insn-fixbr-02.s b/test/MC/SystemZ/insn-fixbr-02.s new file mode 100644 index 0000000000..3f68734292 --- /dev/null +++ b/test/MC/SystemZ/insn-fixbr-02.s @@ -0,0 +1,28 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: fixbr %r0, 0, %f0 +#CHECK: error: invalid register +#CHECK: fixbr %f0, 0, %r0 +#CHECK: error: invalid operand +#CHECK: fixbr %f0, -1, %f0 +#CHECK: error: invalid operand +#CHECK: fixbr %f0, 16, %f0 +#CHECK: error: invalid register +#CHECK: fixbr %f0, 0, %f2 +#CHECK: error: invalid register +#CHECK: fixbr %f0, 0, %f14 +#CHECK: error: invalid register +#CHECK: fixbr %f2, 0, %f0 +#CHECK: error: invalid register +#CHECK: fixbr %f14, 0, %f0 + + fixbr %r0, 0, %f0 + fixbr %f0, 0, %r0 + fixbr %f0, -1, %f0 + fixbr %f0, 16, %f0 + fixbr %f0, 0, %f2 + fixbr %f0, 0, %f14 + fixbr %f2, 0, %f0 + fixbr %f14, 0, %f0 diff --git a/test/MC/SystemZ/insn-flogr-01.s b/test/MC/SystemZ/insn-flogr-01.s new file mode 100644 index 0000000000..f6031ce3b6 --- /dev/null +++ b/test/MC/SystemZ/insn-flogr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: flogr %r0, %r0 # encoding: [0xb9,0x83,0x00,0x00] +#CHECK: flogr %r0, %r15 # encoding: [0xb9,0x83,0x00,0x0f] +#CHECK: flogr %r10, %r9 # encoding: [0xb9,0x83,0x00,0xa9] +#CHECK: flogr %r14, %r0 # encoding: [0xb9,0x83,0x00,0xe0] + + flogr %r0, %r0 + flogr %r0, %r15 + flogr %r10, %r9 + flogr %r14, %r0 diff --git a/test/MC/SystemZ/insn-flogr-02.s b/test/MC/SystemZ/insn-flogr-02.s new file mode 100644 index 0000000000..e0d117c3be --- /dev/null +++ b/test/MC/SystemZ/insn-flogr-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: flogr %r1, %r0 +#CHECK: error: invalid register +#CHECK: flogr %r15, %r0 + + flogr %r1, %r0 + flogr %r15, %r0 diff --git a/test/MC/SystemZ/insn-ic-01.s b/test/MC/SystemZ/insn-ic-01.s new file mode 100644 index 0000000000..76772f9d1a --- /dev/null +++ b/test/MC/SystemZ/insn-ic-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: ic %r0, 0 # encoding: [0x43,0x00,0x00,0x00] +#CHECK: ic %r0, 4095 # encoding: [0x43,0x00,0x0f,0xff] +#CHECK: ic %r0, 0(%r1) # encoding: [0x43,0x00,0x10,0x00] +#CHECK: ic %r0, 0(%r15) # encoding: [0x43,0x00,0xf0,0x00] +#CHECK: ic %r0, 4095(%r1,%r15) # encoding: [0x43,0x01,0xff,0xff] +#CHECK: ic %r0, 4095(%r15,%r1) # encoding: [0x43,0x0f,0x1f,0xff] +#CHECK: ic %r15, 0 # encoding: [0x43,0xf0,0x00,0x00] + + ic %r0, 0 + ic %r0, 4095 + ic %r0, 0(%r1) + ic %r0, 0(%r15) + ic %r0, 4095(%r1,%r15) + ic %r0, 4095(%r15,%r1) + ic %r15, 0 diff --git a/test/MC/SystemZ/insn-ic-02.s b/test/MC/SystemZ/insn-ic-02.s new file mode 100644 index 0000000000..e70ef1c58d --- /dev/null +++ b/test/MC/SystemZ/insn-ic-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: ic %r0, -1 +#CHECK: error: invalid operand +#CHECK: ic %r0, 4096 + + ic %r0, -1 + ic %r0, 4096 diff --git a/test/MC/SystemZ/insn-icy-01.s b/test/MC/SystemZ/insn-icy-01.s new file mode 100644 index 0000000000..079ae2142f --- /dev/null +++ b/test/MC/SystemZ/insn-icy-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: icy %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x73] +#CHECK: icy %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x73] +#CHECK: icy %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x73] +#CHECK: icy %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x73] +#CHECK: icy %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x73] +#CHECK: icy %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x73] +#CHECK: icy %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x73] +#CHECK: icy %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x73] +#CHECK: icy %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x73] +#CHECK: icy %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x73] + + icy %r0, -524288 + icy %r0, -1 + icy %r0, 0 + icy %r0, 1 + icy %r0, 524287 + icy %r0, 0(%r1) + icy %r0, 0(%r15) + icy %r0, 524287(%r1,%r15) + icy %r0, 524287(%r15,%r1) + icy %r15, 0 diff --git a/test/MC/SystemZ/insn-icy-02.s b/test/MC/SystemZ/insn-icy-02.s new file mode 100644 index 0000000000..321c86f9df --- /dev/null +++ b/test/MC/SystemZ/insn-icy-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: icy %r0, -524289 +#CHECK: error: invalid operand +#CHECK: icy %r0, 524288 + + icy %r0, -524289 + icy %r0, 524288 diff --git a/test/MC/SystemZ/insn-iihf-01.s b/test/MC/SystemZ/insn-iihf-01.s new file mode 100644 index 0000000000..bf8d48fbc6 --- /dev/null +++ b/test/MC/SystemZ/insn-iihf-01.s @@ -0,0 +1,9 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: iihf %r0, 0 # encoding: [0xc0,0x08,0x00,0x00,0x00,0x00] +#CHECK: iihf %r0, 4294967295 # encoding: [0xc0,0x08,0xff,0xff,0xff,0xff] +#CHECK: iihf %r15, 0 # encoding: [0xc0,0xf8,0x00,0x00,0x00,0x00] + + iihf %r0, 0 + iihf %r0, 0xffffffff + iihf %r15, 0 diff --git a/test/MC/SystemZ/insn-iihf-02.s b/test/MC/SystemZ/insn-iihf-02.s new file mode 100644 index 0000000000..1c7a69addf --- /dev/null +++ b/test/MC/SystemZ/insn-iihf-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: iihf %r0, -1 +#CHECK: error: invalid operand +#CHECK: iihf %r0, 1 << 32 + + iihf %r0, -1 + iihf %r0, 1 << 32 diff --git a/test/MC/SystemZ/insn-iihh-01.s b/test/MC/SystemZ/insn-iihh-01.s new file mode 100644 index 0000000000..a2ba9a33a4 --- /dev/null +++ b/test/MC/SystemZ/insn-iihh-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: iihh %r0, 0 # encoding: [0xa5,0x00,0x00,0x00] +#CHECK: iihh %r0, 32768 # encoding: [0xa5,0x00,0x80,0x00] +#CHECK: iihh %r0, 65535 # encoding: [0xa5,0x00,0xff,0xff] +#CHECK: iihh %r15, 0 # encoding: [0xa5,0xf0,0x00,0x00] + + iihh %r0, 0 + iihh %r0, 0x8000 + iihh %r0, 0xffff + iihh %r15, 0 diff --git a/test/MC/SystemZ/insn-iihh-02.s b/test/MC/SystemZ/insn-iihh-02.s new file mode 100644 index 0000000000..2d8f8541dd --- /dev/null +++ b/test/MC/SystemZ/insn-iihh-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: iihh %r0, -1 +#CHECK: error: invalid operand +#CHECK: iihh %r0, 0x10000 + + iihh %r0, -1 + iihh %r0, 0x10000 diff --git a/test/MC/SystemZ/insn-iihl-01.s b/test/MC/SystemZ/insn-iihl-01.s new file mode 100644 index 0000000000..ff591e8b86 --- /dev/null +++ b/test/MC/SystemZ/insn-iihl-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: iihl %r0, 0 # encoding: [0xa5,0x01,0x00,0x00] +#CHECK: iihl %r0, 32768 # encoding: [0xa5,0x01,0x80,0x00] +#CHECK: iihl %r0, 65535 # encoding: [0xa5,0x01,0xff,0xff] +#CHECK: iihl %r15, 0 # encoding: [0xa5,0xf1,0x00,0x00] + + iihl %r0, 0 + iihl %r0, 0x8000 + iihl %r0, 0xffff + iihl %r15, 0 diff --git a/test/MC/SystemZ/insn-iihl-02.s b/test/MC/SystemZ/insn-iihl-02.s new file mode 100644 index 0000000000..262955e38d --- /dev/null +++ b/test/MC/SystemZ/insn-iihl-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: iihl %r0, -1 +#CHECK: error: invalid operand +#CHECK: iihl %r0, 0x10000 + + iihl %r0, -1 + iihl %r0, 0x10000 diff --git a/test/MC/SystemZ/insn-iilf-01.s b/test/MC/SystemZ/insn-iilf-01.s new file mode 100644 index 0000000000..228e147676 --- /dev/null +++ b/test/MC/SystemZ/insn-iilf-01.s @@ -0,0 +1,9 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: iilf %r0, 0 # encoding: [0xc0,0x09,0x00,0x00,0x00,0x00] +#CHECK: iilf %r0, 4294967295 # encoding: [0xc0,0x09,0xff,0xff,0xff,0xff] +#CHECK: iilf %r15, 0 # encoding: [0xc0,0xf9,0x00,0x00,0x00,0x00] + + iilf %r0, 0 + iilf %r0, 0xffffffff + iilf %r15, 0 diff --git a/test/MC/SystemZ/insn-iilf-02.s b/test/MC/SystemZ/insn-iilf-02.s new file mode 100644 index 0000000000..c7571e8f6d --- /dev/null +++ b/test/MC/SystemZ/insn-iilf-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: iilf %r0, -1 +#CHECK: error: invalid operand +#CHECK: iilf %r0, 1 << 32 + + iilf %r0, -1 + iilf %r0, 1 << 32 diff --git a/test/MC/SystemZ/insn-iilh-01.s b/test/MC/SystemZ/insn-iilh-01.s new file mode 100644 index 0000000000..045ccfe80b --- /dev/null +++ b/test/MC/SystemZ/insn-iilh-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: iilh %r0, 0 # encoding: [0xa5,0x02,0x00,0x00] +#CHECK: iilh %r0, 32768 # encoding: [0xa5,0x02,0x80,0x00] +#CHECK: iilh %r0, 65535 # encoding: [0xa5,0x02,0xff,0xff] +#CHECK: iilh %r15, 0 # encoding: [0xa5,0xf2,0x00,0x00] + + iilh %r0, 0 + iilh %r0, 0x8000 + iilh %r0, 0xffff + iilh %r15, 0 diff --git a/test/MC/SystemZ/insn-iilh-02.s b/test/MC/SystemZ/insn-iilh-02.s new file mode 100644 index 0000000000..af5bdacaff --- /dev/null +++ b/test/MC/SystemZ/insn-iilh-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: iilh %r0, -1 +#CHECK: error: invalid operand +#CHECK: iilh %r0, 0x10000 + + iilh %r0, -1 + iilh %r0, 0x10000 diff --git a/test/MC/SystemZ/insn-iill-01.s b/test/MC/SystemZ/insn-iill-01.s new file mode 100644 index 0000000000..bf50eeb0f6 --- /dev/null +++ b/test/MC/SystemZ/insn-iill-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: iill %r0, 0 # encoding: [0xa5,0x03,0x00,0x00] +#CHECK: iill %r0, 32768 # encoding: [0xa5,0x03,0x80,0x00] +#CHECK: iill %r0, 65535 # encoding: [0xa5,0x03,0xff,0xff] +#CHECK: iill %r15, 0 # encoding: [0xa5,0xf3,0x00,0x00] + + iill %r0, 0 + iill %r0, 0x8000 + iill %r0, 0xffff + iill %r15, 0 diff --git a/test/MC/SystemZ/insn-iill-02.s b/test/MC/SystemZ/insn-iill-02.s new file mode 100644 index 0000000000..fe31e44ee6 --- /dev/null +++ b/test/MC/SystemZ/insn-iill-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: iill %r0, -1 +#CHECK: error: invalid operand +#CHECK: iill %r0, 0x10000 + + iill %r0, -1 + iill %r0, 0x10000 diff --git a/test/MC/SystemZ/insn-l-01.s b/test/MC/SystemZ/insn-l-01.s new file mode 100644 index 0000000000..a589116ebf --- /dev/null +++ b/test/MC/SystemZ/insn-l-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: l %r0, 0 # encoding: [0x58,0x00,0x00,0x00] +#CHECK: l %r0, 4095 # encoding: [0x58,0x00,0x0f,0xff] +#CHECK: l %r0, 0(%r1) # encoding: [0x58,0x00,0x10,0x00] +#CHECK: l %r0, 0(%r15) # encoding: [0x58,0x00,0xf0,0x00] +#CHECK: l %r0, 4095(%r1,%r15) # encoding: [0x58,0x01,0xff,0xff] +#CHECK: l %r0, 4095(%r15,%r1) # encoding: [0x58,0x0f,0x1f,0xff] +#CHECK: l %r15, 0 # encoding: [0x58,0xf0,0x00,0x00] + + l %r0, 0 + l %r0, 4095 + l %r0, 0(%r1) + l %r0, 0(%r15) + l %r0, 4095(%r1,%r15) + l %r0, 4095(%r15,%r1) + l %r15, 0 diff --git a/test/MC/SystemZ/insn-l-02.s b/test/MC/SystemZ/insn-l-02.s new file mode 100644 index 0000000000..fad96ff6ce --- /dev/null +++ b/test/MC/SystemZ/insn-l-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: l %r0, -1 +#CHECK: error: invalid operand +#CHECK: l %r0, 4096 + + l %r0, -1 + l %r0, 4096 diff --git a/test/MC/SystemZ/insn-la-01.s b/test/MC/SystemZ/insn-la-01.s new file mode 100644 index 0000000000..d4776ab585 --- /dev/null +++ b/test/MC/SystemZ/insn-la-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: la %r0, 0 # encoding: [0x41,0x00,0x00,0x00] +#CHECK: la %r0, 4095 # encoding: [0x41,0x00,0x0f,0xff] +#CHECK: la %r0, 0(%r1) # encoding: [0x41,0x00,0x10,0x00] +#CHECK: la %r0, 0(%r15) # encoding: [0x41,0x00,0xf0,0x00] +#CHECK: la %r0, 4095(%r1,%r15) # encoding: [0x41,0x01,0xff,0xff] +#CHECK: la %r0, 4095(%r15,%r1) # encoding: [0x41,0x0f,0x1f,0xff] +#CHECK: la %r15, 0 # encoding: [0x41,0xf0,0x00,0x00] + + la %r0, 0 + la %r0, 4095 + la %r0, 0(%r1) + la %r0, 0(%r15) + la %r0, 4095(%r1,%r15) + la %r0, 4095(%r15,%r1) + la %r15, 0 diff --git a/test/MC/SystemZ/insn-la-02.s b/test/MC/SystemZ/insn-la-02.s new file mode 100644 index 0000000000..35c1ab04b5 --- /dev/null +++ b/test/MC/SystemZ/insn-la-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: la %r0, -1 +#CHECK: error: invalid operand +#CHECK: la %r0, 4096 + + la %r0, -1 + la %r0, 4096 diff --git a/test/MC/SystemZ/insn-larl-01.s b/test/MC/SystemZ/insn-larl-01.s new file mode 100644 index 0000000000..3d0f98f562 --- /dev/null +++ b/test/MC/SystemZ/insn-larl-01.s @@ -0,0 +1,31 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: larl %r0, 2864434397 # encoding: [0xc0,0x00,0x55,0x5d,0xe6,0x6e] +#CHECK: larl %r15, 2864434397 # encoding: [0xc0,0xf0,0x55,0x5d,0xe6,0x6e] + + larl %r0,0xaabbccdd + larl %r15,0xaabbccdd + +#CHECK: larl %r0, foo # encoding: [0xc0,0x00,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: larl %r15, foo # encoding: [0xc0,0xf0,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL + + larl %r0,foo + larl %r15,foo + +#CHECK: larl %r3, bar+100 # encoding: [0xc0,0x30,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL +#CHECK: larl %r4, bar+100 # encoding: [0xc0,0x40,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL + + larl %r3,bar+100 + larl %r4,bar+100 + +#CHECK: larl %r7, frob@PLT # encoding: [0xc0,0x70,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL +#CHECK: larl %r8, frob@PLT # encoding: [0xc0,0x80,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL + + larl %r7,frob@PLT + larl %r8,frob@PLT diff --git a/test/MC/SystemZ/insn-lay-01.s b/test/MC/SystemZ/insn-lay-01.s new file mode 100644 index 0000000000..daa88288ab --- /dev/null +++ b/test/MC/SystemZ/insn-lay-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lay %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x71] +#CHECK: lay %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x71] +#CHECK: lay %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x71] +#CHECK: lay %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x71] +#CHECK: lay %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x71] +#CHECK: lay %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x71] +#CHECK: lay %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x71] +#CHECK: lay %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x71] +#CHECK: lay %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x71] +#CHECK: lay %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x71] + + lay %r0, -524288 + lay %r0, -1 + lay %r0, 0 + lay %r0, 1 + lay %r0, 524287 + lay %r0, 0(%r1) + lay %r0, 0(%r15) + lay %r0, 524287(%r1,%r15) + lay %r0, 524287(%r15,%r1) + lay %r15, 0 diff --git a/test/MC/SystemZ/insn-lay-02.s b/test/MC/SystemZ/insn-lay-02.s new file mode 100644 index 0000000000..2729eead22 --- /dev/null +++ b/test/MC/SystemZ/insn-lay-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: lay %r0, -524289 +#CHECK: error: invalid operand +#CHECK: lay %r0, 524288 + + lay %r0, -524289 + lay %r0, 524288 diff --git a/test/MC/SystemZ/insn-lb-01.s b/test/MC/SystemZ/insn-lb-01.s new file mode 100644 index 0000000000..e9ee0fab22 --- /dev/null +++ b/test/MC/SystemZ/insn-lb-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lb %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x76] +#CHECK: lb %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x76] +#CHECK: lb %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x76] +#CHECK: lb %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x76] +#CHECK: lb %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x76] +#CHECK: lb %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x76] +#CHECK: lb %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x76] +#CHECK: lb %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x76] +#CHECK: lb %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x76] +#CHECK: lb %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x76] + + lb %r0, -524288 + lb %r0, -1 + lb %r0, 0 + lb %r0, 1 + lb %r0, 524287 + lb %r0, 0(%r1) + lb %r0, 0(%r15) + lb %r0, 524287(%r1,%r15) + lb %r0, 524287(%r15,%r1) + lb %r15, 0 diff --git a/test/MC/SystemZ/insn-lb-02.s b/test/MC/SystemZ/insn-lb-02.s new file mode 100644 index 0000000000..e65edaf09d --- /dev/null +++ b/test/MC/SystemZ/insn-lb-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: lb %r0, -524289 +#CHECK: error: invalid operand +#CHECK: lb %r0, 524288 + + lb %r0, -524289 + lb %r0, 524288 diff --git a/test/MC/SystemZ/insn-lbr-01.s b/test/MC/SystemZ/insn-lbr-01.s new file mode 100644 index 0000000000..cb4ead0430 --- /dev/null +++ b/test/MC/SystemZ/insn-lbr-01.s @@ -0,0 +1,9 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lbr %r0, %r15 # encoding: [0xb9,0x26,0x00,0x0f] +#CHECK: lbr %r7, %r8 # encoding: [0xb9,0x26,0x00,0x78] +#CHECK: lbr %r15, %r0 # encoding: [0xb9,0x26,0x00,0xf0] + + lbr %r0, %r15 + lbr %r7, %r8 + lbr %r15, %r0 diff --git a/test/MC/SystemZ/insn-lcdbr-01.s b/test/MC/SystemZ/insn-lcdbr-01.s new file mode 100644 index 0000000000..347cab5141 --- /dev/null +++ b/test/MC/SystemZ/insn-lcdbr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lcdbr %f0, %f9 # encoding: [0xb3,0x13,0x00,0x09] +#CHECK: lcdbr %f0, %f15 # encoding: [0xb3,0x13,0x00,0x0f] +#CHECK: lcdbr %f15, %f0 # encoding: [0xb3,0x13,0x00,0xf0] +#CHECK: lcdbr %f15, %f9 # encoding: [0xb3,0x13,0x00,0xf9] + + lcdbr %f0,%f9 + lcdbr %f0,%f15 + lcdbr %f15,%f0 + lcdbr %f15,%f9 diff --git a/test/MC/SystemZ/insn-lcebr-01.s b/test/MC/SystemZ/insn-lcebr-01.s new file mode 100644 index 0000000000..e31822f004 --- /dev/null +++ b/test/MC/SystemZ/insn-lcebr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lcebr %f0, %f9 # encoding: [0xb3,0x03,0x00,0x09] +#CHECK: lcebr %f0, %f15 # encoding: [0xb3,0x03,0x00,0x0f] +#CHECK: lcebr %f15, %f0 # encoding: [0xb3,0x03,0x00,0xf0] +#CHECK: lcebr %f15, %f9 # encoding: [0xb3,0x03,0x00,0xf9] + + lcebr %f0,%f9 + lcebr %f0,%f15 + lcebr %f15,%f0 + lcebr %f15,%f9 diff --git a/test/MC/SystemZ/insn-lcgfr-01.s b/test/MC/SystemZ/insn-lcgfr-01.s new file mode 100644 index 0000000000..bca430b801 --- /dev/null +++ b/test/MC/SystemZ/insn-lcgfr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lcgfr %r0, %r0 # encoding: [0xb9,0x13,0x00,0x00] +#CHECK: lcgfr %r0, %r15 # encoding: [0xb9,0x13,0x00,0x0f] +#CHECK: lcgfr %r15, %r0 # encoding: [0xb9,0x13,0x00,0xf0] +#CHECK: lcgfr %r7, %r8 # encoding: [0xb9,0x13,0x00,0x78] + + lcgfr %r0,%r0 + lcgfr %r0,%r15 + lcgfr %r15,%r0 + lcgfr %r7,%r8 diff --git a/test/MC/SystemZ/insn-lcgr-01.s b/test/MC/SystemZ/insn-lcgr-01.s new file mode 100644 index 0000000000..dc4e94f03e --- /dev/null +++ b/test/MC/SystemZ/insn-lcgr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lcgr %r0, %r0 # encoding: [0xb9,0x03,0x00,0x00] +#CHECK: lcgr %r0, %r15 # encoding: [0xb9,0x03,0x00,0x0f] +#CHECK: lcgr %r15, %r0 # encoding: [0xb9,0x03,0x00,0xf0] +#CHECK: lcgr %r7, %r8 # encoding: [0xb9,0x03,0x00,0x78] + + lcgr %r0,%r0 + lcgr %r0,%r15 + lcgr %r15,%r0 + lcgr %r7,%r8 diff --git a/test/MC/SystemZ/insn-lcr-01.s b/test/MC/SystemZ/insn-lcr-01.s new file mode 100644 index 0000000000..52471cbbdc --- /dev/null +++ b/test/MC/SystemZ/insn-lcr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lcr %r0, %r0 # encoding: [0x13,0x00] +#CHECK: lcr %r0, %r15 # encoding: [0x13,0x0f] +#CHECK: lcr %r15, %r0 # encoding: [0x13,0xf0] +#CHECK: lcr %r7, %r8 # encoding: [0x13,0x78] + + lcr %r0,%r0 + lcr %r0,%r15 + lcr %r15,%r0 + lcr %r7,%r8 diff --git a/test/MC/SystemZ/insn-lcxbr-01.s b/test/MC/SystemZ/insn-lcxbr-01.s new file mode 100644 index 0000000000..48c0b8a772 --- /dev/null +++ b/test/MC/SystemZ/insn-lcxbr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lcxbr %f0, %f8 # encoding: [0xb3,0x43,0x00,0x08] +#CHECK: lcxbr %f0, %f13 # encoding: [0xb3,0x43,0x00,0x0d] +#CHECK: lcxbr %f13, %f0 # encoding: [0xb3,0x43,0x00,0xd0] +#CHECK: lcxbr %f13, %f9 # encoding: [0xb3,0x43,0x00,0xd9] + + lcxbr %f0,%f8 + lcxbr %f0,%f13 + lcxbr %f13,%f0 + lcxbr %f13,%f9 diff --git a/test/MC/SystemZ/insn-lcxbr-02.s b/test/MC/SystemZ/insn-lcxbr-02.s new file mode 100644 index 0000000000..ab3d6bfe9c --- /dev/null +++ b/test/MC/SystemZ/insn-lcxbr-02.s @@ -0,0 +1,17 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: lcxbr %f0, %f2 +#CHECK: error: invalid register +#CHECK: lcxbr %f0, %f14 +#CHECK: error: invalid register +#CHECK: lcxbr %f2, %f0 +#CHECK: error: invalid register +#CHECK: lcxbr %f14, %f0 + + lcxbr %f0, %f2 + lcxbr %f0, %f14 + lcxbr %f2, %f0 + lcxbr %f14, %f0 + diff --git a/test/MC/SystemZ/insn-ld-01.s b/test/MC/SystemZ/insn-ld-01.s new file mode 100644 index 0000000000..653eab5e0a --- /dev/null +++ b/test/MC/SystemZ/insn-ld-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: ld %f0, 0 # encoding: [0x68,0x00,0x00,0x00] +#CHECK: ld %f0, 4095 # encoding: [0x68,0x00,0x0f,0xff] +#CHECK: ld %f0, 0(%r1) # encoding: [0x68,0x00,0x10,0x00] +#CHECK: ld %f0, 0(%r15) # encoding: [0x68,0x00,0xf0,0x00] +#CHECK: ld %f0, 4095(%r1,%r15) # encoding: [0x68,0x01,0xff,0xff] +#CHECK: ld %f0, 4095(%r15,%r1) # encoding: [0x68,0x0f,0x1f,0xff] +#CHECK: ld %f15, 0 # encoding: [0x68,0xf0,0x00,0x00] + + ld %f0, 0 + ld %f0, 4095 + ld %f0, 0(%r1) + ld %f0, 0(%r15) + ld %f0, 4095(%r1,%r15) + ld %f0, 4095(%r15,%r1) + ld %f15, 0 diff --git a/test/MC/SystemZ/insn-ld-02.s b/test/MC/SystemZ/insn-ld-02.s new file mode 100644 index 0000000000..5d786b5557 --- /dev/null +++ b/test/MC/SystemZ/insn-ld-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: ld %f0, -1 +#CHECK: error: invalid operand +#CHECK: ld %f0, 4096 + + ld %f0, -1 + ld %f0, 4096 diff --git a/test/MC/SystemZ/insn-ldeb-01.s b/test/MC/SystemZ/insn-ldeb-01.s new file mode 100644 index 0000000000..a06344d27d --- /dev/null +++ b/test/MC/SystemZ/insn-ldeb-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: ldeb %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x04] +#CHECK: ldeb %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x04] +#CHECK: ldeb %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x04] +#CHECK: ldeb %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x04] +#CHECK: ldeb %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x04] +#CHECK: ldeb %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x04] +#CHECK: ldeb %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x04] + + ldeb %f0, 0 + ldeb %f0, 4095 + ldeb %f0, 0(%r1) + ldeb %f0, 0(%r15) + ldeb %f0, 4095(%r1,%r15) + ldeb %f0, 4095(%r15,%r1) + ldeb %f15, 0 diff --git a/test/MC/SystemZ/insn-ldeb-02.s b/test/MC/SystemZ/insn-ldeb-02.s new file mode 100644 index 0000000000..6df5e7b46d --- /dev/null +++ b/test/MC/SystemZ/insn-ldeb-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: ldeb %f0, -1 +#CHECK: error: invalid operand +#CHECK: ldeb %f0, 4096 + + ldeb %f0, -1 + ldeb %f0, 4096 diff --git a/test/MC/SystemZ/insn-ldebr-01.s b/test/MC/SystemZ/insn-ldebr-01.s new file mode 100644 index 0000000000..2df932c668 --- /dev/null +++ b/test/MC/SystemZ/insn-ldebr-01.s @@ -0,0 +1,9 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: ldebr %f0, %f15 # encoding: [0xb3,0x04,0x00,0x0f] +#CHECK: ldebr %f7, %f8 # encoding: [0xb3,0x04,0x00,0x78] +#CHECK: ldebr %f15, %f0 # encoding: [0xb3,0x04,0x00,0xf0] + + ldebr %f0, %f15 + ldebr %f7, %f8 + ldebr %f15, %f0 diff --git a/test/MC/SystemZ/insn-ldgr-01.s b/test/MC/SystemZ/insn-ldgr-01.s new file mode 100644 index 0000000000..61a4529bee --- /dev/null +++ b/test/MC/SystemZ/insn-ldgr-01.s @@ -0,0 +1,13 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: ldgr %f0, %r0 # encoding: [0xb3,0xc1,0x00,0x00] +#CHECK: ldgr %f0, %r15 # encoding: [0xb3,0xc1,0x00,0x0f] +#CHECK: ldgr %f15, %r0 # encoding: [0xb3,0xc1,0x00,0xf0] +#CHECK: ldgr %f7, %r9 # encoding: [0xb3,0xc1,0x00,0x79] +#CHECK: ldgr %f15, %r15 # encoding: [0xb3,0xc1,0x00,0xff] + + ldgr %f0,%r0 + ldgr %f0,%r15 + ldgr %f15,%r0 + ldgr %f7,%r9 + ldgr %f15,%r15 diff --git a/test/MC/SystemZ/insn-ldgr-02.s b/test/MC/SystemZ/insn-ldgr-02.s new file mode 100644 index 0000000000..900174ab1f --- /dev/null +++ b/test/MC/SystemZ/insn-ldgr-02.s @@ -0,0 +1,16 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: ldgr %f0, %f0 +#CHECK: error: invalid register +#CHECK: ldgr %r0, %r0 +#CHECK: error: invalid register +#CHECK: ldgr %f0, %a0 +#CHECK: error: invalid register +#CHECK: ldgr %a0, %r0 + + ldgr %f0, %f0 + ldgr %r0, %r0 + ldgr %f0, %a0 + ldgr %a0, %r0 diff --git a/test/MC/SystemZ/insn-ldr-01.s b/test/MC/SystemZ/insn-ldr-01.s new file mode 100644 index 0000000000..895ed3439f --- /dev/null +++ b/test/MC/SystemZ/insn-ldr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: ldr %f0, %f9 # encoding: [0x28,0x09] +#CHECK: ldr %f0, %f15 # encoding: [0x28,0x0f] +#CHECK: ldr %f15, %f0 # encoding: [0x28,0xf0] +#CHECK: ldr %f15, %f9 # encoding: [0x28,0xf9] + + ldr %f0,%f9 + ldr %f0,%f15 + ldr %f15,%f0 + ldr %f15,%f9 diff --git a/test/MC/SystemZ/insn-ldxbr-01.s b/test/MC/SystemZ/insn-ldxbr-01.s new file mode 100644 index 0000000000..49e1d2adfb --- /dev/null +++ b/test/MC/SystemZ/insn-ldxbr-01.s @@ -0,0 +1,13 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: ldxbr %f0, %f0 # encoding: [0xb3,0x45,0x00,0x00] +#CHECK: ldxbr %f0, %f13 # encoding: [0xb3,0x45,0x00,0x0d] +#CHECK: ldxbr %f8, %f12 # encoding: [0xb3,0x45,0x00,0x8c] +#CHECK: ldxbr %f13, %f0 # encoding: [0xb3,0x45,0x00,0xd0] +#CHECK: ldxbr %f13, %f13 # encoding: [0xb3,0x45,0x00,0xdd] + + ldxbr %f0, %f0 + ldxbr %f0, %f13 + ldxbr %f8, %f12 + ldxbr %f13, %f0 + ldxbr %f13, %f13 diff --git a/test/MC/SystemZ/insn-ldxbr-02.s b/test/MC/SystemZ/insn-ldxbr-02.s new file mode 100644 index 0000000000..89914dff9d --- /dev/null +++ b/test/MC/SystemZ/insn-ldxbr-02.s @@ -0,0 +1,16 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: ldxbr %f0, %f2 +#CHECK: error: invalid register +#CHECK: ldxbr %f0, %f14 +#CHECK: error: invalid register +#CHECK: ldxbr %f2, %f0 +#CHECK: error: invalid register +#CHECK: ldxbr %f14, %f0 + + ldxbr %f0, %f2 + ldxbr %f0, %f14 + ldxbr %f2, %f0 + ldxbr %f14, %f0 diff --git a/test/MC/SystemZ/insn-ldy-01.s b/test/MC/SystemZ/insn-ldy-01.s new file mode 100644 index 0000000000..5c2d145af1 --- /dev/null +++ b/test/MC/SystemZ/insn-ldy-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: ldy %f0, -524288 # encoding: [0xed,0x00,0x00,0x00,0x80,0x65] +#CHECK: ldy %f0, -1 # encoding: [0xed,0x00,0x0f,0xff,0xff,0x65] +#CHECK: ldy %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x65] +#CHECK: ldy %f0, 1 # encoding: [0xed,0x00,0x00,0x01,0x00,0x65] +#CHECK: ldy %f0, 524287 # encoding: [0xed,0x00,0x0f,0xff,0x7f,0x65] +#CHECK: ldy %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x65] +#CHECK: ldy %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x65] +#CHECK: ldy %f0, 524287(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x7f,0x65] +#CHECK: ldy %f0, 524287(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x7f,0x65] +#CHECK: ldy %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x65] + + ldy %f0, -524288 + ldy %f0, -1 + ldy %f0, 0 + ldy %f0, 1 + ldy %f0, 524287 + ldy %f0, 0(%r1) + ldy %f0, 0(%r15) + ldy %f0, 524287(%r1,%r15) + ldy %f0, 524287(%r15,%r1) + ldy %f15, 0 diff --git a/test/MC/SystemZ/insn-ldy-02.s b/test/MC/SystemZ/insn-ldy-02.s new file mode 100644 index 0000000000..b16e0149ee --- /dev/null +++ b/test/MC/SystemZ/insn-ldy-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: ldy %f0, -524289 +#CHECK: error: invalid operand +#CHECK: ldy %f0, 524288 + + ldy %f0, -524289 + ldy %f0, 524288 diff --git a/test/MC/SystemZ/insn-le-01.s b/test/MC/SystemZ/insn-le-01.s new file mode 100644 index 0000000000..15bbce26a5 --- /dev/null +++ b/test/MC/SystemZ/insn-le-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: le %f0, 0 # encoding: [0x78,0x00,0x00,0x00] +#CHECK: le %f0, 4095 # encoding: [0x78,0x00,0x0f,0xff] +#CHECK: le %f0, 0(%r1) # encoding: [0x78,0x00,0x10,0x00] +#CHECK: le %f0, 0(%r15) # encoding: [0x78,0x00,0xf0,0x00] +#CHECK: le %f0, 4095(%r1,%r15) # encoding: [0x78,0x01,0xff,0xff] +#CHECK: le %f0, 4095(%r15,%r1) # encoding: [0x78,0x0f,0x1f,0xff] +#CHECK: le %f15, 0 # encoding: [0x78,0xf0,0x00,0x00] + + le %f0, 0 + le %f0, 4095 + le %f0, 0(%r1) + le %f0, 0(%r15) + le %f0, 4095(%r1,%r15) + le %f0, 4095(%r15,%r1) + le %f15, 0 diff --git a/test/MC/SystemZ/insn-le-02.s b/test/MC/SystemZ/insn-le-02.s new file mode 100644 index 0000000000..f784ea1c90 --- /dev/null +++ b/test/MC/SystemZ/insn-le-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: le %f0, -1 +#CHECK: error: invalid operand +#CHECK: le %f0, 4096 + + le %f0, -1 + le %f0, 4096 diff --git a/test/MC/SystemZ/insn-ledbr-01.s b/test/MC/SystemZ/insn-ledbr-01.s new file mode 100644 index 0000000000..6582d6344f --- /dev/null +++ b/test/MC/SystemZ/insn-ledbr-01.s @@ -0,0 +1,13 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: ledbr %f0, %f0 # encoding: [0xb3,0x44,0x00,0x00] +#CHECK: ledbr %f0, %f15 # encoding: [0xb3,0x44,0x00,0x0f] +#CHECK: ledbr %f7, %f8 # encoding: [0xb3,0x44,0x00,0x78] +#CHECK: ledbr %f15, %f0 # encoding: [0xb3,0x44,0x00,0xf0] +#CHECK: ledbr %f15, %f15 # encoding: [0xb3,0x44,0x00,0xff] + + ledbr %f0, %f0 + ledbr %f0, %f15 + ledbr %f7, %f8 + ledbr %f15, %f0 + ledbr %f15, %f15 diff --git a/test/MC/SystemZ/insn-ler-01.s b/test/MC/SystemZ/insn-ler-01.s new file mode 100644 index 0000000000..775e523218 --- /dev/null +++ b/test/MC/SystemZ/insn-ler-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: ler %f0, %f9 # encoding: [0x38,0x09] +#CHECK: ler %f0, %f15 # encoding: [0x38,0x0f] +#CHECK: ler %f15, %f0 # encoding: [0x38,0xf0] +#CHECK: ler %f15, %f9 # encoding: [0x38,0xf9] + + ler %f0,%f9 + ler %f0,%f15 + ler %f15,%f0 + ler %f15,%f9 diff --git a/test/MC/SystemZ/insn-lexbr-01.s b/test/MC/SystemZ/insn-lexbr-01.s new file mode 100644 index 0000000000..ce32103c66 --- /dev/null +++ b/test/MC/SystemZ/insn-lexbr-01.s @@ -0,0 +1,13 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lexbr %f0, %f0 # encoding: [0xb3,0x46,0x00,0x00] +#CHECK: lexbr %f0, %f13 # encoding: [0xb3,0x46,0x00,0x0d] +#CHECK: lexbr %f8, %f12 # encoding: [0xb3,0x46,0x00,0x8c] +#CHECK: lexbr %f13, %f0 # encoding: [0xb3,0x46,0x00,0xd0] +#CHECK: lexbr %f13, %f13 # encoding: [0xb3,0x46,0x00,0xdd] + + lexbr %f0, %f0 + lexbr %f0, %f13 + lexbr %f8, %f12 + lexbr %f13, %f0 + lexbr %f13, %f13 diff --git a/test/MC/SystemZ/insn-lexbr-02.s b/test/MC/SystemZ/insn-lexbr-02.s new file mode 100644 index 0000000000..8c9bb9ed60 --- /dev/null +++ b/test/MC/SystemZ/insn-lexbr-02.s @@ -0,0 +1,16 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: lexbr %f0, %f2 +#CHECK: error: invalid register +#CHECK: lexbr %f0, %f14 +#CHECK: error: invalid register +#CHECK: lexbr %f2, %f0 +#CHECK: error: invalid register +#CHECK: lexbr %f14, %f0 + + lexbr %f0, %f2 + lexbr %f0, %f14 + lexbr %f2, %f0 + lexbr %f14, %f0 diff --git a/test/MC/SystemZ/insn-ley-01.s b/test/MC/SystemZ/insn-ley-01.s new file mode 100644 index 0000000000..b854dc148c --- /dev/null +++ b/test/MC/SystemZ/insn-ley-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: ley %f0, -524288 # encoding: [0xed,0x00,0x00,0x00,0x80,0x64] +#CHECK: ley %f0, -1 # encoding: [0xed,0x00,0x0f,0xff,0xff,0x64] +#CHECK: ley %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x64] +#CHECK: ley %f0, 1 # encoding: [0xed,0x00,0x00,0x01,0x00,0x64] +#CHECK: ley %f0, 524287 # encoding: [0xed,0x00,0x0f,0xff,0x7f,0x64] +#CHECK: ley %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x64] +#CHECK: ley %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x64] +#CHECK: ley %f0, 524287(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x7f,0x64] +#CHECK: ley %f0, 524287(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x7f,0x64] +#CHECK: ley %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x64] + + ley %f0, -524288 + ley %f0, -1 + ley %f0, 0 + ley %f0, 1 + ley %f0, 524287 + ley %f0, 0(%r1) + ley %f0, 0(%r15) + ley %f0, 524287(%r1,%r15) + ley %f0, 524287(%r15,%r1) + ley %f15, 0 diff --git a/test/MC/SystemZ/insn-ley-02.s b/test/MC/SystemZ/insn-ley-02.s new file mode 100644 index 0000000000..98bbd94dc1 --- /dev/null +++ b/test/MC/SystemZ/insn-ley-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: ley %f0, -524289 +#CHECK: error: invalid operand +#CHECK: ley %f0, 524288 + + ley %f0, -524289 + ley %f0, 524288 diff --git a/test/MC/SystemZ/insn-lg-01.s b/test/MC/SystemZ/insn-lg-01.s new file mode 100644 index 0000000000..10a95cc895 --- /dev/null +++ b/test/MC/SystemZ/insn-lg-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lg %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x04] +#CHECK: lg %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x04] +#CHECK: lg %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x04] +#CHECK: lg %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x04] +#CHECK: lg %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x04] +#CHECK: lg %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x04] +#CHECK: lg %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x04] +#CHECK: lg %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x04] +#CHECK: lg %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x04] +#CHECK: lg %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x04] + + lg %r0, -524288 + lg %r0, -1 + lg %r0, 0 + lg %r0, 1 + lg %r0, 524287 + lg %r0, 0(%r1) + lg %r0, 0(%r15) + lg %r0, 524287(%r1,%r15) + lg %r0, 524287(%r15,%r1) + lg %r15, 0 diff --git a/test/MC/SystemZ/insn-lg-02.s b/test/MC/SystemZ/insn-lg-02.s new file mode 100644 index 0000000000..85b29fff55 --- /dev/null +++ b/test/MC/SystemZ/insn-lg-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: lg %r0, -524289 +#CHECK: error: invalid operand +#CHECK: lg %r0, 524288 + + lg %r0, -524289 + lg %r0, 524288 diff --git a/test/MC/SystemZ/insn-lgb-01.s b/test/MC/SystemZ/insn-lgb-01.s new file mode 100644 index 0000000000..82b92f1672 --- /dev/null +++ b/test/MC/SystemZ/insn-lgb-01.s @@ -0,0 +1,24 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lgb %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x77] +#CHECK: lgb %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x77] +#CHECK: lgb %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x77] +#CHECK: lgb %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x77] +#CHECK: lgb %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x77] +#CHECK: lgb %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x77] +#CHECK: lgb %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x77] +#CHECK: lgb %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x77] +#CHECK: lgb %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x77] +#CHECK: lgb %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x77] + + lgb %r0, -524288 + lgb %r0, -1 + lgb %r0, 0 + lgb %r0, 1 + lgb %r0, 524287 + lgb %r0, 0(%r1) + lgb %r0, 0(%r15) + lgb %r0, 524287(%r1,%r15) + lgb %r0, 524287(%r15,%r1) + lgb %r15, 0 + diff --git a/test/MC/SystemZ/insn-lgb-02.s b/test/MC/SystemZ/insn-lgb-02.s new file mode 100644 index 0000000000..7acc1762b5 --- /dev/null +++ b/test/MC/SystemZ/insn-lgb-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: lgb %r0, -524289 +#CHECK: error: invalid operand +#CHECK: lgb %r0, 524288 + + lgb %r0, -524289 + lgb %r0, 524288 diff --git a/test/MC/SystemZ/insn-lgbr-01.s b/test/MC/SystemZ/insn-lgbr-01.s new file mode 100644 index 0000000000..ec2e622009 --- /dev/null +++ b/test/MC/SystemZ/insn-lgbr-01.s @@ -0,0 +1,9 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lgbr %r0, %r15 # encoding: [0xb9,0x06,0x00,0x0f] +#CHECK: lgbr %r7, %r8 # encoding: [0xb9,0x06,0x00,0x78] +#CHECK: lgbr %r15, %r0 # encoding: [0xb9,0x06,0x00,0xf0] + + lgbr %r0, %r15 + lgbr %r7, %r8 + lgbr %r15, %r0 diff --git a/test/MC/SystemZ/insn-lgdr-01.s b/test/MC/SystemZ/insn-lgdr-01.s new file mode 100644 index 0000000000..56d1e035b4 --- /dev/null +++ b/test/MC/SystemZ/insn-lgdr-01.s @@ -0,0 +1,13 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lgdr %r0, %f0 # encoding: [0xb3,0xcd,0x00,0x00] +#CHECK: lgdr %r0, %f15 # encoding: [0xb3,0xcd,0x00,0x0f] +#CHECK: lgdr %r15, %f0 # encoding: [0xb3,0xcd,0x00,0xf0] +#CHECK: lgdr %r8, %f8 # encoding: [0xb3,0xcd,0x00,0x88] +#CHECK: lgdr %r15, %f15 # encoding: [0xb3,0xcd,0x00,0xff] + + lgdr %r0,%f0 + lgdr %r0,%f15 + lgdr %r15,%f0 + lgdr %r8,%f8 + lgdr %r15,%f15 diff --git a/test/MC/SystemZ/insn-lgdr-02.s b/test/MC/SystemZ/insn-lgdr-02.s new file mode 100644 index 0000000000..3bf014d90e --- /dev/null +++ b/test/MC/SystemZ/insn-lgdr-02.s @@ -0,0 +1,16 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: lgdr %f0, %f0 +#CHECK: error: invalid register +#CHECK: lgdr %r0, %r0 +#CHECK: error: invalid register +#CHECK: lgdr %r0, %a0 +#CHECK: error: invalid register +#CHECK: lgdr %a0, %f0 + + lgdr %f0, %f0 + lgdr %r0, %r0 + lgdr %r0, %a0 + lgdr %a0, %f0 diff --git a/test/MC/SystemZ/insn-lgf-01.s b/test/MC/SystemZ/insn-lgf-01.s new file mode 100644 index 0000000000..9ed917228a --- /dev/null +++ b/test/MC/SystemZ/insn-lgf-01.s @@ -0,0 +1,24 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lgf %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x14] +#CHECK: lgf %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x14] +#CHECK: lgf %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x14] +#CHECK: lgf %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x14] +#CHECK: lgf %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x14] +#CHECK: lgf %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x14] +#CHECK: lgf %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x14] +#CHECK: lgf %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x14] +#CHECK: lgf %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x14] +#CHECK: lgf %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x14] + + lgf %r0, -524288 + lgf %r0, -1 + lgf %r0, 0 + lgf %r0, 1 + lgf %r0, 524287 + lgf %r0, 0(%r1) + lgf %r0, 0(%r15) + lgf %r0, 524287(%r1,%r15) + lgf %r0, 524287(%r15,%r1) + lgf %r15, 0 + diff --git a/test/MC/SystemZ/insn-lgf-02.s b/test/MC/SystemZ/insn-lgf-02.s new file mode 100644 index 0000000000..32095a8409 --- /dev/null +++ b/test/MC/SystemZ/insn-lgf-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: lgf %r0, -524289 +#CHECK: error: invalid operand +#CHECK: lgf %r0, 524288 + + lgf %r0, -524289 + lgf %r0, 524288 diff --git a/test/MC/SystemZ/insn-lgfi-01.s b/test/MC/SystemZ/insn-lgfi-01.s new file mode 100644 index 0000000000..a5ca7a59b5 --- /dev/null +++ b/test/MC/SystemZ/insn-lgfi-01.s @@ -0,0 +1,15 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lgfi %r0, -2147483648 # encoding: [0xc0,0x01,0x80,0x00,0x00,0x00] +#CHECK: lgfi %r0, -1 # encoding: [0xc0,0x01,0xff,0xff,0xff,0xff] +#CHECK: lgfi %r0, 0 # encoding: [0xc0,0x01,0x00,0x00,0x00,0x00] +#CHECK: lgfi %r0, 1 # encoding: [0xc0,0x01,0x00,0x00,0x00,0x01] +#CHECK: lgfi %r0, 2147483647 # encoding: [0xc0,0x01,0x7f,0xff,0xff,0xff] +#CHECK: lgfi %r15, 0 # encoding: [0xc0,0xf1,0x00,0x00,0x00,0x00] + + lgfi %r0, -1 << 31 + lgfi %r0, -1 + lgfi %r0, 0 + lgfi %r0, 1 + lgfi %r0, (1 << 31) - 1 + lgfi %r15, 0 diff --git a/test/MC/SystemZ/insn-lgfi-02.s b/test/MC/SystemZ/insn-lgfi-02.s new file mode 100644 index 0000000000..a45cfeb46d --- /dev/null +++ b/test/MC/SystemZ/insn-lgfi-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: lgfi %r0, (-1 << 31) - 1 +#CHECK: error: invalid operand +#CHECK: lgfi %r0, (1 << 31) + + lgfi %r0, (-1 << 31) - 1 + lgfi %r0, (1 << 31) diff --git a/test/MC/SystemZ/insn-lgfr-01.s b/test/MC/SystemZ/insn-lgfr-01.s new file mode 100644 index 0000000000..bc375a67b0 --- /dev/null +++ b/test/MC/SystemZ/insn-lgfr-01.s @@ -0,0 +1,9 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lgfr %r0, %r15 # encoding: [0xb9,0x14,0x00,0x0f] +#CHECK: lgfr %r7, %r8 # encoding: [0xb9,0x14,0x00,0x78] +#CHECK: lgfr %r15, %r0 # encoding: [0xb9,0x14,0x00,0xf0] + + lgfr %r0, %r15 + lgfr %r7, %r8 + lgfr %r15, %r0 diff --git a/test/MC/SystemZ/insn-lgfrl-01.s b/test/MC/SystemZ/insn-lgfrl-01.s new file mode 100644 index 0000000000..85c9ea764c --- /dev/null +++ b/test/MC/SystemZ/insn-lgfrl-01.s @@ -0,0 +1,31 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lgfrl %r0, 2864434397 # encoding: [0xc4,0x0c,0x55,0x5d,0xe6,0x6e] +#CHECK: lgfrl %r15, 2864434397 # encoding: [0xc4,0xfc,0x55,0x5d,0xe6,0x6e] + + lgfrl %r0,0xaabbccdd + lgfrl %r15,0xaabbccdd + +#CHECK: lgfrl %r0, foo # encoding: [0xc4,0x0c,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: lgfrl %r15, foo # encoding: [0xc4,0xfc,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL + + lgfrl %r0,foo + lgfrl %r15,foo + +#CHECK: lgfrl %r3, bar+100 # encoding: [0xc4,0x3c,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL +#CHECK: lgfrl %r4, bar+100 # encoding: [0xc4,0x4c,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL + + lgfrl %r3,bar+100 + lgfrl %r4,bar+100 + +#CHECK: lgfrl %r7, frob@PLT # encoding: [0xc4,0x7c,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL +#CHECK: lgfrl %r8, frob@PLT # encoding: [0xc4,0x8c,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL + + lgfrl %r7,frob@PLT + lgfrl %r8,frob@PLT diff --git a/test/MC/SystemZ/insn-lgh-01.s b/test/MC/SystemZ/insn-lgh-01.s new file mode 100644 index 0000000000..9dae6212b2 --- /dev/null +++ b/test/MC/SystemZ/insn-lgh-01.s @@ -0,0 +1,24 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lgh %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x15] +#CHECK: lgh %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x15] +#CHECK: lgh %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x15] +#CHECK: lgh %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x15] +#CHECK: lgh %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x15] +#CHECK: lgh %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x15] +#CHECK: lgh %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x15] +#CHECK: lgh %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x15] +#CHECK: lgh %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x15] +#CHECK: lgh %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x15] + + lgh %r0, -524288 + lgh %r0, -1 + lgh %r0, 0 + lgh %r0, 1 + lgh %r0, 524287 + lgh %r0, 0(%r1) + lgh %r0, 0(%r15) + lgh %r0, 524287(%r1,%r15) + lgh %r0, 524287(%r15,%r1) + lgh %r15, 0 + diff --git a/test/MC/SystemZ/insn-lgh-02.s b/test/MC/SystemZ/insn-lgh-02.s new file mode 100644 index 0000000000..62b7341d82 --- /dev/null +++ b/test/MC/SystemZ/insn-lgh-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: lgh %r0, -524289 +#CHECK: error: invalid operand +#CHECK: lgh %r0, 524288 + + lgh %r0, -524289 + lgh %r0, 524288 diff --git a/test/MC/SystemZ/insn-lghi-01.s b/test/MC/SystemZ/insn-lghi-01.s new file mode 100644 index 0000000000..d9d12ae1bb --- /dev/null +++ b/test/MC/SystemZ/insn-lghi-01.s @@ -0,0 +1,15 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lghi %r0, -32768 # encoding: [0xa7,0x09,0x80,0x00] +#CHECK: lghi %r0, -1 # encoding: [0xa7,0x09,0xff,0xff] +#CHECK: lghi %r0, 0 # encoding: [0xa7,0x09,0x00,0x00] +#CHECK: lghi %r0, 1 # encoding: [0xa7,0x09,0x00,0x01] +#CHECK: lghi %r0, 32767 # encoding: [0xa7,0x09,0x7f,0xff] +#CHECK: lghi %r15, 0 # encoding: [0xa7,0xf9,0x00,0x00] + + lghi %r0, -32768 + lghi %r0, -1 + lghi %r0, 0 + lghi %r0, 1 + lghi %r0, 32767 + lghi %r15, 0 diff --git a/test/MC/SystemZ/insn-lghi-02.s b/test/MC/SystemZ/insn-lghi-02.s new file mode 100644 index 0000000000..b1af7a0c54 --- /dev/null +++ b/test/MC/SystemZ/insn-lghi-02.s @@ -0,0 +1,13 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: lghi %r0, -32769 +#CHECK: error: invalid operand +#CHECK: lghi %r0, 32768 +#CHECK: error: invalid operand +#CHECK: lghi %r0, foo + + lghi %r0, -32769 + lghi %r0, 32768 + lghi %r0, foo diff --git a/test/MC/SystemZ/insn-lghr-01.s b/test/MC/SystemZ/insn-lghr-01.s new file mode 100644 index 0000000000..a1dc842339 --- /dev/null +++ b/test/MC/SystemZ/insn-lghr-01.s @@ -0,0 +1,9 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lghr %r0, %r15 # encoding: [0xb9,0x07,0x00,0x0f] +#CHECK: lghr %r7, %r8 # encoding: [0xb9,0x07,0x00,0x78] +#CHECK: lghr %r15, %r0 # encoding: [0xb9,0x07,0x00,0xf0] + + lghr %r0, %r15 + lghr %r7, %r8 + lghr %r15, %r0 diff --git a/test/MC/SystemZ/insn-lghrl-01.s b/test/MC/SystemZ/insn-lghrl-01.s new file mode 100644 index 0000000000..34992e6ff2 --- /dev/null +++ b/test/MC/SystemZ/insn-lghrl-01.s @@ -0,0 +1,31 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lghrl %r0, 2864434397 # encoding: [0xc4,0x04,0x55,0x5d,0xe6,0x6e] +#CHECK: lghrl %r15, 2864434397 # encoding: [0xc4,0xf4,0x55,0x5d,0xe6,0x6e] + + lghrl %r0,0xaabbccdd + lghrl %r15,0xaabbccdd + +#CHECK: lghrl %r0, foo # encoding: [0xc4,0x04,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: lghrl %r15, foo # encoding: [0xc4,0xf4,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL + + lghrl %r0,foo + lghrl %r15,foo + +#CHECK: lghrl %r3, bar+100 # encoding: [0xc4,0x34,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL +#CHECK: lghrl %r4, bar+100 # encoding: [0xc4,0x44,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL + + lghrl %r3,bar+100 + lghrl %r4,bar+100 + +#CHECK: lghrl %r7, frob@PLT # encoding: [0xc4,0x74,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL +#CHECK: lghrl %r8, frob@PLT # encoding: [0xc4,0x84,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL + + lghrl %r7,frob@PLT + lghrl %r8,frob@PLT diff --git a/test/MC/SystemZ/insn-lgr-01.s b/test/MC/SystemZ/insn-lgr-01.s new file mode 100644 index 0000000000..e50295682b --- /dev/null +++ b/test/MC/SystemZ/insn-lgr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lgr %r0, %r9 # encoding: [0xb9,0x04,0x00,0x09] +#CHECK: lgr %r0, %r15 # encoding: [0xb9,0x04,0x00,0x0f] +#CHECK: lgr %r15, %r0 # encoding: [0xb9,0x04,0x00,0xf0] +#CHECK: lgr %r15, %r9 # encoding: [0xb9,0x04,0x00,0xf9] + + lgr %r0,%r9 + lgr %r0,%r15 + lgr %r15,%r0 + lgr %r15,%r9 diff --git a/test/MC/SystemZ/insn-lgrl-01.s b/test/MC/SystemZ/insn-lgrl-01.s new file mode 100644 index 0000000000..7a18908f9a --- /dev/null +++ b/test/MC/SystemZ/insn-lgrl-01.s @@ -0,0 +1,31 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lgrl %r0, 2864434397 # encoding: [0xc4,0x08,0x55,0x5d,0xe6,0x6e] +#CHECK: lgrl %r15, 2864434397 # encoding: [0xc4,0xf8,0x55,0x5d,0xe6,0x6e] + + lgrl %r0,0xaabbccdd + lgrl %r15,0xaabbccdd + +#CHECK: lgrl %r0, foo # encoding: [0xc4,0x08,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: lgrl %r15, foo # encoding: [0xc4,0xf8,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL + + lgrl %r0,foo + lgrl %r15,foo + +#CHECK: lgrl %r3, bar+100 # encoding: [0xc4,0x38,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL +#CHECK: lgrl %r4, bar+100 # encoding: [0xc4,0x48,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL + + lgrl %r3,bar+100 + lgrl %r4,bar+100 + +#CHECK: lgrl %r7, frob@PLT # encoding: [0xc4,0x78,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL +#CHECK: lgrl %r8, frob@PLT # encoding: [0xc4,0x88,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL + + lgrl %r7,frob@PLT + lgrl %r8,frob@PLT diff --git a/test/MC/SystemZ/insn-lh-01.s b/test/MC/SystemZ/insn-lh-01.s new file mode 100644 index 0000000000..07be012756 --- /dev/null +++ b/test/MC/SystemZ/insn-lh-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lh %r0, 0 # encoding: [0x48,0x00,0x00,0x00] +#CHECK: lh %r0, 4095 # encoding: [0x48,0x00,0x0f,0xff] +#CHECK: lh %r0, 0(%r1) # encoding: [0x48,0x00,0x10,0x00] +#CHECK: lh %r0, 0(%r15) # encoding: [0x48,0x00,0xf0,0x00] +#CHECK: lh %r0, 4095(%r1,%r15) # encoding: [0x48,0x01,0xff,0xff] +#CHECK: lh %r0, 4095(%r15,%r1) # encoding: [0x48,0x0f,0x1f,0xff] +#CHECK: lh %r15, 0 # encoding: [0x48,0xf0,0x00,0x00] + + lh %r0, 0 + lh %r0, 4095 + lh %r0, 0(%r1) + lh %r0, 0(%r15) + lh %r0, 4095(%r1,%r15) + lh %r0, 4095(%r15,%r1) + lh %r15, 0 diff --git a/test/MC/SystemZ/insn-lh-02.s b/test/MC/SystemZ/insn-lh-02.s new file mode 100644 index 0000000000..80566d8d37 --- /dev/null +++ b/test/MC/SystemZ/insn-lh-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: lh %r0, -1 +#CHECK: error: invalid operand +#CHECK: lh %r0, 4096 + + lh %r0, -1 + lh %r0, 4096 diff --git a/test/MC/SystemZ/insn-lhi-01.s b/test/MC/SystemZ/insn-lhi-01.s new file mode 100644 index 0000000000..43b7df08f0 --- /dev/null +++ b/test/MC/SystemZ/insn-lhi-01.s @@ -0,0 +1,15 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lhi %r0, -32768 # encoding: [0xa7,0x08,0x80,0x00] +#CHECK: lhi %r0, -1 # encoding: [0xa7,0x08,0xff,0xff] +#CHECK: lhi %r0, 0 # encoding: [0xa7,0x08,0x00,0x00] +#CHECK: lhi %r0, 1 # encoding: [0xa7,0x08,0x00,0x01] +#CHECK: lhi %r0, 32767 # encoding: [0xa7,0x08,0x7f,0xff] +#CHECK: lhi %r15, 0 # encoding: [0xa7,0xf8,0x00,0x00] + + lhi %r0, -32768 + lhi %r0, -1 + lhi %r0, 0 + lhi %r0, 1 + lhi %r0, 32767 + lhi %r15, 0 diff --git a/test/MC/SystemZ/insn-lhi-02.s b/test/MC/SystemZ/insn-lhi-02.s new file mode 100644 index 0000000000..8e38464b82 --- /dev/null +++ b/test/MC/SystemZ/insn-lhi-02.s @@ -0,0 +1,13 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: lhi %r0, -32769 +#CHECK: error: invalid operand +#CHECK: lhi %r0, 32768 +#CHECK: error: invalid operand +#CHECK: lhi %r0, foo + + lhi %r0, -32769 + lhi %r0, 32768 + lhi %r0, foo diff --git a/test/MC/SystemZ/insn-lhr-01.s b/test/MC/SystemZ/insn-lhr-01.s new file mode 100644 index 0000000000..a31cbc65f4 --- /dev/null +++ b/test/MC/SystemZ/insn-lhr-01.s @@ -0,0 +1,9 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lhr %r0, %r15 # encoding: [0xb9,0x27,0x00,0x0f] +#CHECK: lhr %r7, %r8 # encoding: [0xb9,0x27,0x00,0x78] +#CHECK: lhr %r15, %r0 # encoding: [0xb9,0x27,0x00,0xf0] + + lhr %r0, %r15 + lhr %r7, %r8 + lhr %r15, %r0 diff --git a/test/MC/SystemZ/insn-lhrl-01.s b/test/MC/SystemZ/insn-lhrl-01.s new file mode 100644 index 0000000000..87925fe098 --- /dev/null +++ b/test/MC/SystemZ/insn-lhrl-01.s @@ -0,0 +1,31 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lhrl %r0, 2864434397 # encoding: [0xc4,0x05,0x55,0x5d,0xe6,0x6e] +#CHECK: lhrl %r15, 2864434397 # encoding: [0xc4,0xf5,0x55,0x5d,0xe6,0x6e] + + lhrl %r0,0xaabbccdd + lhrl %r15,0xaabbccdd + +#CHECK: lhrl %r0, foo # encoding: [0xc4,0x05,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: lhrl %r15, foo # encoding: [0xc4,0xf5,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL + + lhrl %r0,foo + lhrl %r15,foo + +#CHECK: lhrl %r3, bar+100 # encoding: [0xc4,0x35,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL +#CHECK: lhrl %r4, bar+100 # encoding: [0xc4,0x45,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL + + lhrl %r3,bar+100 + lhrl %r4,bar+100 + +#CHECK: lhrl %r7, frob@PLT # encoding: [0xc4,0x75,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL +#CHECK: lhrl %r8, frob@PLT # encoding: [0xc4,0x85,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL + + lhrl %r7,frob@PLT + lhrl %r8,frob@PLT diff --git a/test/MC/SystemZ/insn-lhy-01.s b/test/MC/SystemZ/insn-lhy-01.s new file mode 100644 index 0000000000..db811a41a4 --- /dev/null +++ b/test/MC/SystemZ/insn-lhy-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lhy %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x78] +#CHECK: lhy %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x78] +#CHECK: lhy %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x78] +#CHECK: lhy %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x78] +#CHECK: lhy %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x78] +#CHECK: lhy %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x78] +#CHECK: lhy %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x78] +#CHECK: lhy %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x78] +#CHECK: lhy %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x78] +#CHECK: lhy %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x78] + + lhy %r0, -524288 + lhy %r0, -1 + lhy %r0, 0 + lhy %r0, 1 + lhy %r0, 524287 + lhy %r0, 0(%r1) + lhy %r0, 0(%r15) + lhy %r0, 524287(%r1,%r15) + lhy %r0, 524287(%r15,%r1) + lhy %r15, 0 diff --git a/test/MC/SystemZ/insn-lhy-02.s b/test/MC/SystemZ/insn-lhy-02.s new file mode 100644 index 0000000000..6f1caa59fa --- /dev/null +++ b/test/MC/SystemZ/insn-lhy-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: lhy %r0, -524289 +#CHECK: error: invalid operand +#CHECK: lhy %r0, 524288 + + lhy %r0, -524289 + lhy %r0, 524288 diff --git a/test/MC/SystemZ/insn-llc-01.s b/test/MC/SystemZ/insn-llc-01.s new file mode 100644 index 0000000000..74a819b2ee --- /dev/null +++ b/test/MC/SystemZ/insn-llc-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: llc %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x94] +#CHECK: llc %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x94] +#CHECK: llc %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x94] +#CHECK: llc %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x94] +#CHECK: llc %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x94] +#CHECK: llc %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x94] +#CHECK: llc %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x94] +#CHECK: llc %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x94] +#CHECK: llc %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x94] +#CHECK: llc %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x94] + + llc %r0, -524288 + llc %r0, -1 + llc %r0, 0 + llc %r0, 1 + llc %r0, 524287 + llc %r0, 0(%r1) + llc %r0, 0(%r15) + llc %r0, 524287(%r1,%r15) + llc %r0, 524287(%r15,%r1) + llc %r15, 0 diff --git a/test/MC/SystemZ/insn-llc-02.s b/test/MC/SystemZ/insn-llc-02.s new file mode 100644 index 0000000000..4a65f6c55e --- /dev/null +++ b/test/MC/SystemZ/insn-llc-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: llc %r0, -524289 +#CHECK: error: invalid operand +#CHECK: llc %r0, 524288 + + llc %r0, -524289 + llc %r0, 524288 diff --git a/test/MC/SystemZ/insn-llcr-01.s b/test/MC/SystemZ/insn-llcr-01.s new file mode 100644 index 0000000000..72a695ceff --- /dev/null +++ b/test/MC/SystemZ/insn-llcr-01.s @@ -0,0 +1,9 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: llcr %r0, %r15 # encoding: [0xb9,0x94,0x00,0x0f] +#CHECK: llcr %r7, %r8 # encoding: [0xb9,0x94,0x00,0x78] +#CHECK: llcr %r15, %r0 # encoding: [0xb9,0x94,0x00,0xf0] + + llcr %r0, %r15 + llcr %r7, %r8 + llcr %r15, %r0 diff --git a/test/MC/SystemZ/insn-llgc-01.s b/test/MC/SystemZ/insn-llgc-01.s new file mode 100644 index 0000000000..297c6d62db --- /dev/null +++ b/test/MC/SystemZ/insn-llgc-01.s @@ -0,0 +1,24 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: llgc %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x90] +#CHECK: llgc %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x90] +#CHECK: llgc %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x90] +#CHECK: llgc %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x90] +#CHECK: llgc %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x90] +#CHECK: llgc %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x90] +#CHECK: llgc %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x90] +#CHECK: llgc %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x90] +#CHECK: llgc %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x90] +#CHECK: llgc %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x90] + + llgc %r0, -524288 + llgc %r0, -1 + llgc %r0, 0 + llgc %r0, 1 + llgc %r0, 524287 + llgc %r0, 0(%r1) + llgc %r0, 0(%r15) + llgc %r0, 524287(%r1,%r15) + llgc %r0, 524287(%r15,%r1) + llgc %r15, 0 + diff --git a/test/MC/SystemZ/insn-llgc-02.s b/test/MC/SystemZ/insn-llgc-02.s new file mode 100644 index 0000000000..76fca0f251 --- /dev/null +++ b/test/MC/SystemZ/insn-llgc-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: llgc %r0, -524289 +#CHECK: error: invalid operand +#CHECK: llgc %r0, 524288 + + llgc %r0, -524289 + llgc %r0, 524288 diff --git a/test/MC/SystemZ/insn-llgcr-01.s b/test/MC/SystemZ/insn-llgcr-01.s new file mode 100644 index 0000000000..5d653bfff9 --- /dev/null +++ b/test/MC/SystemZ/insn-llgcr-01.s @@ -0,0 +1,9 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: llgcr %r0, %r15 # encoding: [0xb9,0x84,0x00,0x0f] +#CHECK: llgcr %r7, %r8 # encoding: [0xb9,0x84,0x00,0x78] +#CHECK: llgcr %r15, %r0 # encoding: [0xb9,0x84,0x00,0xf0] + + llgcr %r0, %r15 + llgcr %r7, %r8 + llgcr %r15, %r0 diff --git a/test/MC/SystemZ/insn-llgf-01.s b/test/MC/SystemZ/insn-llgf-01.s new file mode 100644 index 0000000000..0394140dab --- /dev/null +++ b/test/MC/SystemZ/insn-llgf-01.s @@ -0,0 +1,24 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: llgf %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x16] +#CHECK: llgf %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x16] +#CHECK: llgf %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x16] +#CHECK: llgf %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x16] +#CHECK: llgf %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x16] +#CHECK: llgf %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x16] +#CHECK: llgf %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x16] +#CHECK: llgf %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x16] +#CHECK: llgf %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x16] +#CHECK: llgf %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x16] + + llgf %r0, -524288 + llgf %r0, -1 + llgf %r0, 0 + llgf %r0, 1 + llgf %r0, 524287 + llgf %r0, 0(%r1) + llgf %r0, 0(%r15) + llgf %r0, 524287(%r1,%r15) + llgf %r0, 524287(%r15,%r1) + llgf %r15, 0 + diff --git a/test/MC/SystemZ/insn-llgf-02.s b/test/MC/SystemZ/insn-llgf-02.s new file mode 100644 index 0000000000..0b2fab033a --- /dev/null +++ b/test/MC/SystemZ/insn-llgf-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: llgf %r0, -524289 +#CHECK: error: invalid operand +#CHECK: llgf %r0, 524288 + + llgf %r0, -524289 + llgf %r0, 524288 diff --git a/test/MC/SystemZ/insn-llgfr-01.s b/test/MC/SystemZ/insn-llgfr-01.s new file mode 100644 index 0000000000..74f1074d15 --- /dev/null +++ b/test/MC/SystemZ/insn-llgfr-01.s @@ -0,0 +1,9 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: llgfr %r0, %r15 # encoding: [0xb9,0x16,0x00,0x0f] +#CHECK: llgfr %r7, %r8 # encoding: [0xb9,0x16,0x00,0x78] +#CHECK: llgfr %r15, %r0 # encoding: [0xb9,0x16,0x00,0xf0] + + llgfr %r0, %r15 + llgfr %r7, %r8 + llgfr %r15, %r0 diff --git a/test/MC/SystemZ/insn-llgfrl-01.s b/test/MC/SystemZ/insn-llgfrl-01.s new file mode 100644 index 0000000000..85fc9f4b3c --- /dev/null +++ b/test/MC/SystemZ/insn-llgfrl-01.s @@ -0,0 +1,31 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: llgfrl %r0, 2864434397 # encoding: [0xc4,0x0e,0x55,0x5d,0xe6,0x6e] +#CHECK: llgfrl %r15, 2864434397 # encoding: [0xc4,0xfe,0x55,0x5d,0xe6,0x6e] + + llgfrl %r0,0xaabbccdd + llgfrl %r15,0xaabbccdd + +#CHECK: llgfrl %r0, foo # encoding: [0xc4,0x0e,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: llgfrl %r15, foo # encoding: [0xc4,0xfe,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL + + llgfrl %r0,foo + llgfrl %r15,foo + +#CHECK: llgfrl %r3, bar+100 # encoding: [0xc4,0x3e,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL +#CHECK: llgfrl %r4, bar+100 # encoding: [0xc4,0x4e,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL + + llgfrl %r3,bar+100 + llgfrl %r4,bar+100 + +#CHECK: llgfrl %r7, frob@PLT # encoding: [0xc4,0x7e,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL +#CHECK: llgfrl %r8, frob@PLT # encoding: [0xc4,0x8e,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL + + llgfrl %r7,frob@PLT + llgfrl %r8,frob@PLT diff --git a/test/MC/SystemZ/insn-llgh-01.s b/test/MC/SystemZ/insn-llgh-01.s new file mode 100644 index 0000000000..acbab00438 --- /dev/null +++ b/test/MC/SystemZ/insn-llgh-01.s @@ -0,0 +1,24 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: llgh %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x91] +#CHECK: llgh %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x91] +#CHECK: llgh %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x91] +#CHECK: llgh %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x91] +#CHECK: llgh %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x91] +#CHECK: llgh %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x91] +#CHECK: llgh %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x91] +#CHECK: llgh %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x91] +#CHECK: llgh %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x91] +#CHECK: llgh %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x91] + + llgh %r0, -524288 + llgh %r0, -1 + llgh %r0, 0 + llgh %r0, 1 + llgh %r0, 524287 + llgh %r0, 0(%r1) + llgh %r0, 0(%r15) + llgh %r0, 524287(%r1,%r15) + llgh %r0, 524287(%r15,%r1) + llgh %r15, 0 + diff --git a/test/MC/SystemZ/insn-llgh-02.s b/test/MC/SystemZ/insn-llgh-02.s new file mode 100644 index 0000000000..95b6b12c91 --- /dev/null +++ b/test/MC/SystemZ/insn-llgh-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: llgh %r0, -524289 +#CHECK: error: invalid operand +#CHECK: llgh %r0, 524288 + + llgh %r0, -524289 + llgh %r0, 524288 diff --git a/test/MC/SystemZ/insn-llghr-01.s b/test/MC/SystemZ/insn-llghr-01.s new file mode 100644 index 0000000000..3e2f6de2ae --- /dev/null +++ b/test/MC/SystemZ/insn-llghr-01.s @@ -0,0 +1,9 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: llghr %r0, %r15 # encoding: [0xb9,0x85,0x00,0x0f] +#CHECK: llghr %r7, %r8 # encoding: [0xb9,0x85,0x00,0x78] +#CHECK: llghr %r15, %r0 # encoding: [0xb9,0x85,0x00,0xf0] + + llghr %r0, %r15 + llghr %r7, %r8 + llghr %r15, %r0 diff --git a/test/MC/SystemZ/insn-llghrl-01.s b/test/MC/SystemZ/insn-llghrl-01.s new file mode 100644 index 0000000000..af3fa8b9d7 --- /dev/null +++ b/test/MC/SystemZ/insn-llghrl-01.s @@ -0,0 +1,31 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: llghrl %r0, 2864434397 # encoding: [0xc4,0x06,0x55,0x5d,0xe6,0x6e] +#CHECK: llghrl %r15, 2864434397 # encoding: [0xc4,0xf6,0x55,0x5d,0xe6,0x6e] + + llghrl %r0,0xaabbccdd + llghrl %r15,0xaabbccdd + +#CHECK: llghrl %r0, foo # encoding: [0xc4,0x06,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: llghrl %r15, foo # encoding: [0xc4,0xf6,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL + + llghrl %r0,foo + llghrl %r15,foo + +#CHECK: llghrl %r3, bar+100 # encoding: [0xc4,0x36,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL +#CHECK: llghrl %r4, bar+100 # encoding: [0xc4,0x46,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL + + llghrl %r3,bar+100 + llghrl %r4,bar+100 + +#CHECK: llghrl %r7, frob@PLT # encoding: [0xc4,0x76,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL +#CHECK: llghrl %r8, frob@PLT # encoding: [0xc4,0x86,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL + + llghrl %r7,frob@PLT + llghrl %r8,frob@PLT diff --git a/test/MC/SystemZ/insn-llh-01.s b/test/MC/SystemZ/insn-llh-01.s new file mode 100644 index 0000000000..7e15f3f6d6 --- /dev/null +++ b/test/MC/SystemZ/insn-llh-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: llh %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x95] +#CHECK: llh %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x95] +#CHECK: llh %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x95] +#CHECK: llh %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x95] +#CHECK: llh %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x95] +#CHECK: llh %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x95] +#CHECK: llh %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x95] +#CHECK: llh %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x95] +#CHECK: llh %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x95] +#CHECK: llh %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x95] + + llh %r0, -524288 + llh %r0, -1 + llh %r0, 0 + llh %r0, 1 + llh %r0, 524287 + llh %r0, 0(%r1) + llh %r0, 0(%r15) + llh %r0, 524287(%r1,%r15) + llh %r0, 524287(%r15,%r1) + llh %r15, 0 diff --git a/test/MC/SystemZ/insn-llh-02.s b/test/MC/SystemZ/insn-llh-02.s new file mode 100644 index 0000000000..92c49bb59c --- /dev/null +++ b/test/MC/SystemZ/insn-llh-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: llh %r0, -524289 +#CHECK: error: invalid operand +#CHECK: llh %r0, 524288 + + llh %r0, -524289 + llh %r0, 524288 diff --git a/test/MC/SystemZ/insn-llhr-01.s b/test/MC/SystemZ/insn-llhr-01.s new file mode 100644 index 0000000000..bb1d3b5d32 --- /dev/null +++ b/test/MC/SystemZ/insn-llhr-01.s @@ -0,0 +1,9 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: llhr %r0, %r15 # encoding: [0xb9,0x95,0x00,0x0f] +#CHECK: llhr %r7, %r8 # encoding: [0xb9,0x95,0x00,0x78] +#CHECK: llhr %r15, %r0 # encoding: [0xb9,0x95,0x00,0xf0] + + llhr %r0, %r15 + llhr %r7, %r8 + llhr %r15, %r0 diff --git a/test/MC/SystemZ/insn-llhrl-01.s b/test/MC/SystemZ/insn-llhrl-01.s new file mode 100644 index 0000000000..30ed4f9056 --- /dev/null +++ b/test/MC/SystemZ/insn-llhrl-01.s @@ -0,0 +1,31 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: llhrl %r0, 2864434397 # encoding: [0xc4,0x02,0x55,0x5d,0xe6,0x6e] +#CHECK: llhrl %r15, 2864434397 # encoding: [0xc4,0xf2,0x55,0x5d,0xe6,0x6e] + + llhrl %r0,0xaabbccdd + llhrl %r15,0xaabbccdd + +#CHECK: llhrl %r0, foo # encoding: [0xc4,0x02,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: llhrl %r15, foo # encoding: [0xc4,0xf2,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL + + llhrl %r0,foo + llhrl %r15,foo + +#CHECK: llhrl %r3, bar+100 # encoding: [0xc4,0x32,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL +#CHECK: llhrl %r4, bar+100 # encoding: [0xc4,0x42,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL + + llhrl %r3,bar+100 + llhrl %r4,bar+100 + +#CHECK: llhrl %r7, frob@PLT # encoding: [0xc4,0x72,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL +#CHECK: llhrl %r8, frob@PLT # encoding: [0xc4,0x82,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL + + llhrl %r7,frob@PLT + llhrl %r8,frob@PLT diff --git a/test/MC/SystemZ/insn-llihf-01.s b/test/MC/SystemZ/insn-llihf-01.s new file mode 100644 index 0000000000..6ddd29ffa3 --- /dev/null +++ b/test/MC/SystemZ/insn-llihf-01.s @@ -0,0 +1,9 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: llihf %r0, 0 # encoding: [0xc0,0x0e,0x00,0x00,0x00,0x00] +#CHECK: llihf %r0, 4294967295 # encoding: [0xc0,0x0e,0xff,0xff,0xff,0xff] +#CHECK: llihf %r15, 0 # encoding: [0xc0,0xfe,0x00,0x00,0x00,0x00] + + llihf %r0, 0 + llihf %r0, 0xffffffff + llihf %r15, 0 diff --git a/test/MC/SystemZ/insn-llihf-02.s b/test/MC/SystemZ/insn-llihf-02.s new file mode 100644 index 0000000000..e1b4537b02 --- /dev/null +++ b/test/MC/SystemZ/insn-llihf-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: llihf %r0, -1 +#CHECK: error: invalid operand +#CHECK: llihf %r0, 1 << 32 + + llihf %r0, -1 + llihf %r0, 1 << 32 diff --git a/test/MC/SystemZ/insn-llihh-01.s b/test/MC/SystemZ/insn-llihh-01.s new file mode 100644 index 0000000000..06060765c7 --- /dev/null +++ b/test/MC/SystemZ/insn-llihh-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: llihh %r0, 0 # encoding: [0xa5,0x0c,0x00,0x00] +#CHECK: llihh %r0, 32768 # encoding: [0xa5,0x0c,0x80,0x00] +#CHECK: llihh %r0, 65535 # encoding: [0xa5,0x0c,0xff,0xff] +#CHECK: llihh %r15, 0 # encoding: [0xa5,0xfc,0x00,0x00] + + llihh %r0, 0 + llihh %r0, 0x8000 + llihh %r0, 0xffff + llihh %r15, 0 diff --git a/test/MC/SystemZ/insn-llihh-02.s b/test/MC/SystemZ/insn-llihh-02.s new file mode 100644 index 0000000000..1309f1440f --- /dev/null +++ b/test/MC/SystemZ/insn-llihh-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: llihh %r0, -1 +#CHECK: error: invalid operand +#CHECK: llihh %r0, 0x10000 + + llihh %r0, -1 + llihh %r0, 0x10000 diff --git a/test/MC/SystemZ/insn-llihl-01.s b/test/MC/SystemZ/insn-llihl-01.s new file mode 100644 index 0000000000..6353353321 --- /dev/null +++ b/test/MC/SystemZ/insn-llihl-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: llihl %r0, 0 # encoding: [0xa5,0x0d,0x00,0x00] +#CHECK: llihl %r0, 32768 # encoding: [0xa5,0x0d,0x80,0x00] +#CHECK: llihl %r0, 65535 # encoding: [0xa5,0x0d,0xff,0xff] +#CHECK: llihl %r15, 0 # encoding: [0xa5,0xfd,0x00,0x00] + + llihl %r0, 0 + llihl %r0, 0x8000 + llihl %r0, 0xffff + llihl %r15, 0 diff --git a/test/MC/SystemZ/insn-llihl-02.s b/test/MC/SystemZ/insn-llihl-02.s new file mode 100644 index 0000000000..6891c42196 --- /dev/null +++ b/test/MC/SystemZ/insn-llihl-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: llihl %r0, -1 +#CHECK: error: invalid operand +#CHECK: llihl %r0, 0x10000 + + llihl %r0, -1 + llihl %r0, 0x10000 diff --git a/test/MC/SystemZ/insn-llilf-01.s b/test/MC/SystemZ/insn-llilf-01.s new file mode 100644 index 0000000000..8166583a2c --- /dev/null +++ b/test/MC/SystemZ/insn-llilf-01.s @@ -0,0 +1,9 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: llilf %r0, 0 # encoding: [0xc0,0x0f,0x00,0x00,0x00,0x00] +#CHECK: llilf %r0, 4294967295 # encoding: [0xc0,0x0f,0xff,0xff,0xff,0xff] +#CHECK: llilf %r15, 0 # encoding: [0xc0,0xff,0x00,0x00,0x00,0x00] + + llilf %r0, 0 + llilf %r0, 0xffffffff + llilf %r15, 0 diff --git a/test/MC/SystemZ/insn-llilf-02.s b/test/MC/SystemZ/insn-llilf-02.s new file mode 100644 index 0000000000..dc10cc34ee --- /dev/null +++ b/test/MC/SystemZ/insn-llilf-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: llilf %r0, -1 +#CHECK: error: invalid operand +#CHECK: llilf %r0, 1 << 32 + + llilf %r0, -1 + llilf %r0, 1 << 32 diff --git a/test/MC/SystemZ/insn-llilh-01.s b/test/MC/SystemZ/insn-llilh-01.s new file mode 100644 index 0000000000..2ec5a7952f --- /dev/null +++ b/test/MC/SystemZ/insn-llilh-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: llilh %r0, 0 # encoding: [0xa5,0x0e,0x00,0x00] +#CHECK: llilh %r0, 32768 # encoding: [0xa5,0x0e,0x80,0x00] +#CHECK: llilh %r0, 65535 # encoding: [0xa5,0x0e,0xff,0xff] +#CHECK: llilh %r15, 0 # encoding: [0xa5,0xfe,0x00,0x00] + + llilh %r0, 0 + llilh %r0, 0x8000 + llilh %r0, 0xffff + llilh %r15, 0 diff --git a/test/MC/SystemZ/insn-llilh-02.s b/test/MC/SystemZ/insn-llilh-02.s new file mode 100644 index 0000000000..bdfa1e7743 --- /dev/null +++ b/test/MC/SystemZ/insn-llilh-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: llilh %r0, -1 +#CHECK: error: invalid operand +#CHECK: llilh %r0, 0x10000 + + llilh %r0, -1 + llilh %r0, 0x10000 diff --git a/test/MC/SystemZ/insn-llill-01.s b/test/MC/SystemZ/insn-llill-01.s new file mode 100644 index 0000000000..b95841da4d --- /dev/null +++ b/test/MC/SystemZ/insn-llill-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: llill %r0, 0 # encoding: [0xa5,0x0f,0x00,0x00] +#CHECK: llill %r0, 32768 # encoding: [0xa5,0x0f,0x80,0x00] +#CHECK: llill %r0, 65535 # encoding: [0xa5,0x0f,0xff,0xff] +#CHECK: llill %r15, 0 # encoding: [0xa5,0xff,0x00,0x00] + + llill %r0, 0 + llill %r0, 0x8000 + llill %r0, 0xffff + llill %r15, 0 diff --git a/test/MC/SystemZ/insn-llill-02.s b/test/MC/SystemZ/insn-llill-02.s new file mode 100644 index 0000000000..2503b53331 --- /dev/null +++ b/test/MC/SystemZ/insn-llill-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: llill %r0, -1 +#CHECK: error: invalid operand +#CHECK: llill %r0, 0x10000 + + llill %r0, -1 + llill %r0, 0x10000 diff --git a/test/MC/SystemZ/insn-lmg-01.s b/test/MC/SystemZ/insn-lmg-01.s new file mode 100644 index 0000000000..24a2768192 --- /dev/null +++ b/test/MC/SystemZ/insn-lmg-01.s @@ -0,0 +1,29 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lmg %r0, %r0, 0 # encoding: [0xeb,0x00,0x00,0x00,0x00,0x04] +#CHECK: lmg %r0, %r15, 0 # encoding: [0xeb,0x0f,0x00,0x00,0x00,0x04] +#CHECK: lmg %r14, %r15, 0 # encoding: [0xeb,0xef,0x00,0x00,0x00,0x04] +#CHECK: lmg %r15, %r15, 0 # encoding: [0xeb,0xff,0x00,0x00,0x00,0x04] +#CHECK: lmg %r0, %r0, -524288 # encoding: [0xeb,0x00,0x00,0x00,0x80,0x04] +#CHECK: lmg %r0, %r0, -1 # encoding: [0xeb,0x00,0x0f,0xff,0xff,0x04] +#CHECK: lmg %r0, %r0, 0 # encoding: [0xeb,0x00,0x00,0x00,0x00,0x04] +#CHECK: lmg %r0, %r0, 1 # encoding: [0xeb,0x00,0x00,0x01,0x00,0x04] +#CHECK: lmg %r0, %r0, 524287 # encoding: [0xeb,0x00,0x0f,0xff,0x7f,0x04] +#CHECK: lmg %r0, %r0, 0(%r1) # encoding: [0xeb,0x00,0x10,0x00,0x00,0x04] +#CHECK: lmg %r0, %r0, 0(%r15) # encoding: [0xeb,0x00,0xf0,0x00,0x00,0x04] +#CHECK: lmg %r0, %r0, 524287(%r1) # encoding: [0xeb,0x00,0x1f,0xff,0x7f,0x04] +#CHECK: lmg %r0, %r0, 524287(%r15) # encoding: [0xeb,0x00,0xff,0xff,0x7f,0x04] + + lmg %r0,%r0,0 + lmg %r0,%r15,0 + lmg %r14,%r15,0 + lmg %r15,%r15,0 + lmg %r0,%r0,-524288 + lmg %r0,%r0,-1 + lmg %r0,%r0,0 + lmg %r0,%r0,1 + lmg %r0,%r0,524287 + lmg %r0,%r0,0(%r1) + lmg %r0,%r0,0(%r15) + lmg %r0,%r0,524287(%r1) + lmg %r0,%r0,524287(%r15) diff --git a/test/MC/SystemZ/insn-lmg-02.s b/test/MC/SystemZ/insn-lmg-02.s new file mode 100644 index 0000000000..9a67c08ee6 --- /dev/null +++ b/test/MC/SystemZ/insn-lmg-02.s @@ -0,0 +1,13 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: lmg %r0, %r0, -524289 +#CHECK: error: invalid operand +#CHECK: lmg %r0, %r0, 524288 +#CHECK: error: invalid use of indexed addressing +#CHECK: lmg %r0, %r0, 0(%r1,%r2) + + lmg %r0, %r0, -524289 + lmg %r0, %r0, 524288 + lmg %r0, %r0, 0(%r1,%r2) diff --git a/test/MC/SystemZ/insn-lndbr-01.s b/test/MC/SystemZ/insn-lndbr-01.s new file mode 100644 index 0000000000..22786238ab --- /dev/null +++ b/test/MC/SystemZ/insn-lndbr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lndbr %f0, %f9 # encoding: [0xb3,0x11,0x00,0x09] +#CHECK: lndbr %f0, %f15 # encoding: [0xb3,0x11,0x00,0x0f] +#CHECK: lndbr %f15, %f0 # encoding: [0xb3,0x11,0x00,0xf0] +#CHECK: lndbr %f15, %f9 # encoding: [0xb3,0x11,0x00,0xf9] + + lndbr %f0,%f9 + lndbr %f0,%f15 + lndbr %f15,%f0 + lndbr %f15,%f9 diff --git a/test/MC/SystemZ/insn-lnebr-01.s b/test/MC/SystemZ/insn-lnebr-01.s new file mode 100644 index 0000000000..cf32734ad2 --- /dev/null +++ b/test/MC/SystemZ/insn-lnebr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lnebr %f0, %f9 # encoding: [0xb3,0x01,0x00,0x09] +#CHECK: lnebr %f0, %f15 # encoding: [0xb3,0x01,0x00,0x0f] +#CHECK: lnebr %f15, %f0 # encoding: [0xb3,0x01,0x00,0xf0] +#CHECK: lnebr %f15, %f9 # encoding: [0xb3,0x01,0x00,0xf9] + + lnebr %f0,%f9 + lnebr %f0,%f15 + lnebr %f15,%f0 + lnebr %f15,%f9 diff --git a/test/MC/SystemZ/insn-lnxbr-01.s b/test/MC/SystemZ/insn-lnxbr-01.s new file mode 100644 index 0000000000..bf3794859e --- /dev/null +++ b/test/MC/SystemZ/insn-lnxbr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lnxbr %f0, %f8 # encoding: [0xb3,0x41,0x00,0x08] +#CHECK: lnxbr %f0, %f13 # encoding: [0xb3,0x41,0x00,0x0d] +#CHECK: lnxbr %f13, %f0 # encoding: [0xb3,0x41,0x00,0xd0] +#CHECK: lnxbr %f13, %f9 # encoding: [0xb3,0x41,0x00,0xd9] + + lnxbr %f0,%f8 + lnxbr %f0,%f13 + lnxbr %f13,%f0 + lnxbr %f13,%f9 diff --git a/test/MC/SystemZ/insn-lnxbr-02.s b/test/MC/SystemZ/insn-lnxbr-02.s new file mode 100644 index 0000000000..9a69f48a06 --- /dev/null +++ b/test/MC/SystemZ/insn-lnxbr-02.s @@ -0,0 +1,17 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: lnxbr %f0, %f2 +#CHECK: error: invalid register +#CHECK: lnxbr %f0, %f14 +#CHECK: error: invalid register +#CHECK: lnxbr %f2, %f0 +#CHECK: error: invalid register +#CHECK: lnxbr %f14, %f0 + + lnxbr %f0, %f2 + lnxbr %f0, %f14 + lnxbr %f2, %f0 + lnxbr %f14, %f0 + diff --git a/test/MC/SystemZ/insn-lpdbr-01.s b/test/MC/SystemZ/insn-lpdbr-01.s new file mode 100644 index 0000000000..869b0c9117 --- /dev/null +++ b/test/MC/SystemZ/insn-lpdbr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lpdbr %f0, %f9 # encoding: [0xb3,0x10,0x00,0x09] +#CHECK: lpdbr %f0, %f15 # encoding: [0xb3,0x10,0x00,0x0f] +#CHECK: lpdbr %f15, %f0 # encoding: [0xb3,0x10,0x00,0xf0] +#CHECK: lpdbr %f15, %f9 # encoding: [0xb3,0x10,0x00,0xf9] + + lpdbr %f0,%f9 + lpdbr %f0,%f15 + lpdbr %f15,%f0 + lpdbr %f15,%f9 diff --git a/test/MC/SystemZ/insn-lpebr-01.s b/test/MC/SystemZ/insn-lpebr-01.s new file mode 100644 index 0000000000..917f26e9ae --- /dev/null +++ b/test/MC/SystemZ/insn-lpebr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lpebr %f0, %f9 # encoding: [0xb3,0x00,0x00,0x09] +#CHECK: lpebr %f0, %f15 # encoding: [0xb3,0x00,0x00,0x0f] +#CHECK: lpebr %f15, %f0 # encoding: [0xb3,0x00,0x00,0xf0] +#CHECK: lpebr %f15, %f9 # encoding: [0xb3,0x00,0x00,0xf9] + + lpebr %f0,%f9 + lpebr %f0,%f15 + lpebr %f15,%f0 + lpebr %f15,%f9 diff --git a/test/MC/SystemZ/insn-lpxbr-01.s b/test/MC/SystemZ/insn-lpxbr-01.s new file mode 100644 index 0000000000..56a628ab96 --- /dev/null +++ b/test/MC/SystemZ/insn-lpxbr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lpxbr %f0, %f8 # encoding: [0xb3,0x40,0x00,0x08] +#CHECK: lpxbr %f0, %f13 # encoding: [0xb3,0x40,0x00,0x0d] +#CHECK: lpxbr %f13, %f0 # encoding: [0xb3,0x40,0x00,0xd0] +#CHECK: lpxbr %f13, %f9 # encoding: [0xb3,0x40,0x00,0xd9] + + lpxbr %f0,%f8 + lpxbr %f0,%f13 + lpxbr %f13,%f0 + lpxbr %f13,%f9 diff --git a/test/MC/SystemZ/insn-lpxbr-02.s b/test/MC/SystemZ/insn-lpxbr-02.s new file mode 100644 index 0000000000..6fa3697111 --- /dev/null +++ b/test/MC/SystemZ/insn-lpxbr-02.s @@ -0,0 +1,17 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: lpxbr %f0, %f2 +#CHECK: error: invalid register +#CHECK: lpxbr %f0, %f14 +#CHECK: error: invalid register +#CHECK: lpxbr %f2, %f0 +#CHECK: error: invalid register +#CHECK: lpxbr %f14, %f0 + + lpxbr %f0, %f2 + lpxbr %f0, %f14 + lpxbr %f2, %f0 + lpxbr %f14, %f0 + diff --git a/test/MC/SystemZ/insn-lr-01.s b/test/MC/SystemZ/insn-lr-01.s new file mode 100644 index 0000000000..8ce4a00678 --- /dev/null +++ b/test/MC/SystemZ/insn-lr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lr %r0, %r9 # encoding: [0x18,0x09] +#CHECK: lr %r0, %r15 # encoding: [0x18,0x0f] +#CHECK: lr %r15, %r0 # encoding: [0x18,0xf0] +#CHECK: lr %r15, %r9 # encoding: [0x18,0xf9] + + lr %r0,%r9 + lr %r0,%r15 + lr %r15,%r0 + lr %r15,%r9 diff --git a/test/MC/SystemZ/insn-lrl-01.s b/test/MC/SystemZ/insn-lrl-01.s new file mode 100644 index 0000000000..32d0eeb2b8 --- /dev/null +++ b/test/MC/SystemZ/insn-lrl-01.s @@ -0,0 +1,31 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lrl %r0, 2864434397 # encoding: [0xc4,0x0d,0x55,0x5d,0xe6,0x6e] +#CHECK: lrl %r15, 2864434397 # encoding: [0xc4,0xfd,0x55,0x5d,0xe6,0x6e] + + lrl %r0,0xaabbccdd + lrl %r15,0xaabbccdd + +#CHECK: lrl %r0, foo # encoding: [0xc4,0x0d,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: lrl %r15, foo # encoding: [0xc4,0xfd,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL + + lrl %r0,foo + lrl %r15,foo + +#CHECK: lrl %r3, bar+100 # encoding: [0xc4,0x3d,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL +#CHECK: lrl %r4, bar+100 # encoding: [0xc4,0x4d,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL + + lrl %r3,bar+100 + lrl %r4,bar+100 + +#CHECK: lrl %r7, frob@PLT # encoding: [0xc4,0x7d,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL +#CHECK: lrl %r8, frob@PLT # encoding: [0xc4,0x8d,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL + + lrl %r7,frob@PLT + lrl %r8,frob@PLT diff --git a/test/MC/SystemZ/insn-lrv-01.s b/test/MC/SystemZ/insn-lrv-01.s new file mode 100644 index 0000000000..75b973a22d --- /dev/null +++ b/test/MC/SystemZ/insn-lrv-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lrv %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x1e] +#CHECK: lrv %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x1e] +#CHECK: lrv %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x1e] +#CHECK: lrv %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x1e] +#CHECK: lrv %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x1e] +#CHECK: lrv %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x1e] +#CHECK: lrv %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x1e] +#CHECK: lrv %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x1e] +#CHECK: lrv %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x1e] +#CHECK: lrv %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x1e] + + lrv %r0,-524288 + lrv %r0,-1 + lrv %r0,0 + lrv %r0,1 + lrv %r0,524287 + lrv %r0,0(%r1) + lrv %r0,0(%r15) + lrv %r0,524287(%r1,%r15) + lrv %r0,524287(%r15,%r1) + lrv %r15,0 diff --git a/test/MC/SystemZ/insn-lrv-02.s b/test/MC/SystemZ/insn-lrv-02.s new file mode 100644 index 0000000000..f2dcfa777a --- /dev/null +++ b/test/MC/SystemZ/insn-lrv-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: lrv %r0, -524289 +#CHECK: error: invalid operand +#CHECK: lrv %r0, 524288 + + lrv %r0, -524289 + lrv %r0, 524288 diff --git a/test/MC/SystemZ/insn-lrvg-01.s b/test/MC/SystemZ/insn-lrvg-01.s new file mode 100644 index 0000000000..d2d8b2db43 --- /dev/null +++ b/test/MC/SystemZ/insn-lrvg-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lrvg %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x0f] +#CHECK: lrvg %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x0f] +#CHECK: lrvg %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x0f] +#CHECK: lrvg %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x0f] +#CHECK: lrvg %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x0f] +#CHECK: lrvg %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x0f] +#CHECK: lrvg %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x0f] +#CHECK: lrvg %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x0f] +#CHECK: lrvg %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x0f] +#CHECK: lrvg %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x0f] + + lrvg %r0,-524288 + lrvg %r0,-1 + lrvg %r0,0 + lrvg %r0,1 + lrvg %r0,524287 + lrvg %r0,0(%r1) + lrvg %r0,0(%r15) + lrvg %r0,524287(%r1,%r15) + lrvg %r0,524287(%r15,%r1) + lrvg %r15,0 diff --git a/test/MC/SystemZ/insn-lrvg-02.s b/test/MC/SystemZ/insn-lrvg-02.s new file mode 100644 index 0000000000..690fa13500 --- /dev/null +++ b/test/MC/SystemZ/insn-lrvg-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: lrvg %r0, -524289 +#CHECK: error: invalid operand +#CHECK: lrvg %r0, 524288 + + lrvg %r0, -524289 + lrvg %r0, 524288 diff --git a/test/MC/SystemZ/insn-lrvgr-01.s b/test/MC/SystemZ/insn-lrvgr-01.s new file mode 100644 index 0000000000..1b6e8841ee --- /dev/null +++ b/test/MC/SystemZ/insn-lrvgr-01.s @@ -0,0 +1,13 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lrvgr %r0, %r0 # encoding: [0xb9,0x0f,0x00,0x00] +#CHECK: lrvgr %r0, %r15 # encoding: [0xb9,0x0f,0x00,0x0f] +#CHECK: lrvgr %r15, %r0 # encoding: [0xb9,0x0f,0x00,0xf0] +#CHECK: lrvgr %r7, %r8 # encoding: [0xb9,0x0f,0x00,0x78] +#CHECK: lrvgr %r15, %r15 # encoding: [0xb9,0x0f,0x00,0xff] + + lrvgr %r0,%r0 + lrvgr %r0,%r15 + lrvgr %r15,%r0 + lrvgr %r7,%r8 + lrvgr %r15,%r15 diff --git a/test/MC/SystemZ/insn-lrvr-01.s b/test/MC/SystemZ/insn-lrvr-01.s new file mode 100644 index 0000000000..c0d5d895b8 --- /dev/null +++ b/test/MC/SystemZ/insn-lrvr-01.s @@ -0,0 +1,13 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lrvr %r0, %r0 # encoding: [0xb9,0x1f,0x00,0x00] +#CHECK: lrvr %r0, %r15 # encoding: [0xb9,0x1f,0x00,0x0f] +#CHECK: lrvr %r15, %r0 # encoding: [0xb9,0x1f,0x00,0xf0] +#CHECK: lrvr %r7, %r8 # encoding: [0xb9,0x1f,0x00,0x78] +#CHECK: lrvr %r15, %r15 # encoding: [0xb9,0x1f,0x00,0xff] + + lrvr %r0,%r0 + lrvr %r0,%r15 + lrvr %r15,%r0 + lrvr %r7,%r8 + lrvr %r15,%r15 diff --git a/test/MC/SystemZ/insn-lxr-01.s b/test/MC/SystemZ/insn-lxr-01.s new file mode 100644 index 0000000000..a04cdf7472 --- /dev/null +++ b/test/MC/SystemZ/insn-lxr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lxr %f0, %f8 # encoding: [0xb3,0x65,0x00,0x08] +#CHECK: lxr %f0, %f13 # encoding: [0xb3,0x65,0x00,0x0d] +#CHECK: lxr %f13, %f0 # encoding: [0xb3,0x65,0x00,0xd0] +#CHECK: lxr %f13, %f9 # encoding: [0xb3,0x65,0x00,0xd9] + + lxr %f0,%f8 + lxr %f0,%f13 + lxr %f13,%f0 + lxr %f13,%f9 diff --git a/test/MC/SystemZ/insn-lxr-02.s b/test/MC/SystemZ/insn-lxr-02.s new file mode 100644 index 0000000000..b18ad756b1 --- /dev/null +++ b/test/MC/SystemZ/insn-lxr-02.s @@ -0,0 +1,16 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: lxr %f2, %f0 +#CHECK: error: invalid register +#CHECK: lxr %f15, %f0 +#CHECK: error: invalid register +#CHECK: lxr %f0, %f2 +#CHECK: error: invalid register +#CHECK: lxr %f0, %f15 + + lxr %f2, %f0 + lxr %f15, %f0 + lxr %f0, %f2 + lxr %f0, %f15 diff --git a/test/MC/SystemZ/insn-ly-01.s b/test/MC/SystemZ/insn-ly-01.s new file mode 100644 index 0000000000..25bc3e8a34 --- /dev/null +++ b/test/MC/SystemZ/insn-ly-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: ly %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x58] +#CHECK: ly %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x58] +#CHECK: ly %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x58] +#CHECK: ly %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x58] +#CHECK: ly %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x58] +#CHECK: ly %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x58] +#CHECK: ly %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x58] +#CHECK: ly %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x58] +#CHECK: ly %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x58] +#CHECK: ly %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x58] + + ly %r0, -524288 + ly %r0, -1 + ly %r0, 0 + ly %r0, 1 + ly %r0, 524287 + ly %r0, 0(%r1) + ly %r0, 0(%r15) + ly %r0, 524287(%r1,%r15) + ly %r0, 524287(%r15,%r1) + ly %r15, 0 diff --git a/test/MC/SystemZ/insn-ly-02.s b/test/MC/SystemZ/insn-ly-02.s new file mode 100644 index 0000000000..b2d424e115 --- /dev/null +++ b/test/MC/SystemZ/insn-ly-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: ly %r0, -524289 +#CHECK: error: invalid operand +#CHECK: ly %r0, 524288 + + ly %r0, -524289 + ly %r0, 524288 diff --git a/test/MC/SystemZ/insn-lzdr-01.s b/test/MC/SystemZ/insn-lzdr-01.s new file mode 100644 index 0000000000..c95082f47b --- /dev/null +++ b/test/MC/SystemZ/insn-lzdr-01.s @@ -0,0 +1,9 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lzdr %f0 # encoding: [0xb3,0x75,0x00,0x00] +#CHECK: lzdr %f7 # encoding: [0xb3,0x75,0x00,0x70] +#CHECK: lzdr %f15 # encoding: [0xb3,0x75,0x00,0xf0] + + lzdr %f0 + lzdr %f7 + lzdr %f15 diff --git a/test/MC/SystemZ/insn-lzer-01.s b/test/MC/SystemZ/insn-lzer-01.s new file mode 100644 index 0000000000..0944047a5b --- /dev/null +++ b/test/MC/SystemZ/insn-lzer-01.s @@ -0,0 +1,9 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lzer %f0 # encoding: [0xb3,0x74,0x00,0x00] +#CHECK: lzer %f7 # encoding: [0xb3,0x74,0x00,0x70] +#CHECK: lzer %f15 # encoding: [0xb3,0x74,0x00,0xf0] + + lzer %f0 + lzer %f7 + lzer %f15 diff --git a/test/MC/SystemZ/insn-lzxr-01.s b/test/MC/SystemZ/insn-lzxr-01.s new file mode 100644 index 0000000000..bd5a5c2ea1 --- /dev/null +++ b/test/MC/SystemZ/insn-lzxr-01.s @@ -0,0 +1,9 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lzxr %f0 # encoding: [0xb3,0x76,0x00,0x00] +#CHECK: lzxr %f8 # encoding: [0xb3,0x76,0x00,0x80] +#CHECK: lzxr %f13 # encoding: [0xb3,0x76,0x00,0xd0] + + lzxr %f0 + lzxr %f8 + lzxr %f13 diff --git a/test/MC/SystemZ/insn-lzxr-02.s b/test/MC/SystemZ/insn-lzxr-02.s new file mode 100644 index 0000000000..4ce2ad04bc --- /dev/null +++ b/test/MC/SystemZ/insn-lzxr-02.s @@ -0,0 +1,13 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: lzxr %f2 +#CHECK: error: invalid register +#CHECK: lzxr %f14 +#CHECK: error: invalid register +#CHECK: lzxr %f15 + + lzxr %f2 + lzxr %f14 + lzxr %f15 diff --git a/test/MC/SystemZ/insn-madb-01.s b/test/MC/SystemZ/insn-madb-01.s new file mode 100644 index 0000000000..6eec4beb37 --- /dev/null +++ b/test/MC/SystemZ/insn-madb-01.s @@ -0,0 +1,21 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: madb %f0, %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x1e] +#CHECK: madb %f0, %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x1e] +#CHECK: madb %f0, %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x1e] +#CHECK: madb %f0, %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x1e] +#CHECK: madb %f0, %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x1e] +#CHECK: madb %f0, %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x1e] +#CHECK: madb %f0, %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x1e] +#CHECK: madb %f15, %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0xf0,0x1e] +#CHECK: madb %f15, %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0xf0,0x1e] + + madb %f0, %f0, 0 + madb %f0, %f0, 4095 + madb %f0, %f0, 0(%r1) + madb %f0, %f0, 0(%r15) + madb %f0, %f0, 4095(%r1,%r15) + madb %f0, %f0, 4095(%r15,%r1) + madb %f0, %f15, 0 + madb %f15, %f0, 0 + madb %f15, %f15, 0 diff --git a/test/MC/SystemZ/insn-madb-02.s b/test/MC/SystemZ/insn-madb-02.s new file mode 100644 index 0000000000..f7fdee978e --- /dev/null +++ b/test/MC/SystemZ/insn-madb-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: madb %f0, %f0, -1 +#CHECK: error: invalid operand +#CHECK: madb %f0, %f0, 4096 + + madb %f0, %f0, -1 + madb %f0, %f0, 4096 diff --git a/test/MC/SystemZ/insn-madbr-01.s b/test/MC/SystemZ/insn-madbr-01.s new file mode 100644 index 0000000000..42142be99e --- /dev/null +++ b/test/MC/SystemZ/insn-madbr-01.s @@ -0,0 +1,15 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: madbr %f0, %f0, %f0 # encoding: [0xb3,0x1e,0x00,0x00] +#CHECK: madbr %f0, %f0, %f15 # encoding: [0xb3,0x1e,0x00,0x0f] +#CHECK: madbr %f0, %f15, %f0 # encoding: [0xb3,0x1e,0x00,0xf0] +#CHECK: madbr %f15, %f0, %f0 # encoding: [0xb3,0x1e,0xf0,0x00] +#CHECK: madbr %f7, %f8, %f9 # encoding: [0xb3,0x1e,0x70,0x89] +#CHECK: madbr %f15, %f15, %f15 # encoding: [0xb3,0x1e,0xf0,0xff] + + madbr %f0, %f0, %f0 + madbr %f0, %f0, %f15 + madbr %f0, %f15, %f0 + madbr %f15, %f0, %f0 + madbr %f7, %f8, %f9 + madbr %f15, %f15, %f15 diff --git a/test/MC/SystemZ/insn-maeb-01.s b/test/MC/SystemZ/insn-maeb-01.s new file mode 100644 index 0000000000..7a998fd79f --- /dev/null +++ b/test/MC/SystemZ/insn-maeb-01.s @@ -0,0 +1,21 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: maeb %f0, %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x0e] +#CHECK: maeb %f0, %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x0e] +#CHECK: maeb %f0, %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x0e] +#CHECK: maeb %f0, %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x0e] +#CHECK: maeb %f0, %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x0e] +#CHECK: maeb %f0, %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x0e] +#CHECK: maeb %f0, %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x0e] +#CHECK: maeb %f15, %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0xf0,0x0e] +#CHECK: maeb %f15, %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0xf0,0x0e] + + maeb %f0, %f0, 0 + maeb %f0, %f0, 4095 + maeb %f0, %f0, 0(%r1) + maeb %f0, %f0, 0(%r15) + maeb %f0, %f0, 4095(%r1,%r15) + maeb %f0, %f0, 4095(%r15,%r1) + maeb %f0, %f15, 0 + maeb %f15, %f0, 0 + maeb %f15, %f15, 0 diff --git a/test/MC/SystemZ/insn-maeb-02.s b/test/MC/SystemZ/insn-maeb-02.s new file mode 100644 index 0000000000..e12407acc2 --- /dev/null +++ b/test/MC/SystemZ/insn-maeb-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: maeb %f0, %f0, -1 +#CHECK: error: invalid operand +#CHECK: maeb %f0, %f0, 4096 + + maeb %f0, %f0, -1 + maeb %f0, %f0, 4096 diff --git a/test/MC/SystemZ/insn-maebr-01.s b/test/MC/SystemZ/insn-maebr-01.s new file mode 100644 index 0000000000..be92aaf874 --- /dev/null +++ b/test/MC/SystemZ/insn-maebr-01.s @@ -0,0 +1,15 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: maebr %f0, %f0, %f0 # encoding: [0xb3,0x0e,0x00,0x00] +#CHECK: maebr %f0, %f0, %f15 # encoding: [0xb3,0x0e,0x00,0x0f] +#CHECK: maebr %f0, %f15, %f0 # encoding: [0xb3,0x0e,0x00,0xf0] +#CHECK: maebr %f15, %f0, %f0 # encoding: [0xb3,0x0e,0xf0,0x00] +#CHECK: maebr %f7, %f8, %f9 # encoding: [0xb3,0x0e,0x70,0x89] +#CHECK: maebr %f15, %f15, %f15 # encoding: [0xb3,0x0e,0xf0,0xff] + + maebr %f0, %f0, %f0 + maebr %f0, %f0, %f15 + maebr %f0, %f15, %f0 + maebr %f15, %f0, %f0 + maebr %f7, %f8, %f9 + maebr %f15, %f15, %f15 diff --git a/test/MC/SystemZ/insn-mdb-01.s b/test/MC/SystemZ/insn-mdb-01.s new file mode 100644 index 0000000000..58be9779fc --- /dev/null +++ b/test/MC/SystemZ/insn-mdb-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: mdb %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x1c] +#CHECK: mdb %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x1c] +#CHECK: mdb %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x1c] +#CHECK: mdb %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x1c] +#CHECK: mdb %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x1c] +#CHECK: mdb %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x1c] +#CHECK: mdb %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x1c] + + mdb %f0, 0 + mdb %f0, 4095 + mdb %f0, 0(%r1) + mdb %f0, 0(%r15) + mdb %f0, 4095(%r1,%r15) + mdb %f0, 4095(%r15,%r1) + mdb %f15, 0 diff --git a/test/MC/SystemZ/insn-mdb-02.s b/test/MC/SystemZ/insn-mdb-02.s new file mode 100644 index 0000000000..f1bdab015f --- /dev/null +++ b/test/MC/SystemZ/insn-mdb-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: mdb %f0, -1 +#CHECK: error: invalid operand +#CHECK: mdb %f0, 4096 + + mdb %f0, -1 + mdb %f0, 4096 diff --git a/test/MC/SystemZ/insn-mdbr-01.s b/test/MC/SystemZ/insn-mdbr-01.s new file mode 100644 index 0000000000..4ff16b9c0b --- /dev/null +++ b/test/MC/SystemZ/insn-mdbr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: mdbr %f0, %f0 # encoding: [0xb3,0x1c,0x00,0x00] +#CHECK: mdbr %f0, %f15 # encoding: [0xb3,0x1c,0x00,0x0f] +#CHECK: mdbr %f7, %f8 # encoding: [0xb3,0x1c,0x00,0x78] +#CHECK: mdbr %f15, %f0 # encoding: [0xb3,0x1c,0x00,0xf0] + + mdbr %f0, %f0 + mdbr %f0, %f15 + mdbr %f7, %f8 + mdbr %f15, %f0 diff --git a/test/MC/SystemZ/insn-mdeb-01.s b/test/MC/SystemZ/insn-mdeb-01.s new file mode 100644 index 0000000000..5d85c079db --- /dev/null +++ b/test/MC/SystemZ/insn-mdeb-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: mdeb %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x0c] +#CHECK: mdeb %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x0c] +#CHECK: mdeb %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x0c] +#CHECK: mdeb %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x0c] +#CHECK: mdeb %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x0c] +#CHECK: mdeb %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x0c] +#CHECK: mdeb %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x0c] + + mdeb %f0, 0 + mdeb %f0, 4095 + mdeb %f0, 0(%r1) + mdeb %f0, 0(%r15) + mdeb %f0, 4095(%r1,%r15) + mdeb %f0, 4095(%r15,%r1) + mdeb %f15, 0 diff --git a/test/MC/SystemZ/insn-mdeb-02.s b/test/MC/SystemZ/insn-mdeb-02.s new file mode 100644 index 0000000000..87ec6767d4 --- /dev/null +++ b/test/MC/SystemZ/insn-mdeb-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: mdeb %f0, -1 +#CHECK: error: invalid operand +#CHECK: mdeb %f0, 4096 + + mdeb %f0, -1 + mdeb %f0, 4096 diff --git a/test/MC/SystemZ/insn-mdebr-01.s b/test/MC/SystemZ/insn-mdebr-01.s new file mode 100644 index 0000000000..17c495581d --- /dev/null +++ b/test/MC/SystemZ/insn-mdebr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: mdebr %f0, %f0 # encoding: [0xb3,0x0c,0x00,0x00] +#CHECK: mdebr %f0, %f15 # encoding: [0xb3,0x0c,0x00,0x0f] +#CHECK: mdebr %f7, %f8 # encoding: [0xb3,0x0c,0x00,0x78] +#CHECK: mdebr %f15, %f0 # encoding: [0xb3,0x0c,0x00,0xf0] + + mdebr %f0, %f0 + mdebr %f0, %f15 + mdebr %f7, %f8 + mdebr %f15, %f0 diff --git a/test/MC/SystemZ/insn-meeb-01.s b/test/MC/SystemZ/insn-meeb-01.s new file mode 100644 index 0000000000..bb14d04355 --- /dev/null +++ b/test/MC/SystemZ/insn-meeb-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: meeb %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x17] +#CHECK: meeb %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x17] +#CHECK: meeb %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x17] +#CHECK: meeb %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x17] +#CHECK: meeb %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x17] +#CHECK: meeb %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x17] +#CHECK: meeb %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x17] + + meeb %f0, 0 + meeb %f0, 4095 + meeb %f0, 0(%r1) + meeb %f0, 0(%r15) + meeb %f0, 4095(%r1,%r15) + meeb %f0, 4095(%r15,%r1) + meeb %f15, 0 diff --git a/test/MC/SystemZ/insn-meeb-02.s b/test/MC/SystemZ/insn-meeb-02.s new file mode 100644 index 0000000000..ba5e3b28e3 --- /dev/null +++ b/test/MC/SystemZ/insn-meeb-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: meeb %f0, -1 +#CHECK: error: invalid operand +#CHECK: meeb %f0, 4096 + + meeb %f0, -1 + meeb %f0, 4096 diff --git a/test/MC/SystemZ/insn-meebr-01.s b/test/MC/SystemZ/insn-meebr-01.s new file mode 100644 index 0000000000..99cd8a38e0 --- /dev/null +++ b/test/MC/SystemZ/insn-meebr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: meebr %f0, %f0 # encoding: [0xb3,0x17,0x00,0x00] +#CHECK: meebr %f0, %f15 # encoding: [0xb3,0x17,0x00,0x0f] +#CHECK: meebr %f7, %f8 # encoding: [0xb3,0x17,0x00,0x78] +#CHECK: meebr %f15, %f0 # encoding: [0xb3,0x17,0x00,0xf0] + + meebr %f0, %f0 + meebr %f0, %f15 + meebr %f7, %f8 + meebr %f15, %f0 diff --git a/test/MC/SystemZ/insn-mghi-01.s b/test/MC/SystemZ/insn-mghi-01.s new file mode 100644 index 0000000000..d07278f20a --- /dev/null +++ b/test/MC/SystemZ/insn-mghi-01.s @@ -0,0 +1,15 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: mghi %r0, -32768 # encoding: [0xa7,0x0d,0x80,0x00] +#CHECK: mghi %r0, -1 # encoding: [0xa7,0x0d,0xff,0xff] +#CHECK: mghi %r0, 0 # encoding: [0xa7,0x0d,0x00,0x00] +#CHECK: mghi %r0, 1 # encoding: [0xa7,0x0d,0x00,0x01] +#CHECK: mghi %r0, 32767 # encoding: [0xa7,0x0d,0x7f,0xff] +#CHECK: mghi %r15, 0 # encoding: [0xa7,0xfd,0x00,0x00] + + mghi %r0, -32768 + mghi %r0, -1 + mghi %r0, 0 + mghi %r0, 1 + mghi %r0, 32767 + mghi %r15, 0 diff --git a/test/MC/SystemZ/insn-mghi-02.s b/test/MC/SystemZ/insn-mghi-02.s new file mode 100644 index 0000000000..860fa3b787 --- /dev/null +++ b/test/MC/SystemZ/insn-mghi-02.s @@ -0,0 +1,13 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: mghi %r0, -32769 +#CHECK: error: invalid operand +#CHECK: mghi %r0, 32768 +#CHECK: error: invalid operand +#CHECK: mghi %r0, foo + + mghi %r0, -32769 + mghi %r0, 32768 + mghi %r0, foo diff --git a/test/MC/SystemZ/insn-mh-01.s b/test/MC/SystemZ/insn-mh-01.s new file mode 100644 index 0000000000..59d5515438 --- /dev/null +++ b/test/MC/SystemZ/insn-mh-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: mh %r0, 0 # encoding: [0x4c,0x00,0x00,0x00] +#CHECK: mh %r0, 4095 # encoding: [0x4c,0x00,0x0f,0xff] +#CHECK: mh %r0, 0(%r1) # encoding: [0x4c,0x00,0x10,0x00] +#CHECK: mh %r0, 0(%r15) # encoding: [0x4c,0x00,0xf0,0x00] +#CHECK: mh %r0, 4095(%r1,%r15) # encoding: [0x4c,0x01,0xff,0xff] +#CHECK: mh %r0, 4095(%r15,%r1) # encoding: [0x4c,0x0f,0x1f,0xff] +#CHECK: mh %r15, 0 # encoding: [0x4c,0xf0,0x00,0x00] + + mh %r0, 0 + mh %r0, 4095 + mh %r0, 0(%r1) + mh %r0, 0(%r15) + mh %r0, 4095(%r1,%r15) + mh %r0, 4095(%r15,%r1) + mh %r15, 0 diff --git a/test/MC/SystemZ/insn-mh-02.s b/test/MC/SystemZ/insn-mh-02.s new file mode 100644 index 0000000000..4ea35fca59 --- /dev/null +++ b/test/MC/SystemZ/insn-mh-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: mh %r0, -1 +#CHECK: error: invalid operand +#CHECK: mh %r0, 4096 + + mh %r0, -1 + mh %r0, 4096 diff --git a/test/MC/SystemZ/insn-mhi-01.s b/test/MC/SystemZ/insn-mhi-01.s new file mode 100644 index 0000000000..adf42ae734 --- /dev/null +++ b/test/MC/SystemZ/insn-mhi-01.s @@ -0,0 +1,15 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: mhi %r0, -32768 # encoding: [0xa7,0x0c,0x80,0x00] +#CHECK: mhi %r0, -1 # encoding: [0xa7,0x0c,0xff,0xff] +#CHECK: mhi %r0, 0 # encoding: [0xa7,0x0c,0x00,0x00] +#CHECK: mhi %r0, 1 # encoding: [0xa7,0x0c,0x00,0x01] +#CHECK: mhi %r0, 32767 # encoding: [0xa7,0x0c,0x7f,0xff] +#CHECK: mhi %r15, 0 # encoding: [0xa7,0xfc,0x00,0x00] + + mhi %r0, -32768 + mhi %r0, -1 + mhi %r0, 0 + mhi %r0, 1 + mhi %r0, 32767 + mhi %r15, 0 diff --git a/test/MC/SystemZ/insn-mhi-02.s b/test/MC/SystemZ/insn-mhi-02.s new file mode 100644 index 0000000000..74e83576e9 --- /dev/null +++ b/test/MC/SystemZ/insn-mhi-02.s @@ -0,0 +1,13 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: mhi %r0, -32769 +#CHECK: error: invalid operand +#CHECK: mhi %r0, 32768 +#CHECK: error: invalid operand +#CHECK: mhi %r0, foo + + mhi %r0, -32769 + mhi %r0, 32768 + mhi %r0, foo diff --git a/test/MC/SystemZ/insn-mhy-01.s b/test/MC/SystemZ/insn-mhy-01.s new file mode 100644 index 0000000000..89c394bd81 --- /dev/null +++ b/test/MC/SystemZ/insn-mhy-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: mhy %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x7c] +#CHECK: mhy %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x7c] +#CHECK: mhy %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x7c] +#CHECK: mhy %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x7c] +#CHECK: mhy %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x7c] +#CHECK: mhy %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x7c] +#CHECK: mhy %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x7c] +#CHECK: mhy %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x7c] +#CHECK: mhy %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x7c] +#CHECK: mhy %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x7c] + + mhy %r0, -524288 + mhy %r0, -1 + mhy %r0, 0 + mhy %r0, 1 + mhy %r0, 524287 + mhy %r0, 0(%r1) + mhy %r0, 0(%r15) + mhy %r0, 524287(%r1,%r15) + mhy %r0, 524287(%r15,%r1) + mhy %r15, 0 diff --git a/test/MC/SystemZ/insn-mhy-02.s b/test/MC/SystemZ/insn-mhy-02.s new file mode 100644 index 0000000000..bce62f096c --- /dev/null +++ b/test/MC/SystemZ/insn-mhy-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: mhy %r0, -524289 +#CHECK: error: invalid operand +#CHECK: mhy %r0, 524288 + + mhy %r0, -524289 + mhy %r0, 524288 diff --git a/test/MC/SystemZ/insn-mlg-01.s b/test/MC/SystemZ/insn-mlg-01.s new file mode 100644 index 0000000000..e9bd6510fc --- /dev/null +++ b/test/MC/SystemZ/insn-mlg-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: mlg %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x86] +#CHECK: mlg %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x86] +#CHECK: mlg %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x86] +#CHECK: mlg %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x86] +#CHECK: mlg %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x86] +#CHECK: mlg %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x86] +#CHECK: mlg %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x86] +#CHECK: mlg %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x86] +#CHECK: mlg %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x86] +#CHECK: mlg %r14, 0 # encoding: [0xe3,0xe0,0x00,0x00,0x00,0x86] + + mlg %r0, -524288 + mlg %r0, -1 + mlg %r0, 0 + mlg %r0, 1 + mlg %r0, 524287 + mlg %r0, 0(%r1) + mlg %r0, 0(%r15) + mlg %r0, 524287(%r1,%r15) + mlg %r0, 524287(%r15,%r1) + mlg %r14, 0 diff --git a/test/MC/SystemZ/insn-mlg-02.s b/test/MC/SystemZ/insn-mlg-02.s new file mode 100644 index 0000000000..7174bc50c2 --- /dev/null +++ b/test/MC/SystemZ/insn-mlg-02.s @@ -0,0 +1,16 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: mlg %r0, -524289 +#CHECK: error: invalid operand +#CHECK: mlg %r0, 524288 +#CHECK: error: invalid register +#CHECK: mlg %r1, 0 +#CHECK: error: invalid register +#CHECK: mlg %r15, 0 + + mlg %r0, -524289 + mlg %r0, 524288 + mlg %r1, 0 + mlg %r15, 0 diff --git a/test/MC/SystemZ/insn-mlgr-01.s b/test/MC/SystemZ/insn-mlgr-01.s new file mode 100644 index 0000000000..215bde0991 --- /dev/null +++ b/test/MC/SystemZ/insn-mlgr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: mlgr %r0, %r0 # encoding: [0xb9,0x86,0x00,0x00] +#CHECK: mlgr %r0, %r15 # encoding: [0xb9,0x86,0x00,0x0f] +#CHECK: mlgr %r14, %r0 # encoding: [0xb9,0x86,0x00,0xe0] +#CHECK: mlgr %r6, %r9 # encoding: [0xb9,0x86,0x00,0x69] + + mlgr %r0,%r0 + mlgr %r0,%r15 + mlgr %r14,%r0 + mlgr %r6,%r9 diff --git a/test/MC/SystemZ/insn-mlgr-02.s b/test/MC/SystemZ/insn-mlgr-02.s new file mode 100644 index 0000000000..30f4259031 --- /dev/null +++ b/test/MC/SystemZ/insn-mlgr-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: mlgr %r1, %r0 +#CHECK: error: invalid register +#CHECK: mlgr %r15, %r0 + + mlgr %r1, %r0 + mlgr %r15, %r0 diff --git a/test/MC/SystemZ/insn-ms-01.s b/test/MC/SystemZ/insn-ms-01.s new file mode 100644 index 0000000000..e104e09a1b --- /dev/null +++ b/test/MC/SystemZ/insn-ms-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: ms %r0, 0 # encoding: [0x71,0x00,0x00,0x00] +#CHECK: ms %r0, 4095 # encoding: [0x71,0x00,0x0f,0xff] +#CHECK: ms %r0, 0(%r1) # encoding: [0x71,0x00,0x10,0x00] +#CHECK: ms %r0, 0(%r15) # encoding: [0x71,0x00,0xf0,0x00] +#CHECK: ms %r0, 4095(%r1,%r15) # encoding: [0x71,0x01,0xff,0xff] +#CHECK: ms %r0, 4095(%r15,%r1) # encoding: [0x71,0x0f,0x1f,0xff] +#CHECK: ms %r15, 0 # encoding: [0x71,0xf0,0x00,0x00] + + ms %r0, 0 + ms %r0, 4095 + ms %r0, 0(%r1) + ms %r0, 0(%r15) + ms %r0, 4095(%r1,%r15) + ms %r0, 4095(%r15,%r1) + ms %r15, 0 diff --git a/test/MC/SystemZ/insn-ms-02.s b/test/MC/SystemZ/insn-ms-02.s new file mode 100644 index 0000000000..9cc7ecda34 --- /dev/null +++ b/test/MC/SystemZ/insn-ms-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: ms %r0, -1 +#CHECK: error: invalid operand +#CHECK: ms %r0, 4096 + + ms %r0, -1 + ms %r0, 4096 diff --git a/test/MC/SystemZ/insn-msdb-01.s b/test/MC/SystemZ/insn-msdb-01.s new file mode 100644 index 0000000000..50ef45bfc4 --- /dev/null +++ b/test/MC/SystemZ/insn-msdb-01.s @@ -0,0 +1,21 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: msdb %f0, %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x1f] +#CHECK: msdb %f0, %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x1f] +#CHECK: msdb %f0, %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x1f] +#CHECK: msdb %f0, %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x1f] +#CHECK: msdb %f0, %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x1f] +#CHECK: msdb %f0, %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x1f] +#CHECK: msdb %f0, %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x1f] +#CHECK: msdb %f15, %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0xf0,0x1f] +#CHECK: msdb %f15, %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0xf0,0x1f] + + msdb %f0, %f0, 0 + msdb %f0, %f0, 4095 + msdb %f0, %f0, 0(%r1) + msdb %f0, %f0, 0(%r15) + msdb %f0, %f0, 4095(%r1,%r15) + msdb %f0, %f0, 4095(%r15,%r1) + msdb %f0, %f15, 0 + msdb %f15, %f0, 0 + msdb %f15, %f15, 0 diff --git a/test/MC/SystemZ/insn-msdb-02.s b/test/MC/SystemZ/insn-msdb-02.s new file mode 100644 index 0000000000..552fc72223 --- /dev/null +++ b/test/MC/SystemZ/insn-msdb-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: msdb %f0, %f0, -1 +#CHECK: error: invalid operand +#CHECK: msdb %f0, %f0, 4096 + + msdb %f0, %f0, -1 + msdb %f0, %f0, 4096 diff --git a/test/MC/SystemZ/insn-msdbr-01.s b/test/MC/SystemZ/insn-msdbr-01.s new file mode 100644 index 0000000000..0c816578a2 --- /dev/null +++ b/test/MC/SystemZ/insn-msdbr-01.s @@ -0,0 +1,15 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: msdbr %f0, %f0, %f0 # encoding: [0xb3,0x1f,0x00,0x00] +#CHECK: msdbr %f0, %f0, %f15 # encoding: [0xb3,0x1f,0x00,0x0f] +#CHECK: msdbr %f0, %f15, %f0 # encoding: [0xb3,0x1f,0x00,0xf0] +#CHECK: msdbr %f15, %f0, %f0 # encoding: [0xb3,0x1f,0xf0,0x00] +#CHECK: msdbr %f7, %f8, %f9 # encoding: [0xb3,0x1f,0x70,0x89] +#CHECK: msdbr %f15, %f15, %f15 # encoding: [0xb3,0x1f,0xf0,0xff] + + msdbr %f0, %f0, %f0 + msdbr %f0, %f0, %f15 + msdbr %f0, %f15, %f0 + msdbr %f15, %f0, %f0 + msdbr %f7, %f8, %f9 + msdbr %f15, %f15, %f15 diff --git a/test/MC/SystemZ/insn-mseb-01.s b/test/MC/SystemZ/insn-mseb-01.s new file mode 100644 index 0000000000..4464cfb803 --- /dev/null +++ b/test/MC/SystemZ/insn-mseb-01.s @@ -0,0 +1,21 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: mseb %f0, %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x0f] +#CHECK: mseb %f0, %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x0f] +#CHECK: mseb %f0, %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x0f] +#CHECK: mseb %f0, %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x0f] +#CHECK: mseb %f0, %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x0f] +#CHECK: mseb %f0, %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x0f] +#CHECK: mseb %f0, %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x0f] +#CHECK: mseb %f15, %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0xf0,0x0f] +#CHECK: mseb %f15, %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0xf0,0x0f] + + mseb %f0, %f0, 0 + mseb %f0, %f0, 4095 + mseb %f0, %f0, 0(%r1) + mseb %f0, %f0, 0(%r15) + mseb %f0, %f0, 4095(%r1,%r15) + mseb %f0, %f0, 4095(%r15,%r1) + mseb %f0, %f15, 0 + mseb %f15, %f0, 0 + mseb %f15, %f15, 0 diff --git a/test/MC/SystemZ/insn-mseb-02.s b/test/MC/SystemZ/insn-mseb-02.s new file mode 100644 index 0000000000..03aaa0fb8a --- /dev/null +++ b/test/MC/SystemZ/insn-mseb-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: mseb %f0, %f0, -1 +#CHECK: error: invalid operand +#CHECK: mseb %f0, %f0, 4096 + + mseb %f0, %f0, -1 + mseb %f0, %f0, 4096 diff --git a/test/MC/SystemZ/insn-msebr-01.s b/test/MC/SystemZ/insn-msebr-01.s new file mode 100644 index 0000000000..f936cb6325 --- /dev/null +++ b/test/MC/SystemZ/insn-msebr-01.s @@ -0,0 +1,15 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: msebr %f0, %f0, %f0 # encoding: [0xb3,0x0f,0x00,0x00] +#CHECK: msebr %f0, %f0, %f15 # encoding: [0xb3,0x0f,0x00,0x0f] +#CHECK: msebr %f0, %f15, %f0 # encoding: [0xb3,0x0f,0x00,0xf0] +#CHECK: msebr %f15, %f0, %f0 # encoding: [0xb3,0x0f,0xf0,0x00] +#CHECK: msebr %f7, %f8, %f9 # encoding: [0xb3,0x0f,0x70,0x89] +#CHECK: msebr %f15, %f15, %f15 # encoding: [0xb3,0x0f,0xf0,0xff] + + msebr %f0, %f0, %f0 + msebr %f0, %f0, %f15 + msebr %f0, %f15, %f0 + msebr %f15, %f0, %f0 + msebr %f7, %f8, %f9 + msebr %f15, %f15, %f15 diff --git a/test/MC/SystemZ/insn-msfi-01.s b/test/MC/SystemZ/insn-msfi-01.s new file mode 100644 index 0000000000..629260e420 --- /dev/null +++ b/test/MC/SystemZ/insn-msfi-01.s @@ -0,0 +1,15 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: msfi %r0, -2147483648 # encoding: [0xc2,0x01,0x80,0x00,0x00,0x00] +#CHECK: msfi %r0, -1 # encoding: [0xc2,0x01,0xff,0xff,0xff,0xff] +#CHECK: msfi %r0, 0 # encoding: [0xc2,0x01,0x00,0x00,0x00,0x00] +#CHECK: msfi %r0, 1 # encoding: [0xc2,0x01,0x00,0x00,0x00,0x01] +#CHECK: msfi %r0, 2147483647 # encoding: [0xc2,0x01,0x7f,0xff,0xff,0xff] +#CHECK: msfi %r15, 0 # encoding: [0xc2,0xf1,0x00,0x00,0x00,0x00] + + msfi %r0, -1 << 31 + msfi %r0, -1 + msfi %r0, 0 + msfi %r0, 1 + msfi %r0, (1 << 31) - 1 + msfi %r15, 0 diff --git a/test/MC/SystemZ/insn-msfi-02.s b/test/MC/SystemZ/insn-msfi-02.s new file mode 100644 index 0000000000..2700ce78b8 --- /dev/null +++ b/test/MC/SystemZ/insn-msfi-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: msfi %r0, (-1 << 31) - 1 +#CHECK: error: invalid operand +#CHECK: msfi %r0, (1 << 31) + + msfi %r0, (-1 << 31) - 1 + msfi %r0, (1 << 31) diff --git a/test/MC/SystemZ/insn-msg-01.s b/test/MC/SystemZ/insn-msg-01.s new file mode 100644 index 0000000000..298811c1e9 --- /dev/null +++ b/test/MC/SystemZ/insn-msg-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: msg %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x0c] +#CHECK: msg %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x0c] +#CHECK: msg %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x0c] +#CHECK: msg %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x0c] +#CHECK: msg %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x0c] +#CHECK: msg %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x0c] +#CHECK: msg %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x0c] +#CHECK: msg %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x0c] +#CHECK: msg %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x0c] +#CHECK: msg %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x0c] + + msg %r0, -524288 + msg %r0, -1 + msg %r0, 0 + msg %r0, 1 + msg %r0, 524287 + msg %r0, 0(%r1) + msg %r0, 0(%r15) + msg %r0, 524287(%r1,%r15) + msg %r0, 524287(%r15,%r1) + msg %r15, 0 diff --git a/test/MC/SystemZ/insn-msg-02.s b/test/MC/SystemZ/insn-msg-02.s new file mode 100644 index 0000000000..3326f40e56 --- /dev/null +++ b/test/MC/SystemZ/insn-msg-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: msg %r0, -524289 +#CHECK: error: invalid operand +#CHECK: msg %r0, 524288 + + msg %r0, -524289 + msg %r0, 524288 diff --git a/test/MC/SystemZ/insn-msgf-01.s b/test/MC/SystemZ/insn-msgf-01.s new file mode 100644 index 0000000000..9812bcc9cb --- /dev/null +++ b/test/MC/SystemZ/insn-msgf-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: msgf %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x1c] +#CHECK: msgf %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x1c] +#CHECK: msgf %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x1c] +#CHECK: msgf %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x1c] +#CHECK: msgf %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x1c] +#CHECK: msgf %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x1c] +#CHECK: msgf %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x1c] +#CHECK: msgf %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x1c] +#CHECK: msgf %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x1c] +#CHECK: msgf %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x1c] + + msgf %r0, -524288 + msgf %r0, -1 + msgf %r0, 0 + msgf %r0, 1 + msgf %r0, 524287 + msgf %r0, 0(%r1) + msgf %r0, 0(%r15) + msgf %r0, 524287(%r1,%r15) + msgf %r0, 524287(%r15,%r1) + msgf %r15, 0 diff --git a/test/MC/SystemZ/insn-msgf-02.s b/test/MC/SystemZ/insn-msgf-02.s new file mode 100644 index 0000000000..03983b305f --- /dev/null +++ b/test/MC/SystemZ/insn-msgf-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: msgf %r0, -524289 +#CHECK: error: invalid operand +#CHECK: msgf %r0, 524288 + + msgf %r0, -524289 + msgf %r0, 524288 diff --git a/test/MC/SystemZ/insn-msgfi-01.s b/test/MC/SystemZ/insn-msgfi-01.s new file mode 100644 index 0000000000..802ad143a5 --- /dev/null +++ b/test/MC/SystemZ/insn-msgfi-01.s @@ -0,0 +1,15 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: msgfi %r0, -2147483648 # encoding: [0xc2,0x00,0x80,0x00,0x00,0x00] +#CHECK: msgfi %r0, -1 # encoding: [0xc2,0x00,0xff,0xff,0xff,0xff] +#CHECK: msgfi %r0, 0 # encoding: [0xc2,0x00,0x00,0x00,0x00,0x00] +#CHECK: msgfi %r0, 1 # encoding: [0xc2,0x00,0x00,0x00,0x00,0x01] +#CHECK: msgfi %r0, 2147483647 # encoding: [0xc2,0x00,0x7f,0xff,0xff,0xff] +#CHECK: msgfi %r15, 0 # encoding: [0xc2,0xf0,0x00,0x00,0x00,0x00] + + msgfi %r0, -1 << 31 + msgfi %r0, -1 + msgfi %r0, 0 + msgfi %r0, 1 + msgfi %r0, (1 << 31) - 1 + msgfi %r15, 0 diff --git a/test/MC/SystemZ/insn-msgfi-02.s b/test/MC/SystemZ/insn-msgfi-02.s new file mode 100644 index 0000000000..82e1f8f9b4 --- /dev/null +++ b/test/MC/SystemZ/insn-msgfi-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: msgfi %r0, (-1 << 31) - 1 +#CHECK: error: invalid operand +#CHECK: msgfi %r0, (1 << 31) + + msgfi %r0, (-1 << 31) - 1 + msgfi %r0, (1 << 31) diff --git a/test/MC/SystemZ/insn-msgfr-01.s b/test/MC/SystemZ/insn-msgfr-01.s new file mode 100644 index 0000000000..e25f6302ac --- /dev/null +++ b/test/MC/SystemZ/insn-msgfr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: msgfr %r0, %r0 # encoding: [0xb9,0x1c,0x00,0x00] +#CHECK: msgfr %r0, %r15 # encoding: [0xb9,0x1c,0x00,0x0f] +#CHECK: msgfr %r15, %r0 # encoding: [0xb9,0x1c,0x00,0xf0] +#CHECK: msgfr %r7, %r8 # encoding: [0xb9,0x1c,0x00,0x78] + + msgfr %r0,%r0 + msgfr %r0,%r15 + msgfr %r15,%r0 + msgfr %r7,%r8 diff --git a/test/MC/SystemZ/insn-msgr-01.s b/test/MC/SystemZ/insn-msgr-01.s new file mode 100644 index 0000000000..0b9cd360c8 --- /dev/null +++ b/test/MC/SystemZ/insn-msgr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: msgr %r0, %r0 # encoding: [0xb9,0x0c,0x00,0x00] +#CHECK: msgr %r0, %r15 # encoding: [0xb9,0x0c,0x00,0x0f] +#CHECK: msgr %r15, %r0 # encoding: [0xb9,0x0c,0x00,0xf0] +#CHECK: msgr %r7, %r8 # encoding: [0xb9,0x0c,0x00,0x78] + + msgr %r0,%r0 + msgr %r0,%r15 + msgr %r15,%r0 + msgr %r7,%r8 diff --git a/test/MC/SystemZ/insn-msr-01.s b/test/MC/SystemZ/insn-msr-01.s new file mode 100644 index 0000000000..6f7d917a16 --- /dev/null +++ b/test/MC/SystemZ/insn-msr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: msr %r0, %r0 # encoding: [0xb2,0x52,0x00,0x00] +#CHECK: msr %r0, %r15 # encoding: [0xb2,0x52,0x00,0x0f] +#CHECK: msr %r15, %r0 # encoding: [0xb2,0x52,0x00,0xf0] +#CHECK: msr %r7, %r8 # encoding: [0xb2,0x52,0x00,0x78] + + msr %r0,%r0 + msr %r0,%r15 + msr %r15,%r0 + msr %r7,%r8 diff --git a/test/MC/SystemZ/insn-msy-01.s b/test/MC/SystemZ/insn-msy-01.s new file mode 100644 index 0000000000..aed9318a8a --- /dev/null +++ b/test/MC/SystemZ/insn-msy-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: msy %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x51] +#CHECK: msy %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x51] +#CHECK: msy %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x51] +#CHECK: msy %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x51] +#CHECK: msy %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x51] +#CHECK: msy %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x51] +#CHECK: msy %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x51] +#CHECK: msy %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x51] +#CHECK: msy %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x51] +#CHECK: msy %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x51] + + msy %r0, -524288 + msy %r0, -1 + msy %r0, 0 + msy %r0, 1 + msy %r0, 524287 + msy %r0, 0(%r1) + msy %r0, 0(%r15) + msy %r0, 524287(%r1,%r15) + msy %r0, 524287(%r15,%r1) + msy %r15, 0 diff --git a/test/MC/SystemZ/insn-msy-02.s b/test/MC/SystemZ/insn-msy-02.s new file mode 100644 index 0000000000..6f10069ae7 --- /dev/null +++ b/test/MC/SystemZ/insn-msy-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: msy %r0, -524289 +#CHECK: error: invalid operand +#CHECK: msy %r0, 524288 + + msy %r0, -524289 + msy %r0, 524288 diff --git a/test/MC/SystemZ/insn-mvghi-01.s b/test/MC/SystemZ/insn-mvghi-01.s new file mode 100644 index 0000000000..191aa49cd8 --- /dev/null +++ b/test/MC/SystemZ/insn-mvghi-01.s @@ -0,0 +1,25 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: mvghi 0, 0 # encoding: [0xe5,0x48,0x00,0x00,0x00,0x00] +#CHECK: mvghi 4095, 0 # encoding: [0xe5,0x48,0x0f,0xff,0x00,0x00] +#CHECK: mvghi 0, -32768 # encoding: [0xe5,0x48,0x00,0x00,0x80,0x00] +#CHECK: mvghi 0, -1 # encoding: [0xe5,0x48,0x00,0x00,0xff,0xff] +#CHECK: mvghi 0, 0 # encoding: [0xe5,0x48,0x00,0x00,0x00,0x00] +#CHECK: mvghi 0, 1 # encoding: [0xe5,0x48,0x00,0x00,0x00,0x01] +#CHECK: mvghi 0, 32767 # encoding: [0xe5,0x48,0x00,0x00,0x7f,0xff] +#CHECK: mvghi 0(%r1), 42 # encoding: [0xe5,0x48,0x10,0x00,0x00,0x2a] +#CHECK: mvghi 0(%r15), 42 # encoding: [0xe5,0x48,0xf0,0x00,0x00,0x2a] +#CHECK: mvghi 4095(%r1), 42 # encoding: [0xe5,0x48,0x1f,0xff,0x00,0x2a] +#CHECK: mvghi 4095(%r15), 42 # encoding: [0xe5,0x48,0xff,0xff,0x00,0x2a] + + mvghi 0, 0 + mvghi 4095, 0 + mvghi 0, -32768 + mvghi 0, -1 + mvghi 0, 0 + mvghi 0, 1 + mvghi 0, 32767 + mvghi 0(%r1), 42 + mvghi 0(%r15), 42 + mvghi 4095(%r1), 42 + mvghi 4095(%r15), 42 diff --git a/test/MC/SystemZ/insn-mvghi-02.s b/test/MC/SystemZ/insn-mvghi-02.s new file mode 100644 index 0000000000..38b38a517a --- /dev/null +++ b/test/MC/SystemZ/insn-mvghi-02.s @@ -0,0 +1,19 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: mvghi -1, 0 +#CHECK: error: invalid operand +#CHECK: mvghi 4096, 0 +#CHECK: error: invalid use of indexed addressing +#CHECK: mvghi 0(%r1,%r2), 0 +#CHECK: error: invalid operand +#CHECK: mvghi 0, -32769 +#CHECK: error: invalid operand +#CHECK: mvghi 0, 32768 + + mvghi -1, 0 + mvghi 4096, 0 + mvghi 0(%r1,%r2), 0 + mvghi 0, -32769 + mvghi 0, 32768 diff --git a/test/MC/SystemZ/insn-mvhhi-01.s b/test/MC/SystemZ/insn-mvhhi-01.s new file mode 100644 index 0000000000..63574a487f --- /dev/null +++ b/test/MC/SystemZ/insn-mvhhi-01.s @@ -0,0 +1,25 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: mvhhi 0, 0 # encoding: [0xe5,0x44,0x00,0x00,0x00,0x00] +#CHECK: mvhhi 4095, 0 # encoding: [0xe5,0x44,0x0f,0xff,0x00,0x00] +#CHECK: mvhhi 0, -32768 # encoding: [0xe5,0x44,0x00,0x00,0x80,0x00] +#CHECK: mvhhi 0, -1 # encoding: [0xe5,0x44,0x00,0x00,0xff,0xff] +#CHECK: mvhhi 0, 0 # encoding: [0xe5,0x44,0x00,0x00,0x00,0x00] +#CHECK: mvhhi 0, 1 # encoding: [0xe5,0x44,0x00,0x00,0x00,0x01] +#CHECK: mvhhi 0, 32767 # encoding: [0xe5,0x44,0x00,0x00,0x7f,0xff] +#CHECK: mvhhi 0(%r1), 42 # encoding: [0xe5,0x44,0x10,0x00,0x00,0x2a] +#CHECK: mvhhi 0(%r15), 42 # encoding: [0xe5,0x44,0xf0,0x00,0x00,0x2a] +#CHECK: mvhhi 4095(%r1), 42 # encoding: [0xe5,0x44,0x1f,0xff,0x00,0x2a] +#CHECK: mvhhi 4095(%r15), 42 # encoding: [0xe5,0x44,0xff,0xff,0x00,0x2a] + + mvhhi 0, 0 + mvhhi 4095, 0 + mvhhi 0, -32768 + mvhhi 0, -1 + mvhhi 0, 0 + mvhhi 0, 1 + mvhhi 0, 32767 + mvhhi 0(%r1), 42 + mvhhi 0(%r15), 42 + mvhhi 4095(%r1), 42 + mvhhi 4095(%r15), 42 diff --git a/test/MC/SystemZ/insn-mvhhi-02.s b/test/MC/SystemZ/insn-mvhhi-02.s new file mode 100644 index 0000000000..58abb025eb --- /dev/null +++ b/test/MC/SystemZ/insn-mvhhi-02.s @@ -0,0 +1,19 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: mvhhi -1, 0 +#CHECK: error: invalid operand +#CHECK: mvhhi 4096, 0 +#CHECK: error: invalid use of indexed addressing +#CHECK: mvhhi 0(%r1,%r2), 0 +#CHECK: error: invalid operand +#CHECK: mvhhi 0, -32769 +#CHECK: error: invalid operand +#CHECK: mvhhi 0, 32768 + + mvhhi -1, 0 + mvhhi 4096, 0 + mvhhi 0(%r1,%r2), 0 + mvhhi 0, -32769 + mvhhi 0, 32768 diff --git a/test/MC/SystemZ/insn-mvhi-01.s b/test/MC/SystemZ/insn-mvhi-01.s new file mode 100644 index 0000000000..5bf9fd3121 --- /dev/null +++ b/test/MC/SystemZ/insn-mvhi-01.s @@ -0,0 +1,25 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: mvhi 0, 0 # encoding: [0xe5,0x4c,0x00,0x00,0x00,0x00] +#CHECK: mvhi 4095, 0 # encoding: [0xe5,0x4c,0x0f,0xff,0x00,0x00] +#CHECK: mvhi 0, -32768 # encoding: [0xe5,0x4c,0x00,0x00,0x80,0x00] +#CHECK: mvhi 0, -1 # encoding: [0xe5,0x4c,0x00,0x00,0xff,0xff] +#CHECK: mvhi 0, 0 # encoding: [0xe5,0x4c,0x00,0x00,0x00,0x00] +#CHECK: mvhi 0, 1 # encoding: [0xe5,0x4c,0x00,0x00,0x00,0x01] +#CHECK: mvhi 0, 32767 # encoding: [0xe5,0x4c,0x00,0x00,0x7f,0xff] +#CHECK: mvhi 0(%r1), 42 # encoding: [0xe5,0x4c,0x10,0x00,0x00,0x2a] +#CHECK: mvhi 0(%r15), 42 # encoding: [0xe5,0x4c,0xf0,0x00,0x00,0x2a] +#CHECK: mvhi 4095(%r1), 42 # encoding: [0xe5,0x4c,0x1f,0xff,0x00,0x2a] +#CHECK: mvhi 4095(%r15), 42 # encoding: [0xe5,0x4c,0xff,0xff,0x00,0x2a] + + mvhi 0, 0 + mvhi 4095, 0 + mvhi 0, -32768 + mvhi 0, -1 + mvhi 0, 0 + mvhi 0, 1 + mvhi 0, 32767 + mvhi 0(%r1), 42 + mvhi 0(%r15), 42 + mvhi 4095(%r1), 42 + mvhi 4095(%r15), 42 diff --git a/test/MC/SystemZ/insn-mvhi-02.s b/test/MC/SystemZ/insn-mvhi-02.s new file mode 100644 index 0000000000..517301c513 --- /dev/null +++ b/test/MC/SystemZ/insn-mvhi-02.s @@ -0,0 +1,19 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: mvhi -1, 0 +#CHECK: error: invalid operand +#CHECK: mvhi 4096, 0 +#CHECK: error: invalid use of indexed addressing +#CHECK: mvhi 0(%r1,%r2), 0 +#CHECK: error: invalid operand +#CHECK: mvhi 0, -32769 +#CHECK: error: invalid operand +#CHECK: mvhi 0, 32768 + + mvhi -1, 0 + mvhi 4096, 0 + mvhi 0(%r1,%r2), 0 + mvhi 0, -32769 + mvhi 0, 32768 diff --git a/test/MC/SystemZ/insn-mvi-01.s b/test/MC/SystemZ/insn-mvi-01.s new file mode 100644 index 0000000000..83e30900ac --- /dev/null +++ b/test/MC/SystemZ/insn-mvi-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: mvi 0, 0 # encoding: [0x92,0x00,0x00,0x00] +#CHECK: mvi 4095, 0 # encoding: [0x92,0x00,0x0f,0xff] +#CHECK: mvi 0, 255 # encoding: [0x92,0xff,0x00,0x00] +#CHECK: mvi 0(%r1), 42 # encoding: [0x92,0x2a,0x10,0x00] +#CHECK: mvi 0(%r15), 42 # encoding: [0x92,0x2a,0xf0,0x00] +#CHECK: mvi 4095(%r1), 42 # encoding: [0x92,0x2a,0x1f,0xff] +#CHECK: mvi 4095(%r15), 42 # encoding: [0x92,0x2a,0xff,0xff] + + mvi 0, 0 + mvi 4095, 0 + mvi 0, 255 + mvi 0(%r1), 42 + mvi 0(%r15), 42 + mvi 4095(%r1), 42 + mvi 4095(%r15), 42 diff --git a/test/MC/SystemZ/insn-mvi-02.s b/test/MC/SystemZ/insn-mvi-02.s new file mode 100644 index 0000000000..ddd5909d45 --- /dev/null +++ b/test/MC/SystemZ/insn-mvi-02.s @@ -0,0 +1,19 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: mvi -1, 0 +#CHECK: error: invalid operand +#CHECK: mvi 4096, 0 +#CHECK: error: invalid use of indexed addressing +#CHECK: mvi 0(%r1,%r2), 0 +#CHECK: error: invalid operand +#CHECK: mvi 0, -1 +#CHECK: error: invalid operand +#CHECK: mvi 0, 256 + + mvi -1, 0 + mvi 4096, 0 + mvi 0(%r1,%r2), 0 + mvi 0, -1 + mvi 0, 256 diff --git a/test/MC/SystemZ/insn-mviy-01.s b/test/MC/SystemZ/insn-mviy-01.s new file mode 100644 index 0000000000..8bd6979b81 --- /dev/null +++ b/test/MC/SystemZ/insn-mviy-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: mviy -524288, 0 # encoding: [0xeb,0x00,0x00,0x00,0x80,0x52] +#CHECK: mviy -1, 0 # encoding: [0xeb,0x00,0x0f,0xff,0xff,0x52] +#CHECK: mviy 0, 0 # encoding: [0xeb,0x00,0x00,0x00,0x00,0x52] +#CHECK: mviy 1, 0 # encoding: [0xeb,0x00,0x00,0x01,0x00,0x52] +#CHECK: mviy 524287, 0 # encoding: [0xeb,0x00,0x0f,0xff,0x7f,0x52] +#CHECK: mviy 0, 255 # encoding: [0xeb,0xff,0x00,0x00,0x00,0x52] +#CHECK: mviy 0(%r1), 42 # encoding: [0xeb,0x2a,0x10,0x00,0x00,0x52] +#CHECK: mviy 0(%r15), 42 # encoding: [0xeb,0x2a,0xf0,0x00,0x00,0x52] +#CHECK: mviy 524287(%r1), 42 # encoding: [0xeb,0x2a,0x1f,0xff,0x7f,0x52] +#CHECK: mviy 524287(%r15), 42 # encoding: [0xeb,0x2a,0xff,0xff,0x7f,0x52] + + mviy -524288, 0 + mviy -1, 0 + mviy 0, 0 + mviy 1, 0 + mviy 524287, 0 + mviy 0, 255 + mviy 0(%r1), 42 + mviy 0(%r15), 42 + mviy 524287(%r1), 42 + mviy 524287(%r15), 42 diff --git a/test/MC/SystemZ/insn-mviy-02.s b/test/MC/SystemZ/insn-mviy-02.s new file mode 100644 index 0000000000..ab78dab5c9 --- /dev/null +++ b/test/MC/SystemZ/insn-mviy-02.s @@ -0,0 +1,19 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: mviy -524289, 0 +#CHECK: error: invalid operand +#CHECK: mviy 524288, 0 +#CHECK: error: invalid use of indexed addressing +#CHECK: mviy 0(%r1,%r2), 0 +#CHECK: error: invalid operand +#CHECK: mviy 0, -1 +#CHECK: error: invalid operand +#CHECK: mviy 0, 256 + + mviy -524289, 0 + mviy 524288, 0 + mviy 0(%r1,%r2), 0 + mviy 0, -1 + mviy 0, 256 diff --git a/test/MC/SystemZ/insn-mxbr-01.s b/test/MC/SystemZ/insn-mxbr-01.s new file mode 100644 index 0000000000..60c8ebadfb --- /dev/null +++ b/test/MC/SystemZ/insn-mxbr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: mxbr %f0, %f0 # encoding: [0xb3,0x4c,0x00,0x00] +#CHECK: mxbr %f0, %f13 # encoding: [0xb3,0x4c,0x00,0x0d] +#CHECK: mxbr %f8, %f5 # encoding: [0xb3,0x4c,0x00,0x85] +#CHECK: mxbr %f13, %f13 # encoding: [0xb3,0x4c,0x00,0xdd] + + mxbr %f0, %f0 + mxbr %f0, %f13 + mxbr %f8, %f5 + mxbr %f13, %f13 diff --git a/test/MC/SystemZ/insn-mxbr-02.s b/test/MC/SystemZ/insn-mxbr-02.s new file mode 100644 index 0000000000..9282023413 --- /dev/null +++ b/test/MC/SystemZ/insn-mxbr-02.s @@ -0,0 +1,17 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: mxbr %f0, %f2 +#CHECK: error: invalid register +#CHECK: mxbr %f0, %f14 +#CHECK: error: invalid register +#CHECK: mxbr %f2, %f0 +#CHECK: error: invalid register +#CHECK: mxbr %f14, %f0 + + mxbr %f0, %f2 + mxbr %f0, %f14 + mxbr %f2, %f0 + mxbr %f14, %f0 + diff --git a/test/MC/SystemZ/insn-mxdb-01.s b/test/MC/SystemZ/insn-mxdb-01.s new file mode 100644 index 0000000000..46a723e842 --- /dev/null +++ b/test/MC/SystemZ/insn-mxdb-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: mxdb %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x07] +#CHECK: mxdb %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x07] +#CHECK: mxdb %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x07] +#CHECK: mxdb %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x07] +#CHECK: mxdb %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x07] +#CHECK: mxdb %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x07] +#CHECK: mxdb %f13, 0 # encoding: [0xed,0xd0,0x00,0x00,0x00,0x07] + + mxdb %f0, 0 + mxdb %f0, 4095 + mxdb %f0, 0(%r1) + mxdb %f0, 0(%r15) + mxdb %f0, 4095(%r1,%r15) + mxdb %f0, 4095(%r15,%r1) + mxdb %f13, 0 diff --git a/test/MC/SystemZ/insn-mxdb-02.s b/test/MC/SystemZ/insn-mxdb-02.s new file mode 100644 index 0000000000..44c821cad0 --- /dev/null +++ b/test/MC/SystemZ/insn-mxdb-02.s @@ -0,0 +1,16 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: mxdb %f2, 0 +#CHECK: error: invalid register +#CHECK: mxdb %f15, 0 +#CHECK: error: invalid operand +#CHECK: mxdb %f0, -1 +#CHECK: error: invalid operand +#CHECK: mxdb %f0, 4096 + + mxdb %f2, 0 + mxdb %f15, 0 + mxdb %f0, -1 + mxdb %f0, 4096 diff --git a/test/MC/SystemZ/insn-mxdbr-01.s b/test/MC/SystemZ/insn-mxdbr-01.s new file mode 100644 index 0000000000..dfb898fbda --- /dev/null +++ b/test/MC/SystemZ/insn-mxdbr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: mxdbr %f0, %f0 # encoding: [0xb3,0x07,0x00,0x00] +#CHECK: mxdbr %f0, %f15 # encoding: [0xb3,0x07,0x00,0x0f] +#CHECK: mxdbr %f8, %f8 # encoding: [0xb3,0x07,0x00,0x88] +#CHECK: mxdbr %f13, %f0 # encoding: [0xb3,0x07,0x00,0xd0] + + mxdbr %f0, %f0 + mxdbr %f0, %f15 + mxdbr %f8, %f8 + mxdbr %f13, %f0 diff --git a/test/MC/SystemZ/insn-mxdbr-02.s b/test/MC/SystemZ/insn-mxdbr-02.s new file mode 100644 index 0000000000..90260481f2 --- /dev/null +++ b/test/MC/SystemZ/insn-mxdbr-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: mxdbr %f2, %f0 +#CHECK: error: invalid register +#CHECK: mxdbr %f15, %f0 + + mxdbr %f2, %f0 + mxdbr %f15, %f0 diff --git a/test/MC/SystemZ/insn-n-01.s b/test/MC/SystemZ/insn-n-01.s new file mode 100644 index 0000000000..75fa141e2c --- /dev/null +++ b/test/MC/SystemZ/insn-n-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: n %r0, 0 # encoding: [0x54,0x00,0x00,0x00] +#CHECK: n %r0, 4095 # encoding: [0x54,0x00,0x0f,0xff] +#CHECK: n %r0, 0(%r1) # encoding: [0x54,0x00,0x10,0x00] +#CHECK: n %r0, 0(%r15) # encoding: [0x54,0x00,0xf0,0x00] +#CHECK: n %r0, 4095(%r1,%r15) # encoding: [0x54,0x01,0xff,0xff] +#CHECK: n %r0, 4095(%r15,%r1) # encoding: [0x54,0x0f,0x1f,0xff] +#CHECK: n %r15, 0 # encoding: [0x54,0xf0,0x00,0x00] + + n %r0, 0 + n %r0, 4095 + n %r0, 0(%r1) + n %r0, 0(%r15) + n %r0, 4095(%r1,%r15) + n %r0, 4095(%r15,%r1) + n %r15, 0 diff --git a/test/MC/SystemZ/insn-n-02.s b/test/MC/SystemZ/insn-n-02.s new file mode 100644 index 0000000000..7c14b1fe1c --- /dev/null +++ b/test/MC/SystemZ/insn-n-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: n %r0, -1 +#CHECK: error: invalid operand +#CHECK: n %r0, 4096 + + n %r0, -1 + n %r0, 4096 diff --git a/test/MC/SystemZ/insn-ng-01.s b/test/MC/SystemZ/insn-ng-01.s new file mode 100644 index 0000000000..bf71a2183f --- /dev/null +++ b/test/MC/SystemZ/insn-ng-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: ng %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x80] +#CHECK: ng %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x80] +#CHECK: ng %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x80] +#CHECK: ng %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x80] +#CHECK: ng %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x80] +#CHECK: ng %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x80] +#CHECK: ng %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x80] +#CHECK: ng %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x80] +#CHECK: ng %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x80] +#CHECK: ng %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x80] + + ng %r0, -524288 + ng %r0, -1 + ng %r0, 0 + ng %r0, 1 + ng %r0, 524287 + ng %r0, 0(%r1) + ng %r0, 0(%r15) + ng %r0, 524287(%r1,%r15) + ng %r0, 524287(%r15,%r1) + ng %r15, 0 diff --git a/test/MC/SystemZ/insn-ng-02.s b/test/MC/SystemZ/insn-ng-02.s new file mode 100644 index 0000000000..a6f3260526 --- /dev/null +++ b/test/MC/SystemZ/insn-ng-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: ng %r0, -524289 +#CHECK: error: invalid operand +#CHECK: ng %r0, 524288 + + ng %r0, -524289 + ng %r0, 524288 diff --git a/test/MC/SystemZ/insn-ngr-01.s b/test/MC/SystemZ/insn-ngr-01.s new file mode 100644 index 0000000000..714b9fa712 --- /dev/null +++ b/test/MC/SystemZ/insn-ngr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: ngr %r0, %r0 # encoding: [0xb9,0x80,0x00,0x00] +#CHECK: ngr %r0, %r15 # encoding: [0xb9,0x80,0x00,0x0f] +#CHECK: ngr %r15, %r0 # encoding: [0xb9,0x80,0x00,0xf0] +#CHECK: ngr %r7, %r8 # encoding: [0xb9,0x80,0x00,0x78] + + ngr %r0,%r0 + ngr %r0,%r15 + ngr %r15,%r0 + ngr %r7,%r8 diff --git a/test/MC/SystemZ/insn-ni-01.s b/test/MC/SystemZ/insn-ni-01.s new file mode 100644 index 0000000000..d075674fea --- /dev/null +++ b/test/MC/SystemZ/insn-ni-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: ni 0, 0 # encoding: [0x94,0x00,0x00,0x00] +#CHECK: ni 4095, 0 # encoding: [0x94,0x00,0x0f,0xff] +#CHECK: ni 0, 255 # encoding: [0x94,0xff,0x00,0x00] +#CHECK: ni 0(%r1), 42 # encoding: [0x94,0x2a,0x10,0x00] +#CHECK: ni 0(%r15), 42 # encoding: [0x94,0x2a,0xf0,0x00] +#CHECK: ni 4095(%r1), 42 # encoding: [0x94,0x2a,0x1f,0xff] +#CHECK: ni 4095(%r15), 42 # encoding: [0x94,0x2a,0xff,0xff] + + ni 0, 0 + ni 4095, 0 + ni 0, 255 + ni 0(%r1), 42 + ni 0(%r15), 42 + ni 4095(%r1), 42 + ni 4095(%r15), 42 diff --git a/test/MC/SystemZ/insn-ni-02.s b/test/MC/SystemZ/insn-ni-02.s new file mode 100644 index 0000000000..1b9a6a748d --- /dev/null +++ b/test/MC/SystemZ/insn-ni-02.s @@ -0,0 +1,19 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: ni -1, 0 +#CHECK: error: invalid operand +#CHECK: ni 4096, 0 +#CHECK: error: invalid use of indexed addressing +#CHECK: ni 0(%r1,%r2), 0 +#CHECK: error: invalid operand +#CHECK: ni 0, -1 +#CHECK: error: invalid operand +#CHECK: ni 0, 256 + + ni -1, 0 + ni 4096, 0 + ni 0(%r1,%r2), 0 + ni 0, -1 + ni 0, 256 diff --git a/test/MC/SystemZ/insn-nihf-01.s b/test/MC/SystemZ/insn-nihf-01.s new file mode 100644 index 0000000000..dceb8d1297 --- /dev/null +++ b/test/MC/SystemZ/insn-nihf-01.s @@ -0,0 +1,9 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: nihf %r0, 0 # encoding: [0xc0,0x0a,0x00,0x00,0x00,0x00] +#CHECK: nihf %r0, 4294967295 # encoding: [0xc0,0x0a,0xff,0xff,0xff,0xff] +#CHECK: nihf %r15, 0 # encoding: [0xc0,0xfa,0x00,0x00,0x00,0x00] + + nihf %r0, 0 + nihf %r0, 0xffffffff + nihf %r15, 0 diff --git a/test/MC/SystemZ/insn-nihf-02.s b/test/MC/SystemZ/insn-nihf-02.s new file mode 100644 index 0000000000..5f7f10a6b3 --- /dev/null +++ b/test/MC/SystemZ/insn-nihf-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: nihf %r0, -1 +#CHECK: error: invalid operand +#CHECK: nihf %r0, 1 << 32 + + nihf %r0, -1 + nihf %r0, 1 << 32 diff --git a/test/MC/SystemZ/insn-nihh-01.s b/test/MC/SystemZ/insn-nihh-01.s new file mode 100644 index 0000000000..a87540d04c --- /dev/null +++ b/test/MC/SystemZ/insn-nihh-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: nihh %r0, 0 # encoding: [0xa5,0x04,0x00,0x00] +#CHECK: nihh %r0, 32768 # encoding: [0xa5,0x04,0x80,0x00] +#CHECK: nihh %r0, 65535 # encoding: [0xa5,0x04,0xff,0xff] +#CHECK: nihh %r15, 0 # encoding: [0xa5,0xf4,0x00,0x00] + + nihh %r0, 0 + nihh %r0, 0x8000 + nihh %r0, 0xffff + nihh %r15, 0 diff --git a/test/MC/SystemZ/insn-nihh-02.s b/test/MC/SystemZ/insn-nihh-02.s new file mode 100644 index 0000000000..3df88e40a2 --- /dev/null +++ b/test/MC/SystemZ/insn-nihh-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: nihh %r0, -1 +#CHECK: error: invalid operand +#CHECK: nihh %r0, 0x10000 + + nihh %r0, -1 + nihh %r0, 0x10000 diff --git a/test/MC/SystemZ/insn-nihl-01.s b/test/MC/SystemZ/insn-nihl-01.s new file mode 100644 index 0000000000..6eab58c7e7 --- /dev/null +++ b/test/MC/SystemZ/insn-nihl-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: nihl %r0, 0 # encoding: [0xa5,0x05,0x00,0x00] +#CHECK: nihl %r0, 32768 # encoding: [0xa5,0x05,0x80,0x00] +#CHECK: nihl %r0, 65535 # encoding: [0xa5,0x05,0xff,0xff] +#CHECK: nihl %r15, 0 # encoding: [0xa5,0xf5,0x00,0x00] + + nihl %r0, 0 + nihl %r0, 0x8000 + nihl %r0, 0xffff + nihl %r15, 0 diff --git a/test/MC/SystemZ/insn-nihl-02.s b/test/MC/SystemZ/insn-nihl-02.s new file mode 100644 index 0000000000..6e2d52f5a9 --- /dev/null +++ b/test/MC/SystemZ/insn-nihl-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: nihl %r0, -1 +#CHECK: error: invalid operand +#CHECK: nihl %r0, 0x10000 + + nihl %r0, -1 + nihl %r0, 0x10000 diff --git a/test/MC/SystemZ/insn-nilf-01.s b/test/MC/SystemZ/insn-nilf-01.s new file mode 100644 index 0000000000..0b3a13e752 --- /dev/null +++ b/test/MC/SystemZ/insn-nilf-01.s @@ -0,0 +1,9 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: nilf %r0, 0 # encoding: [0xc0,0x0b,0x00,0x00,0x00,0x00] +#CHECK: nilf %r0, 4294967295 # encoding: [0xc0,0x0b,0xff,0xff,0xff,0xff] +#CHECK: nilf %r15, 0 # encoding: [0xc0,0xfb,0x00,0x00,0x00,0x00] + + nilf %r0, 0 + nilf %r0, 0xffffffff + nilf %r15, 0 diff --git a/test/MC/SystemZ/insn-nilf-02.s b/test/MC/SystemZ/insn-nilf-02.s new file mode 100644 index 0000000000..87b65e46fe --- /dev/null +++ b/test/MC/SystemZ/insn-nilf-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: nilf %r0, -1 +#CHECK: error: invalid operand +#CHECK: nilf %r0, 1 << 32 + + nilf %r0, -1 + nilf %r0, 1 << 32 diff --git a/test/MC/SystemZ/insn-nilh-01.s b/test/MC/SystemZ/insn-nilh-01.s new file mode 100644 index 0000000000..4bc9353dd2 --- /dev/null +++ b/test/MC/SystemZ/insn-nilh-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: nilh %r0, 0 # encoding: [0xa5,0x06,0x00,0x00] +#CHECK: nilh %r0, 32768 # encoding: [0xa5,0x06,0x80,0x00] +#CHECK: nilh %r0, 65535 # encoding: [0xa5,0x06,0xff,0xff] +#CHECK: nilh %r15, 0 # encoding: [0xa5,0xf6,0x00,0x00] + + nilh %r0, 0 + nilh %r0, 0x8000 + nilh %r0, 0xffff + nilh %r15, 0 diff --git a/test/MC/SystemZ/insn-nilh-02.s b/test/MC/SystemZ/insn-nilh-02.s new file mode 100644 index 0000000000..ae5a852a6c --- /dev/null +++ b/test/MC/SystemZ/insn-nilh-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: nilh %r0, -1 +#CHECK: error: invalid operand +#CHECK: nilh %r0, 0x10000 + + nilh %r0, -1 + nilh %r0, 0x10000 diff --git a/test/MC/SystemZ/insn-nill-01.s b/test/MC/SystemZ/insn-nill-01.s new file mode 100644 index 0000000000..5f4f87785b --- /dev/null +++ b/test/MC/SystemZ/insn-nill-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: nill %r0, 0 # encoding: [0xa5,0x07,0x00,0x00] +#CHECK: nill %r0, 32768 # encoding: [0xa5,0x07,0x80,0x00] +#CHECK: nill %r0, 65535 # encoding: [0xa5,0x07,0xff,0xff] +#CHECK: nill %r15, 0 # encoding: [0xa5,0xf7,0x00,0x00] + + nill %r0, 0 + nill %r0, 0x8000 + nill %r0, 0xffff + nill %r15, 0 diff --git a/test/MC/SystemZ/insn-nill-02.s b/test/MC/SystemZ/insn-nill-02.s new file mode 100644 index 0000000000..27fbc4a506 --- /dev/null +++ b/test/MC/SystemZ/insn-nill-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: nill %r0, -1 +#CHECK: error: invalid operand +#CHECK: nill %r0, 0x10000 + + nill %r0, -1 + nill %r0, 0x10000 diff --git a/test/MC/SystemZ/insn-niy-01.s b/test/MC/SystemZ/insn-niy-01.s new file mode 100644 index 0000000000..4c007e9172 --- /dev/null +++ b/test/MC/SystemZ/insn-niy-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: niy -524288, 0 # encoding: [0xeb,0x00,0x00,0x00,0x80,0x54] +#CHECK: niy -1, 0 # encoding: [0xeb,0x00,0x0f,0xff,0xff,0x54] +#CHECK: niy 0, 0 # encoding: [0xeb,0x00,0x00,0x00,0x00,0x54] +#CHECK: niy 1, 0 # encoding: [0xeb,0x00,0x00,0x01,0x00,0x54] +#CHECK: niy 524287, 0 # encoding: [0xeb,0x00,0x0f,0xff,0x7f,0x54] +#CHECK: niy 0, 255 # encoding: [0xeb,0xff,0x00,0x00,0x00,0x54] +#CHECK: niy 0(%r1), 42 # encoding: [0xeb,0x2a,0x10,0x00,0x00,0x54] +#CHECK: niy 0(%r15), 42 # encoding: [0xeb,0x2a,0xf0,0x00,0x00,0x54] +#CHECK: niy 524287(%r1), 42 # encoding: [0xeb,0x2a,0x1f,0xff,0x7f,0x54] +#CHECK: niy 524287(%r15), 42 # encoding: [0xeb,0x2a,0xff,0xff,0x7f,0x54] + + niy -524288, 0 + niy -1, 0 + niy 0, 0 + niy 1, 0 + niy 524287, 0 + niy 0, 255 + niy 0(%r1), 42 + niy 0(%r15), 42 + niy 524287(%r1), 42 + niy 524287(%r15), 42 diff --git a/test/MC/SystemZ/insn-niy-02.s b/test/MC/SystemZ/insn-niy-02.s new file mode 100644 index 0000000000..ca398e6fca --- /dev/null +++ b/test/MC/SystemZ/insn-niy-02.s @@ -0,0 +1,19 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: niy -524289, 0 +#CHECK: error: invalid operand +#CHECK: niy 524288, 0 +#CHECK: error: invalid use of indexed addressing +#CHECK: niy 0(%r1,%r2), 0 +#CHECK: error: invalid operand +#CHECK: niy 0, -1 +#CHECK: error: invalid operand +#CHECK: niy 0, 256 + + niy -524289, 0 + niy 524288, 0 + niy 0(%r1,%r2), 0 + niy 0, -1 + niy 0, 256 diff --git a/test/MC/SystemZ/insn-nr-01.s b/test/MC/SystemZ/insn-nr-01.s new file mode 100644 index 0000000000..c10216d68f --- /dev/null +++ b/test/MC/SystemZ/insn-nr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: nr %r0, %r0 # encoding: [0x14,0x00] +#CHECK: nr %r0, %r15 # encoding: [0x14,0x0f] +#CHECK: nr %r15, %r0 # encoding: [0x14,0xf0] +#CHECK: nr %r7, %r8 # encoding: [0x14,0x78] + + nr %r0,%r0 + nr %r0,%r15 + nr %r15,%r0 + nr %r7,%r8 diff --git a/test/MC/SystemZ/insn-ny-01.s b/test/MC/SystemZ/insn-ny-01.s new file mode 100644 index 0000000000..a12bb67e2b --- /dev/null +++ b/test/MC/SystemZ/insn-ny-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: ny %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x54] +#CHECK: ny %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x54] +#CHECK: ny %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x54] +#CHECK: ny %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x54] +#CHECK: ny %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x54] +#CHECK: ny %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x54] +#CHECK: ny %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x54] +#CHECK: ny %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x54] +#CHECK: ny %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x54] +#CHECK: ny %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x54] + + ny %r0, -524288 + ny %r0, -1 + ny %r0, 0 + ny %r0, 1 + ny %r0, 524287 + ny %r0, 0(%r1) + ny %r0, 0(%r15) + ny %r0, 524287(%r1,%r15) + ny %r0, 524287(%r15,%r1) + ny %r15, 0 diff --git a/test/MC/SystemZ/insn-ny-02.s b/test/MC/SystemZ/insn-ny-02.s new file mode 100644 index 0000000000..5f53ebd3e1 --- /dev/null +++ b/test/MC/SystemZ/insn-ny-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: ny %r0, -524289 +#CHECK: error: invalid operand +#CHECK: ny %r0, 524288 + + ny %r0, -524289 + ny %r0, 524288 diff --git a/test/MC/SystemZ/insn-o-01.s b/test/MC/SystemZ/insn-o-01.s new file mode 100644 index 0000000000..0c74e9ccc6 --- /dev/null +++ b/test/MC/SystemZ/insn-o-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: o %r0, 0 # encoding: [0x56,0x00,0x00,0x00] +#CHECK: o %r0, 4095 # encoding: [0x56,0x00,0x0f,0xff] +#CHECK: o %r0, 0(%r1) # encoding: [0x56,0x00,0x10,0x00] +#CHECK: o %r0, 0(%r15) # encoding: [0x56,0x00,0xf0,0x00] +#CHECK: o %r0, 4095(%r1,%r15) # encoding: [0x56,0x01,0xff,0xff] +#CHECK: o %r0, 4095(%r15,%r1) # encoding: [0x56,0x0f,0x1f,0xff] +#CHECK: o %r15, 0 # encoding: [0x56,0xf0,0x00,0x00] + + o %r0, 0 + o %r0, 4095 + o %r0, 0(%r1) + o %r0, 0(%r15) + o %r0, 4095(%r1,%r15) + o %r0, 4095(%r15,%r1) + o %r15, 0 diff --git a/test/MC/SystemZ/insn-o-02.s b/test/MC/SystemZ/insn-o-02.s new file mode 100644 index 0000000000..34b741803b --- /dev/null +++ b/test/MC/SystemZ/insn-o-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: o %r0, -1 +#CHECK: error: invalid operand +#CHECK: o %r0, 4096 + + o %r0, -1 + o %r0, 4096 diff --git a/test/MC/SystemZ/insn-og-01.s b/test/MC/SystemZ/insn-og-01.s new file mode 100644 index 0000000000..3c9811b008 --- /dev/null +++ b/test/MC/SystemZ/insn-og-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: og %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x81] +#CHECK: og %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x81] +#CHECK: og %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x81] +#CHECK: og %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x81] +#CHECK: og %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x81] +#CHECK: og %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x81] +#CHECK: og %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x81] +#CHECK: og %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x81] +#CHECK: og %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x81] +#CHECK: og %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x81] + + og %r0, -524288 + og %r0, -1 + og %r0, 0 + og %r0, 1 + og %r0, 524287 + og %r0, 0(%r1) + og %r0, 0(%r15) + og %r0, 524287(%r1,%r15) + og %r0, 524287(%r15,%r1) + og %r15, 0 diff --git a/test/MC/SystemZ/insn-og-02.s b/test/MC/SystemZ/insn-og-02.s new file mode 100644 index 0000000000..7f4e45328b --- /dev/null +++ b/test/MC/SystemZ/insn-og-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: og %r0, -524289 +#CHECK: error: invalid operand +#CHECK: og %r0, 524288 + + og %r0, -524289 + og %r0, 524288 diff --git a/test/MC/SystemZ/insn-ogr-01.s b/test/MC/SystemZ/insn-ogr-01.s new file mode 100644 index 0000000000..25ba913ac5 --- /dev/null +++ b/test/MC/SystemZ/insn-ogr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: ogr %r0, %r0 # encoding: [0xb9,0x81,0x00,0x00] +#CHECK: ogr %r0, %r15 # encoding: [0xb9,0x81,0x00,0x0f] +#CHECK: ogr %r15, %r0 # encoding: [0xb9,0x81,0x00,0xf0] +#CHECK: ogr %r7, %r8 # encoding: [0xb9,0x81,0x00,0x78] + + ogr %r0,%r0 + ogr %r0,%r15 + ogr %r15,%r0 + ogr %r7,%r8 diff --git a/test/MC/SystemZ/insn-oi-01.s b/test/MC/SystemZ/insn-oi-01.s new file mode 100644 index 0000000000..5d52fd2500 --- /dev/null +++ b/test/MC/SystemZ/insn-oi-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: oi 0, 0 # encoding: [0x96,0x00,0x00,0x00] +#CHECK: oi 4095, 0 # encoding: [0x96,0x00,0x0f,0xff] +#CHECK: oi 0, 255 # encoding: [0x96,0xff,0x00,0x00] +#CHECK: oi 0(%r1), 42 # encoding: [0x96,0x2a,0x10,0x00] +#CHECK: oi 0(%r15), 42 # encoding: [0x96,0x2a,0xf0,0x00] +#CHECK: oi 4095(%r1), 42 # encoding: [0x96,0x2a,0x1f,0xff] +#CHECK: oi 4095(%r15), 42 # encoding: [0x96,0x2a,0xff,0xff] + + oi 0, 0 + oi 4095, 0 + oi 0, 255 + oi 0(%r1), 42 + oi 0(%r15), 42 + oi 4095(%r1), 42 + oi 4095(%r15), 42 diff --git a/test/MC/SystemZ/insn-oi-02.s b/test/MC/SystemZ/insn-oi-02.s new file mode 100644 index 0000000000..330a290aa3 --- /dev/null +++ b/test/MC/SystemZ/insn-oi-02.s @@ -0,0 +1,19 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: oi -1, 0 +#CHECK: error: invalid operand +#CHECK: oi 4096, 0 +#CHECK: error: invalid use of indexed addressing +#CHECK: oi 0(%r1,%r2), 0 +#CHECK: error: invalid operand +#CHECK: oi 0, -1 +#CHECK: error: invalid operand +#CHECK: oi 0, 256 + + oi -1, 0 + oi 4096, 0 + oi 0(%r1,%r2), 0 + oi 0, -1 + oi 0, 256 diff --git a/test/MC/SystemZ/insn-oihf-01.s b/test/MC/SystemZ/insn-oihf-01.s new file mode 100644 index 0000000000..627820d31d --- /dev/null +++ b/test/MC/SystemZ/insn-oihf-01.s @@ -0,0 +1,9 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: oihf %r0, 0 # encoding: [0xc0,0x0c,0x00,0x00,0x00,0x00] +#CHECK: oihf %r0, 4294967295 # encoding: [0xc0,0x0c,0xff,0xff,0xff,0xff] +#CHECK: oihf %r15, 0 # encoding: [0xc0,0xfc,0x00,0x00,0x00,0x00] + + oihf %r0, 0 + oihf %r0, 0xffffffff + oihf %r15, 0 diff --git a/test/MC/SystemZ/insn-oihf-02.s b/test/MC/SystemZ/insn-oihf-02.s new file mode 100644 index 0000000000..a944cb013c --- /dev/null +++ b/test/MC/SystemZ/insn-oihf-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: oihf %r0, -1 +#CHECK: error: invalid operand +#CHECK: oihf %r0, 1 << 32 + + oihf %r0, -1 + oihf %r0, 1 << 32 diff --git a/test/MC/SystemZ/insn-oihh-01.s b/test/MC/SystemZ/insn-oihh-01.s new file mode 100644 index 0000000000..f62f61f03f --- /dev/null +++ b/test/MC/SystemZ/insn-oihh-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: oihh %r0, 0 # encoding: [0xa5,0x08,0x00,0x00] +#CHECK: oihh %r0, 32768 # encoding: [0xa5,0x08,0x80,0x00] +#CHECK: oihh %r0, 65535 # encoding: [0xa5,0x08,0xff,0xff] +#CHECK: oihh %r15, 0 # encoding: [0xa5,0xf8,0x00,0x00] + + oihh %r0, 0 + oihh %r0, 0x8000 + oihh %r0, 0xffff + oihh %r15, 0 diff --git a/test/MC/SystemZ/insn-oihh-02.s b/test/MC/SystemZ/insn-oihh-02.s new file mode 100644 index 0000000000..6bf7e237e0 --- /dev/null +++ b/test/MC/SystemZ/insn-oihh-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: oihh %r0, -1 +#CHECK: error: invalid operand +#CHECK: oihh %r0, 0x10000 + + oihh %r0, -1 + oihh %r0, 0x10000 diff --git a/test/MC/SystemZ/insn-oihl-01.s b/test/MC/SystemZ/insn-oihl-01.s new file mode 100644 index 0000000000..437b15c39c --- /dev/null +++ b/test/MC/SystemZ/insn-oihl-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: oihl %r0, 0 # encoding: [0xa5,0x09,0x00,0x00] +#CHECK: oihl %r0, 32768 # encoding: [0xa5,0x09,0x80,0x00] +#CHECK: oihl %r0, 65535 # encoding: [0xa5,0x09,0xff,0xff] +#CHECK: oihl %r15, 0 # encoding: [0xa5,0xf9,0x00,0x00] + + oihl %r0, 0 + oihl %r0, 0x8000 + oihl %r0, 0xffff + oihl %r15, 0 diff --git a/test/MC/SystemZ/insn-oihl-02.s b/test/MC/SystemZ/insn-oihl-02.s new file mode 100644 index 0000000000..f4f7a59b77 --- /dev/null +++ b/test/MC/SystemZ/insn-oihl-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: oihl %r0, -1 +#CHECK: error: invalid operand +#CHECK: oihl %r0, 0x10000 + + oihl %r0, -1 + oihl %r0, 0x10000 diff --git a/test/MC/SystemZ/insn-oilf-01.s b/test/MC/SystemZ/insn-oilf-01.s new file mode 100644 index 0000000000..6f0c0717bd --- /dev/null +++ b/test/MC/SystemZ/insn-oilf-01.s @@ -0,0 +1,9 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: oilf %r0, 0 # encoding: [0xc0,0x0d,0x00,0x00,0x00,0x00] +#CHECK: oilf %r0, 4294967295 # encoding: [0xc0,0x0d,0xff,0xff,0xff,0xff] +#CHECK: oilf %r15, 0 # encoding: [0xc0,0xfd,0x00,0x00,0x00,0x00] + + oilf %r0, 0 + oilf %r0, 0xffffffff + oilf %r15, 0 diff --git a/test/MC/SystemZ/insn-oilf-02.s b/test/MC/SystemZ/insn-oilf-02.s new file mode 100644 index 0000000000..5501724d54 --- /dev/null +++ b/test/MC/SystemZ/insn-oilf-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: oilf %r0, -1 +#CHECK: error: invalid operand +#CHECK: oilf %r0, 1 << 32 + + oilf %r0, -1 + oilf %r0, 1 << 32 diff --git a/test/MC/SystemZ/insn-oilh-01.s b/test/MC/SystemZ/insn-oilh-01.s new file mode 100644 index 0000000000..0140500e34 --- /dev/null +++ b/test/MC/SystemZ/insn-oilh-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: oilh %r0, 0 # encoding: [0xa5,0x0a,0x00,0x00] +#CHECK: oilh %r0, 32768 # encoding: [0xa5,0x0a,0x80,0x00] +#CHECK: oilh %r0, 65535 # encoding: [0xa5,0x0a,0xff,0xff] +#CHECK: oilh %r15, 0 # encoding: [0xa5,0xfa,0x00,0x00] + + oilh %r0, 0 + oilh %r0, 0x8000 + oilh %r0, 0xffff + oilh %r15, 0 diff --git a/test/MC/SystemZ/insn-oilh-02.s b/test/MC/SystemZ/insn-oilh-02.s new file mode 100644 index 0000000000..d2f180d6ab --- /dev/null +++ b/test/MC/SystemZ/insn-oilh-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: oilh %r0, -1 +#CHECK: error: invalid operand +#CHECK: oilh %r0, 0x10000 + + oilh %r0, -1 + oilh %r0, 0x10000 diff --git a/test/MC/SystemZ/insn-oill-01.s b/test/MC/SystemZ/insn-oill-01.s new file mode 100644 index 0000000000..ef95d2d90f --- /dev/null +++ b/test/MC/SystemZ/insn-oill-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: oill %r0, 0 # encoding: [0xa5,0x0b,0x00,0x00] +#CHECK: oill %r0, 32768 # encoding: [0xa5,0x0b,0x80,0x00] +#CHECK: oill %r0, 65535 # encoding: [0xa5,0x0b,0xff,0xff] +#CHECK: oill %r15, 0 # encoding: [0xa5,0xfb,0x00,0x00] + + oill %r0, 0 + oill %r0, 0x8000 + oill %r0, 0xffff + oill %r15, 0 diff --git a/test/MC/SystemZ/insn-oill-02.s b/test/MC/SystemZ/insn-oill-02.s new file mode 100644 index 0000000000..01321db309 --- /dev/null +++ b/test/MC/SystemZ/insn-oill-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: oill %r0, -1 +#CHECK: error: invalid operand +#CHECK: oill %r0, 0x10000 + + oill %r0, -1 + oill %r0, 0x10000 diff --git a/test/MC/SystemZ/insn-oiy-01.s b/test/MC/SystemZ/insn-oiy-01.s new file mode 100644 index 0000000000..ba060cad1e --- /dev/null +++ b/test/MC/SystemZ/insn-oiy-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: oiy -524288, 0 # encoding: [0xeb,0x00,0x00,0x00,0x80,0x56] +#CHECK: oiy -1, 0 # encoding: [0xeb,0x00,0x0f,0xff,0xff,0x56] +#CHECK: oiy 0, 0 # encoding: [0xeb,0x00,0x00,0x00,0x00,0x56] +#CHECK: oiy 1, 0 # encoding: [0xeb,0x00,0x00,0x01,0x00,0x56] +#CHECK: oiy 524287, 0 # encoding: [0xeb,0x00,0x0f,0xff,0x7f,0x56] +#CHECK: oiy 0, 255 # encoding: [0xeb,0xff,0x00,0x00,0x00,0x56] +#CHECK: oiy 0(%r1), 42 # encoding: [0xeb,0x2a,0x10,0x00,0x00,0x56] +#CHECK: oiy 0(%r15), 42 # encoding: [0xeb,0x2a,0xf0,0x00,0x00,0x56] +#CHECK: oiy 524287(%r1), 42 # encoding: [0xeb,0x2a,0x1f,0xff,0x7f,0x56] +#CHECK: oiy 524287(%r15), 42 # encoding: [0xeb,0x2a,0xff,0xff,0x7f,0x56] + + oiy -524288, 0 + oiy -1, 0 + oiy 0, 0 + oiy 1, 0 + oiy 524287, 0 + oiy 0, 255 + oiy 0(%r1), 42 + oiy 0(%r15), 42 + oiy 524287(%r1), 42 + oiy 524287(%r15), 42 diff --git a/test/MC/SystemZ/insn-oiy-02.s b/test/MC/SystemZ/insn-oiy-02.s new file mode 100644 index 0000000000..c1c556931d --- /dev/null +++ b/test/MC/SystemZ/insn-oiy-02.s @@ -0,0 +1,19 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: oiy -524289, 0 +#CHECK: error: invalid operand +#CHECK: oiy 524288, 0 +#CHECK: error: invalid use of indexed addressing +#CHECK: oiy 0(%r1,%r2), 0 +#CHECK: error: invalid operand +#CHECK: oiy 0, -1 +#CHECK: error: invalid operand +#CHECK: oiy 0, 256 + + oiy -524289, 0 + oiy 524288, 0 + oiy 0(%r1,%r2), 0 + oiy 0, -1 + oiy 0, 256 diff --git a/test/MC/SystemZ/insn-or-01.s b/test/MC/SystemZ/insn-or-01.s new file mode 100644 index 0000000000..8ac366d32a --- /dev/null +++ b/test/MC/SystemZ/insn-or-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: or %r0, %r0 # encoding: [0x16,0x00] +#CHECK: or %r0, %r15 # encoding: [0x16,0x0f] +#CHECK: or %r15, %r0 # encoding: [0x16,0xf0] +#CHECK: or %r7, %r8 # encoding: [0x16,0x78] + + or %r0,%r0 + or %r0,%r15 + or %r15,%r0 + or %r7,%r8 diff --git a/test/MC/SystemZ/insn-oy-01.s b/test/MC/SystemZ/insn-oy-01.s new file mode 100644 index 0000000000..58013d0cab --- /dev/null +++ b/test/MC/SystemZ/insn-oy-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: oy %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x56] +#CHECK: oy %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x56] +#CHECK: oy %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x56] +#CHECK: oy %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x56] +#CHECK: oy %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x56] +#CHECK: oy %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x56] +#CHECK: oy %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x56] +#CHECK: oy %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x56] +#CHECK: oy %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x56] +#CHECK: oy %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x56] + + oy %r0, -524288 + oy %r0, -1 + oy %r0, 0 + oy %r0, 1 + oy %r0, 524287 + oy %r0, 0(%r1) + oy %r0, 0(%r15) + oy %r0, 524287(%r1,%r15) + oy %r0, 524287(%r15,%r1) + oy %r15, 0 diff --git a/test/MC/SystemZ/insn-oy-02.s b/test/MC/SystemZ/insn-oy-02.s new file mode 100644 index 0000000000..a9ae5b2395 --- /dev/null +++ b/test/MC/SystemZ/insn-oy-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: oy %r0, -524289 +#CHECK: error: invalid operand +#CHECK: oy %r0, 524288 + + oy %r0, -524289 + oy %r0, 524288 diff --git a/test/MC/SystemZ/insn-risbg-01.s b/test/MC/SystemZ/insn-risbg-01.s new file mode 100644 index 0000000000..b50fbe7f96 --- /dev/null +++ b/test/MC/SystemZ/insn-risbg-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#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, 63, 0 # encoding: [0xec,0x00,0x00,0x3f,0x00,0x55] +#CHECK: risbg %r0, %r0, 63, 0, 0 # encoding: [0xec,0x00,0x3f,0x00,0x00,0x55] +#CHECK: risbg %r0, %r15, 0, 0, 0 # encoding: [0xec,0x0f,0x00,0x00,0x00,0x55] +#CHECK: risbg %r15, %r0, 0, 0, 0 # encoding: [0xec,0xf0,0x00,0x00,0x00,0x55] +#CHECK: risbg %r4, %r5, 6, 7, 8 # encoding: [0xec,0x45,0x06,0x07,0x08,0x55] + + risbg %r0,%r0,0,0,0 + risbg %r0,%r0,0,0,63 + risbg %r0,%r0,0,63,0 + risbg %r0,%r0,63,0,0 + risbg %r0,%r15,0,0,0 + risbg %r15,%r0,0,0,0 + risbg %r4,%r5,6,7,8 diff --git a/test/MC/SystemZ/insn-risbg-02.s b/test/MC/SystemZ/insn-risbg-02.s new file mode 100644 index 0000000000..781cb563c8 --- /dev/null +++ b/test/MC/SystemZ/insn-risbg-02.s @@ -0,0 +1,22 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: risbg %r0,%r0,0,0,-1 +#CHECK: error: invalid operand +#CHECK: risbg %r0,%r0,0,0,64 +#CHECK: error: invalid operand +#CHECK: risbg %r0,%r0,0,-1,0 +#CHECK: error: invalid operand +#CHECK: risbg %r0,%r0,0,64,0 +#CHECK: error: invalid operand +#CHECK: risbg %r0,%r0,-1,0,0 +#CHECK: error: invalid operand +#CHECK: risbg %r0,%r0,64,0,0 + + risbg %r0,%r0,0,0,-1 + risbg %r0,%r0,0,0,64 + risbg %r0,%r0,0,-1,0 + risbg %r0,%r0,0,64,0 + risbg %r0,%r0,-1,0,0 + risbg %r0,%r0,64,0,0 diff --git a/test/MC/SystemZ/insn-rll-01.s b/test/MC/SystemZ/insn-rll-01.s new file mode 100644 index 0000000000..06e3774786 --- /dev/null +++ b/test/MC/SystemZ/insn-rll-01.s @@ -0,0 +1,27 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: rll %r0, %r0, 0 # encoding: [0xeb,0x00,0x00,0x00,0x00,0x1d] +#CHECK: rll %r15, %r1, 0 # encoding: [0xeb,0xf1,0x00,0x00,0x00,0x1d] +#CHECK: rll %r1, %r15, 0 # encoding: [0xeb,0x1f,0x00,0x00,0x00,0x1d] +#CHECK: rll %r15, %r15, 0 # encoding: [0xeb,0xff,0x00,0x00,0x00,0x1d] +#CHECK: rll %r0, %r0, -524288 # encoding: [0xeb,0x00,0x00,0x00,0x80,0x1d] +#CHECK: rll %r0, %r0, -1 # encoding: [0xeb,0x00,0x0f,0xff,0xff,0x1d] +#CHECK: rll %r0, %r0, 1 # encoding: [0xeb,0x00,0x00,0x01,0x00,0x1d] +#CHECK: rll %r0, %r0, 524287 # encoding: [0xeb,0x00,0x0f,0xff,0x7f,0x1d] +#CHECK: rll %r0, %r0, 0(%r1) # encoding: [0xeb,0x00,0x10,0x00,0x00,0x1d] +#CHECK: rll %r0, %r0, 0(%r15) # encoding: [0xeb,0x00,0xf0,0x00,0x00,0x1d] +#CHECK: rll %r0, %r0, 524287(%r1) # encoding: [0xeb,0x00,0x1f,0xff,0x7f,0x1d] +#CHECK: rll %r0, %r0, 524287(%r15) # encoding: [0xeb,0x00,0xff,0xff,0x7f,0x1d] + + rll %r0,%r0,0 + rll %r15,%r1,0 + rll %r1,%r15,0 + rll %r15,%r15,0 + rll %r0,%r0,-524288 + rll %r0,%r0,-1 + rll %r0,%r0,1 + rll %r0,%r0,524287 + rll %r0,%r0,0(%r1) + rll %r0,%r0,0(%r15) + rll %r0,%r0,524287(%r1) + rll %r0,%r0,524287(%r15) diff --git a/test/MC/SystemZ/insn-rll-02.s b/test/MC/SystemZ/insn-rll-02.s new file mode 100644 index 0000000000..baf160700f --- /dev/null +++ b/test/MC/SystemZ/insn-rll-02.s @@ -0,0 +1,16 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: rll %r0,%r0,-524289 +#CHECK: error: invalid operand +#CHECK: rll %r0,%r0,524288 +#CHECK: error: %r0 used in an address +#CHECK: rll %r0,%r0,0(%r0) +#CHECK: error: invalid use of indexed addressing +#CHECK: rll %r0,%r0,0(%r1,%r2) + + rll %r0,%r0,-524289 + rll %r0,%r0,524288 + rll %r0,%r0,0(%r0) + rll %r0,%r0,0(%r1,%r2) diff --git a/test/MC/SystemZ/insn-rllg-01.s b/test/MC/SystemZ/insn-rllg-01.s new file mode 100644 index 0000000000..c36dc6daf2 --- /dev/null +++ b/test/MC/SystemZ/insn-rllg-01.s @@ -0,0 +1,27 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: rllg %r0, %r0, 0 # encoding: [0xeb,0x00,0x00,0x00,0x00,0x1c] +#CHECK: rllg %r15, %r1, 0 # encoding: [0xeb,0xf1,0x00,0x00,0x00,0x1c] +#CHECK: rllg %r1, %r15, 0 # encoding: [0xeb,0x1f,0x00,0x00,0x00,0x1c] +#CHECK: rllg %r15, %r15, 0 # encoding: [0xeb,0xff,0x00,0x00,0x00,0x1c] +#CHECK: rllg %r0, %r0, -524288 # encoding: [0xeb,0x00,0x00,0x00,0x80,0x1c] +#CHECK: rllg %r0, %r0, -1 # encoding: [0xeb,0x00,0x0f,0xff,0xff,0x1c] +#CHECK: rllg %r0, %r0, 1 # encoding: [0xeb,0x00,0x00,0x01,0x00,0x1c] +#CHECK: rllg %r0, %r0, 524287 # encoding: [0xeb,0x00,0x0f,0xff,0x7f,0x1c] +#CHECK: rllg %r0, %r0, 0(%r1) # encoding: [0xeb,0x00,0x10,0x00,0x00,0x1c] +#CHECK: rllg %r0, %r0, 0(%r15) # encoding: [0xeb,0x00,0xf0,0x00,0x00,0x1c] +#CHECK: rllg %r0, %r0, 524287(%r1) # encoding: [0xeb,0x00,0x1f,0xff,0x7f,0x1c] +#CHECK: rllg %r0, %r0, 524287(%r15) # encoding: [0xeb,0x00,0xff,0xff,0x7f,0x1c] + + rllg %r0,%r0,0 + rllg %r15,%r1,0 + rllg %r1,%r15,0 + rllg %r15,%r15,0 + rllg %r0,%r0,-524288 + rllg %r0,%r0,-1 + rllg %r0,%r0,1 + rllg %r0,%r0,524287 + rllg %r0,%r0,0(%r1) + rllg %r0,%r0,0(%r15) + rllg %r0,%r0,524287(%r1) + rllg %r0,%r0,524287(%r15) diff --git a/test/MC/SystemZ/insn-rllg-02.s b/test/MC/SystemZ/insn-rllg-02.s new file mode 100644 index 0000000000..7f82845aa6 --- /dev/null +++ b/test/MC/SystemZ/insn-rllg-02.s @@ -0,0 +1,16 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: rllg %r0,%r0,-524289 +#CHECK: error: invalid operand +#CHECK: rllg %r0,%r0,524288 +#CHECK: error: %r0 used in an address +#CHECK: rllg %r0,%r0,0(%r0) +#CHECK: error: invalid use of indexed addressing +#CHECK: rllg %r0,%r0,0(%r1,%r2) + + rllg %r0,%r0,-524289 + rllg %r0,%r0,524288 + rllg %r0,%r0,0(%r0) + rllg %r0,%r0,0(%r1,%r2) diff --git a/test/MC/SystemZ/insn-s-01.s b/test/MC/SystemZ/insn-s-01.s new file mode 100644 index 0000000000..2effedbc6c --- /dev/null +++ b/test/MC/SystemZ/insn-s-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: s %r0, 0 # encoding: [0x5b,0x00,0x00,0x00] +#CHECK: s %r0, 4095 # encoding: [0x5b,0x00,0x0f,0xff] +#CHECK: s %r0, 0(%r1) # encoding: [0x5b,0x00,0x10,0x00] +#CHECK: s %r0, 0(%r15) # encoding: [0x5b,0x00,0xf0,0x00] +#CHECK: s %r0, 4095(%r1,%r15) # encoding: [0x5b,0x01,0xff,0xff] +#CHECK: s %r0, 4095(%r15,%r1) # encoding: [0x5b,0x0f,0x1f,0xff] +#CHECK: s %r15, 0 # encoding: [0x5b,0xf0,0x00,0x00] + + s %r0, 0 + s %r0, 4095 + s %r0, 0(%r1) + s %r0, 0(%r15) + s %r0, 4095(%r1,%r15) + s %r0, 4095(%r15,%r1) + s %r15, 0 diff --git a/test/MC/SystemZ/insn-s-02.s b/test/MC/SystemZ/insn-s-02.s new file mode 100644 index 0000000000..f0b4a137ec --- /dev/null +++ b/test/MC/SystemZ/insn-s-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: s %r0, -1 +#CHECK: error: invalid operand +#CHECK: s %r0, 4096 + + s %r0, -1 + s %r0, 4096 diff --git a/test/MC/SystemZ/insn-sdb-01.s b/test/MC/SystemZ/insn-sdb-01.s new file mode 100644 index 0000000000..9267796ece --- /dev/null +++ b/test/MC/SystemZ/insn-sdb-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: sdb %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x1b] +#CHECK: sdb %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x1b] +#CHECK: sdb %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x1b] +#CHECK: sdb %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x1b] +#CHECK: sdb %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x1b] +#CHECK: sdb %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x1b] +#CHECK: sdb %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x1b] + + sdb %f0, 0 + sdb %f0, 4095 + sdb %f0, 0(%r1) + sdb %f0, 0(%r15) + sdb %f0, 4095(%r1,%r15) + sdb %f0, 4095(%r15,%r1) + sdb %f15, 0 diff --git a/test/MC/SystemZ/insn-sdb-02.s b/test/MC/SystemZ/insn-sdb-02.s new file mode 100644 index 0000000000..c77284fb9a --- /dev/null +++ b/test/MC/SystemZ/insn-sdb-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: sdb %f0, -1 +#CHECK: error: invalid operand +#CHECK: sdb %f0, 4096 + + sdb %f0, -1 + sdb %f0, 4096 diff --git a/test/MC/SystemZ/insn-sdbr-01.s b/test/MC/SystemZ/insn-sdbr-01.s new file mode 100644 index 0000000000..b07f5f2cd8 --- /dev/null +++ b/test/MC/SystemZ/insn-sdbr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: sdbr %f0, %f0 # encoding: [0xb3,0x1b,0x00,0x00] +#CHECK: sdbr %f0, %f15 # encoding: [0xb3,0x1b,0x00,0x0f] +#CHECK: sdbr %f7, %f8 # encoding: [0xb3,0x1b,0x00,0x78] +#CHECK: sdbr %f15, %f0 # encoding: [0xb3,0x1b,0x00,0xf0] + + sdbr %f0, %f0 + sdbr %f0, %f15 + sdbr %f7, %f8 + sdbr %f15, %f0 diff --git a/test/MC/SystemZ/insn-seb-01.s b/test/MC/SystemZ/insn-seb-01.s new file mode 100644 index 0000000000..4bf5cfa062 --- /dev/null +++ b/test/MC/SystemZ/insn-seb-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: seb %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x0b] +#CHECK: seb %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x0b] +#CHECK: seb %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x0b] +#CHECK: seb %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x0b] +#CHECK: seb %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x0b] +#CHECK: seb %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x0b] +#CHECK: seb %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x0b] + + seb %f0, 0 + seb %f0, 4095 + seb %f0, 0(%r1) + seb %f0, 0(%r15) + seb %f0, 4095(%r1,%r15) + seb %f0, 4095(%r15,%r1) + seb %f15, 0 diff --git a/test/MC/SystemZ/insn-seb-02.s b/test/MC/SystemZ/insn-seb-02.s new file mode 100644 index 0000000000..e185a20fdc --- /dev/null +++ b/test/MC/SystemZ/insn-seb-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: seb %f0, -1 +#CHECK: error: invalid operand +#CHECK: seb %f0, 4096 + + seb %f0, -1 + seb %f0, 4096 diff --git a/test/MC/SystemZ/insn-sebr-01.s b/test/MC/SystemZ/insn-sebr-01.s new file mode 100644 index 0000000000..467b57cabe --- /dev/null +++ b/test/MC/SystemZ/insn-sebr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: sebr %f0, %f0 # encoding: [0xb3,0x0b,0x00,0x00] +#CHECK: sebr %f0, %f15 # encoding: [0xb3,0x0b,0x00,0x0f] +#CHECK: sebr %f7, %f8 # encoding: [0xb3,0x0b,0x00,0x78] +#CHECK: sebr %f15, %f0 # encoding: [0xb3,0x0b,0x00,0xf0] + + sebr %f0, %f0 + sebr %f0, %f15 + sebr %f7, %f8 + sebr %f15, %f0 diff --git a/test/MC/SystemZ/insn-sg-01.s b/test/MC/SystemZ/insn-sg-01.s new file mode 100644 index 0000000000..153df1ae2d --- /dev/null +++ b/test/MC/SystemZ/insn-sg-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: sg %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x09] +#CHECK: sg %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x09] +#CHECK: sg %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x09] +#CHECK: sg %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x09] +#CHECK: sg %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x09] +#CHECK: sg %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x09] +#CHECK: sg %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x09] +#CHECK: sg %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x09] +#CHECK: sg %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x09] +#CHECK: sg %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x09] + + sg %r0, -524288 + sg %r0, -1 + sg %r0, 0 + sg %r0, 1 + sg %r0, 524287 + sg %r0, 0(%r1) + sg %r0, 0(%r15) + sg %r0, 524287(%r1,%r15) + sg %r0, 524287(%r15,%r1) + sg %r15, 0 diff --git a/test/MC/SystemZ/insn-sg-02.s b/test/MC/SystemZ/insn-sg-02.s new file mode 100644 index 0000000000..f183e58f7b --- /dev/null +++ b/test/MC/SystemZ/insn-sg-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: sg %r0, -524289 +#CHECK: error: invalid operand +#CHECK: sg %r0, 524288 + + sg %r0, -524289 + sg %r0, 524288 diff --git a/test/MC/SystemZ/insn-sgf-01.s b/test/MC/SystemZ/insn-sgf-01.s new file mode 100644 index 0000000000..844c09998d --- /dev/null +++ b/test/MC/SystemZ/insn-sgf-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: sgf %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x19] +#CHECK: sgf %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x19] +#CHECK: sgf %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x19] +#CHECK: sgf %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x19] +#CHECK: sgf %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x19] +#CHECK: sgf %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x19] +#CHECK: sgf %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x19] +#CHECK: sgf %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x19] +#CHECK: sgf %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x19] +#CHECK: sgf %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x19] + + sgf %r0, -524288 + sgf %r0, -1 + sgf %r0, 0 + sgf %r0, 1 + sgf %r0, 524287 + sgf %r0, 0(%r1) + sgf %r0, 0(%r15) + sgf %r0, 524287(%r1,%r15) + sgf %r0, 524287(%r15,%r1) + sgf %r15, 0 diff --git a/test/MC/SystemZ/insn-sgf-02.s b/test/MC/SystemZ/insn-sgf-02.s new file mode 100644 index 0000000000..7eba3abe2c --- /dev/null +++ b/test/MC/SystemZ/insn-sgf-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: sgf %r0, -524289 +#CHECK: error: invalid operand +#CHECK: sgf %r0, 524288 + + sgf %r0, -524289 + sgf %r0, 524288 diff --git a/test/MC/SystemZ/insn-sgfr-01.s b/test/MC/SystemZ/insn-sgfr-01.s new file mode 100644 index 0000000000..49a1412f88 --- /dev/null +++ b/test/MC/SystemZ/insn-sgfr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: sgfr %r0, %r0 # encoding: [0xb9,0x19,0x00,0x00] +#CHECK: sgfr %r0, %r15 # encoding: [0xb9,0x19,0x00,0x0f] +#CHECK: sgfr %r15, %r0 # encoding: [0xb9,0x19,0x00,0xf0] +#CHECK: sgfr %r7, %r8 # encoding: [0xb9,0x19,0x00,0x78] + + sgfr %r0,%r0 + sgfr %r0,%r15 + sgfr %r15,%r0 + sgfr %r7,%r8 diff --git a/test/MC/SystemZ/insn-sgr-01.s b/test/MC/SystemZ/insn-sgr-01.s new file mode 100644 index 0000000000..86c59a1452 --- /dev/null +++ b/test/MC/SystemZ/insn-sgr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: sgr %r0, %r0 # encoding: [0xb9,0x09,0x00,0x00] +#CHECK: sgr %r0, %r15 # encoding: [0xb9,0x09,0x00,0x0f] +#CHECK: sgr %r15, %r0 # encoding: [0xb9,0x09,0x00,0xf0] +#CHECK: sgr %r7, %r8 # encoding: [0xb9,0x09,0x00,0x78] + + sgr %r0,%r0 + sgr %r0,%r15 + sgr %r15,%r0 + sgr %r7,%r8 diff --git a/test/MC/SystemZ/insn-sl-01.s b/test/MC/SystemZ/insn-sl-01.s new file mode 100644 index 0000000000..c2186da486 --- /dev/null +++ b/test/MC/SystemZ/insn-sl-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: sl %r0, 0 # encoding: [0x5f,0x00,0x00,0x00] +#CHECK: sl %r0, 4095 # encoding: [0x5f,0x00,0x0f,0xff] +#CHECK: sl %r0, 0(%r1) # encoding: [0x5f,0x00,0x10,0x00] +#CHECK: sl %r0, 0(%r15) # encoding: [0x5f,0x00,0xf0,0x00] +#CHECK: sl %r0, 4095(%r1,%r15) # encoding: [0x5f,0x01,0xff,0xff] +#CHECK: sl %r0, 4095(%r15,%r1) # encoding: [0x5f,0x0f,0x1f,0xff] +#CHECK: sl %r15, 0 # encoding: [0x5f,0xf0,0x00,0x00] + + sl %r0, 0 + sl %r0, 4095 + sl %r0, 0(%r1) + sl %r0, 0(%r15) + sl %r0, 4095(%r1,%r15) + sl %r0, 4095(%r15,%r1) + sl %r15, 0 diff --git a/test/MC/SystemZ/insn-sl-02.s b/test/MC/SystemZ/insn-sl-02.s new file mode 100644 index 0000000000..8abd99d235 --- /dev/null +++ b/test/MC/SystemZ/insn-sl-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: sl %r0, -1 +#CHECK: error: invalid operand +#CHECK: sl %r0, 4096 + + sl %r0, -1 + sl %r0, 4096 diff --git a/test/MC/SystemZ/insn-slb-01.s b/test/MC/SystemZ/insn-slb-01.s new file mode 100644 index 0000000000..4bc79f6746 --- /dev/null +++ b/test/MC/SystemZ/insn-slb-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: slb %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x99] +#CHECK: slb %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x99] +#CHECK: slb %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x99] +#CHECK: slb %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x99] +#CHECK: slb %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x99] +#CHECK: slb %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x99] +#CHECK: slb %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x99] +#CHECK: slb %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x99] +#CHECK: slb %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x99] +#CHECK: slb %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x99] + + slb %r0, -524288 + slb %r0, -1 + slb %r0, 0 + slb %r0, 1 + slb %r0, 524287 + slb %r0, 0(%r1) + slb %r0, 0(%r15) + slb %r0, 524287(%r1,%r15) + slb %r0, 524287(%r15,%r1) + slb %r15, 0 diff --git a/test/MC/SystemZ/insn-slb-02.s b/test/MC/SystemZ/insn-slb-02.s new file mode 100644 index 0000000000..ac87128ffc --- /dev/null +++ b/test/MC/SystemZ/insn-slb-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: slb %r0, -524289 +#CHECK: error: invalid operand +#CHECK: slb %r0, 524288 + + slb %r0, -524289 + slb %r0, 524288 diff --git a/test/MC/SystemZ/insn-slbg-01.s b/test/MC/SystemZ/insn-slbg-01.s new file mode 100644 index 0000000000..8878aeda5e --- /dev/null +++ b/test/MC/SystemZ/insn-slbg-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: slbg %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x89] +#CHECK: slbg %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x89] +#CHECK: slbg %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x89] +#CHECK: slbg %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x89] +#CHECK: slbg %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x89] +#CHECK: slbg %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x89] +#CHECK: slbg %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x89] +#CHECK: slbg %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x89] +#CHECK: slbg %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x89] +#CHECK: slbg %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x89] + + slbg %r0, -524288 + slbg %r0, -1 + slbg %r0, 0 + slbg %r0, 1 + slbg %r0, 524287 + slbg %r0, 0(%r1) + slbg %r0, 0(%r15) + slbg %r0, 524287(%r1,%r15) + slbg %r0, 524287(%r15,%r1) + slbg %r15, 0 diff --git a/test/MC/SystemZ/insn-slbg-02.s b/test/MC/SystemZ/insn-slbg-02.s new file mode 100644 index 0000000000..ce09c8a9de --- /dev/null +++ b/test/MC/SystemZ/insn-slbg-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: slbg %r0, -524289 +#CHECK: error: invalid operand +#CHECK: slbg %r0, 524288 + + slbg %r0, -524289 + slbg %r0, 524288 diff --git a/test/MC/SystemZ/insn-slbgr-01.s b/test/MC/SystemZ/insn-slbgr-01.s new file mode 100644 index 0000000000..bcc2b535ba --- /dev/null +++ b/test/MC/SystemZ/insn-slbgr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: slbgr %r0, %r0 # encoding: [0xb9,0x89,0x00,0x00] +#CHECK: slbgr %r0, %r15 # encoding: [0xb9,0x89,0x00,0x0f] +#CHECK: slbgr %r15, %r0 # encoding: [0xb9,0x89,0x00,0xf0] +#CHECK: slbgr %r7, %r8 # encoding: [0xb9,0x89,0x00,0x78] + + slbgr %r0,%r0 + slbgr %r0,%r15 + slbgr %r15,%r0 + slbgr %r7,%r8 diff --git a/test/MC/SystemZ/insn-slbr-01.s b/test/MC/SystemZ/insn-slbr-01.s new file mode 100644 index 0000000000..9c10dbd021 --- /dev/null +++ b/test/MC/SystemZ/insn-slbr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: slbr %r0, %r0 # encoding: [0xb9,0x99,0x00,0x00] +#CHECK: slbr %r0, %r15 # encoding: [0xb9,0x99,0x00,0x0f] +#CHECK: slbr %r15, %r0 # encoding: [0xb9,0x99,0x00,0xf0] +#CHECK: slbr %r7, %r8 # encoding: [0xb9,0x99,0x00,0x78] + + slbr %r0,%r0 + slbr %r0,%r15 + slbr %r15,%r0 + slbr %r7,%r8 diff --git a/test/MC/SystemZ/insn-slfi-01.s b/test/MC/SystemZ/insn-slfi-01.s new file mode 100644 index 0000000000..4c8e5b4a84 --- /dev/null +++ b/test/MC/SystemZ/insn-slfi-01.s @@ -0,0 +1,9 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: slfi %r0, 0 # encoding: [0xc2,0x05,0x00,0x00,0x00,0x00] +#CHECK: slfi %r0, 4294967295 # encoding: [0xc2,0x05,0xff,0xff,0xff,0xff] +#CHECK: slfi %r15, 0 # encoding: [0xc2,0xf5,0x00,0x00,0x00,0x00] + + slfi %r0, 0 + slfi %r0, (1 << 32) - 1 + slfi %r15, 0 diff --git a/test/MC/SystemZ/insn-slfi-02.s b/test/MC/SystemZ/insn-slfi-02.s new file mode 100644 index 0000000000..12e14f6164 --- /dev/null +++ b/test/MC/SystemZ/insn-slfi-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: slfi %r0, -1 +#CHECK: error: invalid operand +#CHECK: slfi %r0, (1 << 32) + + slfi %r0, -1 + slfi %r0, (1 << 32) diff --git a/test/MC/SystemZ/insn-slg-01.s b/test/MC/SystemZ/insn-slg-01.s new file mode 100644 index 0000000000..0b4f99e2e1 --- /dev/null +++ b/test/MC/SystemZ/insn-slg-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: slg %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x0b] +#CHECK: slg %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x0b] +#CHECK: slg %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x0b] +#CHECK: slg %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x0b] +#CHECK: slg %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x0b] +#CHECK: slg %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x0b] +#CHECK: slg %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x0b] +#CHECK: slg %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x0b] +#CHECK: slg %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x0b] +#CHECK: slg %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x0b] + + slg %r0, -524288 + slg %r0, -1 + slg %r0, 0 + slg %r0, 1 + slg %r0, 524287 + slg %r0, 0(%r1) + slg %r0, 0(%r15) + slg %r0, 524287(%r1,%r15) + slg %r0, 524287(%r15,%r1) + slg %r15, 0 diff --git a/test/MC/SystemZ/insn-slg-02.s b/test/MC/SystemZ/insn-slg-02.s new file mode 100644 index 0000000000..1ad04c6111 --- /dev/null +++ b/test/MC/SystemZ/insn-slg-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: slg %r0, -524289 +#CHECK: error: invalid operand +#CHECK: slg %r0, 524288 + + slg %r0, -524289 + slg %r0, 524288 diff --git a/test/MC/SystemZ/insn-slgf-01.s b/test/MC/SystemZ/insn-slgf-01.s new file mode 100644 index 0000000000..bca480ecd7 --- /dev/null +++ b/test/MC/SystemZ/insn-slgf-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: slgf %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x1b] +#CHECK: slgf %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x1b] +#CHECK: slgf %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x1b] +#CHECK: slgf %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x1b] +#CHECK: slgf %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x1b] +#CHECK: slgf %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x1b] +#CHECK: slgf %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x1b] +#CHECK: slgf %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x1b] +#CHECK: slgf %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x1b] +#CHECK: slgf %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x1b] + + slgf %r0, -524288 + slgf %r0, -1 + slgf %r0, 0 + slgf %r0, 1 + slgf %r0, 524287 + slgf %r0, 0(%r1) + slgf %r0, 0(%r15) + slgf %r0, 524287(%r1,%r15) + slgf %r0, 524287(%r15,%r1) + slgf %r15, 0 diff --git a/test/MC/SystemZ/insn-slgf-02.s b/test/MC/SystemZ/insn-slgf-02.s new file mode 100644 index 0000000000..71a9aa7812 --- /dev/null +++ b/test/MC/SystemZ/insn-slgf-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: slgf %r0, -524289 +#CHECK: error: invalid operand +#CHECK: slgf %r0, 524288 + + slgf %r0, -524289 + slgf %r0, 524288 diff --git a/test/MC/SystemZ/insn-slgfi-01.s b/test/MC/SystemZ/insn-slgfi-01.s new file mode 100644 index 0000000000..c9fef187f5 --- /dev/null +++ b/test/MC/SystemZ/insn-slgfi-01.s @@ -0,0 +1,9 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: slgfi %r0, 0 # encoding: [0xc2,0x04,0x00,0x00,0x00,0x00] +#CHECK: slgfi %r0, 4294967295 # encoding: [0xc2,0x04,0xff,0xff,0xff,0xff] +#CHECK: slgfi %r15, 0 # encoding: [0xc2,0xf4,0x00,0x00,0x00,0x00] + + slgfi %r0, 0 + slgfi %r0, (1 << 32) - 1 + slgfi %r15, 0 diff --git a/test/MC/SystemZ/insn-slgfi-02.s b/test/MC/SystemZ/insn-slgfi-02.s new file mode 100644 index 0000000000..696408d377 --- /dev/null +++ b/test/MC/SystemZ/insn-slgfi-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: slgfi %r0, -1 +#CHECK: error: invalid operand +#CHECK: slgfi %r0, (1 << 32) + + slgfi %r0, -1 + slgfi %r0, (1 << 32) diff --git a/test/MC/SystemZ/insn-slgfr-01.s b/test/MC/SystemZ/insn-slgfr-01.s new file mode 100644 index 0000000000..94c10edcd3 --- /dev/null +++ b/test/MC/SystemZ/insn-slgfr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: slgfr %r0, %r0 # encoding: [0xb9,0x1b,0x00,0x00] +#CHECK: slgfr %r0, %r15 # encoding: [0xb9,0x1b,0x00,0x0f] +#CHECK: slgfr %r15, %r0 # encoding: [0xb9,0x1b,0x00,0xf0] +#CHECK: slgfr %r7, %r8 # encoding: [0xb9,0x1b,0x00,0x78] + + slgfr %r0,%r0 + slgfr %r0,%r15 + slgfr %r15,%r0 + slgfr %r7,%r8 diff --git a/test/MC/SystemZ/insn-slgr-01.s b/test/MC/SystemZ/insn-slgr-01.s new file mode 100644 index 0000000000..4d226be83e --- /dev/null +++ b/test/MC/SystemZ/insn-slgr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: slgr %r0, %r0 # encoding: [0xb9,0x0b,0x00,0x00] +#CHECK: slgr %r0, %r15 # encoding: [0xb9,0x0b,0x00,0x0f] +#CHECK: slgr %r15, %r0 # encoding: [0xb9,0x0b,0x00,0xf0] +#CHECK: slgr %r7, %r8 # encoding: [0xb9,0x0b,0x00,0x78] + + slgr %r0,%r0 + slgr %r0,%r15 + slgr %r15,%r0 + slgr %r7,%r8 diff --git a/test/MC/SystemZ/insn-sll-01.s b/test/MC/SystemZ/insn-sll-01.s new file mode 100644 index 0000000000..5bc112856d --- /dev/null +++ b/test/MC/SystemZ/insn-sll-01.s @@ -0,0 +1,19 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: sll %r0, 0 # encoding: [0x89,0x00,0x00,0x00] +#CHECK: sll %r7, 0 # encoding: [0x89,0x70,0x00,0x00] +#CHECK: sll %r15, 0 # encoding: [0x89,0xf0,0x00,0x00] +#CHECK: sll %r0, 4095 # encoding: [0x89,0x00,0x0f,0xff] +#CHECK: sll %r0, 0(%r1) # encoding: [0x89,0x00,0x10,0x00] +#CHECK: sll %r0, 0(%r15) # encoding: [0x89,0x00,0xf0,0x00] +#CHECK: sll %r0, 4095(%r1) # encoding: [0x89,0x00,0x1f,0xff] +#CHECK: sll %r0, 4095(%r15) # encoding: [0x89,0x00,0xff,0xff] + + sll %r0,0 + sll %r7,0 + sll %r15,0 + sll %r0,4095 + sll %r0,0(%r1) + sll %r0,0(%r15) + sll %r0,4095(%r1) + sll %r0,4095(%r15) diff --git a/test/MC/SystemZ/insn-sll-02.s b/test/MC/SystemZ/insn-sll-02.s new file mode 100644 index 0000000000..1b951be02c --- /dev/null +++ b/test/MC/SystemZ/insn-sll-02.s @@ -0,0 +1,16 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: sll %r0,-1 +#CHECK: error: invalid operand +#CHECK: sll %r0,4096 +#CHECK: error: %r0 used in an address +#CHECK: sll %r0,0(%r0) +#CHECK: error: invalid use of indexed addressing +#CHECK: sll %r0,0(%r1,%r2) + + sll %r0,-1 + sll %r0,4096 + sll %r0,0(%r0) + sll %r0,0(%r1,%r2) diff --git a/test/MC/SystemZ/insn-sllg-01.s b/test/MC/SystemZ/insn-sllg-01.s new file mode 100644 index 0000000000..1b0f009467 --- /dev/null +++ b/test/MC/SystemZ/insn-sllg-01.s @@ -0,0 +1,27 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: sllg %r0, %r0, 0 # encoding: [0xeb,0x00,0x00,0x00,0x00,0x0d] +#CHECK: sllg %r15, %r1, 0 # encoding: [0xeb,0xf1,0x00,0x00,0x00,0x0d] +#CHECK: sllg %r1, %r15, 0 # encoding: [0xeb,0x1f,0x00,0x00,0x00,0x0d] +#CHECK: sllg %r15, %r15, 0 # encoding: [0xeb,0xff,0x00,0x00,0x00,0x0d] +#CHECK: sllg %r0, %r0, -524288 # encoding: [0xeb,0x00,0x00,0x00,0x80,0x0d] +#CHECK: sllg %r0, %r0, -1 # encoding: [0xeb,0x00,0x0f,0xff,0xff,0x0d] +#CHECK: sllg %r0, %r0, 1 # encoding: [0xeb,0x00,0x00,0x01,0x00,0x0d] +#CHECK: sllg %r0, %r0, 524287 # encoding: [0xeb,0x00,0x0f,0xff,0x7f,0x0d] +#CHECK: sllg %r0, %r0, 0(%r1) # encoding: [0xeb,0x00,0x10,0x00,0x00,0x0d] +#CHECK: sllg %r0, %r0, 0(%r15) # encoding: [0xeb,0x00,0xf0,0x00,0x00,0x0d] +#CHECK: sllg %r0, %r0, 524287(%r1) # encoding: [0xeb,0x00,0x1f,0xff,0x7f,0x0d] +#CHECK: sllg %r0, %r0, 524287(%r15) # encoding: [0xeb,0x00,0xff,0xff,0x7f,0x0d] + + sllg %r0,%r0,0 + sllg %r15,%r1,0 + sllg %r1,%r15,0 + sllg %r15,%r15,0 + sllg %r0,%r0,-524288 + sllg %r0,%r0,-1 + sllg %r0,%r0,1 + sllg %r0,%r0,524287 + sllg %r0,%r0,0(%r1) + sllg %r0,%r0,0(%r15) + sllg %r0,%r0,524287(%r1) + sllg %r0,%r0,524287(%r15) diff --git a/test/MC/SystemZ/insn-sllg-02.s b/test/MC/SystemZ/insn-sllg-02.s new file mode 100644 index 0000000000..68c3d1da29 --- /dev/null +++ b/test/MC/SystemZ/insn-sllg-02.s @@ -0,0 +1,16 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: sllg %r0,%r0,-524289 +#CHECK: error: invalid operand +#CHECK: sllg %r0,%r0,524288 +#CHECK: error: %r0 used in an address +#CHECK: sllg %r0,%r0,0(%r0) +#CHECK: error: invalid use of indexed addressing +#CHECK: sllg %r0,%r0,0(%r1,%r2) + + sllg %r0,%r0,-524289 + sllg %r0,%r0,524288 + sllg %r0,%r0,0(%r0) + sllg %r0,%r0,0(%r1,%r2) diff --git a/test/MC/SystemZ/insn-slr-01.s b/test/MC/SystemZ/insn-slr-01.s new file mode 100644 index 0000000000..c142407cff --- /dev/null +++ b/test/MC/SystemZ/insn-slr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: slr %r0, %r0 # encoding: [0x1f,0x00] +#CHECK: slr %r0, %r15 # encoding: [0x1f,0x0f] +#CHECK: slr %r15, %r0 # encoding: [0x1f,0xf0] +#CHECK: slr %r7, %r8 # encoding: [0x1f,0x78] + + slr %r0,%r0 + slr %r0,%r15 + slr %r15,%r0 + slr %r7,%r8 diff --git a/test/MC/SystemZ/insn-sly-01.s b/test/MC/SystemZ/insn-sly-01.s new file mode 100644 index 0000000000..59d2907a4d --- /dev/null +++ b/test/MC/SystemZ/insn-sly-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: sly %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x5f] +#CHECK: sly %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x5f] +#CHECK: sly %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x5f] +#CHECK: sly %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x5f] +#CHECK: sly %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x5f] +#CHECK: sly %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x5f] +#CHECK: sly %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x5f] +#CHECK: sly %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x5f] +#CHECK: sly %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x5f] +#CHECK: sly %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x5f] + + sly %r0, -524288 + sly %r0, -1 + sly %r0, 0 + sly %r0, 1 + sly %r0, 524287 + sly %r0, 0(%r1) + sly %r0, 0(%r15) + sly %r0, 524287(%r1,%r15) + sly %r0, 524287(%r15,%r1) + sly %r15, 0 diff --git a/test/MC/SystemZ/insn-sly-02.s b/test/MC/SystemZ/insn-sly-02.s new file mode 100644 index 0000000000..9abd53e1ab --- /dev/null +++ b/test/MC/SystemZ/insn-sly-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: sly %r0, -524289 +#CHECK: error: invalid operand +#CHECK: sly %r0, 524288 + + sly %r0, -524289 + sly %r0, 524288 diff --git a/test/MC/SystemZ/insn-sqdb-01.s b/test/MC/SystemZ/insn-sqdb-01.s new file mode 100644 index 0000000000..b79aae1444 --- /dev/null +++ b/test/MC/SystemZ/insn-sqdb-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: sqdb %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x15] +#CHECK: sqdb %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x15] +#CHECK: sqdb %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x15] +#CHECK: sqdb %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x15] +#CHECK: sqdb %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x15] +#CHECK: sqdb %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x15] +#CHECK: sqdb %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x15] + + sqdb %f0, 0 + sqdb %f0, 4095 + sqdb %f0, 0(%r1) + sqdb %f0, 0(%r15) + sqdb %f0, 4095(%r1,%r15) + sqdb %f0, 4095(%r15,%r1) + sqdb %f15, 0 diff --git a/test/MC/SystemZ/insn-sqdb-02.s b/test/MC/SystemZ/insn-sqdb-02.s new file mode 100644 index 0000000000..68df267770 --- /dev/null +++ b/test/MC/SystemZ/insn-sqdb-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: sqdb %f0, -1 +#CHECK: error: invalid operand +#CHECK: sqdb %f0, 4096 + + sqdb %f0, -1 + sqdb %f0, 4096 diff --git a/test/MC/SystemZ/insn-sqdbr-01.s b/test/MC/SystemZ/insn-sqdbr-01.s new file mode 100644 index 0000000000..d66415fa05 --- /dev/null +++ b/test/MC/SystemZ/insn-sqdbr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: sqdbr %f0, %f0 # encoding: [0xb3,0x15,0x00,0x00] +#CHECK: sqdbr %f0, %f15 # encoding: [0xb3,0x15,0x00,0x0f] +#CHECK: sqdbr %f7, %f8 # encoding: [0xb3,0x15,0x00,0x78] +#CHECK: sqdbr %f15, %f0 # encoding: [0xb3,0x15,0x00,0xf0] + + sqdbr %f0, %f0 + sqdbr %f0, %f15 + sqdbr %f7, %f8 + sqdbr %f15, %f0 diff --git a/test/MC/SystemZ/insn-sqeb-01.s b/test/MC/SystemZ/insn-sqeb-01.s new file mode 100644 index 0000000000..60f6e90635 --- /dev/null +++ b/test/MC/SystemZ/insn-sqeb-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: sqeb %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x14] +#CHECK: sqeb %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x14] +#CHECK: sqeb %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x14] +#CHECK: sqeb %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x14] +#CHECK: sqeb %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x14] +#CHECK: sqeb %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x14] +#CHECK: sqeb %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x14] + + sqeb %f0, 0 + sqeb %f0, 4095 + sqeb %f0, 0(%r1) + sqeb %f0, 0(%r15) + sqeb %f0, 4095(%r1,%r15) + sqeb %f0, 4095(%r15,%r1) + sqeb %f15, 0 diff --git a/test/MC/SystemZ/insn-sqeb-02.s b/test/MC/SystemZ/insn-sqeb-02.s new file mode 100644 index 0000000000..efb09fcfbc --- /dev/null +++ b/test/MC/SystemZ/insn-sqeb-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: sqeb %f0, -1 +#CHECK: error: invalid operand +#CHECK: sqeb %f0, 4096 + + sqeb %f0, -1 + sqeb %f0, 4096 diff --git a/test/MC/SystemZ/insn-sqebr-01.s b/test/MC/SystemZ/insn-sqebr-01.s new file mode 100644 index 0000000000..2d13dbeb26 --- /dev/null +++ b/test/MC/SystemZ/insn-sqebr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: sqebr %f0, %f0 # encoding: [0xb3,0x14,0x00,0x00] +#CHECK: sqebr %f0, %f15 # encoding: [0xb3,0x14,0x00,0x0f] +#CHECK: sqebr %f7, %f8 # encoding: [0xb3,0x14,0x00,0x78] +#CHECK: sqebr %f15, %f0 # encoding: [0xb3,0x14,0x00,0xf0] + + sqebr %f0, %f0 + sqebr %f0, %f15 + sqebr %f7, %f8 + sqebr %f15, %f0 diff --git a/test/MC/SystemZ/insn-sqxbr-01.s b/test/MC/SystemZ/insn-sqxbr-01.s new file mode 100644 index 0000000000..78ba908d5a --- /dev/null +++ b/test/MC/SystemZ/insn-sqxbr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: sqxbr %f0, %f0 # encoding: [0xb3,0x16,0x00,0x00] +#CHECK: sqxbr %f0, %f13 # encoding: [0xb3,0x16,0x00,0x0d] +#CHECK: sqxbr %f8, %f8 # encoding: [0xb3,0x16,0x00,0x88] +#CHECK: sqxbr %f13, %f0 # encoding: [0xb3,0x16,0x00,0xd0] + + sqxbr %f0, %f0 + sqxbr %f0, %f13 + sqxbr %f8, %f8 + sqxbr %f13, %f0 diff --git a/test/MC/SystemZ/insn-sqxbr-02.s b/test/MC/SystemZ/insn-sqxbr-02.s new file mode 100644 index 0000000000..e51e552fb7 --- /dev/null +++ b/test/MC/SystemZ/insn-sqxbr-02.s @@ -0,0 +1,17 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: sqxbr %f0, %f2 +#CHECK: error: invalid register +#CHECK: sqxbr %f0, %f14 +#CHECK: error: invalid register +#CHECK: sqxbr %f2, %f0 +#CHECK: error: invalid register +#CHECK: sqxbr %f14, %f0 + + sqxbr %f0, %f2 + sqxbr %f0, %f14 + sqxbr %f2, %f0 + sqxbr %f14, %f0 + diff --git a/test/MC/SystemZ/insn-sr-01.s b/test/MC/SystemZ/insn-sr-01.s new file mode 100644 index 0000000000..856bef5eac --- /dev/null +++ b/test/MC/SystemZ/insn-sr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: sr %r0, %r0 # encoding: [0x1b,0x00] +#CHECK: sr %r0, %r15 # encoding: [0x1b,0x0f] +#CHECK: sr %r15, %r0 # encoding: [0x1b,0xf0] +#CHECK: sr %r7, %r8 # encoding: [0x1b,0x78] + + sr %r0,%r0 + sr %r0,%r15 + sr %r15,%r0 + sr %r7,%r8 diff --git a/test/MC/SystemZ/insn-sra-01.s b/test/MC/SystemZ/insn-sra-01.s new file mode 100644 index 0000000000..fcdaf5de16 --- /dev/null +++ b/test/MC/SystemZ/insn-sra-01.s @@ -0,0 +1,19 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: sra %r0, 0 # encoding: [0x8a,0x00,0x00,0x00] +#CHECK: sra %r7, 0 # encoding: [0x8a,0x70,0x00,0x00] +#CHECK: sra %r15, 0 # encoding: [0x8a,0xf0,0x00,0x00] +#CHECK: sra %r0, 4095 # encoding: [0x8a,0x00,0x0f,0xff] +#CHECK: sra %r0, 0(%r1) # encoding: [0x8a,0x00,0x10,0x00] +#CHECK: sra %r0, 0(%r15) # encoding: [0x8a,0x00,0xf0,0x00] +#CHECK: sra %r0, 4095(%r1) # encoding: [0x8a,0x00,0x1f,0xff] +#CHECK: sra %r0, 4095(%r15) # encoding: [0x8a,0x00,0xff,0xff] + + sra %r0,0 + sra %r7,0 + sra %r15,0 + sra %r0,4095 + sra %r0,0(%r1) + sra %r0,0(%r15) + sra %r0,4095(%r1) + sra %r0,4095(%r15) diff --git a/test/MC/SystemZ/insn-sra-02.s b/test/MC/SystemZ/insn-sra-02.s new file mode 100644 index 0000000000..7a84f17743 --- /dev/null +++ b/test/MC/SystemZ/insn-sra-02.s @@ -0,0 +1,16 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: sra %r0,-1 +#CHECK: error: invalid operand +#CHECK: sra %r0,4096 +#CHECK: error: %r0 used in an address +#CHECK: sra %r0,0(%r0) +#CHECK: error: invalid use of indexed addressing +#CHECK: sra %r0,0(%r1,%r2) + + sra %r0,-1 + sra %r0,4096 + sra %r0,0(%r0) + sra %r0,0(%r1,%r2) diff --git a/test/MC/SystemZ/insn-srag-01.s b/test/MC/SystemZ/insn-srag-01.s new file mode 100644 index 0000000000..9271db237d --- /dev/null +++ b/test/MC/SystemZ/insn-srag-01.s @@ -0,0 +1,27 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: srag %r0, %r0, 0 # encoding: [0xeb,0x00,0x00,0x00,0x00,0x0a] +#CHECK: srag %r15, %r1, 0 # encoding: [0xeb,0xf1,0x00,0x00,0x00,0x0a] +#CHECK: srag %r1, %r15, 0 # encoding: [0xeb,0x1f,0x00,0x00,0x00,0x0a] +#CHECK: srag %r15, %r15, 0 # encoding: [0xeb,0xff,0x00,0x00,0x00,0x0a] +#CHECK: srag %r0, %r0, -524288 # encoding: [0xeb,0x00,0x00,0x00,0x80,0x0a] +#CHECK: srag %r0, %r0, -1 # encoding: [0xeb,0x00,0x0f,0xff,0xff,0x0a] +#CHECK: srag %r0, %r0, 1 # encoding: [0xeb,0x00,0x00,0x01,0x00,0x0a] +#CHECK: srag %r0, %r0, 524287 # encoding: [0xeb,0x00,0x0f,0xff,0x7f,0x0a] +#CHECK: srag %r0, %r0, 0(%r1) # encoding: [0xeb,0x00,0x10,0x00,0x00,0x0a] +#CHECK: srag %r0, %r0, 0(%r15) # encoding: [0xeb,0x00,0xf0,0x00,0x00,0x0a] +#CHECK: srag %r0, %r0, 524287(%r1) # encoding: [0xeb,0x00,0x1f,0xff,0x7f,0x0a] +#CHECK: srag %r0, %r0, 524287(%r15) # encoding: [0xeb,0x00,0xff,0xff,0x7f,0x0a] + + srag %r0,%r0,0 + srag %r15,%r1,0 + srag %r1,%r15,0 + srag %r15,%r15,0 + srag %r0,%r0,-524288 + srag %r0,%r0,-1 + srag %r0,%r0,1 + srag %r0,%r0,524287 + srag %r0,%r0,0(%r1) + srag %r0,%r0,0(%r15) + srag %r0,%r0,524287(%r1) + srag %r0,%r0,524287(%r15) diff --git a/test/MC/SystemZ/insn-srag-02.s b/test/MC/SystemZ/insn-srag-02.s new file mode 100644 index 0000000000..7413cbaf9f --- /dev/null +++ b/test/MC/SystemZ/insn-srag-02.s @@ -0,0 +1,16 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: srag %r0,%r0,-524289 +#CHECK: error: invalid operand +#CHECK: srag %r0,%r0,524288 +#CHECK: error: %r0 used in an address +#CHECK: srag %r0,%r0,0(%r0) +#CHECK: error: invalid use of indexed addressing +#CHECK: srag %r0,%r0,0(%r1,%r2) + + srag %r0,%r0,-524289 + srag %r0,%r0,524288 + srag %r0,%r0,0(%r0) + srag %r0,%r0,0(%r1,%r2) diff --git a/test/MC/SystemZ/insn-srl-01.s b/test/MC/SystemZ/insn-srl-01.s new file mode 100644 index 0000000000..a3a5df8a2b --- /dev/null +++ b/test/MC/SystemZ/insn-srl-01.s @@ -0,0 +1,19 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: srl %r0, 0 # encoding: [0x88,0x00,0x00,0x00] +#CHECK: srl %r7, 0 # encoding: [0x88,0x70,0x00,0x00] +#CHECK: srl %r15, 0 # encoding: [0x88,0xf0,0x00,0x00] +#CHECK: srl %r0, 4095 # encoding: [0x88,0x00,0x0f,0xff] +#CHECK: srl %r0, 0(%r1) # encoding: [0x88,0x00,0x10,0x00] +#CHECK: srl %r0, 0(%r15) # encoding: [0x88,0x00,0xf0,0x00] +#CHECK: srl %r0, 4095(%r1) # encoding: [0x88,0x00,0x1f,0xff] +#CHECK: srl %r0, 4095(%r15) # encoding: [0x88,0x00,0xff,0xff] + + srl %r0,0 + srl %r7,0 + srl %r15,0 + srl %r0,4095 + srl %r0,0(%r1) + srl %r0,0(%r15) + srl %r0,4095(%r1) + srl %r0,4095(%r15) diff --git a/test/MC/SystemZ/insn-srl-02.s b/test/MC/SystemZ/insn-srl-02.s new file mode 100644 index 0000000000..212d16bd8d --- /dev/null +++ b/test/MC/SystemZ/insn-srl-02.s @@ -0,0 +1,16 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: srl %r0,-1 +#CHECK: error: invalid operand +#CHECK: srl %r0,4096 +#CHECK: error: %r0 used in an address +#CHECK: srl %r0,0(%r0) +#CHECK: error: invalid use of indexed addressing +#CHECK: srl %r0,0(%r1,%r2) + + srl %r0,-1 + srl %r0,4096 + srl %r0,0(%r0) + srl %r0,0(%r1,%r2) diff --git a/test/MC/SystemZ/insn-srlg-01.s b/test/MC/SystemZ/insn-srlg-01.s new file mode 100644 index 0000000000..0087fefd92 --- /dev/null +++ b/test/MC/SystemZ/insn-srlg-01.s @@ -0,0 +1,27 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: srlg %r0, %r0, 0 # encoding: [0xeb,0x00,0x00,0x00,0x00,0x0c] +#CHECK: srlg %r15, %r1, 0 # encoding: [0xeb,0xf1,0x00,0x00,0x00,0x0c] +#CHECK: srlg %r1, %r15, 0 # encoding: [0xeb,0x1f,0x00,0x00,0x00,0x0c] +#CHECK: srlg %r15, %r15, 0 # encoding: [0xeb,0xff,0x00,0x00,0x00,0x0c] +#CHECK: srlg %r0, %r0, -524288 # encoding: [0xeb,0x00,0x00,0x00,0x80,0x0c] +#CHECK: srlg %r0, %r0, -1 # encoding: [0xeb,0x00,0x0f,0xff,0xff,0x0c] +#CHECK: srlg %r0, %r0, 1 # encoding: [0xeb,0x00,0x00,0x01,0x00,0x0c] +#CHECK: srlg %r0, %r0, 524287 # encoding: [0xeb,0x00,0x0f,0xff,0x7f,0x0c] +#CHECK: srlg %r0, %r0, 0(%r1) # encoding: [0xeb,0x00,0x10,0x00,0x00,0x0c] +#CHECK: srlg %r0, %r0, 0(%r15) # encoding: [0xeb,0x00,0xf0,0x00,0x00,0x0c] +#CHECK: srlg %r0, %r0, 524287(%r1) # encoding: [0xeb,0x00,0x1f,0xff,0x7f,0x0c] +#CHECK: srlg %r0, %r0, 524287(%r15) # encoding: [0xeb,0x00,0xff,0xff,0x7f,0x0c] + + srlg %r0,%r0,0 + srlg %r15,%r1,0 + srlg %r1,%r15,0 + srlg %r15,%r15,0 + srlg %r0,%r0,-524288 + srlg %r0,%r0,-1 + srlg %r0,%r0,1 + srlg %r0,%r0,524287 + srlg %r0,%r0,0(%r1) + srlg %r0,%r0,0(%r15) + srlg %r0,%r0,524287(%r1) + srlg %r0,%r0,524287(%r15) diff --git a/test/MC/SystemZ/insn-srlg-02.s b/test/MC/SystemZ/insn-srlg-02.s new file mode 100644 index 0000000000..1e24d0e407 --- /dev/null +++ b/test/MC/SystemZ/insn-srlg-02.s @@ -0,0 +1,16 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: srlg %r0,%r0,-524289 +#CHECK: error: invalid operand +#CHECK: srlg %r0,%r0,524288 +#CHECK: error: %r0 used in an address +#CHECK: srlg %r0,%r0,0(%r0) +#CHECK: error: invalid use of indexed addressing +#CHECK: srlg %r0,%r0,0(%r1,%r2) + + srlg %r0,%r0,-524289 + srlg %r0,%r0,524288 + srlg %r0,%r0,0(%r0) + srlg %r0,%r0,0(%r1,%r2) diff --git a/test/MC/SystemZ/insn-st-01.s b/test/MC/SystemZ/insn-st-01.s new file mode 100644 index 0000000000..0b5fdb682c --- /dev/null +++ b/test/MC/SystemZ/insn-st-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: st %r0, 0 # encoding: [0x50,0x00,0x00,0x00] +#CHECK: st %r0, 4095 # encoding: [0x50,0x00,0x0f,0xff] +#CHECK: st %r0, 0(%r1) # encoding: [0x50,0x00,0x10,0x00] +#CHECK: st %r0, 0(%r15) # encoding: [0x50,0x00,0xf0,0x00] +#CHECK: st %r0, 4095(%r1,%r15) # encoding: [0x50,0x01,0xff,0xff] +#CHECK: st %r0, 4095(%r15,%r1) # encoding: [0x50,0x0f,0x1f,0xff] +#CHECK: st %r15, 0 # encoding: [0x50,0xf0,0x00,0x00] + + st %r0, 0 + st %r0, 4095 + st %r0, 0(%r1) + st %r0, 0(%r15) + st %r0, 4095(%r1,%r15) + st %r0, 4095(%r15,%r1) + st %r15, 0 diff --git a/test/MC/SystemZ/insn-st-02.s b/test/MC/SystemZ/insn-st-02.s new file mode 100644 index 0000000000..63e547a92b --- /dev/null +++ b/test/MC/SystemZ/insn-st-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: st %r0, -1 +#CHECK: error: invalid operand +#CHECK: st %r0, 4096 + + st %r0, -1 + st %r0, 4096 diff --git a/test/MC/SystemZ/insn-stc-01.s b/test/MC/SystemZ/insn-stc-01.s new file mode 100644 index 0000000000..563f8914b6 --- /dev/null +++ b/test/MC/SystemZ/insn-stc-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: stc %r0, 0 # encoding: [0x42,0x00,0x00,0x00] +#CHECK: stc %r0, 4095 # encoding: [0x42,0x00,0x0f,0xff] +#CHECK: stc %r0, 0(%r1) # encoding: [0x42,0x00,0x10,0x00] +#CHECK: stc %r0, 0(%r15) # encoding: [0x42,0x00,0xf0,0x00] +#CHECK: stc %r0, 4095(%r1,%r15) # encoding: [0x42,0x01,0xff,0xff] +#CHECK: stc %r0, 4095(%r15,%r1) # encoding: [0x42,0x0f,0x1f,0xff] +#CHECK: stc %r15, 0 # encoding: [0x42,0xf0,0x00,0x00] + + stc %r0, 0 + stc %r0, 4095 + stc %r0, 0(%r1) + stc %r0, 0(%r15) + stc %r0, 4095(%r1,%r15) + stc %r0, 4095(%r15,%r1) + stc %r15, 0 diff --git a/test/MC/SystemZ/insn-stc-02.s b/test/MC/SystemZ/insn-stc-02.s new file mode 100644 index 0000000000..aa7dcb29df --- /dev/null +++ b/test/MC/SystemZ/insn-stc-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: stc %r0, -1 +#CHECK: error: invalid operand +#CHECK: stc %r0, 4096 + + stc %r0, -1 + stc %r0, 4096 diff --git a/test/MC/SystemZ/insn-stcy-01.s b/test/MC/SystemZ/insn-stcy-01.s new file mode 100644 index 0000000000..acc7ac5996 --- /dev/null +++ b/test/MC/SystemZ/insn-stcy-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: stcy %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x72] +#CHECK: stcy %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x72] +#CHECK: stcy %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x72] +#CHECK: stcy %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x72] +#CHECK: stcy %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x72] +#CHECK: stcy %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x72] +#CHECK: stcy %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x72] +#CHECK: stcy %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x72] +#CHECK: stcy %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x72] +#CHECK: stcy %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x72] + + stcy %r0, -524288 + stcy %r0, -1 + stcy %r0, 0 + stcy %r0, 1 + stcy %r0, 524287 + stcy %r0, 0(%r1) + stcy %r0, 0(%r15) + stcy %r0, 524287(%r1,%r15) + stcy %r0, 524287(%r15,%r1) + stcy %r15, 0 diff --git a/test/MC/SystemZ/insn-stcy-02.s b/test/MC/SystemZ/insn-stcy-02.s new file mode 100644 index 0000000000..cbd7f7abde --- /dev/null +++ b/test/MC/SystemZ/insn-stcy-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: stcy %r0, -524289 +#CHECK: error: invalid operand +#CHECK: stcy %r0, 524288 + + stcy %r0, -524289 + stcy %r0, 524288 diff --git a/test/MC/SystemZ/insn-std-01.s b/test/MC/SystemZ/insn-std-01.s new file mode 100644 index 0000000000..6867df8bb1 --- /dev/null +++ b/test/MC/SystemZ/insn-std-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: std %f0, 0 # encoding: [0x60,0x00,0x00,0x00] +#CHECK: std %f0, 4095 # encoding: [0x60,0x00,0x0f,0xff] +#CHECK: std %f0, 0(%r1) # encoding: [0x60,0x00,0x10,0x00] +#CHECK: std %f0, 0(%r15) # encoding: [0x60,0x00,0xf0,0x00] +#CHECK: std %f0, 4095(%r1,%r15) # encoding: [0x60,0x01,0xff,0xff] +#CHECK: std %f0, 4095(%r15,%r1) # encoding: [0x60,0x0f,0x1f,0xff] +#CHECK: std %f15, 0 # encoding: [0x60,0xf0,0x00,0x00] + + std %f0, 0 + std %f0, 4095 + std %f0, 0(%r1) + std %f0, 0(%r15) + std %f0, 4095(%r1,%r15) + std %f0, 4095(%r15,%r1) + std %f15, 0 diff --git a/test/MC/SystemZ/insn-std-02.s b/test/MC/SystemZ/insn-std-02.s new file mode 100644 index 0000000000..62bb9eb7fa --- /dev/null +++ b/test/MC/SystemZ/insn-std-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: std %f0, -1 +#CHECK: error: invalid operand +#CHECK: std %f0, 4096 + + std %f0, -1 + std %f0, 4096 diff --git a/test/MC/SystemZ/insn-stdy-01.s b/test/MC/SystemZ/insn-stdy-01.s new file mode 100644 index 0000000000..1ae9a7d3d0 --- /dev/null +++ b/test/MC/SystemZ/insn-stdy-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: stdy %f0, -524288 # encoding: [0xed,0x00,0x00,0x00,0x80,0x67] +#CHECK: stdy %f0, -1 # encoding: [0xed,0x00,0x0f,0xff,0xff,0x67] +#CHECK: stdy %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x67] +#CHECK: stdy %f0, 1 # encoding: [0xed,0x00,0x00,0x01,0x00,0x67] +#CHECK: stdy %f0, 524287 # encoding: [0xed,0x00,0x0f,0xff,0x7f,0x67] +#CHECK: stdy %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x67] +#CHECK: stdy %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x67] +#CHECK: stdy %f0, 524287(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x7f,0x67] +#CHECK: stdy %f0, 524287(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x7f,0x67] +#CHECK: stdy %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x67] + + stdy %f0, -524288 + stdy %f0, -1 + stdy %f0, 0 + stdy %f0, 1 + stdy %f0, 524287 + stdy %f0, 0(%r1) + stdy %f0, 0(%r15) + stdy %f0, 524287(%r1,%r15) + stdy %f0, 524287(%r15,%r1) + stdy %f15, 0 diff --git a/test/MC/SystemZ/insn-stdy-02.s b/test/MC/SystemZ/insn-stdy-02.s new file mode 100644 index 0000000000..f9a09a59f1 --- /dev/null +++ b/test/MC/SystemZ/insn-stdy-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: stdy %f0, -524289 +#CHECK: error: invalid operand +#CHECK: stdy %f0, 524288 + + stdy %f0, -524289 + stdy %f0, 524288 diff --git a/test/MC/SystemZ/insn-ste-01.s b/test/MC/SystemZ/insn-ste-01.s new file mode 100644 index 0000000000..8e245df985 --- /dev/null +++ b/test/MC/SystemZ/insn-ste-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: ste %f0, 0 # encoding: [0x70,0x00,0x00,0x00] +#CHECK: ste %f0, 4095 # encoding: [0x70,0x00,0x0f,0xff] +#CHECK: ste %f0, 0(%r1) # encoding: [0x70,0x00,0x10,0x00] +#CHECK: ste %f0, 0(%r15) # encoding: [0x70,0x00,0xf0,0x00] +#CHECK: ste %f0, 4095(%r1,%r15) # encoding: [0x70,0x01,0xff,0xff] +#CHECK: ste %f0, 4095(%r15,%r1) # encoding: [0x70,0x0f,0x1f,0xff] +#CHECK: ste %f15, 0 # encoding: [0x70,0xf0,0x00,0x00] + + ste %f0, 0 + ste %f0, 4095 + ste %f0, 0(%r1) + ste %f0, 0(%r15) + ste %f0, 4095(%r1,%r15) + ste %f0, 4095(%r15,%r1) + ste %f15, 0 diff --git a/test/MC/SystemZ/insn-ste-02.s b/test/MC/SystemZ/insn-ste-02.s new file mode 100644 index 0000000000..acc50eada8 --- /dev/null +++ b/test/MC/SystemZ/insn-ste-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: ste %f0, -1 +#CHECK: error: invalid operand +#CHECK: ste %f0, 4096 + + ste %f0, -1 + ste %f0, 4096 diff --git a/test/MC/SystemZ/insn-stey-01.s b/test/MC/SystemZ/insn-stey-01.s new file mode 100644 index 0000000000..1f82593650 --- /dev/null +++ b/test/MC/SystemZ/insn-stey-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: stey %f0, -524288 # encoding: [0xed,0x00,0x00,0x00,0x80,0x66] +#CHECK: stey %f0, -1 # encoding: [0xed,0x00,0x0f,0xff,0xff,0x66] +#CHECK: stey %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x66] +#CHECK: stey %f0, 1 # encoding: [0xed,0x00,0x00,0x01,0x00,0x66] +#CHECK: stey %f0, 524287 # encoding: [0xed,0x00,0x0f,0xff,0x7f,0x66] +#CHECK: stey %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x66] +#CHECK: stey %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x66] +#CHECK: stey %f0, 524287(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x7f,0x66] +#CHECK: stey %f0, 524287(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x7f,0x66] +#CHECK: stey %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x66] + + stey %f0, -524288 + stey %f0, -1 + stey %f0, 0 + stey %f0, 1 + stey %f0, 524287 + stey %f0, 0(%r1) + stey %f0, 0(%r15) + stey %f0, 524287(%r1,%r15) + stey %f0, 524287(%r15,%r1) + stey %f15, 0 diff --git a/test/MC/SystemZ/insn-stey-02.s b/test/MC/SystemZ/insn-stey-02.s new file mode 100644 index 0000000000..203b016e31 --- /dev/null +++ b/test/MC/SystemZ/insn-stey-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: stey %f0, -524289 +#CHECK: error: invalid operand +#CHECK: stey %f0, 524288 + + stey %f0, -524289 + stey %f0, 524288 diff --git a/test/MC/SystemZ/insn-stg-01.s b/test/MC/SystemZ/insn-stg-01.s new file mode 100644 index 0000000000..e8508d9f4e --- /dev/null +++ b/test/MC/SystemZ/insn-stg-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: stg %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x24] +#CHECK: stg %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x24] +#CHECK: stg %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x24] +#CHECK: stg %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x24] +#CHECK: stg %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x24] +#CHECK: stg %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x24] +#CHECK: stg %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x24] +#CHECK: stg %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x24] +#CHECK: stg %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x24] +#CHECK: stg %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x24] + + stg %r0, -524288 + stg %r0, -1 + stg %r0, 0 + stg %r0, 1 + stg %r0, 524287 + stg %r0, 0(%r1) + stg %r0, 0(%r15) + stg %r0, 524287(%r1,%r15) + stg %r0, 524287(%r15,%r1) + stg %r15, 0 diff --git a/test/MC/SystemZ/insn-stg-02.s b/test/MC/SystemZ/insn-stg-02.s new file mode 100644 index 0000000000..1214ad1998 --- /dev/null +++ b/test/MC/SystemZ/insn-stg-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: stg %r0, -524289 +#CHECK: error: invalid operand +#CHECK: stg %r0, 524288 + + stg %r0, -524289 + stg %r0, 524288 diff --git a/test/MC/SystemZ/insn-stgrl-01.s b/test/MC/SystemZ/insn-stgrl-01.s new file mode 100644 index 0000000000..729b01dc11 --- /dev/null +++ b/test/MC/SystemZ/insn-stgrl-01.s @@ -0,0 +1,31 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: stgrl %r0, 2864434397 # encoding: [0xc4,0x0b,0x55,0x5d,0xe6,0x6e] +#CHECK: stgrl %r15, 2864434397 # encoding: [0xc4,0xfb,0x55,0x5d,0xe6,0x6e] + + stgrl %r0,0xaabbccdd + stgrl %r15,0xaabbccdd + +#CHECK: stgrl %r0, foo # encoding: [0xc4,0x0b,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: stgrl %r15, foo # encoding: [0xc4,0xfb,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL + + stgrl %r0,foo + stgrl %r15,foo + +#CHECK: stgrl %r3, bar+100 # encoding: [0xc4,0x3b,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL +#CHECK: stgrl %r4, bar+100 # encoding: [0xc4,0x4b,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL + + stgrl %r3,bar+100 + stgrl %r4,bar+100 + +#CHECK: stgrl %r7, frob@PLT # encoding: [0xc4,0x7b,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL +#CHECK: stgrl %r8, frob@PLT # encoding: [0xc4,0x8b,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL + + stgrl %r7,frob@PLT + stgrl %r8,frob@PLT diff --git a/test/MC/SystemZ/insn-sth-01.s b/test/MC/SystemZ/insn-sth-01.s new file mode 100644 index 0000000000..0dabe345b5 --- /dev/null +++ b/test/MC/SystemZ/insn-sth-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: sth %r0, 0 # encoding: [0x40,0x00,0x00,0x00] +#CHECK: sth %r0, 4095 # encoding: [0x40,0x00,0x0f,0xff] +#CHECK: sth %r0, 0(%r1) # encoding: [0x40,0x00,0x10,0x00] +#CHECK: sth %r0, 0(%r15) # encoding: [0x40,0x00,0xf0,0x00] +#CHECK: sth %r0, 4095(%r1,%r15) # encoding: [0x40,0x01,0xff,0xff] +#CHECK: sth %r0, 4095(%r15,%r1) # encoding: [0x40,0x0f,0x1f,0xff] +#CHECK: sth %r15, 0 # encoding: [0x40,0xf0,0x00,0x00] + + sth %r0, 0 + sth %r0, 4095 + sth %r0, 0(%r1) + sth %r0, 0(%r15) + sth %r0, 4095(%r1,%r15) + sth %r0, 4095(%r15,%r1) + sth %r15, 0 diff --git a/test/MC/SystemZ/insn-sth-02.s b/test/MC/SystemZ/insn-sth-02.s new file mode 100644 index 0000000000..e73c28917b --- /dev/null +++ b/test/MC/SystemZ/insn-sth-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: sth %r0, -1 +#CHECK: error: invalid operand +#CHECK: sth %r0, 4096 + + sth %r0, -1 + sth %r0, 4096 diff --git a/test/MC/SystemZ/insn-sthrl-01.s b/test/MC/SystemZ/insn-sthrl-01.s new file mode 100644 index 0000000000..0bcdbd4bc8 --- /dev/null +++ b/test/MC/SystemZ/insn-sthrl-01.s @@ -0,0 +1,31 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: sthrl %r0, 2864434397 # encoding: [0xc4,0x07,0x55,0x5d,0xe6,0x6e] +#CHECK: sthrl %r15, 2864434397 # encoding: [0xc4,0xf7,0x55,0x5d,0xe6,0x6e] + + sthrl %r0,0xaabbccdd + sthrl %r15,0xaabbccdd + +#CHECK: sthrl %r0, foo # encoding: [0xc4,0x07,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: sthrl %r15, foo # encoding: [0xc4,0xf7,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL + + sthrl %r0,foo + sthrl %r15,foo + +#CHECK: sthrl %r3, bar+100 # encoding: [0xc4,0x37,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL +#CHECK: sthrl %r4, bar+100 # encoding: [0xc4,0x47,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL + + sthrl %r3,bar+100 + sthrl %r4,bar+100 + +#CHECK: sthrl %r7, frob@PLT # encoding: [0xc4,0x77,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL +#CHECK: sthrl %r8, frob@PLT # encoding: [0xc4,0x87,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL + + sthrl %r7,frob@PLT + sthrl %r8,frob@PLT diff --git a/test/MC/SystemZ/insn-sthy-01.s b/test/MC/SystemZ/insn-sthy-01.s new file mode 100644 index 0000000000..259c5e1c82 --- /dev/null +++ b/test/MC/SystemZ/insn-sthy-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: sthy %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x70] +#CHECK: sthy %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x70] +#CHECK: sthy %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x70] +#CHECK: sthy %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x70] +#CHECK: sthy %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x70] +#CHECK: sthy %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x70] +#CHECK: sthy %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x70] +#CHECK: sthy %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x70] +#CHECK: sthy %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x70] +#CHECK: sthy %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x70] + + sthy %r0, -524288 + sthy %r0, -1 + sthy %r0, 0 + sthy %r0, 1 + sthy %r0, 524287 + sthy %r0, 0(%r1) + sthy %r0, 0(%r15) + sthy %r0, 524287(%r1,%r15) + sthy %r0, 524287(%r15,%r1) + sthy %r15, 0 diff --git a/test/MC/SystemZ/insn-sthy-02.s b/test/MC/SystemZ/insn-sthy-02.s new file mode 100644 index 0000000000..0ad547b4b8 --- /dev/null +++ b/test/MC/SystemZ/insn-sthy-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: sthy %r0, -524289 +#CHECK: error: invalid operand +#CHECK: sthy %r0, 524288 + + sthy %r0, -524289 + sthy %r0, 524288 diff --git a/test/MC/SystemZ/insn-stmg-01.s b/test/MC/SystemZ/insn-stmg-01.s new file mode 100644 index 0000000000..d189014422 --- /dev/null +++ b/test/MC/SystemZ/insn-stmg-01.s @@ -0,0 +1,29 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: stmg %r0, %r0, 0 # encoding: [0xeb,0x00,0x00,0x00,0x00,0x24] +#CHECK: stmg %r0, %r15, 0 # encoding: [0xeb,0x0f,0x00,0x00,0x00,0x24] +#CHECK: stmg %r14, %r15, 0 # encoding: [0xeb,0xef,0x00,0x00,0x00,0x24] +#CHECK: stmg %r15, %r15, 0 # encoding: [0xeb,0xff,0x00,0x00,0x00,0x24] +#CHECK: stmg %r0, %r0, -524288 # encoding: [0xeb,0x00,0x00,0x00,0x80,0x24] +#CHECK: stmg %r0, %r0, -1 # encoding: [0xeb,0x00,0x0f,0xff,0xff,0x24] +#CHECK: stmg %r0, %r0, 0 # encoding: [0xeb,0x00,0x00,0x00,0x00,0x24] +#CHECK: stmg %r0, %r0, 1 # encoding: [0xeb,0x00,0x00,0x01,0x00,0x24] +#CHECK: stmg %r0, %r0, 524287 # encoding: [0xeb,0x00,0x0f,0xff,0x7f,0x24] +#CHECK: stmg %r0, %r0, 0(%r1) # encoding: [0xeb,0x00,0x10,0x00,0x00,0x24] +#CHECK: stmg %r0, %r0, 0(%r15) # encoding: [0xeb,0x00,0xf0,0x00,0x00,0x24] +#CHECK: stmg %r0, %r0, 524287(%r1) # encoding: [0xeb,0x00,0x1f,0xff,0x7f,0x24] +#CHECK: stmg %r0, %r0, 524287(%r15) # encoding: [0xeb,0x00,0xff,0xff,0x7f,0x24] + + stmg %r0,%r0,0 + stmg %r0,%r15,0 + stmg %r14,%r15,0 + stmg %r15,%r15,0 + stmg %r0,%r0,-524288 + stmg %r0,%r0,-1 + stmg %r0,%r0,0 + stmg %r0,%r0,1 + stmg %r0,%r0,524287 + stmg %r0,%r0,0(%r1) + stmg %r0,%r0,0(%r15) + stmg %r0,%r0,524287(%r1) + stmg %r0,%r0,524287(%r15) diff --git a/test/MC/SystemZ/insn-stmg-02.s b/test/MC/SystemZ/insn-stmg-02.s new file mode 100644 index 0000000000..342c38aec9 --- /dev/null +++ b/test/MC/SystemZ/insn-stmg-02.s @@ -0,0 +1,13 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: stmg %r0, %r0, -524289 +#CHECK: error: invalid operand +#CHECK: stmg %r0, %r0, 524288 +#CHECK: error: invalid use of indexed addressing +#CHECK: stmg %r0, %r0, 0(%r1,%r2) + + stmg %r0, %r0, -524289 + stmg %r0, %r0, 524288 + stmg %r0, %r0, 0(%r1,%r2) diff --git a/test/MC/SystemZ/insn-strl-01.s b/test/MC/SystemZ/insn-strl-01.s new file mode 100644 index 0000000000..84bd41f4c0 --- /dev/null +++ b/test/MC/SystemZ/insn-strl-01.s @@ -0,0 +1,31 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: strl %r0, 2864434397 # encoding: [0xc4,0x0f,0x55,0x5d,0xe6,0x6e] +#CHECK: strl %r15, 2864434397 # encoding: [0xc4,0xff,0x55,0x5d,0xe6,0x6e] + + strl %r0,0xaabbccdd + strl %r15,0xaabbccdd + +#CHECK: strl %r0, foo # encoding: [0xc4,0x0f,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL +#CHECK: strl %r15, foo # encoding: [0xc4,0xff,A,A,A,A] +# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL + + strl %r0,foo + strl %r15,foo + +#CHECK: strl %r3, bar+100 # encoding: [0xc4,0x3f,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL +#CHECK: strl %r4, bar+100 # encoding: [0xc4,0x4f,A,A,A,A] +# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL + + strl %r3,bar+100 + strl %r4,bar+100 + +#CHECK: strl %r7, frob@PLT # encoding: [0xc4,0x7f,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL +#CHECK: strl %r8, frob@PLT # encoding: [0xc4,0x8f,A,A,A,A] +# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL + + strl %r7,frob@PLT + strl %r8,frob@PLT diff --git a/test/MC/SystemZ/insn-strv-01.s b/test/MC/SystemZ/insn-strv-01.s new file mode 100644 index 0000000000..6a818a8b9e --- /dev/null +++ b/test/MC/SystemZ/insn-strv-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: strv %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x3e] +#CHECK: strv %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x3e] +#CHECK: strv %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x3e] +#CHECK: strv %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x3e] +#CHECK: strv %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x3e] +#CHECK: strv %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x3e] +#CHECK: strv %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x3e] +#CHECK: strv %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x3e] +#CHECK: strv %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x3e] +#CHECK: strv %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x3e] + + strv %r0,-524288 + strv %r0,-1 + strv %r0,0 + strv %r0,1 + strv %r0,524287 + strv %r0,0(%r1) + strv %r0,0(%r15) + strv %r0,524287(%r1,%r15) + strv %r0,524287(%r15,%r1) + strv %r15,0 diff --git a/test/MC/SystemZ/insn-strv-02.s b/test/MC/SystemZ/insn-strv-02.s new file mode 100644 index 0000000000..24460edfed --- /dev/null +++ b/test/MC/SystemZ/insn-strv-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: strv %r0, -524289 +#CHECK: error: invalid operand +#CHECK: strv %r0, 524288 + + strv %r0, -524289 + strv %r0, 524288 diff --git a/test/MC/SystemZ/insn-strvg-01.s b/test/MC/SystemZ/insn-strvg-01.s new file mode 100644 index 0000000000..6a4d49d3bc --- /dev/null +++ b/test/MC/SystemZ/insn-strvg-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: strvg %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x2f] +#CHECK: strvg %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x2f] +#CHECK: strvg %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x2f] +#CHECK: strvg %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x2f] +#CHECK: strvg %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x2f] +#CHECK: strvg %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x2f] +#CHECK: strvg %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x2f] +#CHECK: strvg %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x2f] +#CHECK: strvg %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x2f] +#CHECK: strvg %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x2f] + + strvg %r0,-524288 + strvg %r0,-1 + strvg %r0,0 + strvg %r0,1 + strvg %r0,524287 + strvg %r0,0(%r1) + strvg %r0,0(%r15) + strvg %r0,524287(%r1,%r15) + strvg %r0,524287(%r15,%r1) + strvg %r15,0 diff --git a/test/MC/SystemZ/insn-strvg-02.s b/test/MC/SystemZ/insn-strvg-02.s new file mode 100644 index 0000000000..ebb0d5bffb --- /dev/null +++ b/test/MC/SystemZ/insn-strvg-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: strvg %r0, -524289 +#CHECK: error: invalid operand +#CHECK: strvg %r0, 524288 + + strvg %r0, -524289 + strvg %r0, 524288 diff --git a/test/MC/SystemZ/insn-sty-01.s b/test/MC/SystemZ/insn-sty-01.s new file mode 100644 index 0000000000..1ca2d5c550 --- /dev/null +++ b/test/MC/SystemZ/insn-sty-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: sty %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x50] +#CHECK: sty %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x50] +#CHECK: sty %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x50] +#CHECK: sty %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x50] +#CHECK: sty %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x50] +#CHECK: sty %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x50] +#CHECK: sty %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x50] +#CHECK: sty %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x50] +#CHECK: sty %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x50] +#CHECK: sty %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x50] + + sty %r0, -524288 + sty %r0, -1 + sty %r0, 0 + sty %r0, 1 + sty %r0, 524287 + sty %r0, 0(%r1) + sty %r0, 0(%r15) + sty %r0, 524287(%r1,%r15) + sty %r0, 524287(%r15,%r1) + sty %r15, 0 diff --git a/test/MC/SystemZ/insn-sty-02.s b/test/MC/SystemZ/insn-sty-02.s new file mode 100644 index 0000000000..fea7c089ab --- /dev/null +++ b/test/MC/SystemZ/insn-sty-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: sty %r0, -524289 +#CHECK: error: invalid operand +#CHECK: sty %r0, 524288 + + sty %r0, -524289 + sty %r0, 524288 diff --git a/test/MC/SystemZ/insn-sxbr-01.s b/test/MC/SystemZ/insn-sxbr-01.s new file mode 100644 index 0000000000..e7f4ed25bf --- /dev/null +++ b/test/MC/SystemZ/insn-sxbr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: sxbr %f0, %f0 # encoding: [0xb3,0x4b,0x00,0x00] +#CHECK: sxbr %f0, %f13 # encoding: [0xb3,0x4b,0x00,0x0d] +#CHECK: sxbr %f8, %f8 # encoding: [0xb3,0x4b,0x00,0x88] +#CHECK: sxbr %f13, %f0 # encoding: [0xb3,0x4b,0x00,0xd0] + + sxbr %f0, %f0 + sxbr %f0, %f13 + sxbr %f8, %f8 + sxbr %f13, %f0 diff --git a/test/MC/SystemZ/insn-sxbr-02.s b/test/MC/SystemZ/insn-sxbr-02.s new file mode 100644 index 0000000000..397238bd39 --- /dev/null +++ b/test/MC/SystemZ/insn-sxbr-02.s @@ -0,0 +1,17 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: sxbr %f0, %f2 +#CHECK: error: invalid register +#CHECK: sxbr %f0, %f14 +#CHECK: error: invalid register +#CHECK: sxbr %f2, %f0 +#CHECK: error: invalid register +#CHECK: sxbr %f14, %f0 + + sxbr %f0, %f2 + sxbr %f0, %f14 + sxbr %f2, %f0 + sxbr %f14, %f0 + diff --git a/test/MC/SystemZ/insn-sy-01.s b/test/MC/SystemZ/insn-sy-01.s new file mode 100644 index 0000000000..bc56bd790e --- /dev/null +++ b/test/MC/SystemZ/insn-sy-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: sy %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x5b] +#CHECK: sy %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x5b] +#CHECK: sy %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x5b] +#CHECK: sy %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x5b] +#CHECK: sy %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x5b] +#CHECK: sy %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x5b] +#CHECK: sy %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x5b] +#CHECK: sy %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x5b] +#CHECK: sy %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x5b] +#CHECK: sy %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x5b] + + sy %r0, -524288 + sy %r0, -1 + sy %r0, 0 + sy %r0, 1 + sy %r0, 524287 + sy %r0, 0(%r1) + sy %r0, 0(%r15) + sy %r0, 524287(%r1,%r15) + sy %r0, 524287(%r15,%r1) + sy %r15, 0 diff --git a/test/MC/SystemZ/insn-sy-02.s b/test/MC/SystemZ/insn-sy-02.s new file mode 100644 index 0000000000..7d64ca922d --- /dev/null +++ b/test/MC/SystemZ/insn-sy-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: sy %r0, -524289 +#CHECK: error: invalid operand +#CHECK: sy %r0, 524288 + + sy %r0, -524289 + sy %r0, 524288 diff --git a/test/MC/SystemZ/insn-x-01.s b/test/MC/SystemZ/insn-x-01.s new file mode 100644 index 0000000000..a2e3a2605a --- /dev/null +++ b/test/MC/SystemZ/insn-x-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: x %r0, 0 # encoding: [0x57,0x00,0x00,0x00] +#CHECK: x %r0, 4095 # encoding: [0x57,0x00,0x0f,0xff] +#CHECK: x %r0, 0(%r1) # encoding: [0x57,0x00,0x10,0x00] +#CHECK: x %r0, 0(%r15) # encoding: [0x57,0x00,0xf0,0x00] +#CHECK: x %r0, 4095(%r1,%r15) # encoding: [0x57,0x01,0xff,0xff] +#CHECK: x %r0, 4095(%r15,%r1) # encoding: [0x57,0x0f,0x1f,0xff] +#CHECK: x %r15, 0 # encoding: [0x57,0xf0,0x00,0x00] + + x %r0, 0 + x %r0, 4095 + x %r0, 0(%r1) + x %r0, 0(%r15) + x %r0, 4095(%r1,%r15) + x %r0, 4095(%r15,%r1) + x %r15, 0 diff --git a/test/MC/SystemZ/insn-x-02.s b/test/MC/SystemZ/insn-x-02.s new file mode 100644 index 0000000000..3719740464 --- /dev/null +++ b/test/MC/SystemZ/insn-x-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: x %r0, -1 +#CHECK: error: invalid operand +#CHECK: x %r0, 4096 + + x %r0, -1 + x %r0, 4096 diff --git a/test/MC/SystemZ/insn-xg-01.s b/test/MC/SystemZ/insn-xg-01.s new file mode 100644 index 0000000000..6cf5e7e4b4 --- /dev/null +++ b/test/MC/SystemZ/insn-xg-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: xg %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x82] +#CHECK: xg %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x82] +#CHECK: xg %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x82] +#CHECK: xg %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x82] +#CHECK: xg %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x82] +#CHECK: xg %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x82] +#CHECK: xg %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x82] +#CHECK: xg %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x82] +#CHECK: xg %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x82] +#CHECK: xg %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x82] + + xg %r0, -524288 + xg %r0, -1 + xg %r0, 0 + xg %r0, 1 + xg %r0, 524287 + xg %r0, 0(%r1) + xg %r0, 0(%r15) + xg %r0, 524287(%r1,%r15) + xg %r0, 524287(%r15,%r1) + xg %r15, 0 diff --git a/test/MC/SystemZ/insn-xg-02.s b/test/MC/SystemZ/insn-xg-02.s new file mode 100644 index 0000000000..0505b9facf --- /dev/null +++ b/test/MC/SystemZ/insn-xg-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: xg %r0, -524289 +#CHECK: error: invalid operand +#CHECK: xg %r0, 524288 + + xg %r0, -524289 + xg %r0, 524288 diff --git a/test/MC/SystemZ/insn-xgr-01.s b/test/MC/SystemZ/insn-xgr-01.s new file mode 100644 index 0000000000..1a5a6d6e1c --- /dev/null +++ b/test/MC/SystemZ/insn-xgr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: xgr %r0, %r0 # encoding: [0xb9,0x82,0x00,0x00] +#CHECK: xgr %r0, %r15 # encoding: [0xb9,0x82,0x00,0x0f] +#CHECK: xgr %r15, %r0 # encoding: [0xb9,0x82,0x00,0xf0] +#CHECK: xgr %r7, %r8 # encoding: [0xb9,0x82,0x00,0x78] + + xgr %r0,%r0 + xgr %r0,%r15 + xgr %r15,%r0 + xgr %r7,%r8 diff --git a/test/MC/SystemZ/insn-xi-01.s b/test/MC/SystemZ/insn-xi-01.s new file mode 100644 index 0000000000..2a7670c732 --- /dev/null +++ b/test/MC/SystemZ/insn-xi-01.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: xi 0, 0 # encoding: [0x97,0x00,0x00,0x00] +#CHECK: xi 4095, 0 # encoding: [0x97,0x00,0x0f,0xff] +#CHECK: xi 0, 255 # encoding: [0x97,0xff,0x00,0x00] +#CHECK: xi 0(%r1), 42 # encoding: [0x97,0x2a,0x10,0x00] +#CHECK: xi 0(%r15), 42 # encoding: [0x97,0x2a,0xf0,0x00] +#CHECK: xi 4095(%r1), 42 # encoding: [0x97,0x2a,0x1f,0xff] +#CHECK: xi 4095(%r15), 42 # encoding: [0x97,0x2a,0xff,0xff] + + xi 0, 0 + xi 4095, 0 + xi 0, 255 + xi 0(%r1), 42 + xi 0(%r15), 42 + xi 4095(%r1), 42 + xi 4095(%r15), 42 diff --git a/test/MC/SystemZ/insn-xi-02.s b/test/MC/SystemZ/insn-xi-02.s new file mode 100644 index 0000000000..a1ce668a69 --- /dev/null +++ b/test/MC/SystemZ/insn-xi-02.s @@ -0,0 +1,19 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: xi -1, 0 +#CHECK: error: invalid operand +#CHECK: xi 4096, 0 +#CHECK: error: invalid use of indexed addressing +#CHECK: xi 0(%r1,%r2), 0 +#CHECK: error: invalid operand +#CHECK: xi 0, -1 +#CHECK: error: invalid operand +#CHECK: xi 0, 256 + + xi -1, 0 + xi 4096, 0 + xi 0(%r1,%r2), 0 + xi 0, -1 + xi 0, 256 diff --git a/test/MC/SystemZ/insn-xihf-01.s b/test/MC/SystemZ/insn-xihf-01.s new file mode 100644 index 0000000000..ad2ec1946a --- /dev/null +++ b/test/MC/SystemZ/insn-xihf-01.s @@ -0,0 +1,9 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: xihf %r0, 0 # encoding: [0xc0,0x06,0x00,0x00,0x00,0x00] +#CHECK: xihf %r0, 4294967295 # encoding: [0xc0,0x06,0xff,0xff,0xff,0xff] +#CHECK: xihf %r15, 0 # encoding: [0xc0,0xf6,0x00,0x00,0x00,0x00] + + xihf %r0, 0 + xihf %r0, 0xffffffff + xihf %r15, 0 diff --git a/test/MC/SystemZ/insn-xihf-02.s b/test/MC/SystemZ/insn-xihf-02.s new file mode 100644 index 0000000000..945993b822 --- /dev/null +++ b/test/MC/SystemZ/insn-xihf-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: xihf %r0, -1 +#CHECK: error: invalid operand +#CHECK: xihf %r0, 1 << 32 + + xihf %r0, -1 + xihf %r0, 1 << 32 diff --git a/test/MC/SystemZ/insn-xilf-01.s b/test/MC/SystemZ/insn-xilf-01.s new file mode 100644 index 0000000000..475e573321 --- /dev/null +++ b/test/MC/SystemZ/insn-xilf-01.s @@ -0,0 +1,9 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: xilf %r0, 0 # encoding: [0xc0,0x07,0x00,0x00,0x00,0x00] +#CHECK: xilf %r0, 4294967295 # encoding: [0xc0,0x07,0xff,0xff,0xff,0xff] +#CHECK: xilf %r15, 0 # encoding: [0xc0,0xf7,0x00,0x00,0x00,0x00] + + xilf %r0, 0 + xilf %r0, 0xffffffff + xilf %r15, 0 diff --git a/test/MC/SystemZ/insn-xilf-02.s b/test/MC/SystemZ/insn-xilf-02.s new file mode 100644 index 0000000000..df02b7cc94 --- /dev/null +++ b/test/MC/SystemZ/insn-xilf-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: xilf %r0, -1 +#CHECK: error: invalid operand +#CHECK: xilf %r0, 1 << 32 + + xilf %r0, -1 + xilf %r0, 1 << 32 diff --git a/test/MC/SystemZ/insn-xiy-01.s b/test/MC/SystemZ/insn-xiy-01.s new file mode 100644 index 0000000000..c329ce0572 --- /dev/null +++ b/test/MC/SystemZ/insn-xiy-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: xiy -524288, 0 # encoding: [0xeb,0x00,0x00,0x00,0x80,0x57] +#CHECK: xiy -1, 0 # encoding: [0xeb,0x00,0x0f,0xff,0xff,0x57] +#CHECK: xiy 0, 0 # encoding: [0xeb,0x00,0x00,0x00,0x00,0x57] +#CHECK: xiy 1, 0 # encoding: [0xeb,0x00,0x00,0x01,0x00,0x57] +#CHECK: xiy 524287, 0 # encoding: [0xeb,0x00,0x0f,0xff,0x7f,0x57] +#CHECK: xiy 0, 255 # encoding: [0xeb,0xff,0x00,0x00,0x00,0x57] +#CHECK: xiy 0(%r1), 42 # encoding: [0xeb,0x2a,0x10,0x00,0x00,0x57] +#CHECK: xiy 0(%r15), 42 # encoding: [0xeb,0x2a,0xf0,0x00,0x00,0x57] +#CHECK: xiy 524287(%r1), 42 # encoding: [0xeb,0x2a,0x1f,0xff,0x7f,0x57] +#CHECK: xiy 524287(%r15), 42 # encoding: [0xeb,0x2a,0xff,0xff,0x7f,0x57] + + xiy -524288, 0 + xiy -1, 0 + xiy 0, 0 + xiy 1, 0 + xiy 524287, 0 + xiy 0, 255 + xiy 0(%r1), 42 + xiy 0(%r15), 42 + xiy 524287(%r1), 42 + xiy 524287(%r15), 42 diff --git a/test/MC/SystemZ/insn-xiy-02.s b/test/MC/SystemZ/insn-xiy-02.s new file mode 100644 index 0000000000..519c26c965 --- /dev/null +++ b/test/MC/SystemZ/insn-xiy-02.s @@ -0,0 +1,19 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: xiy -524289, 0 +#CHECK: error: invalid operand +#CHECK: xiy 524288, 0 +#CHECK: error: invalid use of indexed addressing +#CHECK: xiy 0(%r1,%r2), 0 +#CHECK: error: invalid operand +#CHECK: xiy 0, -1 +#CHECK: error: invalid operand +#CHECK: xiy 0, 256 + + xiy -524289, 0 + xiy 524288, 0 + xiy 0(%r1,%r2), 0 + xiy 0, -1 + xiy 0, 256 diff --git a/test/MC/SystemZ/insn-xr-01.s b/test/MC/SystemZ/insn-xr-01.s new file mode 100644 index 0000000000..471e6a63d6 --- /dev/null +++ b/test/MC/SystemZ/insn-xr-01.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: xr %r0, %r0 # encoding: [0x17,0x00] +#CHECK: xr %r0, %r15 # encoding: [0x17,0x0f] +#CHECK: xr %r15, %r0 # encoding: [0x17,0xf0] +#CHECK: xr %r7, %r8 # encoding: [0x17,0x78] + + xr %r0,%r0 + xr %r0,%r15 + xr %r15,%r0 + xr %r7,%r8 diff --git a/test/MC/SystemZ/insn-xy-01.s b/test/MC/SystemZ/insn-xy-01.s new file mode 100644 index 0000000000..132db04bf5 --- /dev/null +++ b/test/MC/SystemZ/insn-xy-01.s @@ -0,0 +1,23 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: xy %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x57] +#CHECK: xy %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x57] +#CHECK: xy %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x57] +#CHECK: xy %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x57] +#CHECK: xy %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x57] +#CHECK: xy %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x57] +#CHECK: xy %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x57] +#CHECK: xy %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x57] +#CHECK: xy %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x57] +#CHECK: xy %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x57] + + xy %r0, -524288 + xy %r0, -1 + xy %r0, 0 + xy %r0, 1 + xy %r0, 524287 + xy %r0, 0(%r1) + xy %r0, 0(%r15) + xy %r0, 524287(%r1,%r15) + xy %r0, 524287(%r15,%r1) + xy %r15, 0 diff --git a/test/MC/SystemZ/insn-xy-02.s b/test/MC/SystemZ/insn-xy-02.s new file mode 100644 index 0000000000..6ba3bad48c --- /dev/null +++ b/test/MC/SystemZ/insn-xy-02.s @@ -0,0 +1,10 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid operand +#CHECK: xy %r0, -524289 +#CHECK: error: invalid operand +#CHECK: xy %r0, 524288 + + xy %r0, -524289 + xy %r0, 524288 diff --git a/test/MC/SystemZ/lit.local.cfg b/test/MC/SystemZ/lit.local.cfg new file mode 100644 index 0000000000..abb697406d --- /dev/null +++ b/test/MC/SystemZ/lit.local.cfg @@ -0,0 +1,6 @@ +config.suffixes = ['.ll', '.c', '.cpp', '.s'] + +targets = set(config.root.targets_to_build.split()) +if not 'SystemZ' in targets: + config.unsupported = True + diff --git a/test/MC/SystemZ/regs-01.s b/test/MC/SystemZ/regs-01.s new file mode 100644 index 0000000000..df11fee691 --- /dev/null +++ b/test/MC/SystemZ/regs-01.s @@ -0,0 +1,19 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lr %r0, %r1 # encoding: [0x18,0x01] +#CHECK: lr %r2, %r3 # encoding: [0x18,0x23] +#CHECK: lr %r4, %r5 # encoding: [0x18,0x45] +#CHECK: lr %r6, %r7 # encoding: [0x18,0x67] +#CHECK: lr %r8, %r9 # encoding: [0x18,0x89] +#CHECK: lr %r10, %r11 # encoding: [0x18,0xab] +#CHECK: lr %r12, %r13 # encoding: [0x18,0xcd] +#CHECK: lr %r14, %r15 # encoding: [0x18,0xef] + + lr %r0,%r1 + lr %r2,%r3 + lr %r4,%r5 + lr %r6,%r7 + lr %r8,%r9 + lr %r10,%r11 + lr %r12,%r13 + lr %r14,%r15 diff --git a/test/MC/SystemZ/regs-02.s b/test/MC/SystemZ/regs-02.s new file mode 100644 index 0000000000..baaa0f9f97 --- /dev/null +++ b/test/MC/SystemZ/regs-02.s @@ -0,0 +1,19 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lgr %r0, %r1 # encoding: [0xb9,0x04,0x00,0x01] +#CHECK: lgr %r2, %r3 # encoding: [0xb9,0x04,0x00,0x23] +#CHECK: lgr %r4, %r5 # encoding: [0xb9,0x04,0x00,0x45] +#CHECK: lgr %r6, %r7 # encoding: [0xb9,0x04,0x00,0x67] +#CHECK: lgr %r8, %r9 # encoding: [0xb9,0x04,0x00,0x89] +#CHECK: lgr %r10, %r11 # encoding: [0xb9,0x04,0x00,0xab] +#CHECK: lgr %r12, %r13 # encoding: [0xb9,0x04,0x00,0xcd] +#CHECK: lgr %r14, %r15 # encoding: [0xb9,0x04,0x00,0xef] + + lgr %r0,%r1 + lgr %r2,%r3 + lgr %r4,%r5 + lgr %r6,%r7 + lgr %r8,%r9 + lgr %r10,%r11 + lgr %r12,%r13 + lgr %r14,%r15 diff --git a/test/MC/SystemZ/regs-03.s b/test/MC/SystemZ/regs-03.s new file mode 100644 index 0000000000..6ced4157b4 --- /dev/null +++ b/test/MC/SystemZ/regs-03.s @@ -0,0 +1,19 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: dlr %r0, %r0 # encoding: [0xb9,0x97,0x00,0x00] +#CHECK: dlr %r2, %r0 # encoding: [0xb9,0x97,0x00,0x20] +#CHECK: dlr %r4, %r0 # encoding: [0xb9,0x97,0x00,0x40] +#CHECK: dlr %r6, %r0 # encoding: [0xb9,0x97,0x00,0x60] +#CHECK: dlr %r8, %r0 # encoding: [0xb9,0x97,0x00,0x80] +#CHECK: dlr %r10, %r0 # encoding: [0xb9,0x97,0x00,0xa0] +#CHECK: dlr %r12, %r0 # encoding: [0xb9,0x97,0x00,0xc0] +#CHECK: dlr %r14, %r0 # encoding: [0xb9,0x97,0x00,0xe0] + + dlr %r0,%r0 + dlr %r2,%r0 + dlr %r4,%r0 + dlr %r6,%r0 + dlr %r8,%r0 + dlr %r10,%r0 + dlr %r12,%r0 + dlr %r14,%r0 diff --git a/test/MC/SystemZ/regs-04.s b/test/MC/SystemZ/regs-04.s new file mode 100644 index 0000000000..a2da67186f --- /dev/null +++ b/test/MC/SystemZ/regs-04.s @@ -0,0 +1,19 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: ler %f0, %f1 # encoding: [0x38,0x01] +#CHECK: ler %f2, %f3 # encoding: [0x38,0x23] +#CHECK: ler %f4, %f5 # encoding: [0x38,0x45] +#CHECK: ler %f6, %f7 # encoding: [0x38,0x67] +#CHECK: ler %f8, %f9 # encoding: [0x38,0x89] +#CHECK: ler %f10, %f11 # encoding: [0x38,0xab] +#CHECK: ler %f12, %f13 # encoding: [0x38,0xcd] +#CHECK: ler %f14, %f15 # encoding: [0x38,0xef] + + ler %f0,%f1 + ler %f2,%f3 + ler %f4,%f5 + ler %f6,%f7 + ler %f8,%f9 + ler %f10,%f11 + ler %f12,%f13 + ler %f14,%f15 diff --git a/test/MC/SystemZ/regs-05.s b/test/MC/SystemZ/regs-05.s new file mode 100644 index 0000000000..b5f50b51a3 --- /dev/null +++ b/test/MC/SystemZ/regs-05.s @@ -0,0 +1,19 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: ldr %f0, %f1 # encoding: [0x28,0x01] +#CHECK: ldr %f2, %f3 # encoding: [0x28,0x23] +#CHECK: ldr %f4, %f5 # encoding: [0x28,0x45] +#CHECK: ldr %f6, %f7 # encoding: [0x28,0x67] +#CHECK: ldr %f8, %f9 # encoding: [0x28,0x89] +#CHECK: ldr %f10, %f11 # encoding: [0x28,0xab] +#CHECK: ldr %f12, %f13 # encoding: [0x28,0xcd] +#CHECK: ldr %f14, %f15 # encoding: [0x28,0xef] + + ldr %f0,%f1 + ldr %f2,%f3 + ldr %f4,%f5 + ldr %f6,%f7 + ldr %f8,%f9 + ldr %f10,%f11 + ldr %f12,%f13 + ldr %f14,%f15 diff --git a/test/MC/SystemZ/regs-06.s b/test/MC/SystemZ/regs-06.s new file mode 100644 index 0000000000..43bf38c9c4 --- /dev/null +++ b/test/MC/SystemZ/regs-06.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple s390x-linux-gnu -show-encoding %s | FileCheck %s + +#CHECK: lxr %f0, %f1 # encoding: [0xb3,0x65,0x00,0x01] +#CHECK: lxr %f4, %f5 # encoding: [0xb3,0x65,0x00,0x45] +#CHECK: lxr %f8, %f9 # encoding: [0xb3,0x65,0x00,0x89] +#CHECK: lxr %f12, %f13 # encoding: [0xb3,0x65,0x00,0xcd] + + lxr %f0,%f1 + lxr %f4,%f5 + lxr %f8,%f9 + lxr %f12,%f13 diff --git a/test/MC/SystemZ/regs-07.s b/test/MC/SystemZ/regs-07.s new file mode 100644 index 0000000000..d3585a6e2c --- /dev/null +++ b/test/MC/SystemZ/regs-07.s @@ -0,0 +1,28 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: lr %r16,%r1 +#CHECK: error: invalid register +#CHECK: lr %f0,%r1 +#CHECK: error: invalid register +#CHECK: lr %a0,%r1 +#CHECK: error: invalid operand for instruction +#CHECK: lr %arid,%r1 +#CHECK: error: invalid operand for instruction +#CHECK: lr %0,%r1 +#CHECK: error: invalid operand for instruction +#CHECK: lr 0,%r1 +#CHECK: error: unknown token in expression +#CHECK: lr (%r0),%r1 +#CHECK: error: unknown token in expression +#CHECK: lr %,%r1 + + lr %r16,%r1 + lr %f0,%r1 + lr %a0,%r1 + lr %arid,%r1 + lr %0,%r1 + lr 0,%r1 + lr (%r0),%r1 + lr %,%r1 diff --git a/test/MC/SystemZ/regs-08.s b/test/MC/SystemZ/regs-08.s new file mode 100644 index 0000000000..f11c45737a --- /dev/null +++ b/test/MC/SystemZ/regs-08.s @@ -0,0 +1,28 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: lgr %r16,%r1 +#CHECK: error: invalid register +#CHECK: lgr %f0,%r1 +#CHECK: error: invalid register +#CHECK: lgr %a0,%r1 +#CHECK: error: invalid operand for instruction +#CHECK: lgr %arid,%r1 +#CHECK: error: invalid operand for instruction +#CHECK: lgr %0,%r1 +#CHECK: error: invalid operand for instruction +#CHECK: lgr 0,%r1 +#CHECK: error: unknown token in expression +#CHECK: lgr (%r0),%r1 +#CHECK: error: unknown token in expression +#CHECK: lgr %,%r1 + + lgr %r16,%r1 + lgr %f0,%r1 + lgr %a0,%r1 + lgr %arid,%r1 + lgr %0,%r1 + lgr 0,%r1 + lgr (%r0),%r1 + lgr %,%r1 diff --git a/test/MC/SystemZ/regs-09.s b/test/MC/SystemZ/regs-09.s new file mode 100644 index 0000000000..60f4d39140 --- /dev/null +++ b/test/MC/SystemZ/regs-09.s @@ -0,0 +1,31 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: dlr %r1,%r8 +#CHECK: error: invalid register +#CHECK: dlr %r16,%r1 +#CHECK: error: invalid register +#CHECK: dlr %f0,%r1 +#CHECK: error: invalid register +#CHECK: dlr %a0,%r1 +#CHECK: error: invalid operand for instruction +#CHECK: dlr %arid,%r1 +#CHECK: error: invalid operand for instruction +#CHECK: dlr %0,%r1 +#CHECK: error: invalid operand for instruction +#CHECK: dlr 0,%r1 +#CHECK: error: unknown token in expression +#CHECK: dlr (%r0),%r1 +#CHECK: error: unknown token in expression +#CHECK: dlr %,%r1 + + dlr %r1,%r8 + dlr %r16,%r1 + dlr %f0,%r1 + dlr %a0,%r1 + dlr %arid,%r1 + dlr %0,%r1 + dlr 0,%r1 + dlr (%r0),%r1 + dlr %,%r1 diff --git a/test/MC/SystemZ/regs-10.s b/test/MC/SystemZ/regs-10.s new file mode 100644 index 0000000000..865aa82532 --- /dev/null +++ b/test/MC/SystemZ/regs-10.s @@ -0,0 +1,28 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: ler %f1,%f16 +#CHECK: error: invalid register +#CHECK: ler %f1,%r0 +#CHECK: error: invalid register +#CHECK: ler %f1,%a0 +#CHECK: error: invalid operand for instruction +#CHECK: ler %f1,%fly +#CHECK: error: invalid operand for instruction +#CHECK: ler %f1,%0 +#CHECK: error: invalid operand for instruction +#CHECK: ler %f1,0 +#CHECK: error: unknown token in expression +#CHECK: ler %f1,(%f0) +#CHECK: error: unknown token in expression +#CHECK: ler %f1,% + + ler %f1,%f16 + ler %f1,%r0 + ler %f1,%a0 + ler %f1,%fly + ler %f1,%0 + ler %f1,0 + ler %f1,(%f0) + ler %f1,% diff --git a/test/MC/SystemZ/regs-11.s b/test/MC/SystemZ/regs-11.s new file mode 100644 index 0000000000..5d0f04f043 --- /dev/null +++ b/test/MC/SystemZ/regs-11.s @@ -0,0 +1,28 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: ldr %f1,%f16 +#CHECK: error: invalid register +#CHECK: ldr %f1,%r0 +#CHECK: error: invalid register +#CHECK: ldr %f1,%a0 +#CHECK: error: invalid operand for instruction +#CHECK: ldr %f1,%fly +#CHECK: error: invalid operand for instruction +#CHECK: ldr %f1,%0 +#CHECK: error: invalid operand for instruction +#CHECK: ldr %f1,0 +#CHECK: error: unknown token in expression +#CHECK: ldr %f1,(%f0) +#CHECK: error: unknown token in expression +#CHECK: ldr %f1,% + + ldr %f1,%f16 + ldr %f1,%r0 + ldr %f1,%a0 + ldr %f1,%fly + ldr %f1,%0 + ldr %f1,0 + ldr %f1,(%f0) + ldr %f1,% diff --git a/test/MC/SystemZ/regs-12.s b/test/MC/SystemZ/regs-12.s new file mode 100644 index 0000000000..f6cf0e7584 --- /dev/null +++ b/test/MC/SystemZ/regs-12.s @@ -0,0 +1,31 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: lxr %f1,%f2 +#CHECK: error: invalid register +#CHECK: lxr %f1,%f16 +#CHECK: error: invalid register +#CHECK: lxr %f1,%r0 +#CHECK: error: invalid register +#CHECK: lxr %f1,%a0 +#CHECK: error: invalid operand for instruction +#CHECK: lxr %f1,%fly +#CHECK: error: invalid operand for instruction +#CHECK: lxr %f1,%0 +#CHECK: error: invalid operand for instruction +#CHECK: lxr %f1,0 +#CHECK: error: unknown token in expression +#CHECK: lxr %f1,(%f0) +#CHECK: error: unknown token in expression +#CHECK: lxr %f1,% + + lxr %f1,%f2 + lxr %f1,%f16 + lxr %f1,%r0 + lxr %f1,%a0 + lxr %f1,%fly + lxr %f1,%0 + lxr %f1,0 + lxr %f1,(%f0) + lxr %f1,% diff --git a/test/MC/SystemZ/regs-13.s b/test/MC/SystemZ/regs-13.s new file mode 100644 index 0000000000..88b0c05b86 --- /dev/null +++ b/test/MC/SystemZ/regs-13.s @@ -0,0 +1,69 @@ +# RUN: llvm-mc -triple s390x-linux-gnu < %s | FileCheck %s + +#CHECK: .cfi_offset %r0, 0 +#CHECK: .cfi_offset %r1, 8 +#CHECK: .cfi_offset %r2, 16 +#CHECK: .cfi_offset %r3, 24 +#CHECK: .cfi_offset %r4, 32 +#CHECK: .cfi_offset %r5, 40 +#CHECK: .cfi_offset %r6, 48 +#CHECK: .cfi_offset %r7, 56 +#CHECK: .cfi_offset %r8, 64 +#CHECK: .cfi_offset %r9, 72 +#CHECK: .cfi_offset %r10, 80 +#CHECK: .cfi_offset %r11, 88 +#CHECK: .cfi_offset %r12, 96 +#CHECK: .cfi_offset %r13, 104 +#CHECK: .cfi_offset %r14, 112 +#CHECK: .cfi_offset %r15, 120 +#CHECK: .cfi_offset %f0, 128 +#CHECK: .cfi_offset %f1, 136 +#CHECK: .cfi_offset %f2, 144 +#CHECK: .cfi_offset %f3, 152 +#CHECK: .cfi_offset %f4, 160 +#CHECK: .cfi_offset %f5, 168 +#CHECK: .cfi_offset %f6, 176 +#CHECK: .cfi_offset %f7, 184 +#CHECK: .cfi_offset %f8, 192 +#CHECK: .cfi_offset %f9, 200 +#CHECK: .cfi_offset %f10, 208 +#CHECK: .cfi_offset %f11, 216 +#CHECK: .cfi_offset %f12, 224 +#CHECK: .cfi_offset %f13, 232 +#CHECK: .cfi_offset %f14, 240 +#CHECK: .cfi_offset %f15, 248 + + .cfi_startproc + .cfi_offset %r0,0 + .cfi_offset %r1,8 + .cfi_offset %r2,16 + .cfi_offset %r3,24 + .cfi_offset %r4,32 + .cfi_offset %r5,40 + .cfi_offset %r6,48 + .cfi_offset %r7,56 + .cfi_offset %r8,64 + .cfi_offset %r9,72 + .cfi_offset %r10,80 + .cfi_offset %r11,88 + .cfi_offset %r12,96 + .cfi_offset %r13,104 + .cfi_offset %r14,112 + .cfi_offset %r15,120 + .cfi_offset %f0,128 + .cfi_offset %f1,136 + .cfi_offset %f2,144 + .cfi_offset %f3,152 + .cfi_offset %f4,160 + .cfi_offset %f5,168 + .cfi_offset %f6,176 + .cfi_offset %f7,184 + .cfi_offset %f8,192 + .cfi_offset %f9,200 + .cfi_offset %f10,208 + .cfi_offset %f11,216 + .cfi_offset %f12,224 + .cfi_offset %f13,232 + .cfi_offset %f14,240 + .cfi_offset %f15,248 + .cfi_endproc diff --git a/test/MC/SystemZ/regs-14.s b/test/MC/SystemZ/regs-14.s new file mode 100644 index 0000000000..e22307d49c --- /dev/null +++ b/test/MC/SystemZ/regs-14.s @@ -0,0 +1,18 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: invalid register +#CHECK: .cfi_offset %a0,0 +#CHECK: error: register expected +#CHECK: .cfi_offset %foo,0 +#CHECK: error: register expected +#CHECK: .cfi_offset %,0 +#CHECK: error: register expected +#CHECK: .cfi_offset r0,0 + + .cfi_startproc + .cfi_offset %a0,0 + .cfi_offset %foo,0 + .cfi_offset %,0 + .cfi_offset r0,0 + .cfi_endproc diff --git a/test/MC/SystemZ/regs-15.s b/test/MC/SystemZ/regs-15.s new file mode 100644 index 0000000000..baec6a639b --- /dev/null +++ b/test/MC/SystemZ/regs-15.s @@ -0,0 +1,19 @@ +# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t +# RUN: FileCheck < %t %s + +#CHECK: error: %r0 used in an address +#CHECK: sll %r2,8(%r0) +#CHECK: error: %r0 used in an address +#CHECK: br %r0 +#CHECK: error: %r0 used in an address +#CHECK: l %r1,8(%r0) +#CHECK: error: %r0 used in an address +#CHECK: l %r1,8(%r0,%r15) +#CHECK: error: %r0 used in an address +#CHECK: l %r1,8(%r15,%r0) + + sll %r2,8(%r0) + br %r0 + l %r1,8(%r0) + l %r1,8(%r0,%r15) + l %r1,8(%r15,%r0) |