1 // RUN
: not llvm-mc
-triple
=aarch64
-show-encoding
-mattr
=+sme2
,+faminmax
2>&1 < %s| FileCheck
%s
3 // --------------------------------------------------------------------------//
6 famax
{z0.h-z1.h
}, {z0.d-z1.d
}, {z0.s-z1.s
}
7 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
8 // CHECK-NEXT
: famax
{z0.h-z1.h
}, {z0.d-z1.d
}, {z0.s-z1.s
}
9 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
11 famax
{z28.s-z31.s
}, {z28.h-z31.h
}, {z28.d-z31.d
}
12 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
13 // CHECK-NEXT
: famax
{z28.s-z31.s
}, {z28.h-z31.h
}, {z28.d-z31.d
14 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
16 famin
{z0.h-z1.h
}, {z0.s-z1.s
}, {z0.s-z1.s
}
17 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
18 // CHECK-NEXT
: famin
{z0.h-z1.h
}, {z0.s-z1.s
}, {z0.s-z1.s
}
19 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
21 // --------------------------------------------------------------------------//
22 // Incorrect range of vectors
24 famax
{z1.d-z0.d
}, {z0.d-z1.d
}, {z0.d-z1.d
}
25 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid number of vectors
26 // CHECK-NEXT
: famax
{z1.d-z0.d
}, {z0.d-z1.d
}, {z0.d-z1.d
}
27 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
29 famax
{z0.h-z3.h
}, {z1.h-z4.h
}, {z0.h-z3.h
}
30 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid vector list
, expected list with
4 consecutive SVE vectors
, where the first vector is
a multiple of
4 and with matching element types
31 // CHECK-NEXT
: famax
{z0.h-z3.h
}, {z1.h-z4.h
}, {z0.h-z3.h
}
32 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
34 famax
{z0.h-z3.h
}, {z0.h-z3.h
}, {z2.h-z5.h
}
35 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid vector list
, expected list with
4 consecutive SVE vectors
, where the first vector is
a multiple of
4 and with matching element types
36 // CHECK-NEXT
: famax
{z0.h-z3.h
}, {z0.h-z3.h
}, {z2.h-z5.h
}
37 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
39 famax
{z3.h-z6.h
}, {z0.h-z3.h
}, {z0.h-z3.h
}
40 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid vector list
, expected list with
4 consecutive SVE vectors
, where the first vector is
a multiple of
4 and with matching element types
41 // CHECK-NEXT
: famax
{z3.h-z6.h
}, {z0.h-z3.h
}, {z0.h-z3.h
}
42 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
44 famin
{z30.h-z31.h
}, {z31.h-z0.h
}, {z0.h-z1.h
}
45 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid vector list
, expected list with
2 consecutive SVE vectors
, where the first vector is
a multiple of
2 and with matching element types
46 // CHECK-NEXT
: famin
{z30.h-z31.h
}, {z31.h-z0.h
}, {z0.h-z1.h
}
47 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
49 famin
{z29.d-z0.d
}, {z0.d-z3.d
}, {z0.d-z3.d
}
50 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid vector list
, expected list with
4 consecutive SVE vectors
, where the first vector is
a multiple of
4 and with matching element types
51 // CHECK-NEXT
: famin
{z29.d-z0.d
}, {z0.d-z3.d
}, {z0.d-z3.d
}
52 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
54 famin
{z0.d-z3.d
}, {z30.d-z1.d
}, {z0.d-z3.d
}
55 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid vector list
, expected list with
4 consecutive SVE vectors
, where the first vector is
a multiple of
4 and with matching element types
56 // CHECK-NEXT
: famin
{z0.d-z3.d
}, {z30.d-z1.d
}, {z0.d-z3.d
}
57 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
59 famin
{z0.d-z3.d
}, {z0.d-z3.d
}, {z28.d-z30.d
}
60 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
61 // CHECK-NEXT
: famin
{z0.d-z3.d
}, {z0.d-z3.d
}, {z28.d-z30.d
}
62 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}: