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 // Invalid immediates
      5 
      6 fdup z0.h, #-0.05859375   // r = -4, n = 15
      7 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
      8 // CHECK-NEXT: fdup z0.h, #-0.05859375   // r = -4, n = 15
      9 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     10 
     11 fdup z0.s, #-0.05859375   // r = -4, n = 15
     12 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
     13 // CHECK-NEXT: fdup z0.s, #-0.05859375   // r = -4, n = 15
     14 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     15 
     16 fdup z0.d, #-0.05859375   // r = -4, n = 15
     17 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
     18 // CHECK-NEXT: fdup z0.d, #-0.05859375   // r = -4, n = 15
     19 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     20 
     21 fdup z0.h, #-64.00000000   // r = 5, n = 32
     22 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
     23 // CHECK-NEXT: fdup z0.h, #-64.00000000   // r = 5, n = 32
     24 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     25 
     26 fdup z0.s, #-64.00000000   // r = 5, n = 32
     27 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
     28 // CHECK-NEXT: fdup z0.s, #-64.00000000   // r = 5, n = 32
     29 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     30 
     31 fdup z0.d, #-64.00000000   // r = 5, n = 32
     32 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
     33 // CHECK-NEXT: fdup z0.d, #-64.00000000   // r = 5, n = 32
     34 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     35 
     36 fdup z0.h, #0.05859375   // r = -4, n = 15
     37 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
     38 // CHECK-NEXT: fdup z0.h, #0.05859375   // r = -4, n = 15
     39 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     40 
     41 fdup z0.s, #0.05859375   // r = -4, n = 15
     42 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
     43 // CHECK-NEXT: fdup z0.s, #0.05859375   // r = -4, n = 15
     44 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     45 
     46 fdup z0.d, #0.05859375   // r = -4, n = 15
     47 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
     48 // CHECK-NEXT: fdup z0.d, #0.05859375   // r = -4, n = 15
     49 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     50 
     51 fdup z0.h, #64.00000000   // r = 5, n = 32
     52 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
     53 // CHECK-NEXT: fdup z0.h, #64.00000000   // r = 5, n = 32
     54 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     55 
     56 fdup z0.s, #64.00000000   // r = 5, n = 32
     57 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
     58 // CHECK-NEXT: fdup z0.s, #64.00000000   // r = 5, n = 32
     59 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     60 
     61 fdup z0.d, #64.00000000   // r = 5, n = 32
     62 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
     63 // CHECK-NEXT: fdup z0.d, #64.00000000   // r = 5, n = 32
     64 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     65 
     66 
     67 // --------------------------------------------------------------------------//
     68 // Negative tests for instructions that are incompatible with movprfx
     69 
     70 movprfx z0.d, p0/z, z7.d
     71 fdup z0.d, #31.00000000
     72 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov
     73 // CHECK-NEXT: fdup z0.d, #31.00000000
     74 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     75 
     76 movprfx z0, z7
     77 fdup z0.d, #31.00000000
     78 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov
     79 // CHECK-NEXT: fdup z0.d, #31.00000000
     80 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     81