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// LDFADD17//------------------------------------------------------------------------------18 19ldfadd h0, h1, [x2]20// CHECK-INST: ldfadd h0, h1, [x2]21// CHECK-ENCODING: [0x41,0x00,0x20,0x7c]22// CHECK-ERROR: instruction requires: lsfe23// CHECK-UNKNOWN: 7c200041 <unknown>24 25ldfadd h2, h3, [sp]26// CHECK-INST: ldfadd h2, h3, [sp]27// CHECK-ENCODING: [0xe3,0x03,0x22,0x7c]28// CHECK-ERROR: instruction requires: lsfe29// CHECK-UNKNOWN: 7c2203e3 <unknown>30 31ldfadd s0, s1, [x2]32// CHECK-INST: ldfadd s0, s1, [x2]33// CHECK-ENCODING: [0x41,0x00,0x20,0xbc]34// CHECK-ERROR: instruction requires: lsfe35// CHECK-UNKNOWN: bc200041 <unknown>36 37ldfadd s2, s3, [sp]38// CHECK-INST: ldfadd s2, s3, [sp]39// CHECK-ENCODING: [0xe3,0x03,0x22,0xbc]40// CHECK-ERROR: instruction requires: lsfe41// CHECK-UNKNOWN: bc2203e3 <unknown>42 43ldfadd d0, d1, [x2]44// CHECK-INST: ldfadd d0, d1, [x2]45// CHECK-ENCODING: [0x41,0x00,0x20,0xfc]46// CHECK-ERROR: instruction requires: lsfe47// CHECK-UNKNOWN: fc200041 <unknown>48 49ldfadd d2, d3, [sp]50// CHECK-INST: ldfadd d2, d3, [sp]51// CHECK-ENCODING: [0xe3,0x03,0x22,0xfc]52// CHECK-ERROR: instruction requires: lsfe53// CHECK-UNKNOWN: fc2203e3 <unknown>54 55// -- ldfadda56 57ldfadda h0, h1, [x2]58// CHECK-INST: ldfadda h0, h1, [x2]59// CHECK-ENCODING: [0x41,0x00,0xa0,0x7c]60// CHECK-ERROR: instruction requires: lsfe61// CHECK-UNKNOWN: 7ca00041 <unknown>62 63ldfadda h2, h3, [sp]64// CHECK-INST: ldfadda h2, h3, [sp]65// CHECK-ENCODING: [0xe3,0x03,0xa2,0x7c]66// CHECK-ERROR: instruction requires: lsfe67// CHECK-UNKNOWN: 7ca203e3 <unknown>68 69ldfadda s0, s1, [x2]70// CHECK-INST: ldfadda s0, s1, [x2]71// CHECK-ENCODING: [0x41,0x00,0xa0,0xbc]72// CHECK-ERROR: instruction requires: lsfe73// CHECK-UNKNOWN: bca00041 <unknown>74 75ldfadda s2, s3, [sp]76// CHECK-INST: ldfadda s2, s3, [sp]77// CHECK-ENCODING: [0xe3,0x03,0xa2,0xbc]78// CHECK-ERROR: instruction requires: lsfe79// CHECK-UNKNOWN: bca203e3 <unknown>80 81ldfadda d0, d1, [x2]82// CHECK-INST: ldfadda d0, d1, [x2]83// CHECK-ENCODING: [0x41,0x00,0xa0,0xfc]84// CHECK-ERROR: instruction requires: lsfe85// CHECK-UNKNOWN: fca00041 <unknown>86 87ldfadda d2, d3, [sp]88// CHECK-INST: ldfadda d2, d3, [sp]89// CHECK-ENCODING: [0xe3,0x03,0xa2,0xfc]90// CHECK-ERROR: instruction requires: lsfe91// CHECK-UNKNOWN: fca203e3 <unknown>92 93// -- ldfaddal94 95ldfaddal h0, h1, [x2]96// CHECK-INST: ldfaddal h0, h1, [x2]97// CHECK-ENCODING: [0x41,0x00,0xe0,0x7c]98// CHECK-ERROR: instruction requires: lsfe99// CHECK-UNKNOWN: 7ce00041 <unknown>100 101ldfaddal h2, h3, [sp]102// CHECK-INST: ldfaddal h2, h3, [sp]103// CHECK-ENCODING: [0xe3,0x03,0xe2,0x7c]104// CHECK-ERROR: instruction requires: lsfe105// CHECK-UNKNOWN: 7ce203e3 <unknown>106 107ldfaddal s0, s1, [x2]108// CHECK-INST: ldfaddal s0, s1, [x2]109// CHECK-ENCODING: [0x41,0x00,0xe0,0xbc]110// CHECK-ERROR: instruction requires: lsfe111// CHECK-UNKNOWN: bce00041 <unknown>112 113ldfaddal s2, s3, [sp]114// CHECK-INST: ldfaddal s2, s3, [sp]115// CHECK-ENCODING: [0xe3,0x03,0xe2,0xbc]116// CHECK-ERROR: instruction requires: lsfe117// CHECK-UNKNOWN: bce203e3 <unknown>118 119ldfaddal d0, d1, [x2]120// CHECK-INST: ldfaddal d0, d1, [x2]121// CHECK-ENCODING: [0x41,0x00,0xe0,0xfc]122// CHECK-ERROR: instruction requires: lsfe123// CHECK-UNKNOWN: fce00041 <unknown>124 125ldfaddal d2, d3, [sp]126// CHECK-INST: ldfaddal d2, d3, [sp]127// CHECK-ENCODING: [0xe3,0x03,0xe2,0xfc]128// CHECK-ERROR: instruction requires: lsfe129// CHECK-UNKNOWN: fce203e3 <unknown>130 131// -- ldfaddl132 133ldfaddl h0, h1, [x2]134// CHECK-INST: ldfaddl h0, h1, [x2]135// CHECK-ENCODING: [0x41,0x00,0x60,0x7c]136// CHECK-ERROR: instruction requires: lsfe137// CHECK-UNKNOWN: 7c600041 <unknown>138 139ldfaddl h2, h3, [sp]140// CHECK-INST: ldfaddl h2, h3, [sp]141// CHECK-ENCODING: [0xe3,0x03,0x62,0x7c]142// CHECK-ERROR: instruction requires: lsfe143// CHECK-UNKNOWN: 7c6203e3 <unknown>144 145ldfaddl s0, s1, [x2]146// CHECK-INST: ldfaddl s0, s1, [x2]147// CHECK-ENCODING: [0x41,0x00,0x60,0xbc]148// CHECK-ERROR: instruction requires: lsfe149// CHECK-UNKNOWN: bc600041 <unknown>150 151ldfaddl s2, s3, [sp]152// CHECK-INST: ldfaddl s2, s3, [sp]153// CHECK-ENCODING: [0xe3,0x03,0x62,0xbc]154// CHECK-ERROR: instruction requires: lsfe155// CHECK-UNKNOWN: bc6203e3 <unknown>156 157ldfaddl d0, d1, [x2]158// CHECK-INST: ldfaddl d0, d1, [x2]159// CHECK-ENCODING: [0x41,0x00,0x60,0xfc]160// CHECK-ERROR: instruction requires: lsfe161// CHECK-UNKNOWN: fc600041 <unknown>162 163ldfaddl d2, d3, [sp]164// CHECK-INST: ldfaddl d2, d3, [sp]165// CHECK-ENCODING: [0xe3,0x03,0x62,0xfc]166// CHECK-ERROR: instruction requires: lsfe167// CHECK-UNKNOWN: fc6203e3 <unknown168 169//------------------------------------------------------------------------------170// LDBFADD171//------------------------------------------------------------------------------172 173ldbfadd h0, h1, [x2]174// CHECK-INST: ldbfadd h0, h1, [x2]175// CHECK-ENCODING: [0x41,0x00,0x20,0x3c]176// CHECK-ERROR: instruction requires: lsfe177// CHECK-UNKNOWN: 3c200041 <unknown>178 179ldbfadd h2, h3, [sp]180// CHECK-INST: ldbfadd h2, h3, [sp]181// CHECK-ENCODING: [0xe3,0x03,0x22,0x3c]182// CHECK-ERROR: instruction requires: lsfe183// CHECK-UNKNOWN: 3c2203e3 <unknown>184 185// -- ldbfadda186 187ldbfadda h0, h1, [x2]188// CHECK-INST: ldbfadda h0, h1, [x2]189// CHECK-ENCODING: [0x41,0x00,0xa0,0x3c]190// CHECK-ERROR: instruction requires: lsfe191// CHECK-UNKNOWN: 3ca00041 <unknown>192 193ldbfadda h2, h3, [sp]194// CHECK-INST: ldbfadda h2, h3, [sp]195// CHECK-ENCODING: [0xe3,0x03,0xa2,0x3c]196// CHECK-ERROR: instruction requires: lsfe197// CHECK-UNKNOWN: 3ca203e3 <unknown>198 199// -- ldbfaddal200 201ldbfaddal h0, h1, [x2]202// CHECK-INST: ldbfaddal h0, h1, [x2]203// CHECK-ENCODING: [0x41,0x00,0xe0,0x3c]204// CHECK-ERROR: instruction requires: lsfe205// CHECK-UNKNOWN: 3ce00041 <unknown>206 207ldbfaddal h2, h3, [sp]208// CHECK-INST: ldbfaddal h2, h3, [sp]209// CHECK-ENCODING: [0xe3,0x03,0xe2,0x3c]210// CHECK-ERROR: instruction requires: lsfe211// CHECK-UNKNOWN: 3ce203e3 <unknown>212 213// -- ldbfaddl214 215ldbfaddl h0, h1, [x2]216// CHECK-INST: ldbfaddl h0, h1, [x2]217// CHECK-ENCODING: [0x41,0x00,0x60,0x3c]218// CHECK-ERROR: instruction requires: lsfe219// CHECK-UNKNOWN: 3c600041 <unknown>220 221ldbfaddl h2, h3, [sp]222// CHECK-INST: ldbfaddl h2, h3, [sp]223// CHECK-ENCODING: [0xe3,0x03,0x62,0x3c]224// CHECK-ERROR: instruction requires: lsfe225// CHECK-UNKNOWN: 3c6203e3 <unknown>