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 // Immediate out of lower bound [-16, 15].
      5 
      6 index z27.b, #-17, #-16
      7 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: index must be an integer in range [-16, 15].
      8 // CHECK-NEXT: index z27.b, #-17, #-16
      9 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     10 
     11 index z11.h, #-16, #-17
     12 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: index must be an integer in range [-16, 15].
     13 // CHECK-NEXT: index z11.h, #-16, #-17
     14 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     15 
     16 index z2.s, #16, #-16
     17 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: index must be an integer in range [-16, 15].
     18 // CHECK-NEXT: index z2.s, #16, #-16
     19 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     20 
     21 index z2.d, #-16, #16
     22 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: index must be an integer in range [-16, 15].
     23 // CHECK-NEXT: index z2.d, #-16, #16
     24 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     25 
     26 index z4.b, #-17, w28
     27 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: index must be an integer in range [-16, 15].
     28 // CHECK-NEXT: index z4.b, #-17, w28
     29 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     30 
     31 index z9.h, #16, w23
     32 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: index must be an integer in range [-16, 15].
     33 // CHECK-NEXT: index z9.h, #16, w23
     34 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     35 
     36 index z3.s, w10, #-17
     37 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: index must be an integer in range [-16, 15].
     38 // CHECK-NEXT: index z3.s, w10, #-17
     39 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     40 
     41 index z17.d, x9, #16
     42 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: index must be an integer in range [-16, 15].
     43 // CHECK-NEXT: index z17.d, x9, #16
     44 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     45 
     46 
     47 // --------------------------------------------------------------------------//
     48 // Invalid register
     49 
     50 index z17.s, x9, w7
     51 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: index must be an integer in range [-16, 15].
     52 // CHECK-NEXT: index z17.s, x9, w7
     53 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     54 
     55 index z17.d, w9, w7
     56 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: index must be an integer in range [-16, 15].
     57 // CHECK-NEXT: index z17.d, w9, w7
     58 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     59 
     60 
     61 // --------------------------------------------------------------------------//
     62 // Negative tests for instructions that are incompatible with movprfx
     63 
     64 movprfx z21.d, p0/z, z28.d
     65 index   z21.d, x10, x21
     66 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov
     67 // CHECK-NEXT: index   z21.d, x10, x21
     68 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     69 
     70 movprfx z21, z28
     71 index   z21.d, x10, x21
     72 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov
     73 // CHECK-NEXT: index   z21.d, x10, x21
     74 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     75 
     76 movprfx z23.d, p0/z, z30.d
     77 index   z23.d, x13, #8
     78 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov
     79 // CHECK-NEXT: index   z23.d, x13, #8
     80 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     81 
     82 movprfx z23, z30
     83 index   z23.d, x13, #8
     84 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov
     85 // CHECK-NEXT: index   z23.d, x13, #8
     86 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     87 
     88 movprfx z23.d, p0/z, z30.d
     89 index   z23.d, #13, x8
     90 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov
     91 // CHECK-NEXT: index   z23.d, #13, x8
     92 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     93 
     94 movprfx z23, z30
     95 index   z23.d, #13, x8
     96 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov
     97 // CHECK-NEXT: index   z23.d, #13, x8
     98 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     99