1 # RUN: not llvm-mc -triple aarch64-none-linux-gnu -mattr=+v8.3a,-fullfp16 --disassemble < %s 2>%t | FileCheck %s --check-prefix=CHECK 2 # RUN: FileCheck %s < %t --check-prefix=NO-FP16 3 # RUN: llvm-mc -triple aarch64-none-linux-gnu -mattr=+v8.3a,+fullfp16 --disassemble < %s 2>%t | FileCheck %s --check-prefix=CHECK --check-prefix=FP16 4 # RUN: not llvm-mc -triple aarch64-none-linux-gnu -mattr=-v8.3a,+fullfp16 --disassemble < %s 2>&1 | FileCheck %s --check-prefix=NO-V83A 5 6 ###### FCMLA vector 7 [0x20,0xc4,0x42,0x2e] 8 # FP16: fcmla v0.4h, v1.4h, v2.4h, #0 9 # NO-FP16: :[[@LINE-2]]:{{[0-9]*}}: warning: invalid instruction encoding 10 # NO-V83A: :[[@LINE-3]]:{{[0-9]*}}: warning: invalid instruction encoding 11 [0x20,0xc4,0x42,0x6e] 12 # FP16: fcmla v0.8h, v1.8h, v2.8h, #0 13 # NO-FP16: :[[@LINE-2]]:{{[0-9]*}}: warning: invalid instruction encoding 14 # NO-V83A: :[[@LINE-3]]:{{[0-9]*}}: warning: invalid instruction encoding 15 [0x20,0xc4,0x82,0x2e] 16 # CHECK: fcmla v0.2s, v1.2s, v2.2s, #0 17 # NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: warning: invalid instruction encoding 18 [0x20,0xc4,0x82,0x6e] 19 # CHECK: fcmla v0.4s, v1.4s, v2.4s, #0 20 # NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: warning: invalid instruction encoding 21 [0x20,0xc4,0xc2,0x6e] 22 # CHECK: fcmla v0.2d, v1.2d, v2.2d, #0 23 # NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: warning: invalid instruction encoding 24 25 26 [0x20,0xc4,0x82,0x2e] 27 # CHECK: fcmla v0.2s, v1.2s, v2.2s, #0 28 # NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: warning: invalid instruction encoding 29 [0x20,0xcc,0x82,0x2e] 30 # CHECK: fcmla v0.2s, v1.2s, v2.2s, #90 31 # NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: warning: invalid instruction encoding 32 [0x20,0xd4,0x82,0x2e] 33 # CHECK: fcmla v0.2s, v1.2s, v2.2s, #180 34 # NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: warning: invalid instruction encoding 35 [0x20,0xdc,0x82,0x2e] 36 # CHECK: fcmla v0.2s, v1.2s, v2.2s, #270 37 # NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: warning: invalid instruction encoding 38 39 40 ###### FCADD vector 41 [0x20,0xe4,0x42,0x2e] 42 # FP16: fcadd v0.4h, v1.4h, v2.4h, #90 43 # NO-FP16: :[[@LINE-2]]:{{[0-9]*}}: warning: invalid instruction encoding 44 # NO-V83A: :[[@LINE-3]]:{{[0-9]*}}: warning: invalid instruction encoding 45 [0x20,0xe4,0x42,0x6e] 46 # FP16: fcadd v0.8h, v1.8h, v2.8h, #90 47 # NO-FP16: :[[@LINE-2]]:{{[0-9]*}}: warning: invalid instruction encoding 48 # NO-V83A: :[[@LINE-3]]:{{[0-9]*}}: warning: invalid instruction encoding 49 [0x20,0xe4,0x82,0x2e] 50 # CHECK: fcadd v0.2s, v1.2s, v2.2s, #90 51 # NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: warning: invalid instruction encoding 52 [0x20,0xe4,0x82,0x6e] 53 # CHECK: fcadd v0.4s, v1.4s, v2.4s, #90 54 # NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: warning: invalid instruction encoding 55 [0x20,0xe4,0xc2,0x6e] 56 # CHECK: fcadd v0.2d, v1.2d, v2.2d, #90 57 # NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: warning: invalid instruction encoding 58 59 60 [0x20,0xe4,0x82,0x2e] 61 # CHECK: fcadd v0.2s, v1.2s, v2.2s, #90 62 # NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: warning: invalid instruction encoding 63 [0x20,0xf4,0x82,0x2e] 64 # CHECK: fcadd v0.2s, v1.2s, v2.2s, #270 65 # NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: warning: invalid instruction encoding 66 67 [0x20,0x10,0x42,0x2f] 68 # FP16: fcmla v0.4h, v1.4h, v2.h[0], #0 69 # NO-FP16: :[[@LINE-2]]:{{[0-9]*}}: warning: invalid instruction encoding 70 # NO-V83A: :[[@LINE-3]]:{{[0-9]*}}: warning: invalid instruction encoding 71 [0x20,0x10,0x42,0x6f] 72 # FP16: fcmla v0.8h, v1.8h, v2.h[0], #0 73 # NO-FP16: :[[@LINE-2]]:{{[0-9]*}}: warning: invalid instruction encoding 74 # NO-V83A: :[[@LINE-3]]:{{[0-9]*}}: warning: invalid instruction encoding 75 [0x20,0x10,0x82,0x6f] 76 # CHECK: fcmla v0.4s, v1.4s, v2.s[0], #0 77 # NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: warning: invalid instruction encoding 78 79 80 [0x20,0x30,0x82,0x6f] 81 # CHECK: fcmla v0.4s, v1.4s, v2.s[0], #90 82 # NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: warning: invalid instruction encoding 83 [0x20,0x50,0x82,0x6f] 84 # CHECK: fcmla v0.4s, v1.4s, v2.s[0], #180 85 # NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: warning: invalid instruction encoding 86 [0x20,0x70,0x82,0x6f] 87 # CHECK: fcmla v0.4s, v1.4s, v2.s[0], #270 88 # NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: warning: invalid instruction encoding 89 90 91 [0x20,0x10,0x62,0x2f] 92 # FP16: fcmla v0.4h, v1.4h, v2.h[1], #0 93 # NO-FP16: :[[@LINE-2]]:{{[0-9]*}}: warning: invalid instruction encoding 94 # NO-V83A: :[[@LINE-3]]:{{[0-9]*}}: warning: invalid instruction encoding 95 [0x20,0x18,0x62,0x6f] 96 # FP16: fcmla v0.8h, v1.8h, v2.h[3], #0 97 # NO-FP16: :[[@LINE-2]]:{{[0-9]*}}: warning: invalid instruction encoding 98 # NO-V83A: :[[@LINE-3]]:{{[0-9]*}}: warning: invalid instruction encoding 99 [0x20,0x18,0x82,0x6f] 100 # CHECK: fcmla v0.4s, v1.4s, v2.s[1], #0 101 # NO-V83A: :[[@LINE-2]]:{{[0-9]*}}: warning: invalid instruction encoding 102