Home | History | Annotate | Download | only in SVE
      1 // RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve  2>&1 < %s| FileCheck %s
      2 
      3 
      4 // ------------------------------------------------------------------------- //
      5 // Invalid predicate
      6 
      7 lasta   w0, p8, z31.b
      8 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: restricted predicate has range [0, 7].
      9 // CHECK-NEXT: lasta   w0, p8, z31.b
     10 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     11 
     12 
     13 // ------------------------------------------------------------------------- //
     14 // Invalid element width
     15 
     16 lasta   x0, p7, z31.b
     17 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
     18 // CHECK-NEXT: lasta   x0, p7, z31.b
     19 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     20 
     21 lasta   x0, p7, z31.h
     22 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
     23 // CHECK-NEXT: lasta   x0, p7, z31.h
     24 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     25 
     26 lasta   x0, p7, z31.s
     27 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
     28 // CHECK-NEXT: lasta   x0, p7, z31.s
     29 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     30 
     31 lasta   w0, p7, z31.d
     32 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
     33 // CHECK-NEXT: lasta   w0, p7, z31.d
     34 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     35 
     36 lasta   b0, p7, z31.h
     37 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
     38 // CHECK-NEXT: lasta   b0, p7, z31.h
     39 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     40 
     41 lasta   h0, p7, z31.s
     42 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
     43 // CHECK-NEXT: lasta   h0, p7, z31.s
     44 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     45 
     46 lasta   s0, p7, z31.d
     47 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
     48 // CHECK-NEXT: lasta   s0, p7, z31.d
     49 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     50 
     51 lasta   d0, p7, z31.b
     52 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
     53 // CHECK-NEXT: lasta   d0, p7, z31.b
     54 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     55 
     56 
     57 // --------------------------------------------------------------------------//
     58 // Negative tests for instructions that are incompatible with movprfx
     59 
     60 movprfx z31.d, p7/z, z6.d
     61 lasta   x0, p7, z31.d
     62 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov
     63 // CHECK-NEXT: lasta   x0, p7, z31.d
     64 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     65 
     66 movprfx z31, z6
     67 lasta   x0, p7, z31.d
     68 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov
     69 // CHECK-NEXT: lasta   x0, p7, z31.d
     70 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     71 
     72 movprfx z31.d, p7/z, z6.d
     73 lasta   d0, p7, z31.d
     74 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov
     75 // CHECK-NEXT: lasta   d0, p7, z31.d
     76 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     77 
     78 movprfx z31, z6
     79 lasta   d0, p7, z31.d
     80 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov
     81 // CHECK-NEXT: lasta   d0, p7, z31.d
     82 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     83