1 // RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve 2>&1 < %s| FileCheck %s 2 3 4 // ------------------------------------------------------------------------- // 5 // Invalid destination or source register. 6 7 uminv d0, p7, z31.b 8 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width 9 // CHECK-NEXT: uminv d0, p7, z31.b 10 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 11 12 uminv d0, p7, z31.h 13 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width 14 // CHECK-NEXT: uminv d0, p7, z31.h 15 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 16 17 uminv d0, p7, z31.s 18 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width 19 // CHECK-NEXT: uminv d0, p7, z31.s 20 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 21 22 uminv v0.2d, p7, z31.d 23 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction 24 // CHECK-NEXT: uminv v0.2d, p7, z31.d 25 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 26 27 28 // ------------------------------------------------------------------------- // 29 // Invalid predicate 30 31 uminv h0, p8, z31.h 32 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: restricted predicate has range [0, 7]. 33 // CHECK-NEXT: uminv h0, p8, z31.h 34 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 35 36 // --------------------------------------------------------------------------// 37 // Negative tests for instructions that are incompatible with movprfx 38 39 movprfx z31.d, p7/z, z6.d 40 uminv d0, p7, z31.d 41 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov 42 // CHECK-NEXT: uminv d0, p7, z31.d 43 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 44 45 movprfx z31, z6 46 uminv d0, p7, z31.d 47 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov 48 // CHECK-NEXT: uminv d0, p7, z31.d 49 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 50