1// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+lsfe < %s \ 2// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST 3// RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \ 4// RUN: | FileCheck %s --check-prefix=CHECK-ERROR 5// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+lsfe < %s \ 6// RUN: | llvm-objdump -d --mattr=+lsfe - | FileCheck %s --check-prefix=CHECK-INST 7// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+lsfe < %s \ 8// RUN: | llvm-objdump -d --mattr=-lsfe - | FileCheck %s --check-prefix=CHECK-UNKNOWN 9// 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-INST 14 15//------------------------------------------------------------------------------ 16// LDFMAX 17//------------------------------------------------------------------------------ 18 19ldfmax h0, h1, [x2] 20// CHECK-INST: ldfmax h0, h1, [x2] 21// CHECK-ENCODING: [0x41,0x40,0x20,0x7c] 22// CHECK-ERROR: instruction requires: lsfe 23// 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: lsfe 29// 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: lsfe 35// 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: lsfe 41// 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: lsfe 47// 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: lsfe 53// CHECK-UNKNOWN: fc2243e3 <unknown> 54 55// -- ldfmaxa 56 57ldfmaxa h0, h1, [x2] 58// CHECK-INST: ldfmaxa h0, h1, [x2] 59// CHECK-ENCODING: [0x41,0x40,0xa0,0x7c] 60// CHECK-ERROR: instruction requires: lsfe 61// 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: lsfe 67// 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: lsfe 73// 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: lsfe 79// 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: lsfe 85// 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: lsfe 91// CHECK-UNKNOWN: fca243e3 <unknown> 92 93// -- ldfmaxal 94 95ldfmaxal h0, h1, [x2] 96// CHECK-INST: ldfmaxal h0, h1, [x2] 97// CHECK-ENCODING: [0x41,0x40,0xe0,0x7c] 98// CHECK-ERROR: instruction requires: lsfe 99// 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: lsfe 105// 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: lsfe 111// 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: lsfe 117// 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: lsfe 123// 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: lsfe 129// CHECK-UNKNOWN: fce243e3 <unknown> 130 131// -- ldfmaxl 132 133ldfmaxl h0, h1, [x2] 134// CHECK-INST: ldfmaxl h0, h1, [x2] 135// CHECK-ENCODING: [0x41,0x40,0x60,0x7c] 136// CHECK-ERROR: instruction requires: lsfe 137// 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: lsfe 143// 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: lsfe 149// 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: lsfe 155// 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: lsfe 161// 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: lsfe 167// CHECK-UNKNOWN: fc6243e3 <unknown> 168 169//------------------------------------------------------------------------------ 170// LDBFMAX 171//------------------------------------------------------------------------------ 172 173ldbfmax h0, h1, [x2] 174// CHECK-INST: ldbfmax h0, h1, [x2] 175// CHECK-ENCODING: [0x41,0x40,0x20,0x3c] 176// CHECK-ERROR: instruction requires: lsfe 177// 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: lsfe 183// CHECK-UNKNOWN: 3c2243e3 <unknown> 184 185// -- ldbfmaxa 186 187ldbfmaxa h0, h1, [x2] 188// CHECK-INST: ldbfmaxa h0, h1, [x2] 189// CHECK-ENCODING: [0x41,0x40,0xa0,0x3c] 190// CHECK-ERROR: instruction requires: lsfe 191// 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: lsfe 197// CHECK-UNKNOWN: 3ca243e3 <unknown> 198 199// -- ldbfmaxal 200 201ldbfmaxal h0, h1, [x2] 202// CHECK-INST: ldbfmaxal h0, h1, [x2] 203// CHECK-ENCODING: [0x41,0x40,0xe0,0x3c] 204// CHECK-ERROR: instruction requires: lsfe 205// 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: lsfe 211// CHECK-UNKNOWN: 3ce243e3 <unknown> 212 213// -- ldbfmaxl 214 215ldbfmaxl h0, h1, [x2] 216// CHECK-INST: ldbfmaxl h0, h1, [x2] 217// CHECK-ENCODING: [0x41,0x40,0x60,0x3c] 218// CHECK-ERROR: instruction requires: lsfe 219// 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: lsfe 225// CHECK-UNKNOWN: 3c6243e3 <unknown>