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 (must be 0.0 or 1.0)
      5 
      6 fmax z0.h, p0/m, z0.h, #0.5
      7 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid floating point constant, expected 0.0 or 1.0.
      8 // CHECK-NEXT: fmax z0.h, p0/m, z0.h, #0.5
      9 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     10 
     11 fmax z0.h, p0/m, z0.h, #-0.0
     12 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid floating point constant, expected 0.0 or 1.0.
     13 // CHECK-NEXT: fmax z0.h, p0/m, z0.h, #-0.0
     14 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     15 
     16 fmax z0.h, p0/m, z0.h, #0.0000000000000000000000001
     17 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid floating point constant, expected 0.0 or 1.0.
     18 // CHECK-NEXT: fmax z0.h, p0/m, z0.h, #0.0000000000000000000000001
     19 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     20 
     21 fmax z0.h, p0/m, z0.h, #1.0000000000000000000000001
     22 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid floating point constant, expected 0.0 or 1.0.
     23 // CHECK-NEXT: fmax z0.h, p0/m, z0.h, #1.0000000000000000000000001
     24 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     25 
     26 fmax z0.h, p0/m, z0.h, #0.9999999999999999999999999
     27 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid floating point constant, expected 0.0 or 1.0.
     28 // CHECK-NEXT: fmax z0.h, p0/m, z0.h, #0.9999999999999999999999999
     29 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     30 
     31 
     32 // ------------------------------------------------------------------------- //
     33 // Tied operands must match
     34 
     35 fmax    z0.h, p7/m, z1.h, z31.h
     36 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: operand must match destination register
     37 // CHECK-NEXT: fmax    z0.h, p7/m, z1.h, z31.h
     38 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     39 
     40 
     41 // ------------------------------------------------------------------------- //
     42 // Invalid element widths.
     43 
     44 fmax    z0.b, p7/m, z0.b, z31.b
     45 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
     46 // CHECK-NEXT: fmax    z0.b, p7/m, z0.b, z31.b
     47 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     48 
     49 fmax    z0.h, p7/m, z0.h, z31.s
     50 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
     51 // CHECK-NEXT: fmax    z0.h, p7/m, z0.h, z31.s
     52 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     53 
     54 
     55 // ------------------------------------------------------------------------- //
     56 // Invalid predicate
     57 
     58 fmax    z0.h, p8/m, z0.h, z31.h
     59 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: restricted predicate has range [0, 7].
     60 // CHECK-NEXT: fmax    z0.h, p8/m, z0.h, z31.h
     61 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
     62