Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[AArch64][SVE] Asm: Support for SVE condition code aliases
SVE overloads the AArch64 PSTATE condition flags and introduces a set of condition code aliases for the assembler. The details are described in section 2.2 of the architecture reference manual supplement for SVE. In short: SVE alias => AArch64 name -------------------------- NONE => EQ ANY => NE NLAST => HS LAST => LO FIRST => MI NFRST => PL PMORE => HI PLAST => LS TCONT => GE TSTOP => LT Reviewers: rengolin, fhahn, SjoerdMeijer, samparker, javed.absar Reviewed By: fhahn Differential Revision: https://reviews.llvm.org/D48869 llvm-svn: 336245
- Loading branch information
1 parent
a2d5825
commit e31e6d4
Showing
2 changed files
with
82 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
// RUN: llvm-mc -triple aarch64 -show-encoding -mattr=+sve < %s | FileCheck %s | ||
// RUN: not llvm-mc -triple aarch64 -show-encoding -mattr=-sve < %s 2>&1 | FileCheck %s --check-prefix=CHECK-DIAG | ||
|
||
//------------------------------------------------------------------------------ | ||
// Condition code aliases for SVE | ||
//------------------------------------------------------------------------------ | ||
|
||
b.none lbl | ||
// CHECK: b.eq lbl // encoding: [0bAAA00000,A,A,0x54] | ||
// CHECK-NEXT: // fixup A - offset: 0, value: lbl, kind: fixup_aarch64_pcrel_branch19 | ||
// CHECK-DIAG: invalid condition code | ||
// CHECK-DIAG-NEXT: b.none lbl | ||
|
||
b.any lbl | ||
// CHECK: b.ne lbl // encoding: [0bAAA00001,A,A,0x54] | ||
// CHECK-NEXT: // fixup A - offset: 0, value: lbl, kind: fixup_aarch64_pcrel_branch19 | ||
// CHECK-DIAG: invalid condition code | ||
// CHECK-DIAG-NEXT: b.any lbl | ||
|
||
b.nlast lbl | ||
// CHECK: b.hs lbl // encoding: [0bAAA00010,A,A,0x54] | ||
// CHECK-NEXT: // fixup A - offset: 0, value: lbl, kind: fixup_aarch64_pcrel_branch19 | ||
// CHECK-DIAG: invalid condition code | ||
// CHECK-DIAG-NEXT: b.nlast lbl | ||
|
||
b.last lbl | ||
// CHECK: b.lo lbl // encoding: [0bAAA00011,A,A,0x54] | ||
// CHECK-NEXT: // fixup A - offset: 0, value: lbl, kind: fixup_aarch64_pcrel_branch19 | ||
// CHECK-DIAG: invalid condition code | ||
// CHECK-DIAG-NEXT: b.last lbl | ||
|
||
b.first lbl | ||
// CHECK: b.mi lbl // encoding: [0bAAA00100,A,A,0x54] | ||
// CHECK-NEXT: // fixup A - offset: 0, value: lbl, kind: fixup_aarch64_pcrel_branch19 | ||
// CHECK-DIAG: invalid condition code | ||
// CHECK-DIAG-NEXT: b.first lbl | ||
|
||
b.nfrst lbl | ||
// CHECK: b.pl lbl // encoding: [0bAAA00101,A,A,0x54] | ||
// CHECK-NEXT: // fixup A - offset: 0, value: lbl, kind: fixup_aarch64_pcrel_branch19 | ||
// CHECK-DIAG: invalid condition code | ||
// CHECK-DIAG-NEXT: b.nfrst lbl | ||
|
||
b.pmore lbl | ||
// CHECK: b.hi lbl // encoding: [0bAAA01000,A,A,0x54] | ||
// CHECK-NEXT: // fixup A - offset: 0, value: lbl, kind: fixup_aarch64_pcrel_branch19 | ||
// CHECK-DIAG: invalid condition code | ||
// CHECK-DIAG-NEXT: b.pmore lbl | ||
|
||
b.plast lbl | ||
// CHECK: b.ls lbl // encoding: [0bAAA01001,A,A,0x54] | ||
// CHECK-NEXT: // fixup A - offset: 0, value: lbl, kind: fixup_aarch64_pcrel_branch19 | ||
// CHECK-DIAG: invalid condition code | ||
// CHECK-DIAG-NEXT: b.plast lbl | ||
|
||
b.tcont lbl | ||
// CHECK: b.ge lbl // encoding: [0bAAA01010,A,A,0x54] | ||
// CHECK-NEXT: // fixup A - offset: 0, value: lbl, kind: fixup_aarch64_pcrel_branch19 | ||
// CHECK-DIAG: invalid condition code | ||
// CHECK-DIAG-NEXT: b.tcont lbl | ||
|
||
b.tstop lbl | ||
// CHECK: b.lt lbl // encoding: [0bAAA01011,A,A,0x54] | ||
// CHECK-NEXT: // fixup A - offset: 0, value: lbl, kind: fixup_aarch64_pcrel_branch19 | ||
// CHECK-DIAG: invalid condition code | ||
// CHECK-DIAG-NEXT: b.tstop lbl |