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// LDFMINNM17//------------------------------------------------------------------------------18 19ldfminnm h0, h1, [x2]20// CHECK-INST: ldfminnm h0, h1, [x2]21// CHECK-ENCODING: [0x41,0x70,0x20,0x7c]22// CHECK-ERROR: instruction requires: lsfe23// CHECK-UNKNOWN: 7c207041 <unknown>24 25ldfminnm h2, h3, [sp]26// CHECK-INST: ldfminnm h2, h3, [sp]27// CHECK-ENCODING: [0xe3,0x73,0x22,0x7c]28// CHECK-ERROR: instruction requires: lsfe29// CHECK-UNKNOWN: 7c2273e3 <unknown>30 31ldfminnm s0, s1, [x2]32// CHECK-INST: ldfminnm s0, s1, [x2]33// CHECK-ENCODING: [0x41,0x70,0x20,0xbc]34// CHECK-ERROR: instruction requires: lsfe35// CHECK-UNKNOWN: bc207041 <unknown>36 37ldfminnm s2, s3, [sp]38// CHECK-INST: ldfminnm s2, s3, [sp]39// CHECK-ENCODING: [0xe3,0x73,0x22,0xbc]40// CHECK-ERROR: instruction requires: lsfe41// CHECK-UNKNOWN: bc2273e3 <unknown>42 43ldfminnm d0, d1, [x2]44// CHECK-INST: ldfminnm d0, d1, [x2]45// CHECK-ENCODING: [0x41,0x70,0x20,0xfc]46// CHECK-ERROR: instruction requires: lsfe47// CHECK-UNKNOWN: fc207041 <unknown>48 49ldfminnm d2, d3, [sp]50// CHECK-INST: ldfminnm d2, d3, [sp]51// CHECK-ENCODING: [0xe3,0x73,0x22,0xfc]52// CHECK-ERROR: instruction requires: lsfe53// CHECK-UNKNOWN: fc2273e3 <unknown>54 55// -- ldfminnma56 57ldfminnma h0, h1, [x2]58// CHECK-INST: ldfminnma h0, h1, [x2]59// CHECK-ENCODING: [0x41,0x70,0xa0,0x7c]60// CHECK-ERROR: instruction requires: lsfe61// CHECK-UNKNOWN: 7ca07041 <unknown>62 63ldfminnma h2, h3, [sp]64// CHECK-INST: ldfminnma h2, h3, [sp]65// CHECK-ENCODING: [0xe3,0x73,0xa2,0x7c]66// CHECK-ERROR: instruction requires: lsfe67// CHECK-UNKNOWN: 7ca273e3 <unknown>68 69ldfminnma s0, s1, [x2]70// CHECK-INST: ldfminnma s0, s1, [x2]71// CHECK-ENCODING: [0x41,0x70,0xa0,0xbc]72// CHECK-ERROR: instruction requires: lsfe73// CHECK-UNKNOWN: bca07041 <unknown>74 75ldfminnma s2, s3, [sp]76// CHECK-INST: ldfminnma s2, s3, [sp]77// CHECK-ENCODING: [0xe3,0x73,0xa2,0xbc]78// CHECK-ERROR: instruction requires: lsfe79// CHECK-UNKNOWN: bca273e3 <unknown>80 81ldfminnma d0, d1, [x2]82// CHECK-INST: ldfminnma d0, d1, [x2]83// CHECK-ENCODING: [0x41,0x70,0xa0,0xfc]84// CHECK-ERROR: instruction requires: lsfe85// CHECK-UNKNOWN: fca07041 <unknown>86 87ldfminnma d2, d3, [sp]88// CHECK-INST: ldfminnma d2, d3, [sp]89// CHECK-ENCODING: [0xe3,0x73,0xa2,0xfc]90// CHECK-ERROR: instruction requires: lsfe91// CHECK-UNKNOWN: fca273e3 <unknown>92 93// -- ldfminnmal94 95ldfminnmal h0, h1, [x2]96// CHECK-INST: ldfminnmal h0, h1, [x2]97// CHECK-ENCODING: [0x41,0x70,0xe0,0x7c]98// CHECK-ERROR: instruction requires: lsfe99// CHECK-UNKNOWN: 7ce07041 <unknown>100 101ldfminnmal h2, h3, [sp]102// CHECK-INST: ldfminnmal h2, h3, [sp]103// CHECK-ENCODING: [0xe3,0x73,0xe2,0x7c]104// CHECK-ERROR: instruction requires: lsfe105// CHECK-UNKNOWN: 7ce273e3 <unknown>106 107ldfminnmal s0, s1, [x2]108// CHECK-INST: ldfminnmal s0, s1, [x2]109// CHECK-ENCODING: [0x41,0x70,0xe0,0xbc]110// CHECK-ERROR: instruction requires: lsfe111// CHECK-UNKNOWN: bce07041 <unknown>112 113ldfminnmal s2, s3, [sp]114// CHECK-INST: ldfminnmal s2, s3, [sp]115// CHECK-ENCODING: [0xe3,0x73,0xe2,0xbc]116// CHECK-ERROR: instruction requires: lsfe117// CHECK-UNKNOWN: bce273e3 <unknown>118 119ldfminnmal d0, d1, [x2]120// CHECK-INST: ldfminnmal d0, d1, [x2]121// CHECK-ENCODING: [0x41,0x70,0xe0,0xfc]122// CHECK-ERROR: instruction requires: lsfe123// CHECK-UNKNOWN: fce07041 <unknown>124 125ldfminnmal d2, d3, [sp]126// CHECK-INST: ldfminnmal d2, d3, [sp]127// CHECK-ENCODING: [0xe3,0x73,0xe2,0xfc]128// CHECK-ERROR: instruction requires: lsfe129// CHECK-UNKNOWN: fce273e3 <unknown>130 131// -- ldfminnml132 133ldfminnml h0, h1, [x2]134// CHECK-INST: ldfminnml h0, h1, [x2]135// CHECK-ENCODING: [0x41,0x70,0x60,0x7c]136// CHECK-ERROR: instruction requires: lsfe137// CHECK-UNKNOWN: 7c607041 <unknown>138 139ldfminnml h2, h3, [sp]140// CHECK-INST: ldfminnml h2, h3, [sp]141// CHECK-ENCODING: [0xe3,0x73,0x62,0x7c]142// CHECK-ERROR: instruction requires: lsfe143// CHECK-UNKNOWN: 7c6273e3 <unknown>144 145ldfminnml s0, s1, [x2]146// CHECK-INST: ldfminnml s0, s1, [x2]147// CHECK-ENCODING: [0x41,0x70,0x60,0xbc]148// CHECK-ERROR: instruction requires: lsfe149// CHECK-UNKNOWN: bc607041 <unknown>150 151ldfminnml s2, s3, [sp]152// CHECK-INST: ldfminnml s2, s3, [sp]153// CHECK-ENCODING: [0xe3,0x73,0x62,0xbc]154// CHECK-ERROR: instruction requires: lsfe155// CHECK-UNKNOWN: bc6273e3 <unknown>156 157ldfminnml d0, d1, [x2]158// CHECK-INST: ldfminnml d0, d1, [x2]159// CHECK-ENCODING: [0x41,0x70,0x60,0xfc]160// CHECK-ERROR: instruction requires: lsfe161// CHECK-UNKNOWN: fc607041 <unknown>162 163ldfminnml d2, d3, [sp]164// CHECK-INST: ldfminnml d2, d3, [sp]165// CHECK-ENCODING: [0xe3,0x73,0x62,0xfc]166// CHECK-ERROR: instruction requires: lsfe167// CHECK-UNKNOWN: fc6273e3 <unknown>168 169//------------------------------------------------------------------------------170// LDBFMINNM171//------------------------------------------------------------------------------172 173ldbfminnm h0, h1, [x2]174// CHECK-INST: ldbfminnm h0, h1, [x2]175// CHECK-ENCODING: [0x41,0x70,0x20,0x3c]176// CHECK-ERROR: instruction requires: lsfe177// CHECK-UNKNOWN: 3c207041 <unknown>178 179ldbfminnm h2, h3, [sp]180// CHECK-INST: ldbfminnm h2, h3, [sp]181// CHECK-ENCODING: [0xe3,0x73,0x22,0x3c]182// CHECK-ERROR: instruction requires: lsfe183// CHECK-UNKNOWN: 3c2273e3 <unknown>184 185// -- ldbfminnma186 187ldbfminnma h0, h1, [x2]188// CHECK-INST: ldbfminnma h0, h1, [x2]189// CHECK-ENCODING: [0x41,0x70,0xa0,0x3c]190// CHECK-ERROR: instruction requires: lsfe191// CHECK-UNKNOWN: 3ca07041 <unknown>192 193ldbfminnma h2, h3, [sp]194// CHECK-INST: ldbfminnma h2, h3, [sp]195// CHECK-ENCODING: [0xe3,0x73,0xa2,0x3c]196// CHECK-ERROR: instruction requires: lsfe197// CHECK-UNKNOWN: 3ca273e3 <unknown>198 199// -- ldbfminnmal200 201ldbfminnmal h0, h1, [x2]202// CHECK-INST: ldbfminnmal h0, h1, [x2]203// CHECK-ENCODING: [0x41,0x70,0xe0,0x3c]204// CHECK-ERROR: instruction requires: lsfe205// CHECK-UNKNOWN: 3ce07041 <unknown>206 207ldbfminnmal h2, h3, [sp]208// CHECK-INST: ldbfminnmal h2, h3, [sp]209// CHECK-ENCODING: [0xe3,0x73,0xe2,0x3c]210// CHECK-ERROR: instruction requires: lsfe211// CHECK-UNKNOWN: 3ce273e3 <unknown>212 213// -- ldbfminnml214 215ldbfminnml h0, h1, [x2]216// CHECK-INST: ldbfminnml h0, h1, [x2]217// CHECK-ENCODING: [0x41,0x70,0x60,0x3c]218// CHECK-ERROR: instruction requires: lsfe219// CHECK-UNKNOWN: 3c607041 <unknown>220 221ldbfminnml h2, h3, [sp]222// CHECK-INST: ldbfminnml h2, h3, [sp]223// CHECK-ENCODING: [0xe3,0x73,0x62,0x3c]224// CHECK-ERROR: instruction requires: lsfe225// CHECK-UNKNOWN: 3c6273e3 <unknown>