diff --git a/llvm/test/MC/SystemZ/insn-bad-zos-z13.s b/llvm/test/MC/SystemZ/insn-bad-zos-z13.s new file mode 100644 --- /dev/null +++ b/llvm/test/MC/SystemZ/insn-bad-zos-z13.s @@ -0,0 +1,60 @@ +*For z13 only. +*RUN: not llvm-mc -triple s390x-ibm-zos -mcpu=z13 < %s 2> %t +*RUN: FileCheck < %t %s +*RUN: not llvm-mc -triple s390x-ibm-zos -mcpu=arch11 < %s 2> %t +*RUN: FileCheck < %t %s + + +*CHECK-COUNT-6: error: invalid instruction + lochihe 1,2 + locghihe 1,2 + lochhihe 1,2 + locfhrhe 1,3 + locfhhe 1,2(3) + stocfhhe 1,2(3) + + +*CHECK-COUNT-6: error: invalid instruction + lochile 1,2 + locghile 1,2 + lochhile 1,2 + locfhrle 1,3 + locfhle 1,2(3) + stocfhle 1,2(3) + + +*CHECK-COUNT-6: error: invalid instruction + lochilh 1,2 + locghilh 1,2 + lochhilh 1,2 + locfhrlh 1,3 + locfhlh 1,2(3) + stocfhlh 1,2(3) + + +*CHECK-COUNT-6: error: invalid instruction + lochinhe 1,2 + locghinhe 1,2 + lochhinhe 1,2 + locfhrnhe 1,3 + locfhnhe 1,2(3) + stocfhnhe 1,2(3) + + +*CHECK-COUNT-6: error: invalid instruction + lochinle 1,2 + locghinle 1,2 + lochhinle 1,2 + locfhrnle 1,3 + locfhnle 1,2(3) + stocfhnle 1,2(3) + + +*CHECK-COUNT-6: error: invalid instruction + lochinlh 1,2 + locghinlh 1,2 + lochhinlh 1,2 + locfhrnlh 1,3 + locfhnlh 1,2(3) + stocfhnlh 1,2(3) + diff --git a/llvm/test/MC/SystemZ/insn-bad-zos-z14.s b/llvm/test/MC/SystemZ/insn-bad-zos-z14.s new file mode 100644 --- /dev/null +++ b/llvm/test/MC/SystemZ/insn-bad-zos-z14.s @@ -0,0 +1,23 @@ +* For z14 only. +* RUN: not llvm-mc -triple s390x-ibm-zos -mcpu=z14 < %s 2> %t +* RUN: FileCheck < %t %s +* RUN: not llvm-mc -triple s390x-ibm-zos -mcpu=arch12 < %s 2> %t +* RUN: FileCheck < %t %s + +*CHECK: error: invalid instruction + binle 0(1) + +*CHECK: error: invalid instruction + binhe 0(1) + +*CHECK: error: invalid instruction + bilh 0(1) + +*CHECK: error: invalid instruction + binlh 0(1) + +*CHECK: error: invalid instruction + bihe 0(1) + +*CHECK: error: invalid instruction + bile 0(1) diff --git a/llvm/test/MC/SystemZ/insn-bad-zos-z15.s b/llvm/test/MC/SystemZ/insn-bad-zos-z15.s new file mode 100644 --- /dev/null +++ b/llvm/test/MC/SystemZ/insn-bad-zos-z15.s @@ -0,0 +1,41 @@ +* For z15 only. +* RUN: not llvm-mc -triple s390x-ibm-zos -mcpu=z15 < %s 2> %t +* RUN: FileCheck < %t %s +* RUN: not llvm-mc -triple s390x-ibm-zos -mcpu=arch13 < %s 2> %t +* RUN: FileCheck < %t %s + +*CHECK-COUNT-3: error: invalid instruction + selrnle 0,1,2 + selfhrnle 0,1,2 + selgrnle 0,1,2 + + +*CHECK-COUNT-3: error: invalid instruction + selrnhe 0,1,2 + selfhrnhe 0,1,2 + selgrnhe 0,1,2 + + +*CHECK-COUNT-3: error: invalid instruction + selrnlh 0,1,2 + selfhrnlh 0,1,2 + selgrnlh 0,1,2 + + +*CHECK-COUNT-3: error: invalid instruction + selrlh 0,1,2 + selfhrlh 0,1,2 + selgrlh 0,1,2 + + +*CHECK-COUNT-3: error: invalid instruction + selrhe 0,1,2 + selfhrhe 0,1,2 + selgrhe 0,1,2 + + +*CHECK-COUNT-3: error: invalid instruction + selrle 0,1,2 + selfhrle 0,1,2 + selgrle 0,1,2 + diff --git a/llvm/test/MC/SystemZ/insn-bad-zos-z196.s b/llvm/test/MC/SystemZ/insn-bad-zos-z196.s new file mode 100644 --- /dev/null +++ b/llvm/test/MC/SystemZ/insn-bad-zos-z196.s @@ -0,0 +1,59 @@ +* For z196 and above. +* RUN: not llvm-mc -triple s390x-ibm-zos -mcpu=z196 < %s 2> %t +* RUN: FileCheck < %t %s +* RUN: not llvm-mc -triple s390x-ibm-zos -mcpu=arch9 < %s 2> %t +* RUN: FileCheck < %t %s + +*CHECK-COUNT-6: error: invalid instruction + locrhe 1,2 + locgrhe 1,2 + loche 1,2(3) + locghe 1,2(3) + stoche 1,2(3) + stocghe 1,2(3) + + +*CHECK-COUNT-6: error: invalid instruction + locrle 1,2 + locgrle 1,2 + locle 1,2(3) + locgle 1,2(3) + stocle 1,2(3) + stocgle 1,2(3) + + +*CHECK-COUNT-6: error: invalid instruction + locrlh 1,2 + locgrlh 1,2 + loclh 1,2(3) + locglh 1,2(3) + stoclh 1,2(3) + stocglh 1,2(3) + + +*CHECK-COUNT-6: error: invalid instruction + locrnhe 1,2 + locgrnhe 1,2 + locnhe 1,2(3) + locgnhe 1,2(3) + stocnhe 1,2(3) + stocgnhe 1,2(3) + + +*CHECK-COUNT-6: error: invalid instruction + locrnle 1,2 + locgrnle 1,2 + locnle 1,2(3) + locgnle 1,2(3) + stocnle 1,2(3) + stocgnle 1,2(3) + + +*CHECK-COUNT-6: error: invalid instruction + locrnlh 1,2 + locgrnlh 1,2 + locnlh 1,2(3) + locgnlh 1,2(3) + stocnlh 1,2(3) + stocgnlh 1,2(3) + diff --git a/llvm/test/MC/SystemZ/insn-bad-zos.s b/llvm/test/MC/SystemZ/insn-bad-zos.s new file mode 100644 --- /dev/null +++ b/llvm/test/MC/SystemZ/insn-bad-zos.s @@ -0,0 +1,158 @@ +* For z10 only. +* RUN: not llvm-mc -triple s390x-ibm-zos -mcpu=z10 < %s 2> %t +* RUN: FileCheck < %t %s +* RUN: not llvm-mc -triple s390x-ibm-zos -mcpu=arch8 < %s 2> %t +* RUN: FileCheck < %t %s + +*CHECK: error: invalid instruction + jgnop foo + +*CHECK: error: invalid instruction + jg foo + +*CHECK-COUNT-22: error: invalid instruction + jnle foo + brnle foo + jgnle foo + brnlel foo + bnle 0(1) + bnler 1 + crjnle 1,2,*+100 + cgrjnle 1,2,*+100 + cijnle 1,100,*+200 + cgijnle 1,100,*+200 + clrjnle 1,2,*+200 + clgrjnle 1,2,*+200 + clijnle 1,100,*+100 + clgijnle 1,100,*+100 + crtnle 0,foo + cgrtnle 0,foo + clrtnle 0,foo + clgrtnle 0,foo + citnle 1,foo + cgitnle 1,foo + clfitnle 1,foo + clgitnle 1,foo + + +*CHECK-COUNT-22: error: invalid instruction + jnhe foo + brnhe foo + jgnhe foo + brnhel foo + bnhe 0(1) + bnher 1 + crjnhe 1,2,*+100 + cgrjnhe 1,2,*+100 + cijnhe 1,100,*+200 + clgijnle 1,100,*+100 + cgijnhe 1,100,*+200 + clrjnhe 1,2,*+200 + clgrjnhe 1,2,*+200 + clijnhe 1,100,*+100 + crtnhe 0,1 + cgrtnhe 0,1 + clrtnhe 0,1 + clgrtnhe 0,1 + citnhe 1,1 + cgitnhe 1,1 + clfitnhe 1,1 + clgitnhe 1,1 + + +*CHECK-COUNT-22: error: invalid instruction + jnlh foo + brnlh foo + jgnlh foo + brnlhl foo + bnlh 0(1) + bnlhr 1 + crjnlh 1,2,*+200 + cgrjnlh 1,2,*+200 + cijnlh 1,100,*+200 + cgijnlh 1,100,*+200 + clrjnlh 1,2,*+200 + clgrjnlh 1,2,*+200 + clijnlh 1,100,*+100 + clgijnlh 1,100,*+100 + crtnlh 0,1 + cgrtnlh 0,1 + clrtnlh 0,1 + clgrtnlh 0,1 + citnlh 1,1 + cgitnlh 1,1 + clfitnlh 1,1 + clgitnlh 1,1 + +*CHECK-COUNT-22: error: invalid instruction + brlh foo + jglh foo + jllh foo + brlhl foo + blh 0(1) + blhr 1 + crjlh 1,2,*+100 + cgrjlh 1,2,*+100 + cijlh 1,100,*+200 + cgijlh 1,100,*+200 + clrjlh 1,2,*+200 + clgrjlh 1,2,*+200 + clijlh 1,100,*+100 + clgijlh 1,100,*+100 + crtlh 0,1 + cgrtlh 0,1 + clrtlh 0,1 + clgrtlh 0,1 + citlh 1,1 + cgitlh 1,1 + clfitlh 1,1 + clgitlh 1,1 + +*CHECK-COUNT-22: error: invalid instruction + jhe foo + brhe foo + jghe foo + brhel foo + bhe 0(1) + bher 1 + crjhe 1,2,*+200 + cgrjhe 1,2,*+200 + cijhe 1,100,*+200 + cgijhe 1,100,*+200 + clrjhe 1,2,*+200 + clgrjhe 1,2,*+200 + clijhe 1,100,*+100 + clgijhe 1,100,*+100 + crthe 0,1 + cgrthe 0,1 + clrthe 0,1 + clgrthe 0,1 + cithe 1,1 + cgithe 1,1 + clfithe 1,1 + clgithe 1,1 + +*CHECK-COUNT-22: error: invalid instruction + brle foo + jgle foo + jlle foo + brlel foo + ble 0(1) + bler 1 + crjle 1,2,*+200 + cgrjle 1,2,*+200 + cijle 1,100,*+200 + cgijle 1,100,*+200 + clrjle 1,2,*+200 + clgrjle 1,2,*+200 + clijle 1,100,*+200 + clgijle 1,100,*+100 + crtle 0,1 + cgrtle 0,1 + clrtle 0,1 + clgrtle 0,1 + citle 1,1 + cgitle 1,1 + clfitle 1,1 + clgitle 1,1 + diff --git a/llvm/test/MC/SystemZ/insn-good-zos-pcrel.s b/llvm/test/MC/SystemZ/insn-good-zos-pcrel.s new file mode 100644 --- /dev/null +++ b/llvm/test/MC/SystemZ/insn-good-zos-pcrel.s @@ -0,0 +1,102 @@ +* For z10 and above. +* RUN: llvm-mc -triple s390x-ibm-zos -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 +*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 + jlnop FOO + +*CHECK: jge 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 + jle FOO + brel FOO + +*CHECK: jgne 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 + jlne FOO + brnel FOO + +*CHECK: jgh 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 + jlh FOO + brhl FOO + +*CHECK: jgnh 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 + jlnh FOO + brnhl FOO + +*CHECK: jgl 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 + jll FOO + brll FOO + +*CHECK: jgnl 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 + jlnl FOO + brnll FOO + +*CHECK: jgz FOO * encoding: [0xc0,0x84,A,A,A,A] +*CHECK: fixup A - offset: 2, value: FOO+2, kind: FK_390_PC32DBL +*CHECK: jgz FOO * encoding: [0xc0,0x84,A,A,A,A] +*CHECK: fixup A - offset: 2, value: FOO+2, kind: FK_390_PC32DBL + jlz FOO + brzl FOO + +*CHECK: jgnz FOO * encoding: [0xc0,0x74,A,A,A,A] +*CHECK: fixup A - offset: 2, value: FOO+2, kind: FK_390_PC32DBL +*CHECK: jgnz FOO * encoding: [0xc0,0x74,A,A,A,A] +*CHECK: fixup A - offset: 2, value: FOO+2, kind: FK_390_PC32DBL + jlnz FOO + brnzl FOO + +*CHECK: jgp FOO * encoding: [0xc0,0x24,A,A,A,A] +*CHECK: fixup A - offset: 2, value: FOO+2, kind: FK_390_PC32DBL +*CHECK: jgp FOO * encoding: [0xc0,0x24,A,A,A,A] +*CHECK: fixup A - offset: 2, value: FOO+2, kind: FK_390_PC32DBL + jlp FOO + brpl FOO + +*CHECK: jgnp FOO * encoding: [0xc0,0xd4,A,A,A,A] +*CHECK: fixup A - offset: 2, value: FOO+2, kind: FK_390_PC32DBL +*CHECK: jgnp FOO * encoding: [0xc0,0xd4,A,A,A,A] +*CHECK: fixup A - offset: 2, value: FOO+2, kind: FK_390_PC32DBL + jlnp FOO + brnpl FOO + +*CHECK: jgm FOO * encoding: [0xc0,0x44,A,A,A,A] +*CHECK: fixup A - offset: 2, value: FOO+2, kind: FK_390_PC32DBL +*CHECK: jgm FOO * encoding: [0xc0,0x44,A,A,A,A] +*CHECK: fixup A - offset: 2, value: FOO+2, kind: FK_390_PC32DBL + jlm FOO + brml FOO + + +*CHECK: jgnm FOO * encoding: [0xc0,0xb4,A,A,A,A] +*CHECK: fixup A - offset: 2, value: FOO+2, kind: FK_390_PC32DBL +*CHECK: jgnm FOO * encoding: [0xc0,0xb4,A,A,A,A] +*CHECK: fixup A - offset: 2, value: FOO+2, kind: FK_390_PC32DBL + jlnm FOO + brnml FOO + +*CHECK: jg 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 + jlu FOO + brul FOO +