1# RUN: llvm-mc -triple aarch64-none-linux-gnu -mattr=+v8.5a --disassemble < %s | FileCheck %s 2# RUN: not llvm-mc -triple aarch64-none-linux-gnu -mattr=-v8.5a --disassemble < %s 2>%t | FileCheck %s --check-prefix=CHECK-NOV85 3# RUN: FileCheck %s --check-prefix=CHECK-NOV85-ERROR < %t 4 5# Flag manipulation 6[0x3f,0x40,0x00,0xd5] 7[0x5f,0x40,0x00,0xd5] 8 9# CHECK: xaflag 10# CHECK: axflag 11 12# CHECK-NOV85: msr S0_0_C4_C0_1, xzr 13# CHECK-NOV85: msr S0_0_C4_C0_2, xzr 14 15# FP-to-int rounding, scalar 16[0x20,0x40,0x28,0x1e] 17[0x20,0x40,0x68,0x1e] 18[0x62,0x40,0x29,0x1e] 19[0x62,0x40,0x69,0x1e] 20[0xa4,0xc0,0x28,0x1e] 21[0xa4,0xc0,0x68,0x1e] 22[0xe6,0xc0,0x29,0x1e] 23[0xe6,0xc0,0x69,0x1e] 24 25# CHECK: frint32z s0, s1 26# CHECK: frint32z d0, d1 27# CHECK: frint64z s2, s3 28# CHECK: frint64z d2, d3 29# CHECK: frint32x s4, s5 30# CHECK: frint32x d4, d5 31# CHECK: frint64x s6, s7 32# CHECK: frint64x d6, d7 33 34# CHECK-NOV85-ERROR: invalid instruction encoding 35# CHECK-NOV85-ERROR-NEXT: [0x20,0x40,0x28,0x1e] 36# CHECK-NOV85-ERROR: invalid instruction encoding 37# CHECK-NOV85-ERROR-NEXT: [0x20,0x40,0x68,0x1e] 38# CHECK-NOV85-ERROR: invalid instruction encoding 39# CHECK-NOV85-ERROR-NEXT: [0x62,0x40,0x29,0x1e] 40# CHECK-NOV85-ERROR: invalid instruction encoding 41# CHECK-NOV85-ERROR-NEXT: [0x62,0x40,0x69,0x1e] 42# CHECK-NOV85-ERROR: invalid instruction encoding 43# CHECK-NOV85-ERROR-NEXT: [0xa4,0xc0,0x28,0x1e] 44# CHECK-NOV85-ERROR: invalid instruction encoding 45# CHECK-NOV85-ERROR-NEXT: [0xa4,0xc0,0x68,0x1e] 46# CHECK-NOV85-ERROR: invalid instruction encoding 47# CHECK-NOV85-ERROR-NEXT: [0xe6,0xc0,0x29,0x1e] 48# CHECK-NOV85-ERROR: invalid instruction encoding 49# CHECK-NOV85-ERROR-NEXT: [0xe6,0xc0,0x69,0x1e] 50 51# FP-to-int rounding, vector 52[0x20,0xe8,0x21,0x0e] 53[0x20,0xe8,0x61,0x4e] 54[0x20,0xe8,0x21,0x4e] 55[0x62,0xf8,0x21,0x0e] 56[0x62,0xf8,0x61,0x4e] 57[0x62,0xf8,0x21,0x4e] 58[0xa4,0xe8,0x21,0x2e] 59[0xa4,0xe8,0x61,0x6e] 60[0xa4,0xe8,0x21,0x6e] 61[0xe6,0xf8,0x21,0x2e] 62[0xe6,0xf8,0x61,0x6e] 63[0xe6,0xf8,0x21,0x6e] 64 65#CHECK: frint32z v0.2s, v1.2s 66#CHECK: frint32z v0.2d, v1.2d 67#CHECK: frint32z v0.4s, v1.4s 68#CHECK: frint64z v2.2s, v3.2s 69#CHECK: frint64z v2.2d, v3.2d 70#CHECK: frint64z v2.4s, v3.4s 71#CHECK: frint32x v4.2s, v5.2s 72#CHECK: frint32x v4.2d, v5.2d 73#CHECK: frint32x v4.4s, v5.4s 74#CHECK: frint64x v6.2s, v7.2s 75#CHECK: frint64x v6.2d, v7.2d 76#CHECK: frint64x v6.4s, v7.4s 77 78# CHECK-NOV85-ERROR: invalid instruction encoding 79# CHECK-NOV85-ERROR-NEXT: [0x20,0xe8,0x21,0x0e] 80# CHECK-NOV85-ERROR: invalid instruction encoding 81# CHECK-NOV85-ERROR-NEXT: [0x20,0xe8,0x61,0x4e] 82# CHECK-NOV85-ERROR: invalid instruction encoding 83# CHECK-NOV85-ERROR-NEXT: [0x20,0xe8,0x21,0x4e] 84# CHECK-NOV85-ERROR: invalid instruction encoding 85# CHECK-NOV85-ERROR-NEXT: [0x62,0xf8,0x21,0x0e] 86# CHECK-NOV85-ERROR: invalid instruction encoding 87# CHECK-NOV85-ERROR-NEXT: [0x62,0xf8,0x61,0x4e] 88# CHECK-NOV85-ERROR: invalid instruction encoding 89# CHECK-NOV85-ERROR-NEXT: [0x62,0xf8,0x21,0x4e] 90# CHECK-NOV85-ERROR: invalid instruction encoding 91# CHECK-NOV85-ERROR-NEXT: [0xa4,0xe8,0x21,0x2e] 92# CHECK-NOV85-ERROR: invalid instruction encoding 93# CHECK-NOV85-ERROR-NEXT: [0xa4,0xe8,0x61,0x6e] 94# CHECK-NOV85-ERROR: invalid instruction encoding 95# CHECK-NOV85-ERROR-NEXT: [0xa4,0xe8,0x21,0x6e] 96# CHECK-NOV85-ERROR: invalid instruction encoding 97# CHECK-NOV85-ERROR-NEXT: [0xe6,0xf8,0x21,0x2e] 98# CHECK-NOV85-ERROR: invalid instruction encoding 99# CHECK-NOV85-ERROR-NEXT: [0xe6,0xf8,0x61,0x6e] 100# CHECK-NOV85-ERROR: invalid instruction encoding 101# CHECK-NOV85-ERROR-NEXT: [0xe6,0xf8,0x21,0x6e] 102