Home | History | Annotate | Download | only in AArch64
      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