198 lines · plain
1// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+faminmax < %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=+faminmax < %s \6// RUN: | llvm-objdump -d --mattr=+faminmax - | FileCheck %s --check-prefix=CHECK-INST7// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+faminmax < %s \8// RUN: | llvm-objdump -d --mattr=-faminmax - | 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=+faminmax < %s \11// RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \12// RUN: | llvm-mc -triple=aarch64 -mattr=+faminmax -disassemble -show-encoding \13// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST14 15/// FAMAX instructions.16famax v31.4h, v31.4h, v31.4h17// CHECK-INST: famax v31.4h, v31.4h, v31.4h18// CHECK-ENCODING: [0xff,0x1f,0xdf,0x0e]19// CHECK-ERROR: instruction requires: faminmax20// CHECK-UNKNOWN: 0edf1fff <unknown>21 22famax v31.4h, v0.4h, v31.4h23// CHECK-INST: famax v31.4h, v0.4h, v31.4h24// CHECK-ENCODING: [0x1f,0x1c,0xdf,0x0e]25// CHECK-ERROR: instruction requires: faminmax26// CHECK-UNKNOWN: 0edf1c1f <unknown>27 28famax v0.4h, v0.4h, v0.4h29// CHECK-INST: famax v0.4h, v0.4h, v0.4h30// CHECK-ENCODING: [0x00,0x1c,0xc0,0x0e]31// CHECK-ERROR: instruction requires: faminmax32// CHECK-UNKNOWN: 0ec01c00 <unknown>33 34famax v31.8h, v31.8h, v31.8h35// CHECK-INST: famax v31.8h, v31.8h, v31.8h36// CHECK-ENCODING: [0xff,0x1f,0xdf,0x4e]37// CHECK-ERROR: instruction requires: faminmax38// CHECK-UNKNOWN: 4edf1fff <unknown>39 40famax v31.8h, v31.8h, v0.8h41// CHECK-INST: famax v31.8h, v31.8h, v0.8h42// CHECK-ENCODING: [0xff,0x1f,0xc0,0x4e]43// CHECK-ERROR: instruction requires: faminmax44// CHECK-UNKNOWN: 4ec01fff <unknown>45 46famax v0.8h, v0.8h, v0.8h47// CHECK-INST: famax v0.8h, v0.8h, v0.8h48// CHECK-ENCODING: [0x00,0x1c,0xc0,0x4e]49// CHECK-ERROR: instruction requires: faminmax50// CHECK-UNKNOWN: 4ec01c00 <unknown>51 52famax v31.2s, v31.2s, v31.2s53// CHECK-INST: famax v31.2s, v31.2s, v31.2s54// CHECK-ENCODING: [0xff,0xdf,0xbf,0x0e]55// CHECK-ERROR: instruction requires: faminmax56// CHECK-UNKNOWN: 0ebfdfff <unknown>57 58famax v31.2s, v0.2s, v0.2s59// CHECK-INST: famax v31.2s, v0.2s, v0.2s60// CHECK-ENCODING: [0x1f,0xdc,0xa0,0x0e]61// CHECK-ERROR: instruction requires: faminmax62// CHECK-UNKNOWN: 0ea0dc1f <unknown>63 64famax v0.2s, v0.2s, v0.2s65// CHECK-INST: famax v0.2s, v0.2s, v0.2s66// CHECK-ENCODING: [0x00,0xdc,0xa0,0x0e]67// CHECK-ERROR: instruction requires: faminmax68// CHECK-UNKNOWN: 0ea0dc00 <unknown>69 70famax v31.4s, v31.4s, v31.4s71// CHECK-INST: famax v31.4s, v31.4s, v31.4s72// CHECK-ENCODING: [0xff,0xdf,0xbf,0x4e]73// CHECK-ERROR: instruction requires: faminmax74// CHECK-UNKNOWN: 4ebfdfff <unknown>75 76famax v0.4s, v31.4s, v31.4s77// CHECK-INST: famax v0.4s, v31.4s, v31.4s78// CHECK-ENCODING: [0xe0,0xdf,0xbf,0x4e]79// CHECK-ERROR: instruction requires: faminmax80// CHECK-UNKNOWN: 4ebfdfe0 <unknown>81 82famax v0.4s, v0.4s, v0.4s83// CHECK-INST: famax v0.4s, v0.4s, v0.4s84// CHECK-ENCODING: [0x00,0xdc,0xa0,0x4e]85// CHECK-ERROR: instruction requires: faminmax86// CHECK-UNKNOWN: 4ea0dc00 <unknown>87 88famax v31.2d, v31.2d, v31.2d89// CHECK-INST: famax v31.2d, v31.2d, v31.2d90// CHECK-ENCODING: [0xff,0xdf,0xff,0x4e]91// CHECK-ERROR: instruction requires: faminmax92// CHECK-UNKNOWN: 4effdfff <unknown>93 94famax v0.2d, v0.2d, v31.2d95// CHECK-INST: famax v0.2d, v0.2d, v31.2d96// CHECK-ENCODING: [0x00,0xdc,0xff,0x4e]97// CHECK-ERROR: instruction requires: faminmax98// CHECK-UNKNOWN: 4effdc00 <unknown>99 100famax v0.2d, v0.2d, v0.2d101// CHECK-INST: famax v0.2d, v0.2d, v0.2d102// CHECK-ENCODING: [0x00,0xdc,0xe0,0x4e]103// CHECK-ERROR: instruction requires: faminmax104// CHECK-UNKNOWN: 4ee0dc00 <unknown>105 106 107/// FAMIN instructions.108famin v31.4h, v31.4h, v31.4h109// CHECK-INST: famin v31.4h, v31.4h, v31.4h110// CHECK-ENCODING: [0xff,0x1f,0xdf,0x2e]111// CHECK-ERROR: instruction requires: faminmax112// CHECK-UNKNOWN: 2edf1fff <unknown>113 114famin v31.4h, v0.4h, v31.4h115// CHECK-INST: famin v31.4h, v0.4h, v31.4h116// CHECK-ENCODING: [0x1f,0x1c,0xdf,0x2e]117// CHECK-ERROR: instruction requires: faminmax118// CHECK-UNKNOWN: 2edf1c1f <unknown>119 120famin v0.4h, v0.4h, v0.4h121// CHECK-INST: famin v0.4h, v0.4h, v0.4h122// CHECK-ENCODING: [0x00,0x1c,0xc0,0x2e]123// CHECK-ERROR: instruction requires: faminmax124// CHECK-UNKNOWN: 2ec01c00 <unknown>125 126famin v31.8h, v31.8h, v31.8h127// CHECK-INST: famin v31.8h, v31.8h, v31.8h128// CHECK-ENCODING: [0xff,0x1f,0xdf,0x6e]129// CHECK-ERROR: instruction requires: faminmax130// CHECK-UNKNOWN: 6edf1fff <unknown>131 132famin v31.8h, v31.8h, v0.8h133// CHECK-INST: famin v31.8h, v31.8h, v0.8h134// CHECK-ENCODING: [0xff,0x1f,0xc0,0x6e]135// CHECK-ERROR: instruction requires: faminmax136// CHECK-UNKNOWN: 6ec01fff <unknown>137 138famin v0.8h, v0.8h, v0.8h139// CHECK-INST: famin v0.8h, v0.8h, v0.8h140// CHECK-ENCODING: [0x00,0x1c,0xc0,0x6e]141// CHECK-ERROR: instruction requires: faminmax142// CHECK-UNKNOWN: 6ec01c00 <unknown>143 144famin v31.2s, v31.2s, v31.2s145// CHECK-INST: famin v31.2s, v31.2s, v31.2s146// CHECK-ENCODING: [0xff,0xdf,0xbf,0x2e]147// CHECK-ERROR: instruction requires: faminmax148// CHECK-UNKNOWN: 2ebfdfff <unknown>149 150famin v31.2s, v0.2s, v0.2s151// CHECK-INST: famin v31.2s, v0.2s, v0.2s152// CHECK-ENCODING: [0x1f,0xdc,0xa0,0x2e]153// CHECK-ERROR: instruction requires: faminmax154// CHECK-UNKNOWN: 2ea0dc1f <unknown>155 156famin v0.2s, v0.2s, v0.2s157// CHECK-INST: famin v0.2s, v0.2s, v0.2s158// CHECK-ENCODING: [0x00,0xdc,0xa0,0x2e]159// CHECK-ERROR: instruction requires: faminmax160// CHECK-UNKNOWN: 2ea0dc00 <unknown>161 162famin v31.4s, v31.4s, v31.4s163// CHECK-INST: famin v31.4s, v31.4s, v31.4s164// CHECK-ENCODING: [0xff,0xdf,0xbf,0x6e]165// CHECK-ERROR: instruction requires: faminmax166// CHECK-UNKNOWN: 6ebfdfff <unknown>167 168famin v0.4s, v31.4s, v31.4s169// CHECK-INST: famin v0.4s, v31.4s, v31.4s170// CHECK-ENCODING: [0xe0,0xdf,0xbf,0x6e]171// CHECK-ERROR: instruction requires: faminmax172// CHECK-UNKNOWN: 6ebfdfe0 <unknown>173 174famin v0.4s, v0.4s, v0.4s175// CHECK-INST: famin v0.4s, v0.4s, v0.4s176// CHECK-ENCODING: [0x00,0xdc,0xa0,0x6e]177// CHECK-ERROR: instruction requires: faminmax178// CHECK-UNKNOWN: 6ea0dc00 <unknown>179 180famin v31.2d, v31.2d, v31.2d181// CHECK-INST: famin v31.2d, v31.2d, v31.2d182// CHECK-ENCODING: [0xff,0xdf,0xff,0x6e]183// CHECK-ERROR: instruction requires: faminmax184// CHECK-UNKNOWN: 6effdfff <unknown>185 186famin v0.2d, v0.2d, v31.2d187// CHECK-INST: famin v0.2d, v0.2d, v31.2d188// CHECK-ENCODING: [0x00,0xdc,0xff,0x6e]189// CHECK-ERROR: instruction requires: faminmax190// CHECK-UNKNOWN: 6effdc00 <unknown>191 192famin v0.2d, v0.2d, v0.2d193// CHECK-INST: famin v0.2d, v0.2d, v0.2d194// CHECK-ENCODING: [0x00,0xdc,0xe0,0x6e]195// CHECK-ERROR: instruction requires: faminmax196// CHECK-UNKNOWN: 6ee0dc00 <unknown>197 198