225 lines · plain
1// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+lsfe < %s \2// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST3// RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \4// RUN: | FileCheck %s --check-prefix=CHECK-ERROR5// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+lsfe < %s \6// RUN: | llvm-objdump -d --mattr=+lsfe - | FileCheck %s --check-prefix=CHECK-INST7// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+lsfe < %s \8// RUN: | llvm-objdump -d --mattr=-lsfe - | FileCheck %s --check-prefix=CHECK-UNKNOWN9// Disassemble encoding and check the re-encoding (-show-encoding) matches.10// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+lsfe < %s \11// RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \12// RUN: | llvm-mc -triple=aarch64 -mattr=+lsfe -disassemble -show-encoding \13// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST14 15//------------------------------------------------------------------------------16// LDFMAX17//------------------------------------------------------------------------------18 19ldfmax h0, h1, [x2]20// CHECK-INST: ldfmax h0, h1, [x2]21// CHECK-ENCODING: [0x41,0x40,0x20,0x7c]22// CHECK-ERROR: instruction requires: lsfe23// CHECK-UNKNOWN: 7c204041 <unknown>24 25ldfmax h2, h3, [sp]26// CHECK-INST: ldfmax h2, h3, [sp]27// CHECK-ENCODING: [0xe3,0x43,0x22,0x7c]28// CHECK-ERROR: instruction requires: lsfe29// CHECK-UNKNOWN: 7c2243e3 <unknown>30 31ldfmax s0, s1, [x2]32// CHECK-INST: ldfmax s0, s1, [x2]33// CHECK-ENCODING: [0x41,0x40,0x20,0xbc]34// CHECK-ERROR: instruction requires: lsfe35// CHECK-UNKNOWN: bc204041 <unknown>36 37ldfmax s2, s3, [sp]38// CHECK-INST: ldfmax s2, s3, [sp]39// CHECK-ENCODING: [0xe3,0x43,0x22,0xbc]40// CHECK-ERROR: instruction requires: lsfe41// CHECK-UNKNOWN: bc2243e3 <unknown>42 43ldfmax d0, d1, [x2]44// CHECK-INST: ldfmax d0, d1, [x2]45// CHECK-ENCODING: [0x41,0x40,0x20,0xfc]46// CHECK-ERROR: instruction requires: lsfe47// CHECK-UNKNOWN: fc204041 <unknown>48 49ldfmax d2, d3, [sp]50// CHECK-INST: ldfmax d2, d3, [sp]51// CHECK-ENCODING: [0xe3,0x43,0x22,0xfc]52// CHECK-ERROR: instruction requires: lsfe53// CHECK-UNKNOWN: fc2243e3 <unknown>54 55// -- ldfmaxa56 57ldfmaxa h0, h1, [x2]58// CHECK-INST: ldfmaxa h0, h1, [x2]59// CHECK-ENCODING: [0x41,0x40,0xa0,0x7c]60// CHECK-ERROR: instruction requires: lsfe61// CHECK-UNKNOWN: 7ca04041 <unknown>62 63ldfmaxa h2, h3, [sp]64// CHECK-INST: ldfmaxa h2, h3, [sp]65// CHECK-ENCODING: [0xe3,0x43,0xa2,0x7c]66// CHECK-ERROR: instruction requires: lsfe67// CHECK-UNKNOWN: 7ca243e3 <unknown>68 69ldfmaxa s0, s1, [x2]70// CHECK-INST: ldfmaxa s0, s1, [x2]71// CHECK-ENCODING: [0x41,0x40,0xa0,0xbc]72// CHECK-ERROR: instruction requires: lsfe73// CHECK-UNKNOWN: bca04041 <unknown>74 75ldfmaxa s2, s3, [sp]76// CHECK-INST: ldfmaxa s2, s3, [sp]77// CHECK-ENCODING: [0xe3,0x43,0xa2,0xbc]78// CHECK-ERROR: instruction requires: lsfe79// CHECK-UNKNOWN: bca243e3 <unknown>80 81ldfmaxa d0, d1, [x2]82// CHECK-INST: ldfmaxa d0, d1, [x2]83// CHECK-ENCODING: [0x41,0x40,0xa0,0xfc]84// CHECK-ERROR: instruction requires: lsfe85// CHECK-UNKNOWN: fca04041 <unknown>86 87ldfmaxa d2, d3, [sp]88// CHECK-INST: ldfmaxa d2, d3, [sp]89// CHECK-ENCODING: [0xe3,0x43,0xa2,0xfc]90// CHECK-ERROR: instruction requires: lsfe91// CHECK-UNKNOWN: fca243e3 <unknown>92 93// -- ldfmaxal94 95ldfmaxal h0, h1, [x2]96// CHECK-INST: ldfmaxal h0, h1, [x2]97// CHECK-ENCODING: [0x41,0x40,0xe0,0x7c]98// CHECK-ERROR: instruction requires: lsfe99// CHECK-UNKNOWN: 7ce04041 <unknown>100 101ldfmaxal h2, h3, [sp]102// CHECK-INST: ldfmaxal h2, h3, [sp]103// CHECK-ENCODING: [0xe3,0x43,0xe2,0x7c]104// CHECK-ERROR: instruction requires: lsfe105// CHECK-UNKNOWN: 7ce243e3 <unknown>106 107ldfmaxal s0, s1, [x2]108// CHECK-INST: ldfmaxal s0, s1, [x2]109// CHECK-ENCODING: [0x41,0x40,0xe0,0xbc]110// CHECK-ERROR: instruction requires: lsfe111// CHECK-UNKNOWN: bce04041 <unknown>112 113ldfmaxal s2, s3, [sp]114// CHECK-INST: ldfmaxal s2, s3, [sp]115// CHECK-ENCODING: [0xe3,0x43,0xe2,0xbc]116// CHECK-ERROR: instruction requires: lsfe117// CHECK-UNKNOWN: bce243e3 <unknown>118 119ldfmaxal d0, d1, [x2]120// CHECK-INST: ldfmaxal d0, d1, [x2]121// CHECK-ENCODING: [0x41,0x40,0xe0,0xfc]122// CHECK-ERROR: instruction requires: lsfe123// CHECK-UNKNOWN: fce04041 <unknown>124 125ldfmaxal d2, d3, [sp]126// CHECK-INST: ldfmaxal d2, d3, [sp]127// CHECK-ENCODING: [0xe3,0x43,0xe2,0xfc]128// CHECK-ERROR: instruction requires: lsfe129// CHECK-UNKNOWN: fce243e3 <unknown>130 131// -- ldfmaxl132 133ldfmaxl h0, h1, [x2]134// CHECK-INST: ldfmaxl h0, h1, [x2]135// CHECK-ENCODING: [0x41,0x40,0x60,0x7c]136// CHECK-ERROR: instruction requires: lsfe137// CHECK-UNKNOWN: 7c604041 <unknown>138 139ldfmaxl h2, h3, [sp]140// CHECK-INST: ldfmaxl h2, h3, [sp]141// CHECK-ENCODING: [0xe3,0x43,0x62,0x7c]142// CHECK-ERROR: instruction requires: lsfe143// CHECK-UNKNOWN: 7c6243e3 <unknown>144 145ldfmaxl s0, s1, [x2]146// CHECK-INST: ldfmaxl s0, s1, [x2]147// CHECK-ENCODING: [0x41,0x40,0x60,0xbc]148// CHECK-ERROR: instruction requires: lsfe149// CHECK-UNKNOWN: bc604041 <unknown>150 151ldfmaxl s2, s3, [sp]152// CHECK-INST: ldfmaxl s2, s3, [sp]153// CHECK-ENCODING: [0xe3,0x43,0x62,0xbc]154// CHECK-ERROR: instruction requires: lsfe155// CHECK-UNKNOWN: bc6243e3 <unknown>156 157ldfmaxl d0, d1, [x2]158// CHECK-INST: ldfmaxl d0, d1, [x2]159// CHECK-ENCODING: [0x41,0x40,0x60,0xfc]160// CHECK-ERROR: instruction requires: lsfe161// CHECK-UNKNOWN: fc604041 <unknown>162 163ldfmaxl d2, d3, [sp]164// CHECK-INST: ldfmaxl d2, d3, [sp]165// CHECK-ENCODING: [0xe3,0x43,0x62,0xfc]166// CHECK-ERROR: instruction requires: lsfe167// CHECK-UNKNOWN: fc6243e3 <unknown>168 169//------------------------------------------------------------------------------170// LDBFMAX171//------------------------------------------------------------------------------172 173ldbfmax h0, h1, [x2]174// CHECK-INST: ldbfmax h0, h1, [x2]175// CHECK-ENCODING: [0x41,0x40,0x20,0x3c]176// CHECK-ERROR: instruction requires: lsfe177// CHECK-UNKNOWN: 3c204041 <unknown>178 179ldbfmax h2, h3, [sp]180// CHECK-INST: ldbfmax h2, h3, [sp]181// CHECK-ENCODING: [0xe3,0x43,0x22,0x3c]182// CHECK-ERROR: instruction requires: lsfe183// CHECK-UNKNOWN: 3c2243e3 <unknown>184 185// -- ldbfmaxa186 187ldbfmaxa h0, h1, [x2]188// CHECK-INST: ldbfmaxa h0, h1, [x2]189// CHECK-ENCODING: [0x41,0x40,0xa0,0x3c]190// CHECK-ERROR: instruction requires: lsfe191// CHECK-UNKNOWN: 3ca04041 <unknown>192 193ldbfmaxa h2, h3, [sp]194// CHECK-INST: ldbfmaxa h2, h3, [sp]195// CHECK-ENCODING: [0xe3,0x43,0xa2,0x3c]196// CHECK-ERROR: instruction requires: lsfe197// CHECK-UNKNOWN: 3ca243e3 <unknown>198 199// -- ldbfmaxal200 201ldbfmaxal h0, h1, [x2]202// CHECK-INST: ldbfmaxal h0, h1, [x2]203// CHECK-ENCODING: [0x41,0x40,0xe0,0x3c]204// CHECK-ERROR: instruction requires: lsfe205// CHECK-UNKNOWN: 3ce04041 <unknown>206 207ldbfmaxal h2, h3, [sp]208// CHECK-INST: ldbfmaxal h2, h3, [sp]209// CHECK-ENCODING: [0xe3,0x43,0xe2,0x3c]210// CHECK-ERROR: instruction requires: lsfe211// CHECK-UNKNOWN: 3ce243e3 <unknown>212 213// -- ldbfmaxl214 215ldbfmaxl h0, h1, [x2]216// CHECK-INST: ldbfmaxl h0, h1, [x2]217// CHECK-ENCODING: [0x41,0x40,0x60,0x3c]218// CHECK-ERROR: instruction requires: lsfe219// CHECK-UNKNOWN: 3c604041 <unknown>220 221ldbfmaxl h2, h3, [sp]222// CHECK-INST: ldbfmaxl h2, h3, [sp]223// CHECK-ENCODING: [0xe3,0x43,0x62,0x3c]224// CHECK-ERROR: instruction requires: lsfe225// CHECK-UNKNOWN: 3c6243e3 <unknown>