73 changes: 73 additions & 0 deletions llvm/test/MC/AArch64/LSFE/stfmin-diagnostics.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+lsfe 2>&1 < %s| FileCheck %s

//------------------------------------------------------------------------------
// STFMIN
//------------------------------------------------------------------------------

stfmin h0, [w2]
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
// CHECK-NEXT: stfmin h0, [w2]
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:

stfmin s0, [x2, #4]
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
// CHECK-NEXT: stfmin s0, [x2, #4]
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:

// -- stfminl

stfminl h0, [w2]
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
// CHECK-NEXT: stfminl h0, [w2]
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:

stfminl s0, [x2, #4]
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
// CHECK-NEXT: stfminl s0, [x2, #4]
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:

//------------------------------------------------------------------------------
// STBFMIN
//------------------------------------------------------------------------------

stbfmin s0, [x2]
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
// CHECK-NEXT: stbfmin s0, [x2]
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:

stbfmin d0, [x2]
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
// CHECK-NEXT: stbfmin d0, [x2]
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}

stbfmin h0, [w2]
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
// CHECK-NEXT: stbfmin h0, [w2]
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}

stbfmin h0, [x2, #4]
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
// CHECK-NEXT: stbfmin h0, [x2, #4]
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}

// -- stbfminl

stbfminl s0, [x2]
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
// CHECK-NEXT: stbfminl s0, [x2]
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:

stbfminl d0, [x2]
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
// CHECK-NEXT: stbfminl d0, [x2]
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}

stbfminl h0, [w2]
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
// CHECK-NEXT: stbfminl h0, [w2]
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}

stbfminl h0, [x2, #4]
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
// CHECK-NEXT: stbfminl h0, [x2, #4]
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}
121 changes: 121 additions & 0 deletions llvm/test/MC/AArch64/LSFE/stfmin.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+lsfe < %s \
// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
// RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \
// RUN: | FileCheck %s --check-prefix=CHECK-ERROR
// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+lsfe < %s \
// RUN: | llvm-objdump -d --mattr=+lsfe - | FileCheck %s --check-prefix=CHECK-INST
// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+lsfe < %s \
// RUN: | llvm-objdump -d --mattr=-lsfe - | FileCheck %s --check-prefix=CHECK-UNKNOWN
// Disassemble encoding and check the re-encoding (-show-encoding) matches.
// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+lsfe < %s \
// RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \
// RUN: | llvm-mc -triple=aarch64 -mattr=+lsfe -disassemble -show-encoding \
// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST

//------------------------------------------------------------------------------
// STFMIN
//------------------------------------------------------------------------------

stfmin h0, [x2]
// CHECK-INST: stfmin h0, [x2]
// CHECK-ENCODING: [0x5f,0xd0,0x20,0x7c]
// CHECK-ERROR: instruction requires: lsfe
// CHECK-UNKNOWN: 7c20d05f <unknown>

stfmin h2, [sp]
// CHECK-INST: stfmin h2, [sp]
// CHECK-ENCODING: [0xff,0xd3,0x22,0x7c]
// CHECK-ERROR: instruction requires: lsfe
// CHECK-UNKNOWN: 7c22d3ff <unknown>

stfmin s0, [x2]
// CHECK-INST: stfmin s0, [x2]
// CHECK-ENCODING: [0x5f,0xd0,0x20,0xbc]
// CHECK-ERROR: instruction requires: lsfe
// CHECK-UNKNOWN: bc20d05f <unknown>

stfmin s2, [sp]
// CHECK-INST: stfmin s2, [sp]
// CHECK-ENCODING: [0xff,0xd3,0x22,0xbc]
// CHECK-ERROR: instruction requires: lsfe
// CHECK-UNKNOWN: bc22d3ff <unknown>

stfmin d0, [x2]
// CHECK-INST: stfmin d0, [x2]
// CHECK-ENCODING: [0x5f,0xd0,0x20,0xfc]
// CHECK-ERROR: instruction requires: lsfe
// CHECK-UNKNOWN: fc20d05f <unknown>

stfmin d2, [sp]
// CHECK-INST: stfmin d2, [sp]
// CHECK-ENCODING: [0xff,0xd3,0x22,0xfc]
// CHECK-ERROR: instruction requires: lsfe
// CHECK-UNKNOWN: fc22d3ff <unknown>

// --stfminl

stfminl h0, [x2]
// CHECK-INST: stfminl h0, [x2]
// CHECK-ENCODING: [0x5f,0xd0,0x60,0x7c]
// CHECK-ERROR: instruction requires: lsfe
// CHECK-UNKNOWN: 7c60d05f <unknown>

stfminl h2, [sp]
// CHECK-INST: stfminl h2, [sp]
// CHECK-ENCODING: [0xff,0xd3,0x62,0x7c]
// CHECK-ERROR: instruction requires: lsfe
// CHECK-UNKNOWN: 7c62d3ff <unknown>

stfminl s0, [x2]
// CHECK-INST: stfminl s0, [x2]
// CHECK-ENCODING: [0x5f,0xd0,0x60,0xbc]
// CHECK-ERROR: instruction requires: lsfe
// CHECK-UNKNOWN: bc60d05f <unknown>

stfminl s2, [sp]
// CHECK-INST: stfminl s2, [sp]
// CHECK-ENCODING: [0xff,0xd3,0x62,0xbc]
// CHECK-ERROR: instruction requires: lsfe
// CHECK-UNKNOWN: bc62d3ff <unknown>

stfminl d0, [x2]
// CHECK-INST: stfminl d0, [x2]
// CHECK-ENCODING: [0x5f,0xd0,0x60,0xfc]
// CHECK-ERROR: instruction requires: lsfe
// CHECK-UNKNOWN: fc60d05f <unknown>

stfminl d2, [sp]
// CHECK-INST: stfminl d2, [sp]
// CHECK-ENCODING: [0xff,0xd3,0x62,0xfc]
// CHECK-ERROR: instruction requires: lsfe
// CHECK-UNKNOWN: fc62d3ff <unknown>

//------------------------------------------------------------------------------
// STBFMIN
//------------------------------------------------------------------------------

stbfmin h0, [x2]
// CHECK-INST: stbfmin h0, [x2]
// CHECK-ENCODING: [0x5f,0xd0,0x20,0x3c]
// CHECK-ERROR: instruction requires: lsfe
// CHECK-UNKNOWN: 3c20d05f <unknown>

stbfmin h2, [sp]
// CHECK-INST: stbfmin h2, [sp]
// CHECK-ENCODING: [0xff,0xd3,0x22,0x3c]
// CHECK-ERROR: instruction requires: lsfe
// CHECK-UNKNOWN: 3c22d3ff <unknown>

// -- stbfminl

stbfminl h0, [x2]
// CHECK-INST: stbfminl h0, [x2]
// CHECK-ENCODING: [0x5f,0xd0,0x60,0x3c]
// CHECK-ERROR: instruction requires: lsfe
// CHECK-UNKNOWN: 3c60d05f <unknown>

stbfminl h2, [sp]
// CHECK-INST: stbfminl h2, [sp]
// CHECK-ENCODING: [0xff,0xd3,0x62,0x3c]
// CHECK-ERROR: instruction requires: lsfe
// CHECK-UNKNOWN: 3c62d3ff <unknown>
73 changes: 73 additions & 0 deletions llvm/test/MC/AArch64/LSFE/stfminnm-diagnostics.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+lsfe 2>&1 < %s| FileCheck %s

//------------------------------------------------------------------------------
// STFMINNM
//------------------------------------------------------------------------------

stfminnm h0, [w2]
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
// CHECK-NEXT: stfminnm h0, [w2]
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:

stfminnm s0, [x2, #4]
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
// CHECK-NEXT: stfminnm s0, [x2, #4]
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:

// -- stfminnml

stfminnml h0, [w2]
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
// CHECK-NEXT: stfminnml h0, [w2]
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:

stfminnml s0, [x2, #4]
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
// CHECK-NEXT: stfminnml s0, [x2, #4]
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:

//------------------------------------------------------------------------------
// STBFMINNM
//------------------------------------------------------------------------------

stbfminnm s0, [x2]
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
// CHECK-NEXT: stbfminnm s0, [x2]
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:

stbfminnm d0, [x2]
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
// CHECK-NEXT: stbfminnm d0, [x2]
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}

stbfminnm h0, [w2]
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
// CHECK-NEXT: stbfminnm h0, [w2]
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}

stbfminnm h0, [x2, #4]
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
// CHECK-NEXT: stbfminnm h0, [x2, #4]
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}

// -- stbfminnml

stbfminnml s0, [x2]
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
// CHECK-NEXT: stbfminnml s0, [x2]
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:

stbfminnml d0, [x2]
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
// CHECK-NEXT: stbfminnml d0, [x2]
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}

stbfminnml h0, [w2]
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
// CHECK-NEXT: stbfminnml h0, [w2]
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}

stbfminnml h0, [x2, #4]
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
// CHECK-NEXT: stbfminnml h0, [x2, #4]
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}
121 changes: 121 additions & 0 deletions llvm/test/MC/AArch64/LSFE/stfminnm.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+lsfe < %s \
// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
// RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \
// RUN: | FileCheck %s --check-prefix=CHECK-ERROR
// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+lsfe < %s \
// RUN: | llvm-objdump -d --mattr=+lsfe - | FileCheck %s --check-prefix=CHECK-INST
// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+lsfe < %s \
// RUN: | llvm-objdump -d --mattr=-lsfe - | FileCheck %s --check-prefix=CHECK-UNKNOWN
// Disassemble encoding and check the re-encoding (-show-encoding) matches.
// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+lsfe < %s \
// RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \
// RUN: | llvm-mc -triple=aarch64 -mattr=+lsfe -disassemble -show-encoding \
// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST

//------------------------------------------------------------------------------
// STFMINNM
//------------------------------------------------------------------------------

stfminnm h0, [x2]
// CHECK-INST: stfminnm h0, [x2]
// CHECK-ENCODING: [0x5f,0xf0,0x20,0x7c]
// CHECK-ERROR: instruction requires: lsfe
// CHECK-UNKNOWN: 7c20f05f <unknown>

stfminnm h2, [sp]
// CHECK-INST: stfminnm h2, [sp]
// CHECK-ENCODING: [0xff,0xf3,0x22,0x7c]
// CHECK-ERROR: instruction requires: lsfe
// CHECK-UNKNOWN: 7c22f3ff <unknown>

stfminnm s0, [x2]
// CHECK-INST: stfminnm s0, [x2]
// CHECK-ENCODING: [0x5f,0xf0,0x20,0xbc]
// CHECK-ERROR: instruction requires: lsfe
// CHECK-UNKNOWN: bc20f05f <unknown>

stfminnm s2, [sp]
// CHECK-INST: stfminnm s2, [sp]
// CHECK-ENCODING: [0xff,0xf3,0x22,0xbc]
// CHECK-ERROR: instruction requires: lsfe
// CHECK-UNKNOWN: bc22f3ff <unknown>

stfminnm d0, [x2]
// CHECK-INST: stfminnm d0, [x2]
// CHECK-ENCODING: [0x5f,0xf0,0x20,0xfc]
// CHECK-ERROR: instruction requires: lsfe
// CHECK-UNKNOWN: fc20f05f <unknown>

stfminnm d2, [sp]
// CHECK-INST: stfminnm d2, [sp]
// CHECK-ENCODING: [0xff,0xf3,0x22,0xfc]
// CHECK-ERROR: instruction requires: lsfe
// CHECK-UNKNOWN: fc22f3ff <unknown>

// -- stfminnml

stfminnml h0, [x2]
// CHECK-INST: stfminnml h0, [x2]
// CHECK-ENCODING: [0x5f,0xf0,0x60,0x7c]
// CHECK-ERROR: instruction requires: lsfe
// CHECK-UNKNOWN: 7c60f05f <unknown>

stfminnml h2, [sp]
// CHECK-INST: stfminnml h2, [sp]
// CHECK-ENCODING: [0xff,0xf3,0x62,0x7c]
// CHECK-ERROR: instruction requires: lsfe
// CHECK-UNKNOWN: 7c62f3ff <unknown>

stfminnml s0, [x2]
// CHECK-INST: stfminnml s0, [x2]
// CHECK-ENCODING: [0x5f,0xf0,0x60,0xbc]
// CHECK-ERROR: instruction requires: lsfe
// CHECK-UNKNOWN: bc60f05f <unknown>

stfminnml s2, [sp]
// CHECK-INST: stfminnml s2, [sp]
// CHECK-ENCODING: [0xff,0xf3,0x62,0xbc]
// CHECK-ERROR: instruction requires: lsfe
// CHECK-UNKNOWN: bc62f3ff <unknown>

stfminnml d0, [x2]
// CHECK-INST: stfminnml d0, [x2]
// CHECK-ENCODING: [0x5f,0xf0,0x60,0xfc]
// CHECK-ERROR: instruction requires: lsfe
// CHECK-UNKNOWN: fc60f05f <unknown>

stfminnml d2, [sp]
// CHECK-INST: stfminnml d2, [sp]
// CHECK-ENCODING: [0xff,0xf3,0x62,0xfc]
// CHECK-ERROR: instruction requires: lsfe
// CHECK-UNKNOWN: fc62f3ff <unknown>

//------------------------------------------------------------------------------
// STBFMINNM
//------------------------------------------------------------------------------

stbfminnm h0, [x2]
// CHECK-INST: stbfminnm h0, [x2]
// CHECK-ENCODING: [0x5f,0xf0,0x20,0x3c]
// CHECK-ERROR: instruction requires: lsfe
// CHECK-UNKNOWN: 3c20f05f <unknown>

stbfminnm h2, [sp]
// CHECK-INST: stbfminnm h2, [sp]
// CHECK-ENCODING: [0xff,0xf3,0x22,0x3c]
// CHECK-ERROR: instruction requires: lsfe
// CHECK-UNKNOWN: 3c22f3ff <unknown>

// -- stbfminnml

stbfminnml h0, [x2]
// CHECK-INST: stbfminnml h0, [x2]
// CHECK-ENCODING: [0x5f,0xf0,0x60,0x3c]
// CHECK-ERROR: instruction requires: lsfe
// CHECK-UNKNOWN: 3c60f05f <unknown>

stbfminnml h2, [sp]
// CHECK-INST: stbfminnml h2, [sp]
// CHECK-ENCODING: [0xff,0xf3,0x62,0x3c]
// CHECK-ERROR: instruction requires: lsfe
// CHECK-UNKNOWN: 3c62f3ff <unknown>